首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将合成的文本到语音合成录制到Python文件中

将合成的文本到语音合成录制到Python文件中
EN

Stack Overflow用户
提问于 2012-03-28 09:52:10
回答 5查看 7.5K关注 0票数 9

我正在尝试找到一种方法,将合成的语音记录到音频文件中。我目前使用pyttsx作为我的文语转换库,但没有将输出保存到文件的机制,只能直接从扬声器播放。我研究过detecting and recording audioPyAudio,但它们似乎都是从麦克风输入的,而不是将输出的音频重定向到文件中。有没有一种已知的方法可以做到这一点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-29 19:58:25

您可以使用subprocess调用带有-w参数的espeak

代码语言:javascript
复制
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以了解您拥有的所有选项。

希望这能有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2017-04-19 15:42:31

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

https://github.com/DeepHorizons/tts

代码应如下所示:

代码语言:javascript
复制
import tts.sapi
voice = tts.sapi.Sapi()
voice.set_voice("Joey")
voice.create_recording('hello.wav', "Hello")
票数 2
EN

Stack Overflow用户

发布于 2018-01-12 02:29:13

下面是一个访问NSSpeechSynthesizer应用编程接口的示例

代码语言:javascript
复制
#!/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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9900137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档