Все работает отлично, когда я запускаю код из PyCharm или терминала,
но когда я конвертирую его в .exe с помощью Auto Py to Exe / PyInstaller,
я получаю эту ошибку, как только распознаватель пытается обработать звук:
Код: Выделить всё
pygame 2.6.1 (SDL 2.28.4, Python 3.12.1)
Welcome to Vision!
Say any of the models name to activate.
Say 'exit' to quit.
Waiting for wake word... Listening... Exception in thread Thread-1 (chatbot):
Traceback (most recent call last):
File "threading.py", line 1073, in _bootstrap_inner File "threading.py", line 1010, in run
File "vision_v3.py", line 126, in chatbot
File "jarvis_functions\essential_functions\voice_input.py", line 47, in record_text
File "speech_recognition\recognizers\google.py", line 253, in recognize_legacy
File "speech_recognition\recognizers\google.py", line 56, in build
File "speech_recognition\recognizers\google.py", line 88, in build_data
File "speech_recognition\audio.py", line 256, in get_flac_data
File "subprocess.py", line 992, in __init__
File "subprocess.py", line 1407, in _get_handles
File "subprocess.py", line 1416, in _make_inheritable
OSError: [WinError 50] The request is not supported
Код: Выделить всё
--add-data "D:\pycharm\opencv\Vision\jarvis_functions;jarvis_functions" --add-data "D:\pycharm\opencv\Vision\sound_files\beep;sound_files/beep" --add-data "D:\pycharm\opencv\Vision\sound_files\cam;sound_files/cam"Код: Выделить всё
wav_data = audio.get_wav_data()
Это упрощенный фрагмент кода:
Код: Выделить всё
import speech_recognition as sr
r = sr.Recognizer()
def record_text():
try:
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source, duration=0.2)
audio = r.listen(source)
text = r.recognize_google(audio, language="bg-BG")
return text.lower()
except sr.RequestError as e:
print(f"API error: {e}")
except sr.UnknownValueError:
print("Could not understand audio.")
когда речь_распознавание работает отлично в обычном Python?
Нужно ли мне вручную связать файл flac.exe или есть лучший способ заставить
распознавание речи использовать WAV вместо FLAC так это работает в скомпилированных исполняемых файлах?