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

Почему не могу запустить модель в vosk?Помогите

Никита Селетков Ученик (100), на голосовании 1 неделю назад
from vosk import Model, KaldiRecognizer, SetLogLevel
from pydub import AudioSegment
import subprocess
import json
import os

SetLogLevel(0)

# Проверяем наличие модели
if not os.path.exists("model-small"):
print ("Please download the model from https://alphacephei.com/vosk/models and unpack as 'model' in the current folder.")
exit (1)

# Устанавливаем Frame Rate
FRAME_RATE = 16000
CHANNELS=1

model = Model("model-small")
rec = KaldiRecognizer(model, FRAME_RATE)
rec.SetWords(True)

# Используя библиотеку pydub делаем предобработку аудио
mp3 = AudioSegment.from_mp3('zapisi\Запись1.mp3')
mp3 = mp3.set_channels(CHANNELS)
mp3 = mp3.set_frame_rate(FRAME_RATE)

# Преобразуем вывод в json
rec.AcceptWaveform(mp3.raw_data)
result = rec.Result()
text = json.loads(result)["text"]

# Добавляем пунктуацию
cased = subprocess.check_output('python3 recasepunc/recasepunc.py predict recasepunc/checkpoint', shell=True, text=True, input=text)

# Записываем результат в файл "data.txt"
with open('data.txt', 'w') as f:
json.dump(cased, f, ensure_ascii=False, indent=4)

вот ошибка:
RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
ERROR (VoskAPI:Model():model.cc:122) Folder 'model-small' does not contain model files. Make sure you specified the model path properly in Model constructor. If you are not sure about relative path, use absolute path specification.
Traceback (most recent call last):
File "C:\Users\днс\Desktop\audio\audio.py", line 18, in <module>
model = Model("model-small")
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\днс\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\vosk\__init__.py", line 57, in __init__
raise Exception("Failed to create a model")
Exception: Failed to create a model
Голосование за лучший ответ
Chromatic Scale Искусственный Интеллект (127911) 1 месяц назад
Ваша проблема кажется связанной с несколькими ключевыми аспектами использования Vosk и других связанных с ним инструментов. Давайте рассмотрим каждый из них по очереди:

1. **Предупреждение о ffmpeg**: Это предупреждение говорит о том, что библиотека `pydub`, которую вы используете для обработки аудио, не может найти утилиты `ffmpeg` или `avconv` в вашей системе. Эти утилиты необходимы для конвертации аудиофайлов в различные форматы. Чтобы решить эту проблему, убедитесь, что у вас установлен `ffmpeg` и что он доступен в переменной окружения PATH вашей операционной системы. Это позволит `pydub` обнаружить и использовать `ffmpeg` автоматически.

2. **Ошибка загрузки модели Vosk**: Ошибка, указывающая на то, что программа не может найти файлы модели в папке `model-small`, говорит о том, что либо папка не содержит необходимых файлов модели, либо она находится не в том месте, где ожидает ее найти ваш код. Вот несколько способов устранения этой проблемы:
- **Проверьте наличие модели**: Убедитесь, что вы скачали модель с указанного сайта и правильно распаковали ее в папку `model-small` в директории, откуда запускается ваш скрипт. Важно, чтобы внутри `model-small` были все необходимые файлы модели.
- **Использование абсолютного пути**: Вместо относительного пути к модели (`"model-small"`) попробуйте использовать абсолютный путь. Это может помочь, если ваш скрипт запускается из другой директории, и относительный путь не указывает туда, куда нужно.

3. **Работа с аудио**: После устранения предупреждения о `ffmpeg` и исправления ошибки загрузки модели, ваша обработка аудио должна пройти успешно, если только аудиофайл находится в ожидаемом месте и имеет правильный формат. Если возникают проблемы на этом этапе, убедитесь, что путь к аудиофайлу указан правильно и что формат файла поддерживается.

4. **Добавление пунктуации**: Убедитесь, что скрипт для добавления пунктуации (`recasepunc/recasepunc.py`) правильно установлен и работает как ожидается. Если возникают ошибки на этом этапе, проверьте, все ли зависимости для `recasepunc` установлены и работают корректно.

Исправление этих проблем должно помочь в успешном запуске вашего скрипта. Если проблемы останутся, рекомендуется обратить внимание на документацию Vosk и соответствующие сообщества разработчиков для получения дополнительной помощи.
Похожие вопросы