文本语音互相转换
本文最后更新于:2025年5月24日 上午
TTS 文字转语音 Text To Speech
要求:
- 能自动识别文本语言,最好也支持混合语言文本(我们并不知道用户的语言是什么);
- 输出的语音要求支持多个角色,比如男声、女声、儿童声等;
- 价格便宜。
1、chatgpt Text to speech
文档链接
可以自动识别语言,混合语言也可以,价格是$0.015 / 1K characters;
问题是目前的角色太少了,只发布了6个,不满足我们的需求
2、微软的文本转语音
对接很简单,问题是你必须指定输入的是什么语言,如果是混合语言输入,必须使用xml的方式,我们的产品是并不会提前知道输出的是什么语言,所以不符合要求
中间部署服务发生的一个小插曲,我们的linux系统是Ubuntu22.04,报错问题,:
The Speech SDK does not yet support OpenSSL 3.0, which is the default in Ubuntu 22.04 and Debian 12.
就是说微软的sdk要求linux系统是Ubuntu 22.04,但是却不支持openssl3.0,但是这玩意还是Ubuntu 22.04的默认配置,所以需要手动卸载然后安装低版本的openssl,真是坑爹
3、elevenlabs
文档链接
两个google机器学习相关的前员工创办的公司,能自动识别输入语言,支持混合语言,有多个输出语音角色可选,免费版账号有3个角色,nice,就它了
STT 语音转文本 Speech To Text
要求:
- 能自动识别语音的语言种类,最好混合语种输入也行(我们并不知道用户的语言是什么);
- 价格便宜。
其实一开始是找了几个开源的语音转文本库,合适的是这个:Uberi/speech_recognition
发现它是混合了google microsoft这些厂家的技术,既然如此,我们自己去看文档就行了,不需要这个封装一层;
1、google cloud
看基本功能,这些都没问题,问题就在于自动识别语言,默认情况下你是必须手动指定你的语音文件的语言,如果语音文件中你说的是中文,传给sdk的说语音是英文,那这个就识别不出来。
google也是有自动识别语言功能的,但是它是让你传语言数组参数,这个数组最多三个语言,自动匹配相似的语言,官方文档
不符合要求
2、microsoft
基本功能我就不说了,自动识别语言的问题,官方文档在这
和google类似最多传入10个语言,不匹配会返回最相似的一个,原话在此:
语音服务会返回提供的一种候选语言,即使这些语言不在音频中也是如此。例如,如果提供
fr-FR
(法语)和en-US
(英语)作为候选,但讲德语,则将返回fr-FR
或。en-US
不符合要求
3、chatgpt
文档链接
支持混合语种的语音输入,价格是$0.006 / minute,满足要求