2016-01-26 2 views
6

Я пытаюсь использовать pyvona, но в функции speak() это продолжает происходить. Вот код:my 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) 
+0

Какую версию Pygame вы используете? – unutbu

+0

отлично работает для меня, как вы установили pygame и pyvona? –

+0

im using pygame 1.9.2 –

ответ

0

Попробуйте

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

или

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

Если файл является звуковой файл его Shou ld работать.

0

После того, как аналогичные проблемы с Pygame, я переехал в pyglet, попробуйте:

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