У меня есть система, в которой пользователя просят повторить предложение после приглашения. Он использует от HTK
до force-align
пользовательского предложения к предварительно определенному файлу метки уровня слова (предложения), чтобы получить выровненный по времени файл уровня телефона. HMM были обучены на большом количестве данных и дают очень точные синхронизированные файлы с HVite
. Моя проблема возникает, когда пользователь не произносит точное предложение, которое необходимо произнести. Позвольте мне проиллюстрировать это на примере:
Файл метки уровня слова целевого предложения, которое необходимо произнести (известно пользователю):
ЭТО ОЧЕНЬ ХОРОШИЙ ДЕНЬ.
Пользователь говорит (Случай 1): ЭТО ОЧЕНЬ ХОРОШИЙ ДЕНЬ.
В этом случае пользователь повторил одно и то же предложение. Выровненный по времени файл очень точный и все хорошо.
Пользователь говорит (Случай 2): ЭТО ХОРОШИЙ ДЕНЬ.
В этом случае принудительное выравнивание выполняется с помощью файла метки уровня слова, как указано выше. Результирующий файл с выравниванием по времени показывает моменты времени для слов, которые никогда не произносились пользователем (например, ОЧЕНЬ, которое существует в исходном предложении, но отсутствует здесь).
Есть ли в * 1027 способ обнаружить и, возможно, избежать этого?
Одним из решений будет какой-то внешний процессор препроцессора, который будет выполнять распознавание речи (сама по себе очень сложная проблема, потому что он должен иметь бесконечный голос), и дать пользователю знать, что то, что он говорил, неверно ,
Существуют ли какие-либо инструменты / параметры командной строки в HTK
, которые позволяют мне это делать?
P.S .: Пожалуйста, дайте мне знать, если понадобится больше деталей.
Спасибо
Шрирам