Векторное квантование MFCC для проверки динамиков Скрытые марковские модели

В настоящее время я делаю проект по проверке динамиков с использованием скрытых марковских моделей. Я выбрал MFCC для извлечения признаков. Я также намерен применить к нему VQ. Я внедрил HMM и протестировал его на электронной таблице данных Эйснера, которую можно найти здесь: http://www.cs.jhu.edu/~jason/papers/ и получили правильные результаты.

Используя голосовые сигналы, я, кажется, что-то упустил, так как не получил правильного принятия (я сделал оценку вероятности с использованием прямого алгоритма - масштабирование не применялось). Мне было интересно, что я мог сделать неправильно. Я использовал функцию MFCC scikits talkbox для извлечения признаков и кластер Scipy для векторного квантования. Вот что я написал:

from scikits.talkbox.features import mfcc
from scikits.audiolab import wavread
from scipy.cluster.vq import vq, kmeans, whiten

(data, fs) = wavread(file_name)[:2]
mfcc_features = mfcc(data, fs=fs)[0]

#Vector Quantization
#collected_feats is a list of spectral vectors taken together from 3 voice samples
random.seed(0)
collected_feats = whiten(collected_feats)
codebook = kmeans(collected_feats, no_clusters)[0]


feature = vq(mfcc_features, codebook)

#feature is then used as the observation for the hidden markov model

Я предположил, что параметры по умолчанию для функции scikits mfcc уже подходят для проверки динамика. Аудиофайлы имеют частоты дискретизации 8000 и 22050. Что-то мне здесь не хватает? Я выбрал кластер из 64 для VQ. Каждый образец представляет собой изолированное слово. длительностью не менее 1 секунды. Я еще не нашел функцию Python для удаления пауз в образцах голоса, поэтому я использую Audacity, чтобы вручную обрезать части тишины. Любая помощь будет оценена по достоинству. Спасибо!


person Bobby    schedule 11.03.2014    source источник


Ответы (1)


Ну, я не уверен в подходе HMM, но я бы рекомендовал использовать GMM. ALize — отличная библиотека для этого. Для удаления тишины используйте библиотеку LIUM. Этот процесс называется диаризацией говорящего, программа определяет, где говорит говорящий, и дает отметку времени.

person Ashutosh Sharma    schedule 21.07.2014