All Projects → SergeyShk → Speech To Text Russian

SergeyShk / Speech To Text Russian

Проект для распознавания речи на русском языке на основе pykaldi.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Speech To Text Russian

Eesen
The official repository of the Eesen project
Stars: ✭ 738 (+388.74%)
Mutual labels:  speech-recognition, speech-to-text, asr, kaldi
Vosk Api
Offline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node
Stars: ✭ 1,357 (+798.68%)
Mutual labels:  speech-recognition, speech-to-text, asr, kaldi
kaldi-long-audio-alignment
Long audio alignment using Kaldi
Stars: ✭ 21 (-86.09%)
Mutual labels:  speech-recognition, speech-to-text, kaldi, asr
Kaldi
kaldi-asr/kaldi is the official location of the Kaldi project.
Stars: ✭ 11,151 (+7284.77%)
Mutual labels:  speech-recognition, speech-to-text, kaldi
Cheetah
On-device streaming speech-to-text engine powered by deep learning
Stars: ✭ 383 (+153.64%)
Mutual labels:  speech-recognition, speech-to-text, asr
Awesome Kaldi
This is a list of features, scripts, blogs and resources for better using Kaldi ( http://kaldi-asr.org/ )
Stars: ✭ 393 (+160.26%)
Mutual labels:  speech-recognition, speech-to-text, kaldi
Pykaldi
A Python wrapper for Kaldi
Stars: ✭ 756 (+400.66%)
Mutual labels:  speech-recognition, asr, kaldi
Espresso
Espresso: A Fast End-to-End Neural Speech Recognition Toolkit
Stars: ✭ 808 (+435.1%)
Mutual labels:  speech-recognition, asr, kaldi
Syn Speech
Syn.Speech is a flexible speaker independent continuous speech recognition engine for Mono and .NET framework
Stars: ✭ 57 (-62.25%)
Mutual labels:  speech-recognition, speech-to-text, asr
Wav2letter
Speech Recognition model based off of FAIR research paper built using Pytorch.
Stars: ✭ 78 (-48.34%)
Mutual labels:  speech-recognition, speech-to-text, asr
Openasr
A pytorch based end2end speech recognition system.
Stars: ✭ 69 (-54.3%)
Mutual labels:  speech-recognition, speech-to-text, asr
Mongolian Speech Recognition
Mongolian speech recognition with PyTorch
Stars: ✭ 97 (-35.76%)
Mutual labels:  speech-recognition, speech-to-text, asr
Zamia Speech
Open tools and data for cloudless automatic speech recognition
Stars: ✭ 374 (+147.68%)
Mutual labels:  speech-recognition, asr, kaldi
Tensorflow end2end speech recognition
End-to-End speech recognition implementation base on TensorFlow (CTC, Attention, and MTL training)
Stars: ✭ 305 (+101.99%)
Mutual labels:  speech-recognition, speech-to-text, asr
Silero Models
Silero Models: pre-trained STT models and benchmarks made embarrassingly simple
Stars: ✭ 522 (+245.7%)
Mutual labels:  speech-recognition, speech-to-text, asr
Vosk Server
WebSocket, gRPC and WebRTC speech recognition server based on Vosk and Kaldi libraries
Stars: ✭ 277 (+83.44%)
Mutual labels:  speech-recognition, asr, kaldi
Vosk Android Demo
Offline speech recognition for Android with Vosk library.
Stars: ✭ 271 (+79.47%)
Mutual labels:  speech-recognition, asr, kaldi
sova-asr
SOVA ASR (Automatic Speech Recognition)
Stars: ✭ 123 (-18.54%)
Mutual labels:  speech-recognition, speech-to-text, asr
demo vietasr
Vietnamese Speech Recognition
Stars: ✭ 22 (-85.43%)
Mutual labels:  speech-recognition, speech-to-text, asr
Dragonfire
the open-source virtual assistant for Ubuntu based Linux distributions
Stars: ✭ 1,120 (+641.72%)
Mutual labels:  speech-recognition, speech-to-text, kaldi

Speech-to-Text (Russian)

Проект для распознавания речи на русском языке на основе pykaldi.

Установка

Самостоятельная (Linux)

  1. Установить kaldi:

https://kaldi-asr.org/doc/tutorial_setup.html

  1. Установить необходимые Python-библиотеки:

$ pip install -r requirements.txt

  1. Установить pykaldi:
  • С помощью conda (с поддержкой GPU):

$ conda install -c pykaldi pykaldi

  • С помощью conda (без поддержки GPU):

$ conda install -c pykaldi pykaldi-cpu

  • Собрать из исходников (раздел From Source):

https://github.com/pykaldi/pykaldi

  1. Добавить в PATH пути к компонентам kaldi:

$ PATH /kaldi/src/featbin:/kaldi/src/ivectorbin:/kaldi/src/online2bin:/kaldi/src/rnnlmbin:/kaldi/src/fstbin:$PATH

  1. Склонировать репозиторий проекта:

$ git clone https://github.com/SergeyShk/Speech-to-Text-Russian.git

  1. Отредактировать файл model/conf/ivector_extractor.conf, указав в нем корректные директории

Docker

  1. Собрать docker-образ:

$ docker build -t speech_recognition:latest .

Или

$ docker pull ghcr.io/sergeyshk/stt-ru:0.2.0

  1. Создать docker-том для работы с внешними данными:

$ docker volume create -d local -o type=none -o o=bind -o device=[DIR] asr_volume

  1. Запустить docker-контейнер:

$ docker run -it --rm -p 9000:9000 -p 5000:5000 -v asr_volume:/archive speech_recognition

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

Файлы проекта расположены в директории /speech_recognition:

  • start_recognition.py - скрипт запуска процедуры распознавания;
  • /tools - набор инструментов для распознавания:
    • data_preparator.py - скрипт подготовки данных для распознавания;
    • recognizer.py - скрипт распознавания речи;
    • segmenter.py - скрипт сегментации речи;
    • transcriptins_parser.py - скрипт парсинга результатов распознавания;
  • /model - набор файлов для модели распознавания;
  • /web - веб-приложение с демо-стендом распознавания речи;
  • /examples - набор ноутбуков с примерами работы инструментов.

Модель

В качестве акустической и языковой модели используется русскоязычная модель от alphacep:

http://alphacephei.com/kaldi/kaldi-ru-0.6.tar.gz

При необходимости использования собственной модели, необходимо заменить соответствующие файлы в директории /model.

Внимание! Размер файла HCLG.fst составляет более 500МБ, поэтому для корректного клонирования репозитория необходимо установить на свой компьютер GitHub LFS. Также можно скачать данный файл вручную с соответствующей страницы проекта.

Запуск

Распознавание речи

  1. Подготовить директорию для размещения WAV-файлов;
  2. Для запуска процедуры распознавания речи выполнить команду:

$ ./start_recognition.py /archive/wav /archive/output -dw -l

  1. Для запуска режима мониторинга директории выполнить команду:

$ ./start_recognition.py /archive/wav /archive/output -l -t 60 -d 1

Описание параметров запуска доступно по команде:

$ ./start_recognition.py -h

usage: start_recognition.py [-h] [-rm REC_MODEL] [-rg REC_GRAPH]
                            [-rw REC_WORDS] [-rc REC_CONF] [-ri REC_ICONF]
                            [-sm SEGM_MODEL] [-sc SEGM_CONF] [-sp SEGM_POST]
                            [-p PROCESSES] [-l] [-dw] [-t TIME] [-d DELTA]
                            WAV OUT

Запуск процедуры распознавания речи

positional arguments:
  WAV                   Путь к .WAV файлам аудио
  OUT                   Путь к директории с результатами распознавания

optional arguments:
  -h, --help            show this help message and exit
  -rm REC_MODEL, --rec_model REC_MODEL
                        Путь к .MDL файлу модели распознавания
  -rg REC_GRAPH, --rec_graph REC_GRAPH
                        Путь к .FST файлу общего графа распознавания
  -rw REC_WORDS, --rec_words REC_WORDS
                        Путь к .TXT файлу текстового корпуса
  -rc REC_CONF, --rec_conf REC_CONF
                        Путь к .CONF конфигурационному файлу распознавания
  -ri REC_ICONF, --rec_iconf REC_ICONF
                        Путь к .CONF конфигурационному файлу векторного
                        экстрактора
  -sm SEGM_MODEL, --segm_model SEGM_MODEL
                        Путь к .RAW файлу модели сегментации
  -sc SEGM_CONF, --segm_conf SEGM_CONF
                        Путь к .CONF конфигурационному файлу сегментации
  -sp SEGM_POST, --segm_post SEGM_POST
                        Путь к .VEC файлу апостериорных вероятностей
                        сегментации
  -p PROCESSES, --processes PROCESSES
                        Количество процессов для обработки файлов
  -l, --log             Логировать результат распознавания
  -dw, --delete_wav     Удалять .WAV файлы после распознавания
  -t TIME, --time TIME  Пауза перед очередным сканированием директории в
                        секундах
  -d DELTA, --delta DELTA
                        Дельта, выдерживаемая до чтения файла в минутах

Демонстрационный стенд

  1. Запустить веб-сервер:

$ cd web

$ ./app.py

  1. Перейти по адресу:

http://0.0.0.0:5000

Сервис ноутбуков

  1. Запустить сервис:

$ jupyter notebook --no-browser --ip=0.0.0.0 --port=9000 --allow-root

  1. Перейти по адресу:

http://0.0.0.0:9000

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].