通过机器学习来解决说话人识别这一难题是当前的一个趋势。而GMM模型(高斯混合模型)在说话人识别领域很常用。标题有点大了,其实这只是一个框架模型。既然是框架模型,说明还要很多地方可以进一步的完善。虽然是个框架模型,但是其识别率也是可以达到70-80%左右。
%% 初始化
GMM_com = 16;
training_count = 6; % 训练数据集类别数,有几个人就是几类
testing_count = 36; % 测试数据个数,至少录36段录音
wavdir = '/tmp/voice_test'; % 这是放数据的文件路径,如果提示文件无法打开,改用绝对路径
mu_train = zeros(training_count, 12, GMM_com);
sigma_train = zeros(training_count, 12, GMM_com);
c_train = zeros(training_count, GMM_com, 1);
%% 训练过程
% 在<wavdir>/training/下为每个人建立一个文件夹,名称按数字顺序。
% 每个文件夹里是对应那个人的两段训练数据,分别命名为1.wav和2.wav。
for n = 1 : training_count
twavdir = [wavdir, '/training/' num2str(n), '/1.wav'];
twavdir2 = [wavdir, '/training/' num2str(n), '/2.wav'];
[train_d