如何在Python中将文本转换为语音(mp3文件)?
我可以用Python里的puttsx把文字转换成语音,也可以用麦克风(耳机)录音,把声音保存成mp3文件。
我想做的是把文字直接转换成mp3文件。
有没有办法把用pyttsx播放的音频存储到内存里或者变成unicode字符串呢?
有没有人能帮我把音频存到内存里,或者告诉我怎么把那个字符串转换成mp3文件。
3 个回答
2
你可以通过把'theText'这个字符串分割成一个数组来绕过100个字符的限制:theText = f.read().split("<null>")
(我用"<null>"作为分隔符)。在每个句子或100个字符之前的空格处放入这个分隔符。然后创建一个循环:for section in theText:
,对每个部分执行engine.Speak(section)
。
希望这能帮助你解决100个字符的限制问题!
5
为了从文本文件生成音频文件,我正在使用这段代码,希望它能对你有所帮助。
from comtypes.client import CreateObject
engine = CreateObject("SAPI.SpVoice")
stream = CreateObject("SAPI.SpFileStream")
from comtypes.gen import SpeechLib
infile = "SHIVA.txt"
outfile = "SHIVA-audio.wav"
stream.Open(outfile, SpeechLib.SSFMCreateForWrite)
engine.AudioOutputStream = stream
f = open(infile, 'r')
theText = f.read()
f.close()
engine.speak(theText)
stream.Close()
3
我不太了解pyttsx,不过之前我用过谷歌的TTS(文本转语音)API,把文字生成MP3音频。
你可以通过这个代码片段来了解它是怎么工作的。谷歌TTS的免费版本对每次请求的字数是有限制的,所以我建议把文本分成一句一句的,然后为每一句创建一个文件。
如果你需要这方面的帮助,随时告诉我。