• Zmo

    主管给到一个任务,要求使用esp32做开发,里面有一个需求是语音播报

    目前我在ESP32 C6上采用离线双语(中英文)语音播报方案:PC端预先用Neural TTS生成中英文语音片段并压缩为Opus/VPK2,设备端根据数据和事件组合播放完整数字、小数+单位及少量整句热词,并用4ms Crossfade减少拼接感,但目前仍存在语调衔接不自然、人机感较强的问题

    有没有相关方向大佬能够给指点指点,还有没有其他好一些的解决方案吗

    主楼
  • Kulin8848

    佬,做你这个是不是得会c语言呀?c语言学到指针够用吗?

    #1
  • Zmo

    如果做做小玩具,那可以实现了。但是如果用到工作实际中,是远远不够的。

    现在很少手搓代码了,基本都是codex或者Claude

    #2
  • Wkstr

    Crossfade 拉长

    好方案就是上云端的 TTS,可以看下 xiaozhi 怎么做的

    #3
  • Apollo

    不考虑在线是出于成本原因吗

    #4
  • Zmo

    对,就只给了块32和一些模组,没有上网条件

    #5
  • KKMP

    esp自己也有tts模型,只是不知道C6可不可以用

    #6
  • Zmo

    也是可以离线调用的吗

    #7
  • Zmo

    佬,Crossfade 拉长的话会不会有明显的停顿感

    #8
  • KKMP

    是的,不过之前只在esp32s3用过

    #9
  • Zmo

    佬有官方链接吗,可以发一下不

    之前用的时候,有没有很明显的"人机感"

    #10
  • fjcqv

    我10年前的方案是用语音芯片,TTS生成单字的WAV。放倒语音芯片按顺序播放。

    #11
  • Zmo

    我现在也是差不多的方案,但是这样每个字之间的割裂感有些严重,有很明显的停顿,被主管评价为"人机感太重"

    #12
  • Apollo

    能不能把颗粒度做大一点,例如整数全部生成,小数精度之内也全部生成

    #13
  • jacky_lin98

    现在有了AI之后,你学到数组都够用了

    #14
  • Zmo

    我其实也有这么做,但是碍于存储限制,实际可能也存放不了太多数字。而且就算这样,在播报整数+小数的时候也有些突兀,比如播报 1234.5 ,那么.5就会很突兀。佬有什么好的解决思路吗

    #15
  • 木流牛马

    小智是后台直接调用TTS生成然后直接发给ESP32播放,实际上直接调用微软的在线TTS生成效果挺好的,可以尝试一下。

    #16
  • Zmo

    就是说还是需要上网在线的方式是么 ^-^

    #17
  • 木流牛马

    ESP32不是默认就有联网能力吗,我不是专门搞硬件的哦,之前折腾过两次,感觉它的算力要跑一个本地的TTS还是挺勉强呀,用线上的肯定效果要更好。或者你看看有没有专门的语音生成芯片接一个,可能也会效果好点。

    #18
  • Zmo

    因为实际应用场景下没有网络提供,而且碍于成本,也没有考虑网络方向 ^-^

    #19

发表回复

登录后回复