20|TTS与语音合成:让你的机器人拥有声音
徐文浩
该思维导图由 AI 生成,仅供参考
你好,我是徐文浩。
上一讲里,我们通过 Whisper 模型,让 AI“听懂”了我们在说什么。我们可以利用这个能力,让 AI 替我们听播客、做小结。不过,这只是我们和 AI 的单向沟通。那我们能不能更进一步,让 AI 不仅能“听懂”我们说的话,通过 ChatGPT 去回答我们问的问题,最后还能让 AI 把这些内容合成为语音,“说”给我们听呢?
当然可以,这也是我们这一讲的主题,我会带你一起来让 AI 说话。和上一讲一样,我不仅会教你如何使用云端 API 来做语音合成(Text-To-Speech),也会教你使用开源模型,给你一个用本地 CPU 就能实现的解决方案。这样,你也就不用担心数据安全的问题了。
使用 Azure 云进行语音合成
语音合成其实已经是一个非常成熟的技术了,现在在很多短视频平台里,你听到的很多配音其实都是通过语音合成技术完成的。国内外的各大公司都有类似的云服务,比如科大讯飞、阿里云、百度、AWS Polly、Google Cloud等等。不过,今天我们先来体验一下微软 Azure 云的语音合成 API。选用 Azure,主要有两个原因。
因为微软和 OpenAI 有合作,Azure 还提供了 OpenAI 相关模型的托管。这样,我们在实际的生产环境使用的时候,只需要和一个云打交道就好了。
价格比较便宜,并且提供了免费的额度。如果你每个月的用量在 50 万个字符以内,那么就不用花钱。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
使用TTS和语音合成技术让机器人拥有声音已成为可能。本文首先介绍了在Azure云上进行语音合成的基本步骤,包括注册账号、设置API Key和Region,并安装对应的Python包。作者演示了如何指定语音的风格与角色,以及指定语音的输出方式。通过示例代码,读者可以了解如何使用Azure云的语音合成API来实现不同声音、语气和角色的语音合成,并将合成的语音输出到文件或直接播放。文章还介绍了SSML格式的使用,以及如何在不同场景下让AI“演绎”不同的语音。另外,文章还介绍了百度开源的PaddleSpeech的语音合成功能,以及如何在自己的服务器上进行语音合成。通过PaddleSpeech的TTSExecutor,读者可以将文本内容转换成WAV文件,并通过PyAudio包在Python里播放对应的声音。文章还提到了PaddleSpeech默认只支持中文的语音合成,但通过指定参数可以实现中英文混合的语音合成。总的来说,本文通过实际操作和示例代码,帮助读者快速了解了TTS和语音合成技术的基本原理和应用方法,以及如何在Azure云和PaddleSpeech上实现语音合成。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 大模型之美》,新⼈⾸单¥68
《AI 大模型之美》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(11)
- 最新
- 精选
- 胡萝卜这个英文转语音效果不错 https://github.com/suno-ai/bark
作者回复: 👍 bark是最近比较火的一个模型
2023-04-24归属地:上海27 - Toni尝试用百度的 PaddlePaddle,将语音文件(.wav) 转换成文字(语音识别)。 1. 语音中只含中文,实现代码如下: from paddlespeech.cli.asr.infer import ASRExecutor asr = ASRExecutor() audio_file="./data/BaiduTTS/zh.wav" result = asr(audio_file=audio_file) print(result) 输出结果: 我认为跑步最重要的就是给我带来了身体健康 语音原文: 我认为跑步最重要的就是给我带来了身体健康 2. 语音为中英文混合的文件 "./data/BaiduTTS/paddlespeech_mix_1.wav",用上面的代码运行 输出结果: 早上好哈沃尔姨百度他都斯一样能做中英文混合的语音合成 语音原文: 早上好, how are you? 百度 Paddle Speech 一样能做中英文混合的语音合成 处理中英文混合的语音文件,进行语音识别时,需要给 ASRExecutor() 添加参数,代码如下: from paddlespeech.cli.asr import ASRExecutor asr = ASRExecutor() audio_file="./data/BaiduTTS/paddlespeech_mix_1.wav" result = asr(model='conformer_talcs', lang='zh_en', codeswitch=True, sample_rate=16000, audio_file=audio_file, config=None, ckpt_path=None, force_yes=False) print(result) 输出结果: 早上好 how are you 百度它读 speech 一样能做中英文混合的语音合成 对照语音原文,ASRExecutor() 将语音 "百度 Paddle Speech" 转成了 "百度它读 speech",并不完美。 期待更好的解决方案。 参考: 【PaddleSpeech】一键预测,快速上手Speech开发任务 https://aistudio.baidu.com/aistudio/projectdetail/4353348?sUid=2470186&shared=1&ts=1660878142250 一文读懂 PaddleSpeech 中英混合语音识别技术 https://xie.infoq.cn/article/c05479afe4291255d91ed950f Load specified model files for TTS cli #2225 https://github.com/PaddlePaddle/PaddleSpeech/issues/2225 PaddlePaddle/PaddleSpeech https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/demos/audio_tagging/README_cn.md
作者回复: 👍
2023-04-23归属地:瑞士35 - zhihai.tuopenai本身没有tts的api吗?期待下一讲。
作者回复: OpenAI没有,语音是相对比较成熟的领域,各种开源和商业的方案很多,价格也比较便宜。
2023-04-21归属地:上海32 - 劉仲仲老师,为甚么我用Azure语音服务,在jupyter notebook上已经跑通而且可以播放声音,但是一部署到hugging face上面就发不出声音呢
作者回复: 看看是否浏览器权限设置不能播放声音?
2023-05-08归属地:美国 - Steven补充 Windows 下安装 portaudio 库: 1,下载安装 MSYS2: https://www.msys2.org/ 2,MSYS2 安装完成后在其命令行窗口中执行: pacman -S mingw-w64-x86_64-portaudio
作者回复: 👍
2023-04-25归属地:辽宁 - jeffM1 芯片可以跑起来 paddleSpeech 吗?2023-08-28归属地:河北
- jeff除去 PaddleSpeech 还有其他成熟方案吗?适合生产用的2023-08-28归属地:河北
- jeffpaddlepaddle 在 colab 安装失败....2023-08-28归属地:河北
- PzLu老师,有没有克隆声音的比较好的开源库推荐,类似 MockingBird 的?2023-06-26归属地:浙江
- 厚积薄发老师,PaddleSpeech 转换语音很慢,有没有什么好办法2023-06-06归属地:北京1
收起评论