语音实验
更新时间:2023-10-03 11:19:01 阅读量: 综合文库 文档下载
《数字语音处理及其应用》试卷
系 姓名 学号
一、简答题(每小题3分,共30分)
1. 语音信号的数学模型包括哪些子模型? 激励模型属于什么性质的滤波器? 2. 人耳听觉的掩蔽效应分为哪几种?在研究语音信号处理中有什么应用? 3. 计算语音的短时自相关函数的主要用途是什么?
4. 什么是线性预测?前向预测和后向预测的区别是什么? 5. 什么是复倒谱? 已知复倒谱如何求倒谱? 6. 矢量量化中生成初始码本的方法有哪几种? 7. 为什么语音信号可以看成是隐马尔可夫过程?
8. 什么是自适应变换编码?常用的变换是什么变换? 9. 语音合成中规则合成法的核心是什么?
10.什么是语音信号中的情感信息?如何对情感进行分类?
二、论述题(每小题4分,共24分)
1. 语音信号的功率谱及其在语音信号数字处理中的意义。
2. 基音周期估计的常用方法有哪些?简单描述SIFT方法(简化逆滤波法)。 3. 矢量量化中初始码本产生的方法与性能比较。
4. 叙述HMM中前向-后向算法的工作原理及其节约运算量的原因。 5. 画出语音编码中反馈自适应量化间隔的原理框图,并进行说明。 6. 叙述基音同步叠加技术PSOLA实现语音合成的主要步骤。
三、对语音信号参数分析前为什么要进行预处理?有哪些预处理过程?(5分)
四、描述Burg法求解线性预测系数的思路和计算步骤。(5分)
五、一个语音段s(n)的自相关函数为,
Rn(j)??sn(m)sn(m?j);m?jN?1j?1,?,p
证明Rn(j)是偶函数,即Rn(j)?Rn(?j);且当j?0时,自相关函数具有最大值
Rn(0)?Rn(j)。(6分)
六、如何设计最佳矢量量化器?描述LBG算法的具体实现步骤。(5分)
七、什么是Baum-Welch算法?怎样利用该算法的重估公式得到重估模型参数后,构成新的模型?
(5分)
八、为什么在语音识别时需要做“时间规整”?说明DTW时间规整的原理和方法。(5分)
九、编程实现一个孤立字语音识别系统,写出具体过程和结果分析。(15分)
练习1.
使用能量特征、过零率特征设计一个语音检测算法。要求能在普通的实验室噪声环境下,准确地检测出语音信号的起终点位置。 答:
function [x1,x2] = vad(x)
%幅度归一化到[-1,1] x = double(x);
x = x / max(abs(x));
%常数设置
FrameLen = 240; FrameInc = 80;
amp1 = 10; amp2 = 2; zcr1 = 10; zcr2 = 5;
maxsilence = 8; % 6*10ms = 60ms minlen = 15; % 15*10ms = 150ms status = 0; count = 0; silence = 0;
%计算过零率
tmp1 = enframe(x(1:length(x)-1), FrameLen, FrameInc); tmp2 = enframe(x(2: length(x)) , FrameLen, FrameInc); signs = (tmp1.*tmp2)<0; diffs = (tmp1 -tmp2)>0.02; zcr = sum(signs.*diffs, 2);
%计算短时能量
amp = sum(abs(enframe(filter([1 -0.9375], 1, x), FrameLen, FrameInc)), 2);
%调整能量门限
amp1 = min(amp1, max(amp)/4); amp2 = min(amp2, max(amp)/8);
%开始端点检测 x1 = 0; x2 = 0;
for n=1:length(zcr) goto = 0; switch status
case {0,1} % 0 = 静音, 1 = 可能开始 if amp(n) > amp1 % 确信进入语音段 x1 = max(n-count-1,1); status = 2; silence = 0;
count = count + 1;
elseif amp(n) > amp2 | ... % 可能处于语音段 zcr(n) > zcr2 status = 1;
count = count + 1; else % 静音状态 status = 0; count = 0; end
case 2, % 2 = 语音段
if amp(n) > amp2 | ... % 保持在语音段 zcr(n) > zcr2
count = count + 1; else % 语音将结束 silence = silence+1;
if silence < maxsilence % 静音还不够长,尚未结束 count = count + 1;
elseif count < minlen % 语音长度太短,认为是噪声 status = 0; silence = 0; count = 0;
else % 语音结束 status = 3; end end case 3, break; end end
count = count-silence/2; x2 = x1 + count -1;
subplot(311) plot(x)
axis([1 length(x) -1 1]) ylabel('Speech');
line([x1*FrameInc x1*FrameInc], [-1 1], 'Color', 'red'); line([x2*FrameInc x2*FrameInc], [-1 1], 'Color', 'red');
subplot(312) plot(amp);
axis([1 length(amp) 0 max(amp)]) ylabel('Energy');
line([x1 x1], [min(amp),max(amp)], 'Color', 'red'); line([x2 x2], [min(amp),max(amp)], 'Color', 'red');
subplot(313) plot(zcr);
axis([1 length(zcr) 0 max(zcr)]) ylabel('ZCR');
line([x1 x1], [min(zcr),max(zcr)], 'Color', 'red'); line([x2 x2], [min(zcr),max(zcr)], 'Color', 'red');
练习2.
编写计算LPC 预测器系数的Durbin 算法程序,在此基础上计算全极点模型的倒谱。 编写FFT 程序,由此计算语音信号的倒谱。 答: [x,fs]=wavread('11.wav');
[x,fs]=wavread('11.wav');
y=resample(x,4,11); y=double(y); N=512; y1=y(1:N); y1=y1;
w1=hanning(N); s=y1.*w1;
subplot(3,1,1),plot(s); title('?-ê?ó?ò?2¨D?')
p=20;
n=length(s); for i=1:p Rp(i)=sum(s(i+1:n).*s(1:n-i)); end
Rp_0=s'*s;
Ep=zeros(p,1); k=zeros(p,1); a=zeros(p,p);
Ep_0=Rp_0;
k(1)=Rp(1)/Rp_0; a(1,1)=k(1);
Ep(1)=(1-k(1)^2)*Ep_0;
if p>1 for i=2:p
k(i)=(Rp(i)-sum( a(1:i-1,i-1).*Rp(i-1:-1:1)'))/Ep(i-1); a(i,i)=k(i);
Ep(i)=(1-k(i)^2)*Ep(i-1); for j=1:i-1
a(j,i)=a(j,i-1)-k(i)*a(i-j,i-1); end end end
ai=a(:,p);
LP = filter([1 -ai(2:end)'],1,s); FFTlp = fft(LP); E = s - LP; % ?¤2a?ó2?
subplot(3,1,2),plot(1:N,s,1:N,LP,'-r');grid; title(' 原始语音和预测语音波形') subplot(3,1,3),plot(E);grid; title('预测误差');
练习3.
编写语音识别的DTW 模板匹配算法程序。 答:
disp('正在计算参考模板的参数...') for i=1:10
fname = sprintf('ú.wav',i-1); x = wavread(fname); [x1 x2] = vad(x); m = mfcc(x);
m = m(x1-2:x2-2,:); size(m);
ref(i).mfcc = m; end
disp('正在计算测试模板的参数...') for i=1:10
fname = sprintf('?.wav',i-1); x = wavread(fname); [x1 x2] = vad(x); m = mfcc(x);
m = m(x1-2:x2-2,:); size(m);
test(i).mfcc = m; end
disp('正在进行模板匹配...') dist = zeros(10,10); for i=1:10
for j=1:10
dist(i,j) = dtw(test(i).mfcc, ref(j).mfcc); end end
disp('正在计算匹配结果...') for i=1:10
[d,j] = min(dist(i,:));
fprintf('测试模板 %d 的识别结果为:参考模板%d\\n', i, j); end
function ccc = mfcc(x)
% 归一化mel滤波器组系数
bank=melbankm(24,256,8000,0,0.5,'m'); bank=full(bank);
bank=bank/max(bank(:));
% DCT系数,12*24 for k=1:12 n=0:23;
dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24)); end
% 归一化倒谱提升窗口
w = 1 + 6 * sin(pi * [1:12] ./ 12); w = w/max(w);
% 预加重滤波器 xx=double(x);
xx=filter([1 -0.9375],1,xx);
% 语音信号分帧
xx=enframe(xx,256,80);
% 计算每帧的MFCC参数 for i=1:size(xx,1) y = xx(i,:);
s = y' .* hamming(256); t = abs(fft(s)); t = t.^2;
c1=dctcoef * log(bank * t(1:129)); c2 = c1.*w'; m(i,:)=c2'; end
%差分系数
dtm = zeros(size(m)); for i=3:size(m,1)-2
dtm(i,:) = -2*m(i-2,:) - m(i-1,:) + m(i+1,:) + 2*m(i+2,:); end
dtm = dtm / 3;
%合并mfcc参数和一阶差分mfcc参数 ccc = [m dtm];
ccc = ccc(3:size(m,1)-2,:);
练习4
用DTW 算法和语音的倒谱特征实现一个能够识别10 个不同数字发音的孤立字语音识别系统。 答:function dist = dtw(t,r)
n = size(t,1); m = size(r,1);
% 帧匹配距离矩阵 d = zeros(n,m);
for i = function ccc = mfcc(x) % 归一化mel滤波器组系数
bank=melbankm(24,256,8000,0,0.5,'m'); bank=full(bank);
bank=bank/max(bank(:));
% DCT系数,12*24 for k=1:12 n=0:23;
dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24)); end
% 归一化倒谱提升窗口
w = 1 + 6 * sin(pi * [1:12] ./ 12); w = w/max(w);
% 预加重滤波器 xx=double(x);
xx=filter([1 -0.9375],1,xx);
% 语音信号分帧
xx=enframe(xx,256,80);
% 计算每帧的MFCC参数 for i=1:size(xx,1) y = xx(i,:);
s = y' .* hamming(256); t = abs(fft(s)); t = t.^2;
c1=dctcoef * log(bank * t(1:129)); c2 = c1.*w'; m(i,:)=c2'; end
%差分系数
dtm = zeros(size(m)); for i=3:size(m,1)-2
dtm(i,:) = -2*m(i-2,:) - m(i-1,:) + m(i+1,:) + 2*m(i+2,:); end
dtm = dtm / 3;
%合并mfcc参数和一阶差分mfcc参数 ccc = [m dtm];
%去除首尾两帧,因为这两帧的一阶差分参数为0 ccc = ccc(3:size(m,1)-2,:); 1:n for j = 1:m d(i,j) = sum((t(i,:)-r(j,:)).^2); end end
% 累积距离矩阵
D = ones(n,m) * realmax; D(1,1) = d(1,1);
% 动态规划 for i = 2:n for j = 1:m D1 = D(i-1,j); if j>1 D2 = D(i-1,j-1); else
D2 = realmax; end if j>2 D3 = D(i-1,j-2); else
D3 = realmax; end D(i,j) = d(i,j) + min([D1,D2,D3]); end end
dist = D(n,m);
正在阅读:
语音实验10-03
《工程水文学》期末考试试题库及参考答案06-30
沉井顶管施工技术专项方案 - 图文06-17
社会保障专业术语中英文对照(1)05-01
浅谈会计诚信与职业道德10-13
捐赠活动简报 - 图文04-22
学校教职工职务晋升办法08-26
中国历代古钱币市场参考价目表05-13
2015年国务院第七届学科评议组成员名单(按学科统计)01-05
上海市新长征突击手(共545名)12-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 语音
- 实验
- 全员促销倡议书
- 经济责任审计答案
- 廉政灯谜50个
- 数字电压表课程设计(1)课案
- 高考历史一轮复习 第13讲 新民主主义革命的崛起教案 新人教版 - 图文
- 派出所信访工作调研
- 2016-2020年杭州酒店业行业发展与投资机会分析报告(目录) - 图文
- 有关钙离子的10个典型问答
- 机械纺织卷烟造纸白酒建设项目初步设计安全专篇编写提纲(安监总厅管四205号)
- 大学生党课考试试题攻略
- PBT材料技术标准
- 工程材料复习题问答分析题 2
- 二轮专题复习“害虫防治的常见方法”
- 期中质量检测分析报告七生物2017年10月31日
- 《金股博弈》波动四法 培训
- 建设工程安全监督告知书
- 2015.专升本考试模拟试卷-1及答案
- (0351)《电子商务概论》网上作业题及答案
- “左传·烛之武退秦师”“四年,晋饥,乞籴于秦”比较阅读试题及答案 及翻译
- 2012年高炉炼铁毕业设计 - 图文