/ / Точність транскрипції CMU Sphinx - java, розпізнавання мови, cmusphinx

CMU Sphinx Точність транскрипції - java, розпізнавання мови, cmusphinx

Я працюю над веб-додатком для розпізнавання мовлення. Я використовую recorderJS для захоплення звуку та надсилання його до серверної бази, де він повинен бути оброблений за допомогою CMU Sphinx. У мене були проблеми з точністю під час виявлення бібліотеки з останньою версією 5prealpha за допомогою акустичної моделі за замовчуванням, моделі langage та словника, а згодом зменшення кількості розпізнаних слів за допомогою граматики JSGF, тому я використав версію 1.0 beta6. Розпізнавання мікрофона з версія 1.0 beta6 досить точна, однак, коли я переписую звук, він завжди поганий. Мені цікаво, як підвищити точність. Я спробував використати StreamSpeechRecognizer з останньою версією, але це також дає погані результати.

Відповіді:

1 для відповіді № 1

Мені вдалося отримати хорошу точність. Я перевірив реалізацію класу edu.cmu.sphinx.frontend.util.Microphone і виявив, що частота дискретизації дорівнює 16000, швидкість передачі даних 16 і кількість каналів дорівнює 1. Я заглянув далі в рекордер JS і я з'ясував, що в Google chrome частота дискретизації становила 44100, тому я шукав налаштовану версію бібліотеки, і я знайшов форк Кріса Рудміна від Matt Diamond's RecorderJS. Я не використовував останню версію, оскільки звук експортується в ogg і Мені потрібно, щоб це було wav, тому я дивився у попередніх випусках; Я використовував версію 0.3, де швидкість передачі даних можна налаштувати, і вона працювала нормально. Пізніше я змінив приклад, що поставляється з ним, і наступні параметри дали хорошу точність:

коефіцієнт посилення монітора: 0

bitDepth: 16

кількість каналів: 1

recordOpus: не позначено

частота дискретизації: 16000

бітрейт: 32000

Це конфігурація джерела потокових даних у файлі xml конфігурації cmu sphinx ".

    type="edu.cmu.sphinx.frontend.util.StreamDataSource">

<property name="sampleRate" value="16000" />

<property name="bitsPerSample" value="16" />

<property name="bigEndianData" value="false" />

<property name="signedData" value="true" />

</component>