Skip to content

IMNJL/ASR_vosk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASR_vosk — Vosk-based Russian transcription & training helper

Краткое описание

Этот репозиторий содержит утилиты для быстрой транскрипции русскоязычных WAV-файлов с помощью Vosk и подготовки данных в формате, совместимом с Kaldi/Vosk для дальнейшего дообучения/исследований.

Проект подходит для:

  • пакетной транскрипции большого количества файлов;
  • подготовки wav.scp, text, utt2spk, spk2utt для Kaldi-пайплайнов;
  • первичной подготовки к дообучению (acoustic model) — далее потребуется Kaldi и GPU.

Содержимое репозитория

  • transcribe.py — транскрипция всех WAV в папке wav/, выводит .txt и .json в папку transcripts/.
  • prepare_kaldi_data.py — генерация Kaldi-style data/ (wav.scp, text, utt2spk, spk2utt) из пар WAV+transcript или CSV.
  • requirements.txt — Python-зависимости для утилит.
  • vosk-model-ru-0.42/ — (опционально) прикреплённый Kaldi/Vosk модельный пакет (если вы распаковали модель сюда).

Быстрый старт

  1. Создайте виртуальное окружение и установите зависимости:
cd /Users/pro/Downloads/ASR_vosk
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Если возникнут проблемы с soundfile, установите системную библиотеку:

brew install libsndfile
pip install soundfile
  1. Установите ffmpeg (для конвертации/ресемплинга аудио):
brew install ffmpeg
  1. Модель Vosk (пример)

Скачайте русскую модель с: https://alphacep.github.io/vosk/models В репозитории может быть уже распакована модель, например vosk-model-ru-0.42.

  1. Транскрипция
# при условии, что модель в ./vosk-model-ru-0.42
python3 transcribe.py --model vosk-model-ru-0.42 --wavdir wav --outdir transcripts

# или явные пути
python3 transcribe.py --model /Users/pro/Downloads/ASR_vosk/vosk-model-ru-0.42 \
    --wavdir /Users/pro/Downloads/ASR_vosk/wav \
    --outdir /Users/pro/Downloads/ASR_vosk/transcripts

Результат: для каждого WAV создаются transcripts/<basename>.txt (читаемый текст) и transcripts/<basename>.json (подробный результат/сегменты).

Пример содержимого transcripts/<basename>.json (файл в UTF-8):

{
  "text": "теле дроид поднять тумблер двадцать три",
  "segments": [
    {
      "text": "теле дроид поднять тумблер двадцать три"
    }
  ]
}

Пример соответствующего transcripts/<basename>.txt:

теле дроид поднять тумблер двадцать три

Подготовка данных для Kaldi (для дообучения)

Если у вас есть тексты (транскрипты) для WAV-файлов, вы можете подготовить Kaldi-данные:

Вариант A — .txt рядом с .wav (один файл с тем же именем, расширение .txt):

python3 prepare_kaldi_data.py --wavdir wav --outdir data

Вариант B — CSV wav|transcript|speaker:

python3 prepare_kaldi_data.py --csv corpus.csv --outdir data

В результате появятся data/wav.scp, data/text, data/utt2spk, data/spk2utt.

Дообучение (коротко)

Полное дообучение акустической модели Vosk — это Kaldi-репозитории и рецепты, обычно выполняемые на Linux с GPU. Ключевые шаги:

  • подготовка data/ (см. выше);
  • подготовка lexicon, phoneme set и language model (LM);
  • запуск Kaldi-скриптов обучения (см. документацию модели/рецепта);

Ресурсы:

Если у вас мало данных

  • вместо полного дообучения рассмотрите адаптацию LM/лексикона или использование небольших RNNLM/фразовых подсказок.

Структура проекта (кратко)

  • wav/ — каталог с вашими аудиофайлами (.wav)
  • transcripts/ — выход транскрипции (txt + json)
  • data/ — (после prepare_kaldi_data.py) Kaldi-style файлы
  • vosk-model-ru-0.42/ — прикреплённая модель (если есть)

Примеры команд

  • Создать виртуenv и установить:
    python3 -m venv .venv; source .venv/bin/activate; pip install -r requirements.txt
  • Проверить ffmpeg:
    which ffmpeg; ffmpeg -version
  • Транскрибировать всё в wav/:
    python3 transcribe.py --model vosk-model-ru-0.42 --wavdir wav --outdir transcripts
  • Подготовить Kaldi-данные:
    python3 prepare_kaldi_data.py --wavdir wav --outdir data

Отладка

  • Ошибка "Model path does not exist": укажите корректный путь к распакованной модели (папка с am/, graph/, conf/).
  • Ошибка импорта vosk/soundfile: убедитесь, что вы установили зависимости в активном виртуальном окружении (pip install -r requirements.txt) и установлена системная libsndfile.
  • Проблемы с конвертацией audio: убедитесь, что ffmpeg доступен в PATH.

Лицензия и контакты

Этот репозиторий — пользовательский набор вспомогательных скриптов. Модели Vosk распространяются по своим условиям (см. README внутри vosk-model-*).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages