Я реализую программное обеспечение для распознавания речи с использованием коэффициентов Mel Frequency Cepstrum Coefficients. В частности, система должна распознавать одно указанное слово. Начиная с аудиофайла, я получаю MFCC в матрице с 12 строками (MFCC) и количеством столбцов, равным количеству голосовых кадров. Я делаю среднее значение строк, поэтому я получаю вектор только с 12 строками (i-я строка - это среднее значение всех i-х-MFCC всех кадров). У меня вопрос, как обучить классификатор распознавать слово? У меня есть обучающий набор только с положительными образцами, MFCC, которые я получаю из нескольких аудиофайлов (несколько регистраций одного и того же слова).
Простой детектор слов с использованием MFCC
Ответы (1)
Я делаю среднее значение строк, поэтому я получаю вектор только с 12 строками (i-я строка - это среднее значение всех i-х-MFCC всех кадров).
Это очень плохая идея, потому что вы теряете всю информацию о слове, вам нужно анализировать всю последовательность mfcc, а не ее часть
У меня вопрос, как обучить классификатор распознавать слово?
Простая форма - это классификатор GMM, вы можете проверить здесь:
В более сложной форме вам необходимо изучить более сложную модель, такую как HMM. Вы можете узнать больше о HMM из учебника, подобного этому
https://rads.stackoverflow.com/amzn/click/com/0130151572
person
Nikolay Shmyrev
schedule
17.02.2015
Привет, большое спасибо за ответ. Я получил MFCC из голосовых кадров и построил модель гауссовой смеси с помощью функции gmdistribution в Matlab. После этого тестирую модель с новым звуком. Я снова получаю MFCC из нового звука, а с помощью апостериорной функции я получаю вероятность каждого MFCC. Теперь, как система может принять решение об этой вероятности?
- person Luigi Biasi; 17.02.2015
Вы получаете вероятность для всех слов, которые ищете, и слово с наибольшей вероятностью является ответом. Ссылка выше говорит, что тестовая речь классифицируется как цифра с GMM, которая дает максимальное значение логарифма правдоподобия.
- person Nikolay Shmyrev; 17.02.2015
В порядке. Теперь у меня есть слово, и я хочу знать, совпадает ли оно с тем, которое я сначала использовал для построения модели гауссовой смеси. Итак, я запускаю апостериорную функцию с входными значениями MFCC этого аудио и получаю значение вероятности журнала. Мне нужно сравнить это значение с порогом, чтобы решить, совпадает ли это слово с оригиналом?
- person Luigi Biasi; 17.02.2015
Как я могу получить этот порог? Я думал использовать алгоритм кластеризации с двумя центроидами, но отрицательных выборок мало.
- person Luigi Biasi; 18.02.2015
Извините, у меня есть еще один вопрос. Результатом апостериорной функции является отрицательный логарифм правдоподобия, если правдоподобие находится в диапазоне [0,1], отрицательный логарифм является положительным, но функция несцендентна, это означает, что наилучшее значение имеет место, когда отрицательное логарифм правдоподобия близко к 0. . Это правильно? Другой вопрос, есть ли у меня gmm для каждого слова, которое нужно обнаружить? Итак, когда я захватываю звук с микрофона, я сравниваю MFCC со всеми GMM, которые я использую, и в результате получается GMM, который дает мне большую вероятность?
- person Luigi Biasi; 18.02.2015
Вы можете получить порог для случайной записи. Значение вероятности находится между 0 и 1. Я ответил на ваш третий вопрос выше.
- person Nikolay Shmyrev; 18.02.2015
Спасибо за Ваш ответ. Я хочу сказать, сколько MFCC необходимо для хорошей работы? Я хочу распознавать речь и говорящего. Теперь я использую 13 коэффициентов, и у меня нет плохой производительности. Сейчас я работаю над поиском хорошего порога для уменьшения ошибочной классификации отрицательных выборок, система определяет их как обучающее слово.
- person Luigi Biasi; 18.02.2015