python-3.x - 如何在 Python 3 中直接播放音频文件?
问题描述
我正在python中尝试gTTS(Google Text To Speach)功能,保存mp3文件有效(文件正在保存并且可以播放)。
现在我试图用下面的代码直接播放文件,但它抛出了一个错误
代码:
import gtts
import pyglet
import os
import time
text = ("Hello World")
obj = gtts.gTTS(text=text, lang='en')
speech_filename = 'c:/test_voice.mp3'
obj.save(speech_filename)
print("Play sound...")
music = pyglet.media.load(speech_filename, streaming=False)
music.play
sleep.time(music.duration) #prevent from killing
os.remove(speech_filename) #remove temp file
错误:
Traceback(最近一次通话最后):文件“C:\python\text-to-speach.py”,第 16 行,在 music = pyglet.media.load(speech_filename, streaming=False)
文件“C:\Python\lib\site-packages\pyglet\media\sources\loader.py”,第 63 行,在 load source = get_source_loader().load(filename, file)
文件“C:\Python\lib\site-packages\pyglet\media\sources\loader.py”,第 84 行,加载返回 WaveSource(文件名,文件)
文件“C:\Python\lib\site-packages\pyglet\media\sources\riff.py”,第 200 行,在init
'AVbin 需要解码压缩媒体') pyglet.media.sources.riff.WAVEFormatException: AVbin 需要解码压缩媒体
解决方案
它正在寻找 AVbin,检查以下内容会对您有所帮助
https://stackoverflow.com/questions/10302873/python-pyglet-avbin-how-to-install-avbin
推荐阅读
- c# - C# WinForms: Constructing an object with label/textbox properties in a form does not result in those properties appearing in the form. Why?
- javascript - Run batch or transaction in Cloud Firestore onCreate trigger
- c# - 是否可以在 Specflow 功能中将对象转换为表格
- rest - securing REST-API accessed by mobile application with no login
- eclipse - . . . 解析为一个包 - JSP
- java - 监护人演员中的 Akka AllForOne 主管策略
- apache-spark - Spark(2.3.1)LDA 转换内存错误(java.io.ByteArrayOutputStream.hugeCapacity 处的 java.lang.OutOfMemoryError(ByteArrayOutputStream.java:123)
- datastax - Gremlin:在单个 gremlin 查询中添加边和删除边
- microservices - Microserivce on database level
- google-api - 在 BigQuery 中使用 dryRun 区分标准和旧版 SQL 查询的替代方法?