我的pyvona speak()函数不起作用

时间:2016-01-26 21:44:46

标签: python function python-3.x pygame typeerror

我试图使用pyvona但是在speak()函数中这种情况一直在发生。这是代码:

def speak(self, text_to_speak):
    """Speak a given text
    """
    if not pygame_available:
        raise PyvonaException(
            "Pygame not installed. Please install to use speech.")

    with tempfile.SpooledTemporaryFile() as f:
        with self.use_ogg_codec():
            self.fetch_voice_fp(text_to_speak, f)
        f.seek(0)
        if not pygame.mixer.get_init():
            pygame.mixer.init()
        channel = pygame.mixer.Channel(5)
        sound = pygame.mixer.Sound(f)
        channel.play(sound)
        while channel.get_busy():
            pass

,错误是

Traceback (most recent call last):
    File "/Users/noahchalifour/Desktop/pyvona-0.25/pyvona.py", line 250, in <module>
        v.speak('Hello World')
    File "/Users/noahchalifour/Desktop/pyvona-0.25/pyvona.py", line 138, in speak
        sound = pygame.mixer.Sound(f)
TypeError: Unrecognized argument (type SpooledTemporaryFile)

2 个答案:

答案 0 :(得分:0)

试试这个

sound = pygame.mixer.Sound(file=f)

sound = pygame.mixer.Sound(file=f._file)

如果文件是声音文件,它应该有效。

答案 1 :(得分:0)

在与pygame有类似问题后,我转到pyglet,尝试:

Import pyglet
music = pyglet.media.load('file.mp3')
music.play()
pyglet.app.run()