我正在尝试找到一种方法,将合成的语音记录到音频文件中。我目前使用pyttsx作为我的文语转换库,但没有将输出保存到文件的机制,只能直接从扬声器播放。我研究过detecting and recording audio和PyAudio,但它们似乎都是从麦克风输入的,而不是将输出的音频重定向到文件中。有没有一种已知的方法可以做到这一点?
发布于 2012-03-29 19:58:25
您可以使用subprocess调用带有-w参数的espeak。
import subprocess
def textToWav(text,file_name):
subprocess.call(["espeak", "-w"+file_name+".wav", text])
textToWav('hello world','hello')这将在不大声读出的情况下写入file_name.wav。如果你的文本在一个文件中(例如text.txt),你需要用-f参数("-f"+ text )来调用espeak。我建议您阅读espeak man pages以了解您拥有的所有选项。
希望这能有所帮助。
发布于 2017-04-19 15:42:31
您可以使用更高级的SAPI包装器将输出保存到wav文件。例如,您可以尝试
https://github.com/DeepHorizons/tts
代码应如下所示:
import tts.sapi
voice = tts.sapi.Sapi()
voice.set_voice("Joey")
voice.create_recording('hello.wav', "Hello")发布于 2018-01-12 02:29:13
下面是一个访问NSSpeechSynthesizer应用编程接口的示例
#!/usr/bin/env python
from AppKit import NSSpeechSynthesizer
import sys
import Foundation
if len(sys.argv) < 2:
text = raw_input('type text to speak> ')
else:
text = sys.argv[1]
nssp = NSSpeechSynthesizer
ve = nssp.alloc().init()
ve.setRate_(100)
url = Foundation.NSURL.fileURLWithPath_('yourpath/test.aiff')
ve.startSpeakingString_toURL_(text,url)https://stackoverflow.com/questions/9900137
复制相似问题