- Zmo2026-09-2810431
主管给到一个任务,要求使用esp32做开发,里面有一个需求是语音播报
目前我在ESP32 C6上采用离线双语(中英文)语音播报方案:PC端预先用Neural TTS生成中英文语音片段并压缩为Opus/VPK2,设备端根据数据和事件组合播放完整数字、小数+单位及少量整句热词,并用4ms Crossfade减少拼接感,但目前仍存在语调衔接不自然、人机感较强的问题
有没有相关方向大佬能够给指点指点,还有没有其他好一些的解决方案吗
主楼 - Kulin88482026-09-2823950
佬,做你这个是不是得会c语言呀?c语言学到指针够用吗?
- Zmo2026-09-2810431
- Wkstr2026-09-2810254
- Apollo2026-09-2829111
不考虑在线是出于成本原因吗
- Zmo2026-09-2810431
对,就只给了块32和一些模组,没有上网条件
- KKMP2026-09-2829112
esp自己也有tts模型,只是不知道C6可不可以用
- Zmo2026-09-2810431
也是可以离线调用的吗
- Zmo2026-09-2810431
佬,Crossfade 拉长的话会不会有明显的停顿感
- KKMP2026-09-2829112
是的,不过之前只在esp32s3用过
- Zmo2026-09-2810431
- fjcqv2026-09-2818208
我10年前的方案是用语音芯片,TTS生成单字的WAV。放倒语音芯片按顺序播放。
- Zmo2026-09-2810431
我现在也是差不多的方案,但是这样每个字之间的割裂感有些严重,有很明显的停顿,被主管评价为"人机感太重"
- Apollo2026-09-2829111
能不能把颗粒度做大一点,例如整数全部生成,小数精度之内也全部生成
- jacky_lin982026-09-2829113
现在有了AI之后,你学到数组都够用了
- Zmo2026-09-2810431
我其实也有这么做,但是碍于存储限制,实际可能也存放不了太多数字。而且就算这样,在播报整数+小数的时候也有些突兀,比如播报 1234.5 ,那么.5就会很突兀。佬有什么好的解决思路吗
- 木流牛马2026-09-2829114
小智是后台直接调用TTS生成然后直接发给ESP32播放,实际上直接调用微软的在线TTS生成效果挺好的,可以尝试一下。
- Zmo2026-09-2810431
就是说还是需要上网在线的方式是么 ^-^
- 木流牛马2026-09-2829114
ESP32不是默认就有联网能力吗,我不是专门搞硬件的哦,之前折腾过两次,感觉它的算力要跑一个本地的TTS还是挺勉强呀,用线上的肯定效果要更好。或者你看看有没有专门的语音生成芯片接一个,可能也会效果好点。
- Zmo2026-09-2810431
因为实际应用场景下没有网络提供,而且碍于成本,也没有考虑网络方向 ^-^