前言
文中高亮块均由 AI 回答。
对于 AI 虚拟助手而言不仅要识别用户的语音内容,还要通过自己个性化的语音将内容读出来从而实现真实的”对话“效果。这里就需要涉及到语音合成技术,也就是我们通常所说的 TTS(TTS 是文本转语音(Text-to-Speech)的缩写),TTS 技术通过将文本转化为可听的语音,为人们提供了更多的语音交互和信息获取途径。
事实上我们在日常生活中对于语音合成技术已经不算陌生,比如微信读书,Siri,高德的导航语音助手,短视频中常见的 AI 语音,AI 诈骗电话等,语音合成技术可以说在我们的日常生活中有着广泛的应用,有的时候甚至很难辨认出是真人还是 AI。
:::info TTS 是文本转语音(Text-to-Speech)的缩写。它是一种技术,将文本转换为可以听到的人工语音。通过TTS技术,计算机可以将书面文字转化为口语表达,实现将文本内容转换为声音输出的功能。
TTS 技术的工作原理是通过语音合成引擎,将输入的文本转换为声音信号。这种声音信号可以是预先录制的人工语音,也可以是由计算机根据语音合成算法生成的合成语音。TTS技术的应用非常广泛,包括但不限于以下方面:
- 无障碍辅助工具:TTS 可以帮助视力受损或阅读困难的人们获取书面信息,使他们能够通过听取文字的方式获取所需的信息。
- 语音导航系统:TTS 技术被广泛应用于导航系统中,例如车载导航和手机导航应用程序,将导航指令和路线信息转化为语音提示,为用户提供语音导航服务。
- 语音助手和虚拟人物:TTS 技术被用于创建语音助手和虚拟人物,例如智能手机上的语音助手(如Siri、Google Assistant)以及智能音箱(如Amazon Echo、Google Home)中的虚拟助手。这些系统可以通过语音与用户进行交互,提供语音响应和执行各种任务。
- 语音广播和电子阅读器:TTS 技术可以将电子文档、新闻文章、电子书等转换为语音,以便人们通过听取的方式获取信息。
总而言之,TTS 技术通过将文本转化为可听的语音,为人们提供了更多的语音交互和信息获取途径,扩展了人机交互的方式。
:::
希望达成的效果
对于我们要实现的 AI 虚拟助手而言,我希望通过使用语音合成技术达成以下几个特性:
- 音色需要符合角色本身的设定,比如可莉的模型应该搭配可莉的语音,是那种小女孩纯真的声音。
- 实时生成语音,如果 TTS 处理的时间过长,那么用户体验会变得很差。
- 有感情的回答,没有感情的回答很容易被识别出是 AI,效果也会大打折扣。
- 免费的或者可以本地部署:无他,没米。当然能力上可以接入,由用户自己提供 Key 即可。
总而言之,希望我们在对话的 AI 助手逼近真人,当然除了语音本身,配合要表达的意图还应该搭配模型本身的动作,表情等才能更加真实。
方案调研
那么我们实现 TTS 有哪些方案呢?首先问下 GPT:
:::info 目前有许多可用的 TTS 技术。以下是一些常见的 TTS 技术和平台:
- Google Text-to-Speech:Google 提供的 TTS 技术,可在 Android 设备和其他 Google 服务中使用。
- Microsoft Azure Text-to-Speech:微软 Azure 平台提供的 TTS 服务,提供多种语音风格和语音效果。
- Amazon Polly:亚马逊 AWS 平台上的 TTS 服务,支持多种语言和声音。
- IBM Watson Text to Speech:IBM Watson 平台提供的 TTS 服务,可将文本转换为多种语音风格。
- Baidu TTS:百度提供的 TTS 技术,支持多种语言和声音风格。
- OpenAI TTS:OpenAI 提供的 TTS 技术,基于深度学习模型,可以生成自然流畅的语音。
除了这些大型平台提供的 TTS 服务外,还有许多开源的 TTS 库和框架可供使用,如:
- Tacotron:一种基于神经网络的端到端 TTS 模型,用于将文本转换为语音。
- Festival:一个开源的 TTS 系统,提供多种语言的合成语音。
- Mozilla TTS:由 Mozilla 开发的开源 TTS 引擎,使用深度学习模型生成语音。
这些技术和平台提供了各种不同的功能、语音风格和语言支持,可以根据具体需求选择合适的 TTS 技术。
:::
哪些可以免费使用呢?
:::info 以下是一些免费提供的 TTS 技术和平台:
- Google Text-to-Speech:Google 提供的 TTS 技术,可在 Android 设备上免费使用。
- Microsoft Azure Text-to-Speech:Microsoft Azure 提供了一定的免费额度,可用于使用其 TTS 服务。
- Amazon Polly:亚马逊 AWS 平台上的 Polly 服务提供一定的免费额度,可用于 TTS。
- IBM Watson Text to Speech:IBM Watson 提供了免费试用版,可以使用其 TTS 服务。
- Mozilla TTS:Mozilla 开发的开源 TTS 引擎,可以免费使用。
需要注意的是,这些平台大多提供免费额度,超出额度后可能需要支付费用。另外,免费额度的具体限制和政策可能会根据平台的更新而有所变化,建议在使用之前查看相关的费用和使用条款。
此外,还有一些开源的 TTS 库和框架可以免费使用,如 Tacotron、Festival 等。这些工具可以在自己的项目中使用,并根据需要进行定制和调整。
请注意,在选择任何 TTS 技术之前,最好查阅相关的政策、条款和使用限制,以确保符合其使用规定,并了解是否需要支付费用。
:::
还有一些是 GPT 没有告诉我们的,毕竟 GPT 的信息停留在 2021,一些新的技术比如 Vits 没有涉及,另外还有网络上比较流行的 Edge-TTS,以及浏览器提供的原生 API 如 speechSynthesis
。
根据以上一些信息,以及我之前在网络上浏览到的一些方案,我们确定一些可选的方案,然后分别看下效果:
- Edge-TTS:Edge 浏览器提供的文字转语音服务,原来仅在 Edge 的大声朗读中使用,不过有开源库实现了相关的命令行调用。
- Vits-Fast:Vits 快速微调模型,可以快速体验 Vits 效果并可以进行快速训练,提供原神,赛马娘等底模。
- Microsoft Speech API:对应微软演示页面的接口,稳定性不佳,但是免费。
- Microsoft Azure Text-to-Speech:Microsoft Azure 提供了一定的免费额度,可用于使用其 TTS 服务。
- Edge Speech API:对应Edge浏览器的大声朗读接口,稳定性还行,免费,但是有单次的长度限制,具体限制未知,并且该接口未对文本切片。