gmm ubm matlab,关于MATLAB语音聚类程序,如何得到一个GMM作为UBM?
gmm-ubm的matlab官方demo似乎已经足够解决你的问题,
%%
% Step0: Set the parameters of the experiment
nSpeakers = 20;
nDims = 13; % dimensionality of feature vectors
nMixtures = 32; % How many mixtures used to generate data
nChannels = 10; % Number of channels (sessions) per speaker
nFrames = 1000; % Frames per speaker (10 seconds assuming 100 Hz)
nWorkers = 1; % Number of parfor workers, if available
% Pick random centers for all the mixtures.
mixtureVariance = .10;
channelVariance = .05;
mixtureCenters = randn(nDims, nMixtures, nSpeakers);
channelCenters = randn(nDims, nMixtures, nSpeakers, nChannels)*.1;
trainSpeakerData = cell(nSpeakers, nChannels);
testSpeakerData = cell(nSpeakers, nChannels);
speakerID = zeros(nSpeakers, nChannels);
% Create the random data. Both training and testing data have the same
% layout.
for s=1:nSpeakers
trainSpeechData = zeros(nDims, nMixtures);
testSpeechData = zeros(nDims, nMixtures);
for c=1:nChannels
for m=1:nMixtures
% Create data from mixture m for speaker s
frameIndices = m:nMixtures:nFrames;
nMixFrames = length(frameIndices);
trainSpeechData(:,frameIndices) = ...
randn(nDims, nMixFrames)*sqrt(mixtureVariance) + ...
repmat(mixtureCenters(:,m,s),1,nMixFrames) + ...
repmat(channelCenters(:,m,s,c),1,nMixFrames);
testSpeechData(:,frameIndices) = ...
randn(nDims, nMixFrames)*sqrt(mixtureVariance) + ...
repmat(mixtureCenters(:,m,s),1,nMixFrames) + ...
repmat(channelCenters(:,m,s,c),1,nMixFrames);
end
trainSpeakerData{s, c} = trainSpeechData;
testSpeakerData{s, c} = testSpeechData;
speakerID(s,c) = s; % Keep track of who this is
end
end
%%
% Step1: Create the universal background model from all the training speaker data
nmix = nMixtures; % In this case, we know the # of mixtures needed
final_niter = 10;
ds_factor = 1;
ubm = gmm_em(trainSpeakerData(:), nmix, final_niter, ds_factor, nWorkers);
%%
% Step2: Now adapt the UBM to each speaker to create GMM speaker model.
map_tau = 10.0;
config = 'mwv';
gmm = cell(nSpeakers, 1);
for s=1:nSpeakers
gmm{s} = mapAdapt(trainSpeakerData(s, :), ubm, map_tau, config);
end
%%
% Step3: Now calculate the score for each model versus each speaker's data.
% Generate a list that tests each model (first column) against all the
% testSpeakerData.
trials = zeros(nSpeakers*nChannels*nSpeakers, 2);
answers = zeros(nSpeakers*nChannels*nSpeakers, 1);
for ix = 1 : nSpeakers,
b = (ix-1)*nSpeakers*nChannels + 1;
e = b + nSpeakers*nChannels - 1;
trials(b:e, :) = [ix * ones(nSpeakers*nChannels, 1), (1:nSpeakers*nChannels)'];
answers((ix-1)*nChannels+b : (ix-1)*nChannels+b+nChannels-1) = 1;
end
gmmScores = score_gmm_trials(gmm, reshape(testSpeakerData', nSpeakers*nChannels,1), trials, ubm);
%%
% Step4: Now compute the EER and plot the DET curve and confusion matrix
imagesc(reshape(gmmScores,nSpeakers*nChannels, nSpeakers))
title('Speaker Verification Likelihood (GMM Model)');
ylabel('Test # (Channel x Speaker)'); xlabel('Model #');
colorbar; drawnow; axis xy
figure
eer = compute_eer(gmmScores, answers, true);
gmm ubm matlab,关于MATLAB语音聚类程序,如何得到一个GMM作为UBM?相关推荐
- Matlab镜像建模产生啸叫信号,基于MATLAB有噪声语音信号的处理最终稿(样例3)...
<基于MATLAB有噪声语音信号的处理.doc>由会员分享,可免费在线阅读全文,更多与<基于MATLAB有噪声语音信号的处理(最终稿)>相关文档资源请在帮帮文库(www.woc ...
- Matlab镜像建模产生啸叫信号,基于MATLAB有噪声语音信号的处理(最终稿)
<基于MATLAB有噪声语音信号的处理.doc>由会员分享,可免费在线阅读全文,更多与<基于MATLAB有噪声语音信号的处理(最终稿)>相关文档资源请在帮帮文库(www.woc ...
- 基于matlab的汽车牌照识别程序详细教程
设计一个基于matlab的汽车牌照识别程序,能够实现车牌图像预处理,车牌定位,字符分割,然后通过神经网络对车牌进行字符识别,最终从一幅图像中提取车牌中的字母和数字,给出文本形式的车牌号码. 关键词:车 ...
- 基于matlab的汽车牌照识别程序 (完整的代码+数据集+报告毕业设计)
设计一个基于matlab的汽车牌照识别程序,能够实现车牌图像预处理,车牌定位,字符分割,然后通过神经网络对车牌进行字符识别,最终从一幅图像中提取车牌中的字母和数字,给出文本形式的车牌号码. 关键词:车 ...
- 基于MATLAB有噪声语音信号处理算法设计
获取项目源文件,联系Q:1415736481,可指导毕设,课设 摘要 滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分.利用MATLAB信号处理工 ...
- matlab中提供滤波器的种类有,求MATLAB巴特沃思低通滤波器程序
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求MATLAB巴特沃思低通滤波器程序.回答:击响应不变法函数 [bz,az]=impinvar(b,a,Fs) [bz,az]=im ...
- 如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于Matlab R2015b版 )
如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于MatlabR2015b版) 关键字:MatlabR2015b,可独立运行,可脱离Matlab环境,m文件,Matlab程序 ...
- matlab的exec程序,C++调用Matlab画图的一段程序
劳动节闲来无事,写了一天程序,just for fun. 看,这是C++调用Matlab画图的一段程序.暂时不想多解释了,有兴趣的话,看看下面的代码吧. 以下几段代码由上到下,越来越旧.最上面的是最新 ...
- matlab 万年历,matlab时钟万年历 matlab时钟万年历(附word说明文档):
程序主要 联合开发网 - pudn.com...
matlab时钟万年历 所属分类:图形图像处理 开发工具:matlab 文件大小:54KB 下载次数:6 上传日期:2018-08-24 21:54:23 上 传 者:小小葡萄123 说明: mat ...
最新文章
- Machine Learning | (5) Scikit-learn的分类器算法-朴素贝叶斯
- php验证时区是否存在,php – 验证来自不同网站的时区名称?
- Windows下的定时任务
- criscriter英语测试软件,iTEST大学英语测试与训练系统
- 安装centos7失败认不到硬盘_CentOS7 用U盘安装卡住无法进入安装界面解决方案
- 解决audio自动播放无效问题
- mysql ocp考试准备多久_MySQL OCP考试复习系列--开篇:了解MySQL考试
- ACL国际计算机语言协会2019,干货 | 2019 AI 国际顶级学术会议一览表
- 多功能手持读数仪VH03如何连接手机蓝牙
- 风蚀侵蚀力计算在python上的实现
- 中国移动5G智慧港口独立专网
- TextView简介
- sql PK FK 区别
- 百度同步盘linux客户端,技术|Linux下百度云的Python客户端(支持Unicode)
- Windows 10配置阿里云DNS
- ubuntu下安装大恒相机驱动并调用程序采集图像
- 计算机四级网络工程师考试视频及软件
- iphone怎在计算机硬盘打开,如何将数据从iPhone备份到计算机硬盘驱动器的详细方法...
- ElasticSearch(ES)介绍
- 新版本ubuntu13.10软件安装
热门文章
- [Effective C++]条款14:在资源管理类中小心copying行为
- 信息系统项目管理师(2022年) —— 第 26 章 知识产权与标准规范
- 计算机网络原理——前三章个人总结
- VLAN三层交换机配置
- 做题记录(2019年2月10日起)
- linux 获取硬件时间,Linux的硬件时间及系统时间调用流程--转自网络
- 一级计算机怎么给学生备注,2021年全国计算机一级考试重点讲解:(一级WPS)WPS演示中备注添加的两招...
- Ubuntu基本命令大全
- 1.5-37:雇佣兵
- Matlab常用的输出命令disp、fprintf