用Python实现不需要互联网的文本到语音转换?

2024-06-03 05:50:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个人工智能程序(没有什么大的或特别的),我希望它有一个声音(谁不会呢?)。我已经研究过espeak,festival,gTTS,它们很好用,但是不够现实,如果有意义的话,我真的很自豪。我一直在寻找更现实的东西。 像这样

from gtts import gTTS

tts = gTTS(text='what to say', lang='en')
tts.save('/path/to/file.mp3')

gTTS工作正常。我喜欢。这很现实,但它需要互联网。。问题是,我希望我的申请尽可能独立。我讨厌依赖互联网。

还有其他选择吗?

PS:我目前正在运行Linux,所以您的操作系统可能有不同的解决方案。


Tags: tofromimport程序声音互联网人工智能tts
1条回答
网友
1楼 · 发布于 2024-06-03 05:50:25

根据documentation,尝试使用pyttsx3 2.5:

gTTS which works perfectly in python3 but it needs internet connection to work since it relies on google to get the audio data.But Pyttsx is completely offline and works seemlesly and has multiple tts-engine support.

适用于Python2和3

要安装它:

pip install pyttsx3

使用它应该简单到:

import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait() ;

编辑1-更改语音

要获得较低的机器人声音,您可以尝试按以下方式更改声音:

engine.setProperty('voice', voice.id)

获取可用的声音

voices = engine.getProperty('voices')

您可以尝试不同的可用语音,如本问题中所述:Changing the voice with PYTTSX module in python

编辑2-选择语音引擎

库支持以下引擎:

  • Windows上的sapi5-sapi5
  • nsss-Mac OS X上的NSSpeechSynthesizer
  • 埃斯皮克-埃斯皮克在其他平台

如果espeak不是很自然,如果你在Windows上,可以尝试sapi5;如果你在Mac OS X上,可以尝试nsss

您可以在init方法中指定引擎,例如:

pyttsx3.init(driverName='sapi5') 

这里有更多信息:http://pyttsx3.readthedocs.io/en/latest/engine.html

相关问题 更多 >