首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pyttsx3保存到字节对象

pyttsx3保存到字节对象
EN

Stack Overflow用户
提问于 2021-01-14 00:11:21
回答 1查看 172关注 0票数 0

我正在用Python语言和discord.py制作一个不和谐的机器人,并且我正在实现一个tts命令。基本上,我有一个函数将我获得的音频数据保存到一个字节类型变量,然后(出于测试目的)将其写入一个文件。代码如下:

代码语言:javascript
运行
复制
def speak(text):
    engine.setProperty("rate", 150)
    engine.say(text)
    engine.runAndWait()
    fileData = bytes()
    filePath = './sound.mp3'
    engine.save_to_file(text, fileData)
    engine.runAndWait()
    with open(filePath, 'w+b') as f:
        f.write(fileData)
        f.close()
        print("Wrote to file")
    return os.path.abspath(filePath)

但是,说到底,sound.mp3是0字节,Python解释器也不会抛出任何错误或警告。您可以说我可以直接写入文件,但这里的目标是将其存储在内存中,以便减少对我的Raspberry Pi的SD的消耗(这就是我托管机器人的地方)。Discord.py通常也需要一个文件来播放音频,但我使用的是一个补丁,它允许我播放字节和类似字节的对象,所以这也得到了解决。我只需要上述代码的帮助。感谢所有的帮助。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 00:46:16

pyttsx模块有一个save_to_file方法,我建议你改用它,关于你的代码.你要把音频转换成字节吗?代码只是说出运行代码的主机中的文本,并向文件中写入空字节。这就是为什么文件是0字节的原因,它实际上从来没有将音频写入其中。

用法:

代码语言:javascript
运行
复制
import pyttsx3
engine = pyttsx3.init()
engine.save_to_file('Hello World' , 'test.mp3')
engine.runAndWait()

在您的代码中,您使用了fileData = bytes(),但是在字节中,您没有传递任何内容,那么如何期望filedata变量有任何内容,并且输出文件也是空的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65705669

复制
相关文章

相似问题

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