Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PYTHON TELEBOT VOICE

Программист Python Ученик (98), открыт 1 неделю назад
 import telebot
import speech_recognition as sr
import subprocess


r = sr.Recognizer()

@bot.message_handler(content_types=['voice'])
def handle(message):
fileID = message.voice.file_id
file = bot.get_file(fileID)
down_file = bot.download_file(file.file_path)
with open('audio.ogg', 'wb') as f:
f.write(down_file)

process = subprocess.run(['ffmpeg', '-i', 'audio.ogg', 'audio.wav', '-y'])

file = sr.AudioFile('audio.wav')
with file as source:
try:
audio = r.record(source)
text = r.recognize_google(audio, language='ru-RU`')
bot.send_message(message.chat.id, text)
except sr.UnknownValueError:
bot.send_message(message.chat.id, "Error")
Всем привет! Помогите пожалуйста, хочу добавить функцию в бота расшифровка сообщений, но бот выдаёт ошибку. Ответ на свой вопрос искал везде, помогите пожалуйста

Код ошибки
Traceback (most recent call last):
File "C:\Users\ilich\PycharmProjects\My_bot\main.py", line 233, in <module>
bot.polling(none_stop=True)
File "C:\Users\ilich\PycharmProjects\My_bot\.venv\Lib\site-packages\telebot\__init__.py", line 1169, in polling
self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
File "C:\Users\ilich\PycharmProjects\My_bot\.venv\Lib\site-packages\telebot\__init__.py", line 1244, in __threaded_polling
raise e
File "C:\Users\ilich\PycharmProjects\My_bot\.venv\Lib\site-packages\telebot\__init__.py", line 1206, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\ilich\PycharmProjects\My_bot\.venv\Lib\site-packages\telebot\util.py", line 150, in raise_exceptions
raise self.exception_info
File "C:\Users\ilich\PycharmProjects\My_bot\.venv\Lib\site-packages\telebot\util.py", line 93, in run
task(*args, **kwargs)
File "C:\Users\ilich\PycharmProjects\My_bot\.venv\Lib\site-packages\telebot\__init__.py", line 8404, in _run_middlewares_and_handler
result = handler['function'](message)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ilich\PycharmProjects\My_bot\main.py", line 149, in handle
process = subprocess.run (['ffmpeg', '-i', 'audio.ogg', 'audio.wav', '-y'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ilich\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 548, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ilich\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1026, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\ilich\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] Не удается найти указанный файл

Тут написано что неудалось найти файл совсем ничего не понял он сохраняется вроде или нет. Буду рад каждому ответу! Помогите пожалуйста исправить ошибку
1 ответ
Chudo_Chudnoe Мастер (1577) 1 неделю назад
Привет ?

У тебя Python не может найти исполняемый файл ffmpeg. У тебя программа ffmpeg установлена? Если да, то проверь, что она добавлена в системную переменную PATH.

Вот собственно сама прога ffmpeg.org

Открой консоль или терминал и попробуй запустить команду ffmpeg. Она должна показать версию ffmpeg

Делаешь на винде так: Поиск в "Панель управления" -> "Система и безопасность" -> "Система" -> "Дополнительные параметры системы" -> "Переменные среды". В разделе "Системные переменные" найди переменную "Path" и добавь путь к папке, где у тебя находится ffmpeg (например, C:\Program Files\ffmpeg\bin).
И обязательно перезапустите свою консоль или IDE, чтобы изменения вступили в силу.
Похожие вопросы