过去半年,随着大厂的加入,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 2308
非常好,果断赞一个,送杯咖啡
感谢支持
非常棒的文章。感谢总结。我在用cosyvoice 自己搭建了实时推理服务,用在自己的产品中。目前来看,cosyvoice是最均衡的。没深入去看,不知道他的训练 部分是不是也开源了好像是。
学习下测评结果