我试图使用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 :(得分: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()