过去半年,随着大厂的加入,TTS领域有了非常大的变化,在以前的文章中,我曾指出Speech是AIGC领域非常重要的一环,它将在众多AIGC领域不可或缺。TTS已经从传统的机器合成音,发展到了自然音阶段,当下的TTS项目,追求合成音的自然流畅,口语化、语气、停顿、口头禅、情绪价值等重要因素。过去一段时间,我调研了GPT-SoVITS, ChatTTS, CosyVoice, Fish-Speech等项目,同时对国内大厂云上的语音合成服务进行了了解,顺带对国外开放了合成接口的创业项目进行了试用。本文将详细阐述我所接触到的这些TTS项目,以及对它们在接入后是否符合预期做对比评测,以为正在做TTS技术选型的朋友提供参考。
TTS技术指标
在国内有一家叫做ttsmaker的网站,提供了非常多且免费的语音合成音色,是我认为国内目前最为优秀的传统TTS提供方。但可能由于其内部政策的原因,目前已关闭API服务,因此,我们无法将它作为技术备选。在此,需要指出,本文要评测的,是可以作为开发者可以常规接入,作为自己的TTS后端的技术备选,可以是服务商提供基于access_token的API,可以是类似云服务商提供的客户端SDK,也可以是开放源码自己部署为本地服务的,简而言之,如果产品虽好,但作为普通开发者无法接入的(如下文提到的Seed-TTS),不再本文考虑范围内。
我们进行TTS技术选型,一定是服务于我们的应用场景,而不是纯粹追求指标的全面性。从开发者角度,我认为我们要从以下指标去评估对应的备选是否满足我们的需求:
接入的便捷性:如果接入很麻烦,意味着后续的维护、升级都需要付出更多的工作
效果的出色度:就当下而言,合成语音越接近自然说话,效果越好
合成的稳定性:每次输出的效果要具有稳定性,声音保持一致,断句、背景电流声、停顿时长等都符合预期
成本的低廉性
每一个方面,都会有更多的细节指标来支撑,我会在最后的对比中,把这些细节指标列出来,让读者可以一目了然。
音色
在所有指标中,音色是最重要的指标。不同的模型,在生成效果上,对音色的依赖度都较大。有的甚至直接靠音色来决定生成语音的语速、风格和情感。音色可能成为当下的核心话题,虽然从社会学层面,克隆会带来一些伦理问题,但是从技术角度,想要获得具体的应用效果,在克隆上下功夫,是目前大部分团队正在努力的方向。
从技术控制的角度,除了音色外,我们希望自己控制情感、说话的风格(人物扮演的角色,例如同一个人,可以扮演家庭主妇、职场女强人、商店老板娘等等)、停顿、口头禅、情感强度、音量、语速、语言、音调(低沉或尖叫)等。只有在技术上我们可以完全独立控制这些参数,我们才能在具体的场景中获得更好的体验。例如在朗读小说时,不仅要为角色分配音色,而且还要在不同的故事情节中,对角色说的话进行情感、风格等的适配。当然,如果这些参数我们完全可控,可以借助大模型来生成朗读脚本。
TTS技术备选介绍
虽然本文试图收集更多技术备选方案,但过多的选项反而可能带来困扰,因此,我只列出相对知名的一些技术选项。
开源TTS项目
OpenVoice
可以说,OpenVoice开创了准确克隆人声的时代,它给技术界带来了新的思路。不过目前来看,OpenVoice的TTS效果已经远远落后于后起之秀。尽管如此,它依然是伟大的开源项目。目前出现了了ChatTTS+OpenVoice的组合,ChatTTS效果出色,但是克隆很逊,因此有这样的巧妙组合。
GPT-SoVITS
知名的声音克隆项目,GPT-SoVITS可以克隆出音色与原声极为接近的种子,而且所需的声音长度很短,克隆速度快,推理速度也快,支持中英语言。不过,虽然GPT-SoVITS在克隆上能够让输出的声音与原声更像,但是在推理时的自然度不够,能够比较容易听出是AI的合成声。
近期,GPT-SoVITS发布了2.0版本,在1.0的基础上做了多项提升。但是据社区小伙伴反馈,2.0之后,克隆的声音反而更不像原声了,但是稳定性获得了更好的保证。从某种角度讲,我们不应该追求与原声的相似,而应该追求稳定性。
Fish-Speech
相对冷门的TTS开源项目,Fish-Speech附属于大项目Fish Audio,Fish Audio团队部分成员来自GPT-SoVITS,技术上具有一脉相承的意味。
我在测试时,在其space demo中获得的克隆效果不佳,但在其官网克隆则可以获得声音更相似的效果。
MeloTTS
MeloTTS 是一个由 MyShell AI 开发的开源、高质量、多语言的文本转语音项目,可以将文本转换成自然流畅的语音输出,并支持英语、西班牙语、法语、中文、日语和韩语等多种语言。MeloTTS 特别支持 CPU 环境下的实时语音合成,无需依赖 GPU。
从体验来讲,MeloTTS 的合成语音只有轻微的机器感,这在开源项目中算是非常优秀。并且文本中的中文、英文和数字都几乎能准确地识别与合成,要说缺点的话就是没有太多的 voice speaker 选项,中文目前只找到了一个女声和一个男声。
另外值得一提的是,OpenVoice也是MyShell AI的项目。
ChatTTS
ChatTTS 也是一个开源的文本转语音项目,支持中文和英文。目前来说,是开源社区最活跃的TTS项目,社区出现的ChatTTS Forge项目在原项目等基础上做了很大的提升。其生成的效果非常接近真实人生。
不过,其团队出于安全和商业的考虑,开源版本的模型参数较小,且官方特意加入了噪声。
CosyVoice
CosyVoice是阿里发布的开源模型,附属于大项目FunAudioLLM。从官方的demo来看,其效果非常接近人声,其效果与ChatTTS类似,具有情感和口气。同时,其克隆效果也非常出色,是目前来说,国内最完整最优秀的TTS开源项目。
同时,阿里云上也提供了CosyVoice的服务,因此,下方就不单独提阿里云服务部分。
闭源TTS服务
微软Azure语音合成
从目前所有云服务公开的情况来看,Azure的语音合成是最优秀最稳定的选择,它提供了非常多的配置选项,可以帮助开发者在不同场景实现自己的效果。而且,网上有很多攻略,可以白嫖其免费额度。
TTSMaker
TTSMaker可能是基于Azure语音合成服务进行二次开发后的产品,其效果和性能非常令人惊艳。它提供了非常多的音色,也提供了长文本TTS,免费额度也足够普通用户使用。它分为国内版和海外版,域名即cn和com的区别,由于某些原因,com域名不能在国内访问,而由于某些原因,cn站点关闭了API服务。
火山引擎megaTTS
豆包背后使用了Seed-TTS,但是Seed-TTS并没有公开提供服务,字节在火山引擎提供了megaTTS,我有真实体验,从克隆的效果来看,非常的优秀,与豆包的克隆效果有的一比。不过megaTTS的收费比较贵。
Reecho睿声
国内较为专注语音相关的厂商,深圳的一家公司,提供了AI语音社区,可以实现合成和克隆,也开放了API。我自己试了一下克隆,效果只能说一般,但是它提供的分角色功能我觉得很有特点。
其他云语音合成
腾讯云、讯飞开放平台、有道智云都提供了语音合成服务。我没有真正体验它们的效果,但是阅读了它们的开发文档,从文档来看,感觉就不像是给普通开发者提供使用的。
ElevenLabs(仅英文)
ElevenLabs是国外的一家专注做AI语音相关的厂商,它的操作台一眼就能看出非常典型的国外小而美公司的特点。其TTS效果非常的优秀,但是只支持英文,如果给中文的话,会有非常重的外国人口音(有的情况下这竟然是一种特色)。
它有开发API,付费为订阅制,总体而言,虽然其功能很优秀,却不适合国内产品场景。
原生TTS功能
浏览器自带SpeechSynthesis
我们的浏览器自带了SpeechSynthesis接口,虽然这个接口是实验性的,但是其兼容性还是非常不错的。基于该接口,我们可以直接用javascript实现语音播报,特别是结合一些浏览器自带的分词工具,我们可以让SpeechSynthesis实现LLM边思考边说话的效果。
但是它的音色会由浏览器加载对应的声音模型,而且其生成的声音距离自然的人声还是比较远。
TTS技术选型对比评测
作为开发者,我们最终要根据当前的业务场景选择一项TTS技术来实现自己的功能。如果使用开源项目,则必须自己部署服务,并基于服务开发业务接口,难度最大;基于云服务,则不需要自己部署,虽然成本更高,但是稳定性和效果有保障;基于原生TTS或第三方原生库,成本低,难度低,但是语音效果不怎么好。
OpenVoice
GPT-SoVITS
Fish-Speech
MeloTTS
ChatTTS
CosyVoice
微软Azure语音合成
TTSMaker
火山引擎megaTTS
Reecho睿声
ElevenLabs
浏览器SpeechSynthesis
合成效果
人声相似性
稳定性
一般
不错
不错
稳定
忽上忽下
很稳定
稳到飞起
稳到飞起
稳到飞起
还行
稳到飞起
长文本
差
差
差
差
差
差
好
很好
差
差,但可以分角色
好的不得了
情感、风格
几乎没有
有一点
有
不错
很不错
很不错
可选
几乎没有
可选
有
无
中文+英文+数字
差
差
还行
还行
好
好
好
数字不行
还行
差
好
音色数量
多到不行
中文只有2个
海量
还行
常用的都有
常用的都有
竟然还有方言
还行
中文的不多,有粤语和台湾
口语化
没有
没有
没有
没有
棒
棒
可选
没有
没有
没有
没有,机器音重到不行
合成可选项
太少
太少
很少
很少
很少
很少
很多
多
一般多
太少
几乎没有
克隆
音色近似度
有一定相似性
比OpenVoice稍好
比OpenVoice好很多
用SenseVoice克隆,效果比OpenVoice好非常多
非常接近原声
个人感觉一般
付费功能没有试
语气情感
可加控制器控制
有一点点,但不多
有
不错
几乎没有
几乎没有
-
零样本
是
是
是
是
源人声要求
30s
5s
30s
3-10s
开发
要自己部署
是
是
是,可使用API服务
是
是
是,可使用阿里云服务
开发难度
难
难
难
难
很难
一般
一般
简单
简单
简单
简单
简单
自由度
高
高
高
高
高
中
高
低
低
一般
极高
其他
项目地址
https://github.com/myshell-ai/OpenVoice
https://github.com/RVC-Boss/GPT-SoVITS
https://github.com/fishaudio/fish-speech
https://github.com/myshell-ai/MeloTTS
https://github.com/2noise/ChatTTS
https://github.com/FunAudioLLM/CosyVoice
服务
https://fish.audio/zh-CN/
https://help.aliyun.com/zh/isi/developer-reference/streaming-speech-synthesis-tts-documentation/
https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/index-text-to-speech
https://ttsmaker.com/
https://www.volcengine.com/docs/6561/79817
https://www.reecho.cn/
https://elevenlabs.io/app/speech-synthesis/text-to-speech
https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis
开源协议
MIT
MIT
CC-BY-NC-SA 4.0 license
MIT
AGPL-3.0 license
Apache-2.0 license
可商用
可
可
不可,需授权
可
不可,需购买私有版独立部署
可
不可,需购买商业版
可
总结
优点
开源免费可商用
开源免费可商用,稳定
人声相似
开源免费可商用,稳定
口语化很棒
效果比chatTTS还ok
无可挑剔
音色多,长文本
最接近原声
国内少有的专注语音厂商
功能多,小而美
浏览器自带,不要钱,无成本
缺点
效果一般
效果一般
小众,不可商用
音色少
没有克隆,不可商用
性能差,要求高(但可以用云服务)
没有克隆,国内无法调用API
收费贵
效果不好
不支持中文,贵
音色太拉,如果将来可以自己载入音色模型就好了
就目前来说,我们很难推荐哪一款技术选型是最合适的。我们可以根据自己的实际需求来进行选择。
总结而言:
如果是为了长文本读小说,可以选择TTSMaker或Azure的AI语音服务
如果仅仅是为了能够发出声音进行阅读,为了追求实时性,流式阅读,可以选择浏览器SpeechSynthesis
如果追求免费可商用自由度高,就选GPT-SoVITS,MIT协议可以克隆,效果稳定,相似度虽然不够,但起码能用
如果追求克隆口语化,接近自然人声,就选CosyVoice阿里云服务或Azure的AI语音服务
如果追求克隆音色相似度很高,可以尝试火山引擎的语音合成服务,贵就贵点
至于chatTTS和Fish-Speech,由于其协议问题,不建议采用。
结语
随着AI应用的发展,市面上会出现愈来越多GPT-4o发布时演示的与智能体实时对话的应用,这也是迈向机器人时代的重要一步。然而就目前市面上的TTS产品而言,就目前来说,都无法做到最好,特别是在口语化上,无法做到极致的自然交流。当然,这或许也不是一件坏事,毕竟我们有的时候还是需要区分是自然人声还是机器声,特别是在诈骗横行的当下。作为产品的开发者,我们在追求极致的同时,也应该考虑到安全性,避免由此带来的政策风险和将来的法律问题。
2024-08-28
24023