【问题标题】:How to go around in playing audio files directly in Python 3?如何在 Python 3 中直接播放音频文件?
【发布时间】:2019-01-01 13:52:00
【问题描述】:

我正在尝试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 行,加载中 source = get_source_loader().load(文件名,文件)

文件“C:\Python\lib\site-packages\pyglet\media\sources\loader.py”,第 84 行,加载中 返回波源(文件名,文件)

文件“C:\Python\lib\site-packages\pyglet\media\sources\riff.py”,第 200 行,在 init

'AVbin 需要解码压缩媒体') pyglet.media.sources.riff.WAVEFormatException: AVbin 需要解码压缩媒体

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    它正在寻找 AVbin, 检查以下内容会对您有所帮助 https://stackoverflow.com/questions/10302873/python-pyglet-avbin-how-to-install-avbin

    【讨论】:

    【解决方案2】:

    好的,这就是我解决它的方法,我还添加了一个延迟循环,等待音频文件完成并在之后将其删除。

    import gtts
    import pygame
    #install pyglet and install http://avbin.github.io/AVbin/Download.html
    #extract the avbin.dll from windows/system32/ folder to windows/system/ folder
    import os
    import time
    
    pygame.mixer.init()
    
    text = ("Hello, World")
    
    obj = gtts.gTTS(text=text, lang='en')
    speech_filename = "c:/python/code/test_voice.mp3"
    obj.save(speech_filename)
    
    print("Play sound...")
    
    pygame.mixer.music.load(speech_filename)
    pygame.mixer.music.play()
    
    busy = True
    while busy == True:
        if pygame.mixer.music.get_busy() == False:
            busy = False
    pygame.quit()
    
    os.remove(speech_filename) #remove temp file - remove line to keep file
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      • 2022-01-24
      • 2011-11-26
      相关资源
      最近更新 更多