Страницы

Поиск по вопросам

Показаны сообщения с ярлыком speech-recognition. Показать все сообщения
Показаны сообщения с ярлыком speech-recognition. Показать все сообщения

среда, 22 января 2020 г.

Python-библиотеки для распознавания речи offline

#python #speech_recognition


Ищу библиотеку для распознавания русской речи (ASR) в аудиозаписях длительностью
до 30 минут.
Работать нужно offline (т.е. без использования API - сервисов).

Что было найдено и какие возникли проблемы:


Kaldi, а точнее враппер на python под названием pykaldi. Честно, не смог разобраться
в ней. Насколько я понял, реализованы математические инструменты обработки звука, но
знаком с ними поверхностно, так что буду рад хорошей инструкции по использованию.
PocketSphinx. Тут проблема оказалась в качестве распознавания - оно было отвратительным.
Возникли вопросы: работает ли вообще эта библиотека с длинными аудио? (Видел бесчисленное
множество работы с ограниченным набором команд. Например, для умного дома). В туторе
есть описание "Адаптации" акустической модели языка, повлияет ли она на качество распознавания?


Собственно, есть ли ещё варианты? Я никогда не исключаю, что проморгал что-то очевидное.

P.S. Имеется обширный набор данных вида Аудио + Текст из этого аудио, который, возможно,
может быть применён для настройки точности (Например, для русской модели в pocketsphinx
    


Ответы

Ответ 1



Русскую модель для Kaldi скачать здесь. Для декодирования длинного файла его нужно разделить сначала на pywebrtcvad, затем скормить в kaldi через os.system. Pykaldi не нужно, слишком навороченный интерфейс, можно попробовать py-kaldi-simple.

суббота, 6 июля 2019 г.

Зачем распознавать отдельные фонемы?

Изучая распознавание речи, наткнулся на данную статью. В ней происходит распознавание фонем, а затем их объединение в слова.
Зачем так делать, ведь можно разбить входящий поток на слова, затем сгенерировать MFCC для них и сравнивать уже MFCC со словарем через нейронную сеть? Или так нельзя?


Ответ

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