Я использую модуль gTTS python для получения mp3 из Google Text-To-Speech API и PyGame для воспроизведения выходных файлов mp3 без открытия внешнего проигрывателя (есть ли более простой способ сделать это?)
Однако похоже, что микшер PyGame не освобождает файловый ресурс даже после его выхода.
phrase = "Hello!"
tts = gtts.gTTS(text=phrase, lang='en')
tts.save("googleTTS.mp3")
f = MP3("googleTTS.mp3")
mixer.init(f.info.sample_rate)
mixer.music.load("googleTTS.mp3")
mixer.music.play()
while mixer.music.get_busy() == True:
continue
mixer.quit() # doesn't free resource?
phrase = "Bye!"
tts = gtts.gTTS(text=phrase, lang='en')
tts.save("googleTTS.mp3")
Последняя строка дает исключение:
IOError: [Errno 13] Permission denied: 'googleTTS.mp3'
Я должен заметить, что проблема не в функции tts.save, потому что код без микшера работает нормально.
Как я могу освободить ресурс микшера и использовать один и тот же файл снова и снова?
f
? Вы пробовалиdel f
или что-то в этом роде? Не знаю, что делает классMP3
(?). - person sloth   schedule 04.08.2015mixer.music.stop()
доmixer.quit()
? - person luoluo   schedule 05.08.2015chmod 777 googleTTS.mp3
из командной строки? - person Cplusplusplus   schedule 11.08.2015