PocketSphinx - Как понять, когда getHypstr() возвращает пустое значение, а getInSpeech() возвращает True?

Попытка edu.cmu.sphinx.pocketsphinx с помощью processRaw обнаружить тишину.

Используя следующую конфигурацию:

языковая модель en-us.lm.bin

en-us-ptm акустическая модель

словарь cmudict-en-us.dict

также установите для remove_noise значение True и samprate до 8000

Я хочу выполнить поиск Ngram.

Когда цикл while, вызывающий processRaw, завершается, я вызываю оба

hypothesis.getHypstr() и

decoder.getInSpeech()

Почему getHypstr возвращает пустое значение, а getInSpeech возвращает True, тогда как на самом деле во входном аргументе, переданном в processRaw, нет речи.

Спасибо.


person Arnon Ilani    schedule 07.08.2018    source источник


Ответы (1)


En-us-ptm — это модель 16 кГц, она не будет работать с частотой дискретизации 8000. Это приводит к плохим результатам от hypstr.

Если getInSpeech возвращает true, это, вероятно, означает, что был небольшой шум, который система восприняла как речь.

person Nikolay Shmyrev    schedule 18.08.2018
comment
Скачали cmusphinx-en-us-ptm-8khz-5.2 с сайта ссылка и скопировал его содержимое в pocketsphinx-android-demo\app\src\main\assets\sync\en-us-ptm Это правильная модель PTM для использования 8 кГц? - person Arnon Ilani; 20.08.2018
comment
Да, этот лучше - person Nikolay Shmyrev; 20.08.2018