Ошибка 263 для команды: open Welcome.mp3 Указанное устройство не открыто или не распознается MCI

      import speech_recognition as sr 
import requests
from gtts import gTTS 
from playsound import playsound
import os
import subprocess
bot_message=""
message=""
myobj=gTTS(text="Hello I am Shilpa Sheety Speak Anything I am Listening",lang='en',tld='com.au')
myobj.save("starting.mp3")
playsound("starting.mp3")
while bot_message !="Bye":
    r=sr.Recognizer()
    with sr.Microphone() as source:
        audio=r.listen(source)
        try:
            message=r.recognize_google(audio)
            print("You said : {}".format(message))
        except:
            print("Sorry Could not recognize your voice") 
    if len(message)==0:
        continue
    print("Sending Message Now")           
    r=requests.post("http://localhost:5002/webhooks/rest/webhook",json={'message':message})
    print("Bot Says,",end=' ')
    for i in r.json():
        bot_message=i['text']
        print(f"{i['text']}")
        myobj=gTTS(text=bot_message)
        myobj.save("Welcome.mp3")
        playsound("Welcome.mp3")

       

В приведенной выше программе я играю в welcome.mp3 в цикле, он отлично работает для первых 2 итераций, но на 3-й итерации цикла for я получаю следующую ошибку

Ошибка 263 для команды: open Welcome.mp3 Указанное устройство не открыто или не распознается MCI.

      Error 263 for command:
    close Welcome.mp3
The specified device is not open or is not recognized by MCI. Failed to close the file: Welcome.mp3 Traceback (most recent call last):   File "Voice_bot.py", line 31, in <module>
playsound("Welcome.mp3")   File "C:\Users\DJ9004\anaconda4\lib\site-packages\playsound.py", line 72, in _playsoundWin
winCommand(u'open {}'.format(sound))   File "C:\Users\DJ9004\anaconda4\lib\site-packages\playsound.py", line 64, in winCommand
raise PlaysoundException(exceptionMessage) playsound.PlaysoundException:
Error 263 for command:
    open Welcome.mp3
The specified device is not open or is not recognized by MCI.*

6 ответов

Это сработало для меня, когда я удалилplaysoundмодуль и установил более старую версию sn следующим образом:

      pip uninstall playsound
pip install playsound==1.2.2

У меня была такая же проблема, похоже, что файл все еще сохраняется, когда вы пытаетесь его открыть.

Я добавил пару строк, и это сработало просто отлично:

          for i in r.json():
        bot_message = i['text']
        print(f"{i['text']}")
        myobj = gTTS(text=bot_message)
        os.remove('Welcome.mp3')        #LINE ADDED
        myobj.save("Welcome.mp3")
        time.sleep(1)                    #LINE ADDED
        playsound("Welcome.mp3")

Это работает, когда я устанавливаю версию playsound, удаляя предыдущую версию, как это

          pip uninstall playsound
pip install playsound==1.2.2

Попробуй

Я попробовал нелогичное решение, но оно срабатывало каждый раз.

просто измените имя вашего аудиофайла на «audio.mp3» и не забудьте закрыть его, используя «os.close('audio.mp3')».

Код ниже никогда не работал:

      from gtts import gTTS
import os

#greetings
def start():
   tts = gTTS(text="hi, its kate here! how may i help you?", lang='en' , 
   slow=False)
   tts.save('lol.mp3')

   from playsound import playsound
   playsound('lol.mp3')
   os.remove('lol.mp3')

start()

Но это срабатывало каждый раз:

      from gtts import gTTS
import os

#greetings
def start():
   tts = gTTS(text="hi, its kate here! how may i help you?", lang='en' , 
   slow=False)
   tts.save('audio.mp3')

   from playsound import playsound
   playsound('audio.mp3')
   os.remove('audio.mp3')

start()

Как видите, я только что изменил «lol.mp3» на «audio.mp3».

Надеюсь, что это работает.

У меня была та же ошибка, что и у вас, и, не найдя ответов, я начал проводить тесты. То, что я нашел, не очень практично, но у меня работает. В новом файле я написал этот фрагмент кода (для примера мы вызовем файл 'function_sound_file'):

      from playsound import playsound


def function_sound():
    playsound('complete/path/file.wav')

И в файле, в котором у меня возникла проблема, я вызываю функцию, которую создал после ее импорта (ниже).

      from function_sound_file import function_sound

function_sound()

Для меня ответом было изменить имя выходного файла. Попробуйте изменить его на «audio.mp3».

Другие вопросы по тегам