Создать акустическую модель с нуля или адаптировать существующую акустическую модель
При попытке реализовать систему распознавания речи для одного конкретного говорящего со смешением русской и арабской речи я сталкиваюсь с некоторыми проблемами. При адаптации акустической модели с 15-минутной речью говорящего наблюдается слишком высокий процент ошибок (он распознает правильную 1 из 6-10 слов). Что я сделал: 1. Я перевел арабские слова на русский язык и поместил их в словарь. 2. Я попробовал старую модель msu_ru_zero.cd_cont_2000 из проекта ru4sphinx и новую модель cmusphinx-ru-5.2 (последняя акустическая модель для русского языка на данный момент). 3. Я использовал словарь и языковую модель, составленную мной из текстов моей области знаний. В utf-8 на русском языке почти 200 МБ текста. Но только небольшая часть арабских терминов была в этом словаре.
Есть только несколько (4 из 40) звуковых дорожек, которые не удалось адаптировать с помощью функции "выровнять звук по транскрипту", остальные проходят без ошибок. Также в отчете после использования команды bw есть 220 сенонов, которые не находятся в звуковых дорожках адаптации.
Как я могу уменьшить количество ошибок для этого языка микширования? Или мне нужно с нуля создать акустическую модель для этого 1 динамика? Мне вообще не нужно транскрибировать арабский, только русский, если арабский язык по умолчанию использует какой-то общий термин (например, -unk-), это тоже будет хорошо.
1 ответ
Я нашел проблему со своим словарем. это было из-за text2wfreq <lmbase.txt | wfreq2vocab
команда. прежде чем я использовал wfreq2vocab
с параметрами по умолчанию, поэтому мой словарь был усечен до наиболее часто встречающихся 20000 слов. В моем начальном словаре более 200 тысяч слов. wfreq2vocab
имеет -top
аргумент, так -top 400000 работает для меня (он не фильтрует слова, он просто создает словарь)
И второе - теперь я использую адаптацию MAP вместо mllr.
с 30 минутами аудио адаптации он показывает мне 50-75 процентов правильных слов.