CMU Sphinx4 - модель пользовательского языка
У меня очень специфическое требование. Я работаю над приложением, которое позволит пользователям вводить в приложение номер своего сотрудника в формате HN56C12345 (любая последовательность буквенно-цифровых символов). Я прошел по ссылке: http://cmusphinx.sourceforge.net/wiki/tutoriallm но я не уверен, сработает ли это для моего варианта использования.
Итак, мой вопрос в три раза:
- Может ли Sphinx4 на самом деле распознавать буквенно-цифровую последовательность с высокой точностью, как число emp в моем случае?
- Если да, может кто-нибудь указать мне конкретный пример / справочную страницу, где кто-то с нуля встроил поддержку пользовательских языков в Sphinx4. Я еще не нашел подробный пошаговый документ по этому вопросу. Кто-нибудь работал над буквенно-цифровыми последовательностями на основе словарей или языковых моделей?
- Как построить акустическую модель для этого сценария?
1 ответ
Для этого вам не понадобится новая акустическая модель, а скорее пользовательская грамматика. См. http://cmusphinx.sourceforge.net/wiki/tutoriallm и http://cmusphinx.sourceforge.net/doc/sphinx4/edu/cmu/sphinx/jsgf/JSGFGrammar.html чтобы узнать больше. Sphinx4 распознает символы очень хорошо, если вы поместите их в грамматику через пробел:
#JSGF V1.0
grammar jsgf.emplID;
<digit> = zero | one | two | three | four | five | six | seven | eight | nine ;
<digit2> = <digit> <digit> ;
<digit4> = <digit2> <digit2> ;
<digit5> = <digit4> <digit> ;
// This rule accepts IDs of a kind: hn<2 digits>c<5 digits>.
public <id> = h n <digit2> c <digit5> ;
Что касается точности, есть два способа повысить ее. Если число сотрудников не слишком велико, вы можете просто составить грамматику со всеми возможными идентификаторами сотрудников. Если это не ваш случай, то иметь общую грамматику - ваш единственный вариант. Хотя возможно создать собственный счетчик, который будет использовать контекстную информацию, чтобы предсказать идентификатор сотрудника лучше, чем общий алгоритм. Этот способ требует определенных знаний в коде Sphinx ASR и CMU.