sovse / Rus-SpeechRecognition-LSTM-CTC-VoxForge

Распознавание речи русского языка используя Tensorflow, обучаясь на базе Voxforge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rus_speech_recognition_LSTM_CTC_VoxForge

#MFCC

Это маленькая модель для автоматического распознавание речи русского языка, обученная на корпусе данных VoxForge( 2,9 ГБ). Она использует два слоя B-LSTM( рекурентная сеть с «длинной кратковременной памятью») по 128 нейронов и функцию потерь CTC (Нейросетевая темпоральная классификация).Это учебный проект.

Проверить работу можно запустив файл example.ipynd , он переводит речь из двух аудио файлов с мужским и женским голосом в текст из обучающей выборки. Затем можно попробовать распознать речь с микрофона.

Для начала обучения надо скачать с VoxForge репозитория данные на локальную машину, этим занимается файл download_voxforge_data.ipynd . На диске должно быть свободно минимум 3Гб.

Файл train_lstm_ctc_voxforge_rus.ipynd обучает модель нейронной сети и сохраняет чекпоинты в папку \checkpoint1. По умолчанию, в этой папке лежит предобученная модель на 699 эпохе.

Add-my-wav.ipynb - Добовляет примеры txt и wav файлов надиктованные на Ваш локальный микрофон (использует pyaudio ). В нем надо набрать фразу на клавиатуре на русском языке, а затем произнести её в микрофон.

Алгоритм работы: Звуковой фаил wav формата разбивается на части по 10 мс, и преобразуется в 13 Mel Frequency Cepstral Coefficients (MFCCs) , они подаются на вход нейронной сетки, на выходе буквы русского алфавита + пробел и + пустой символ. Во время обучения оптимизируется функция потерь CTC.

PNCC

Другой вариант подготовки фич для распознавания речи, использовать коэффициенты PNCC (Power-Normalized Cepstral Coefficients) . При подготовки их используются фильтры, поэтому они более шумозащищеные. Прочитать про них можно в статье http://www.cs.cmu.edu/~robust/Papers/OnlinePNCC_V25.pdf Файл PNCC.ipnb преобразовывает wav файлы в коэффициенты PNCC и сохраняет их на диске, для последующего обучения модели с шумопонижением. Правдо вычисляются они дольше чем MFCC. Файл train-PNCC.ipynb обучает модель нейронной сети и сохраняет чекпоинты в папку \chekpoint3. По умолчанию, в этой папке лежит предобученная модель на 310 эпохе.

Проверить работу можно запустив файл example-PNCC.ipynd , он переводит речь из двух аудио файлов с мужским и женским голосом в текст из обучающей выборки. Затем можно попробовать распознать речь с микрофона.

Requirements

  • Python 2.7+
  • Jupyter Notebook
  • Tensorflow 1.0+
  • Keras
  • python_speech_features
  • numpy
  • scipy

An russian end-to-end model for Automatic Speech Recognition(ASR) on a small VoxForge dataset. It uses a CTC loss function and 2 layer B-LSTM Network.

Start by first running the "download_voxforge_data.ipynd" this downloads the data from the VoxForge repository for the specific speaker "Aaron". More data can be downloaded by making minor changes in the script.

Now, run the "train_lstm_ctc_voxforge_rus" to get the input features for speech recognition, Mel Frequency Cepstral Coefficients (MFCCs) are extracted. They are assembled into a batched format with the target character level annotations for subsequent training

uses 2 layer bidirectional LSTM network to predict the transcriptions from the audio features. Every 1 epochs, an example batch is decoded and printed for comparision with the target.

Contact parkov33@gmail.com

About

Распознавание речи русского языка используя Tensorflow, обучаясь на базе Voxforge

License:Apache License 2.0


Languages

Language:Jupyter Notebook 100.0%