Возвращает ли Kaldi какой-либо параметр достоверности распознавания, аналогичный Google Speech-To-Text API?

Я имею дело с задачей распознавания речи. До сих пор я использовал Google Cloud Speech Recognition API (на Python) с хорошими результатами. API возвращает значение достоверности вместе с каждым фрагментом. транскрибированного текста. Уверенность - это число от 0 до 1, как указано в документации, но я не нашел более глубокого объяснения того, как API Google получает это число, поэтому я предполагаю, что оно каким-то образом исходит из нейронной сети, которая распознает.

Следующим шагом, который я хочу сделать, является создание моей собственной (автономной) программы автоматического распознавания речи, и я обнаружил, что pyKaldi должно хорошо подходить к задаче. Я еще не начал его программировать, но хочу знать заранее (в исследовательских целях) - может ли Kaldi вернуть такое же значение уверенности, как Google Speech-to-Text API? И что на самом деле представляет собой «уверенность» и как она рассчитывается?


person Petr Krýže    schedule 15.10.2019    source источник
comment
Да, Kaldi «из коробки» обеспечивает достоверность каждого слова, но на практике это бесполезно. Построение системы ASR с нуля - очень сложная задача. Даже запуск примеров, предоставленных Kaldi, требует значительных инженерных усилий и требует хорошего понимания принципов ASR. А используя общедоступные наборы данных (или модели), вы не сможете достичь даже близкого уровня точности, который обеспечивает Google Speech. Так что, если вы действительно хотите погрузиться в это, приготовьтесь потратить месяцы времени.   -  person igrinis    schedule 27.10.2019
comment
Это правда. Создание собственного ASR - сложная задача. Вместо этого изучите другие ASR с открытым исходным кодом (Deep Speech, CMU Sphinx и т. Д.) И адаптируйте их уже построенные к вашему набору данных.   -  person Sumit Jangra    schedule 10.07.2020


Ответы (1)


Да, pyKaldi поддерживает значения достоверности (оценка достоверности слов), рассчитанные с минимальным байесовским риском (MBR). Вы найдете всю необходимую информацию в документации. Вот ссылка на описание модуля:

https://pykaldi.github.io/api/kaldi.lat.html?highlight=mbr#module-kaldi.lat.sausages

Как следует из названия, это значение достоверности, но оно не выражает, насколько «вероятно», что результирующий текстовый вывод для слова, полученный (или заданный в вероятностной настройке) из последовательности звуковых фрагментов, является правильным. На мой взгляд, выразительность или значимость немного нечеткая и зависит от качества модели и обучающих данных (шум, реверберация и т. Д.). Это имеет смысл при сравнении альтернатив, говоря вам, что вариант с более высоким значением, скорее всего, будет правильным. Это, в свою очередь, ставит вопрос о том, какое расстояние назвать существенной разницей. Одно значение достоверности ничего вам не говорит, и вы не можете сравнивать две разные модели распознавателей только на основе их значений достоверности. Microsoft называет это «вместо этого оценки достоверности предоставляют механизм для сравнения относительной точности нескольких альтернатив распознавания для заданного ввода. Это облегчает получение наиболее точного результата распознавания».

person CLpragmatics    schedule 23.10.2019