Pocketsphinx - добавление слов и повышение точности - PullRequest
18 голосов
/ 26 декабря 2010

Мне удалось наконец собрать и запустить pocketsphinx (pocketsphinx_continuous). Проблема, с которой я сталкиваюсь, заключается в том, как повысить точность. Из того, что я понимаю, вы можете указать файл словаря (-dict test.dic). Поэтому я взял файл словаря по умолчанию и добавил еще несколько произношений тех же слов, например:

pencil P EH N S AH L
pencil(2) P EH N S IH L

spaghetti S P AH G EH T IY
spaghetti(2) S P UH G EH T IY

Тем не менее, карманный сфинкс все еще не распознает ни одно слово. Я знаю, что есть файл jsgf, который вы также можете указать, но это больше похоже на фразы и грамматику. Как я могу заставить карманного сфинкса распознавать такие общие слова, как карандаш и спагетти?

спасибо

-Майк

Ответы [ 6 ]

9 голосов
/ 18 мая 2011

С чем-то вроде этого вы не можете быть уверены, но я могу предложить следующие предложения:

  1. Возможно, языковая модель каким-то образом имеет низкие вероятности для "спагетти" и "карандаша"».Как вы предложили, вы можете использовать JSGF, чтобы проверить, как он работает для распознавания, если он не использует N-граммовые модели, а вместо этого выполняет простую грамматику (дайте ей двадцать слов, включая спагетти и карандаш).Таким образом, вы можете увидеть, является ли, возможно, языковая модель, которая затрудняет распознавание этих слов, и это может быть хорошо, если она считает, что все слова имеют равную вероятность.

  2. ВозможноВы просто произносите эти слова плохо, даже с альтернативными словарными статьями.Попробуйте либо A. Тестирование голосов других людей, либо B. Адаптация акустической модели к вашему голосу (см. http://cmusphinx.sourceforge.net/wiki/tutorialam)

  3. Кроме того, как он распознает их, когда они терпят неудачу? Если возможно,удалите слова, которые он неправильно распознает как из словаря.

Опять же, для общей точности, только три вещи действительно помогут вам: ограничение грамматики, адаптация акустической модели и, возможно, получениевход для записи более высокого качества.

7 голосов
/ 25 декабря 2012

Для повышения точности вы можете попробовать адаптировать акустическую модель к своему голосу. http://cmusphinx.sourceforge.net/wiki/tutorialadapt

Чтобы узнать, как добавить новые слова: http://ghatage.com/tech/2012/12/13/Make-Pocketsphinx-recognize-new-words/

3 голосов
/ 15 декабря 2012

Убедитесь, что после слова и перед началом произношения ставится табуляция (не пробел).

2 голосов
/ 08 января 2013

Может быть проблема с Pocketsphinx.Я тоже не получал хороших результатов с Pocketsphinx.Но я получал очень хорошую точность со Sphinx4 (для колонок из США с микрофоном с шумоподавлением). Поэтому я провел сравнение между ними, используя одни и те же аудиозаписи.Для pocketsphinx я использовал pocketsphinx_batch с аудиомоделью WSJ и небольшой словарной моделью и словарем (созданным онлайн с помощью набора инструментов для моделирования языка CMU Cambridge.) Для Sphinx4 я написал небольшую Java-программу с использованием библиотеки Sphinx4.В результате Sphinx4 оказался намного точнее.Все кровавые подробности на http://www.jaivox.com/pocketsphinx.html.

1 голос
/ 26 февраля 2019

Для достижения хорошей точности с карманной шейкой:

  • Внимание! Проверьте, поддерживает ли ваш микрофон, аудиоустройство, файл и частоту 16 кГц, в то время как общая модель обучается на таких акустических примерах.
  • Вы должны создать свой собственный ограниченный словарь , вы не можете использовать cmusphinx-voxforge-de.dic, пока точность значительно снижается.
  • Вы должны создать свою собственную языковую модель.

Вы можете найти проект Jasper на GitLab , чтобы увидеть, как он реализован. Или вы можете использовать проверить документацию

0 голосов
/ 05 июля 2019

Это на веб-сайте CMUSphinx

"Существуют различные телефонные аппараты для представления телефонов, такие как IPA или SAMPA. CMUSphinx пока не требует использования какого-либо известного телефонного аппарата, более того, он предпочитает использоватьБуквенные имена телефонов без специальных символов. Это требование упрощает некоторые алгоритмы обработки, например, вы можете создавать файлы с именами телефонов как часть имен файлов без какого-либо нарушения требований к именам ОС.

Словарь должен содержатьвсе слова, которые вас интересуют, иначе распознаватель не сможет их распознать. Однако недостаточно иметь слова в словаре. Распознаватель ищет слово как в словаре, так и в языковой модели. БезВ языковой модели слово не будет распознано, даже если оно присутствует в словаре ».https://cmusphinx.github.io/wiki/tutorialdict/

...