2017-04-19 117 views
0

我使用Python来执行,就像这样子:SAPI声音的输出保存到一个文件在python

subprocess.call(["espeak", "-v Ivona 2 Joey -w "+file_name+".wav", text])

我不知道如何使用伊沃娜2乔伊的声音。当我运行TTSApp.exe文件时,我可以在“语音”下的下拉菜单中看到它。

我已阅读此http://espeak.sourceforge.net/voices.html

当我做espeak --voices,我没有在那里看到Ivona

或者还有另一种方法吗?我尝试过pyttsx,但它没有输出到wav。

我想要做的就是使用语音合成器来使用Ivona语音读取文本并输出到wav文件。

+0

相关http://stackoverflow.com/questions/9900137/recording-synthesized-text-to-speech-在python中的文件http://stackoverflow.com/questions/17646949/how-to-save-sound-produced-from-text-as-mp3-or-wave-in-python http:// stackoverflow.com/questions/39014468/how-to-save-the-output-of-pyttsx-to-wav-file –

回答

0

乔伊是商业产品Ivona TTS的代言人。语音通过SAPI界面可用。你不能通过espeak访问这个声音,espeak只支持espeak声音。

您可以使用更高级的SAPI包装将输出保存到wav文件。例如,你可以尝试

https://github.com/DeepHorizons/tts

的代码应该是这样的:

import tts.sapi 
voice = tts.sapi.Sapi() 
voice.set_voice("Joey") 
voice.create_recording('hello.wav', "Hello") 
+0

我有问题在python 2.7.13中运行代码,我得到一个TypeError:super ()至少需要1个参数(给出0)'错误。 – jason

+0

您可以从sapi.py中删除'super().__ init __()'行。 –

+0

我删除了该行。现在在_create_stream stream.Open(filename,SpeechLib.SSFMCreateForWrite)得到这个'File“C:\ Python27 \ lib \ site-packages \ tts \ sapi.py”,第97行,错误:(-2147287038,None,(无,无,无,0,无))' – jason