我正在使用mp3play和google tts api播放机器人声音: 代码很简单,但有时很好,有时很糟糕:
def robot_voice(text):
text=text.split()
text='+'.join(text)
url = "http://translate.google.com/translate_tts?tl=en&q="+text
request = urllib2.Request(url)
request.add_header('User-agent', 'Mozilla/5.0')
opener = urllib2.build_opener()
f = open("data.mp3", "wb")
f.write(opener.open(request).read())
f.close()
time.sleep(0.5)
import mp3play
mp3=mp3play.load('data.mp3')
mp3.play()
time.sleep(mp3.seconds())
mp3.stop()
if __name__=="__main__":
robot_voice("hello world")
就像当我把文件放在一个文件夹中时,它只是播放“hello world”的声音,但是当我将它复制并粘贴到另一个文件夹中时,它会给出错误信息:
“open”data.mp3“alias mp3_0.395468745176”的错误277:初始化MCI时出现问题。 “set mp3_0.395468745176 time format milliseconds”的错误263:指定的设备未打开或MCI无法识别。 “status mp3_0.395468745176 length”的错误263:指定的设备未打开或MCI无法识别。
Traceback(最近一次调用最后一次):文件 “C:\ Python27 \ Sample \ synthesis \ robot_voice.py”,第28行,in robot_voice(“hello world”)文件“C:\ Python27 \ Sample \ synthesis \ robot_voice.py”,第19行,在robot_voice中 mp3 = mp3play.load('data.mp3')文件“build \ bdist.win-amd64 \ egg \ mp3play__init __。py”,第10行,载入中 返回AudioClip(filename)文件“build \ bdist.win-amd64 \ egg \ mp3play__init __。py”,第17行, init self._clip = _PlatformSpecificAudioClip(filename)文件“build \ bdist.win-amd64 \ egg \ mp3play \ windows.py”,第43行, init self._length_ms = int(buf)ValueError:int()的基数为10的文字无效: “\ XD6 \ XB8 \ XB6 \ xa8 \ XB5 \ XC4 \ xc9 \ xe8 \ XB1 \ XB8 \ XCE \ XB4 \ XB4 \ XF2 \ XBF \的Xaa \ XA3 \ XAC \ XBB \ XF2 \ XB2 \ XBB \ XB1 \ XBB MCI \ xcb \ xf9 \ xca \ xb6 \ xb1 \ xf0 \ xa1 \ xa3'