Я работаю над распознаванием голоса на урду (язык, на котором говорят в Пакистане, Индии и Бангладеш), чтобы перевести речь урду в слова урду. До сих пор я ничего не делал, а просто нашел библиотеку javascript meyda для извлечения mfccs из фреймов данных. В каком-то документе сказано, что для ASR нужны первые 12 или 13 mfcc из 26. Во время теста у меня есть отдельные 46 фонем (/b/, /g/, /d/...) в папке с расширением wav. После запуска процесса meyda на одной из фонем создается от 4 до 5 фреймов для каждой фонемы, где каждый фрейм содержит mfcc для каждого из первых 12 значений. Из-за менее 10 репутации изображения в постах отключены. но вы можете изображение по следующей ссылке. Изображение содержит 7 кадров фонемы /b/. каждый кадр включает 13 mfcc. Красная длинная вертикальная линия имеет значение 438, другие или 48, 38 и т. д. http://realnfo.com/images/b.png
Мой вопрос заключается в том, нужно ли мне сохранять эти кадры (mfccs) в базе данных как предопределенную фонему для /b/ и то же самое я делаю для всех остальных фонем, а затем привязываю микрофон, мейда будет извлекать mfccs для каждого кадра, и я запрограммирует javascript, что извлеченный кадр mfcc будет сопоставляться с предопределенными кадрами mfcc с помощью динамического искажения времени. И в конце получим наименьшее расстояние для конкретной фонемы.
Профессиональный способ после mfccs - это HMM и GMM, но я не знаю, как с этим бороться. Я изучил так много документов о HMM и GMM, но зря.