Playsound воспроизводит mp3-файл только один раз, а затем выдает ошибку «Отказано в разрешении».

#python #python-3.x #spyder #gtts #python-playsound

Вопрос:

Я использую Playsound и gtts в среде разработки Spyder, которая создает mp3-файл, а затем воспроизводит его.

 import gtts from playsound import playsound #pass text to gTTS object   # make request to google to get synthesis english = gtts.gTTS("Hello world") #retrieved the actual audio speech from the API  # save the audio file english.save("hello.mp3") # play the audio file playsound("hello.mp3")  

Он отлично играет в первый раз, но затем показывает это каждый раз, когда я его запускаю:

 File "C:UsersASUS.spyder-py3all codesText2Speech.py", line 27, in lt;modulegt;  english.save("hello.mp3")   File "C:UsersASUSAppDataLocalProgramsPythonPython39Libsite-packagesgttstts.py", line 312, in save  with open(str(savefile), 'wb') as f:   PermissionError: [Errno 13] Permission denied: 'hello.mp3'  

Он снова отлично работает после перезапуска Spyder, а затем снова не работает после того, как я сыграл только один раз. Моя ОС-Windows 10, Playsound версии 1.2.2

Комментарии:

1. Трудно сказать, не видя полной обратной связи, но я предполагаю, что playsound это не закрывает дескриптор файла, поэтому english.save в следующий раз не получится.

2. спасибо за отзыв. Я просто добавил больше строк в раздел «Обратная связь». Если это происходит потому playsound , что не закрывается, как решить эту проблему?

3. При первом запуске кода вы получаете вывод Error 263 for command: close hello.mp3 Device is not open or not recognized by MCI. Failed to close the file: hello.mp3 , указывающий на то, что playsound не закрыл файл. Таким образом, в следующий раз GTTS больше не сможет ему писать. Мой личный опыт показывает, что playsound это не зрелая библиотека. Он делает всевозможные внешние вещи, над которыми у него нет реального контроля.

4. Я также не могу рекомендовать pydub , потому что для установки требуется копия FFMPEG. Я также не могу рекомендовать Mpg123 , потому что для его установки требуется libmpg123. У меня раньше не было проблем с pygame этим, но он не может воспроизводить MP3-файлы GTTS. Да, воспроизведение звука с Python действительно отстой.