Проблема с принудительным выравниванием в распознавании речи - HTK - PullRequest
1 голос
/ 23 июля 2011

У меня есть система, в которой пользователя просят повторить предложение после приглашения. Он использует от HTK до force-align пользовательского предложения к предварительно определенному файлу метки уровня слова (предложения), чтобы получить выровненный по времени файл уровня телефона. HMM были обучены на большом количестве данных и дают очень точные синхронизированные файлы с HVite. Моя проблема возникает, когда пользователь не произносит точное предложение, которое необходимо произнести. Позвольте мне проиллюстрировать это на примере:

  1. Файл метки уровня слова целевого предложения, которое необходимо произнести (известно пользователю):
    ЭТО ОЧЕНЬ ХОРОШИЙ ДЕНЬ.

  2. Пользователь говорит (Случай 1): ЭТО ОЧЕНЬ ХОРОШИЙ ДЕНЬ.
    В этом случае пользователь повторил одно и то же предложение. Выровненный по времени файл очень точный и все хорошо.

  3. Пользователь говорит (Случай 2): ЭТО ХОРОШИЙ ДЕНЬ.
    В этом случае принудительное выравнивание выполняется с помощью файла метки уровня слова, как указано выше. Результирующий файл с выравниванием по времени показывает моменты времени для слов, которые никогда не произносились пользователем (например, ОЧЕНЬ, которое существует в исходном предложении, но отсутствует здесь).

Есть ли в * 1027 способ обнаружить и, возможно, избежать этого?

Одним из решений будет какой-то внешний процессор препроцессора, который будет выполнять распознавание речи (сама по себе очень сложная проблема, потому что он должен иметь бесконечный голос), и дать пользователю знать, что то, что он говорил, неверно ,

Существуют ли какие-либо инструменты / параметры командной строки в HTK, которые позволяют мне это делать?

P.S .: Пожалуйста, дайте мне знать, если понадобится больше деталей.

Спасибо
Шрирам

1 Ответ

2 голосов
/ 24 июля 2011

Задача выравнивания текста с возможной некорректной транскрипцией достаточно сложна и требует специализированных инструментов. Принудительное выравнивание HTK слишком упрощено для этого. Вместо использования HVite с -a вам нужно создать правильный wdnet, который будет учитывать возможные вставки, удаления и замены из-за несоответствия транскрипции.

В CMUSphinx мы в настоящее время выполняем проект для реализации этой функциональности. Вы уже можете использовать его для выравнивания текста с неточной транскрипцией. Вы можете проверить его прогресс здесь:

http://cmusphinx.sourceforge.net/?s=long+audio+alignment

...