用Python将文本转换成语音TTS(Text-To-Speech)

将文本转换成语音TTS(Text-To-Speech),最近试了几款TTS引擎,包括pyttsx3、gtts、科大讯飞,做个简单记录。

1. pyttsx3

pyttsx3 - Text-to-speech x-platform使用系统的语音引擎。在Windows下,用Win + r 打开运行窗口,键入regedit,打开注册表,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\,可以看到有3个语音引擎。

  • MSTTS_V110_zhCN_HuihuiM
  • MSTTS_V110_zhCN_KangkangM
  • MSTTS_V110_zhCN_YaoyaoM

但奇怪的是,使用pyttsx3输出的语音引擎只有下面两个。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0

使用pyttsx3很简单,可以参见Using pyttsx3 examples

import pyttsx3
engine = pyttsx3.init() # object creation

def main():
    voices = engine.getProperty('voices')
    for voice in voices:
        print(voice.id)
        engine.setProperty('voice', voice.id)
        engine.say('由联合国原子能委员会(United Nations Atomic Energy Commission)创建')

    engine.runAndWait()

值得注意的下,不要忘了加上engine.runAndWait(),否则程序执行完退出,声音还没生成。

另,将语音保存成文件用engine.save_to_file(audio_text, audio_path)。改变音量用(实测,没什么效果):

volume = engine.getProperty('volume')
engine.setProperty('volume', volume-0.25)

尽管pyttsx3使用起来很简单,但生成的语音不够自然。

2. gtts

gtts使用谷歌翻译文本转语音的接口。使用也很简单:

from gtts import gTTS
if __name__ == '__main__':
    audio = gTTS(text="Hello World", lang='en')
    audio.save("test.mp3")

但提示错误gtts.tts.gTTSError: Failed to connect. Probable cause: Unknown

3. NeoSpeech

NeoSpeech TTS,官网在这Lifelike Text to Speech (TTS) - ReadSpeaker。好不容易下载(下载链接)下来,安装上,不知道怎么用。在控制面板 --> 语音 --> 添加语音,看来设置是不对的。

4. 科大讯飞

使用科大讯飞的在线语音合成服务,很简单。新用户,在线语音合成可以免费使用1年,5万次交互量(详情见讯飞开放平台-新用户免费礼包)。

科大讯飞语音合成 - 在线语音合成 - WebAPI 文档 - 调用示例下载Python3版本的demo。简单修改demo,完成自己想要的功能。

(1)发音人

科大讯飞提供5个基础发音人,免费,可以在在线语音合成_免费试用试听下效果。设置参数vcn(指voice_name)指定发音人:

讯飞小燕     xiaoyan
讯飞许久     aisjiuxu
讯飞小萍    aisxping
讯飞小婧    aisjinger
讯飞许小宝  aisbabyxu

(2)音频编码

参数aue(audio encoding)指定音频编码,默认值为raw,即未压缩的pcm。如果要直接保存为mp3格式,将aue设为lame

LAME is a high quality MPEG Audio Layer III (MP3) encoder

(3)其他业务参数

还可以设置语速speed、音量volume、音高pitch、背景音bgs等,详情见:语音合成(流式版)WebAPI 文档 接口调用流程https://www.bookstack.cn/read/xfyun-rest_api/5fd15e96ef1b147d.md)下`业务参数说明(business)`小节。

参考资料:

[1] 讯飞开放平台-用户等级中心

[2] 《科大讯飞REST_API开发指南》 - 书栈网 · BookStack

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2022-02-26 22:32

results matching ""

    No results matching ""