文本语音互相转换

本文最后更新于: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,满足要求


文本语音互相转换
http://bestkele.com/2024/01/26/investigation/tts-stt/
作者
kele
发布于
2024年1月26日
许可协议