语音实验一指导书

上传人:子 文档编号:42612495 上传时间:2018-06-02 格式:DOC 页数:9 大小:144KB
返回 下载 相关 举报
语音实验一指导书_第1页
第1页 / 共9页
语音实验一指导书_第2页
第2页 / 共9页
语音实验一指导书_第3页
第3页 / 共9页
语音实验一指导书_第4页
第4页 / 共9页
语音实验一指导书_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《语音实验一指导书》由会员分享,可在线阅读,更多相关《语音实验一指导书(9页珍藏版)》请在金锄头文库上搜索。

1、1实验一:语音信号的时域分析实验一:语音信号的时域分析实验目的:实验目的:以 MATLAB 为工具,研究语音信号的时域特性,以及这些特性在语音信号处理 中的应用情况。实验要求:实验要求:利用所给语音数据,分析语音的时域波形、短时能量、短时过零率等时域参数。要 求会求取这些参数,并举例说明这些参数在语音信号处理中的应用。实验内容:实验内容:1 1、 进入进入 matlabmatlab1.1 在 Wondows 环境中,创建一个名为 speech 的文件夹,存放语音数据和与实验相关的 Matlab 文件。如:E:speech。用于实验的语音数据(.mat)及相应说明(.txt)包括:digits.

2、mat % 英文数字 “0” 到 “9” 的发音digits.txt gliss.mat % 两个包含/i/的滑音gliss.txt letters.mat % 英文字母表中 26 个字母的发音letters.txt ma1.txt ma1-1.mat % 一句连续语音ma1-2.mat % 一句连续语音ma1-3.mat % 一句连续语音ma1-4.mat % 一句连续语音timit.txttimit1.mat % 一句连续语音timit2.mat % 一句连续语音timit3.mat % 一句连续语音timit4.mat % 一句连续语音vowels.mat % 元音/a/, /i/, /

3、o/, /u/的发音vowels.txtwords.mat % 十个孤立字的发音words.txt1.2 在 Windows 桌面上,双击 Matlab 的图标,进入 Matlab 的工作环境。在命令窗口提示 符后,键入 cd E:speech 指令,进入实验文件夹路径。1.3 在命令窗口键入 clear all 指令,清除工作空间的所有变量。2 2、 加载语音数据,熟悉加载语音数据,熟悉 matlabmatlab 命令命令2.1 加载“timit1.mat”语音数据,命令为: Load timit12.2 用命令“who”和“whos”列出当前工作空间中的变量。变量“timit1”会以包含

4、55911 个2元素的矩阵(列向量)形式出现 代码: whos timit1 结果: Name Size Bytes Classtimit1 55911x1 447288 double arrayGrand total is 55911 elements using 447288 bytes2.3 利用命令“length”和“size”查看语音信号 timit1 的长度和维数:m = length(timit1) m,n = size(timit1) 结果: m =55911 m =55911 n =12.4 通过以下命令,分别查看语音信号 timit1 中间的 1 个、2 个和 20 个数据

5、值: timit1(5001) timit1(5001,5003) timit1(5001:5020)结果: ans = -0.0646 ans = -0.06460.0111 ans =-0.06460.03070.0111-0.02000.20210.40120.1869-0.1756-0.19020.08230.23630.17120.0637-0.0209-0.0683-0.03940.00810.01050.03110.06962.5 Matlab 中,符号“”可以实现转置运算,运行以下命令进行观察: size (timit1) 结果:ans = 1 5591132.6 使用函数 m

6、ax 和 min 可以分别得到信号的最大值和最小值: max(timit1) min(timit1) 结果:ans = 1 ans = -0.80683、 语音信号的时域分析语音信号的时域分析简化的语音生成模型如图所示:3.1 使用以下命令,画出语音信号 timit1(采样频率为 16kHz,长度为 3.5 秒)的时域波形。 plot (timit1) title (timit1) xlabel (Time Index,it n) ylabel (Amplitude) axis (0 length(timit1) -1 1) grid由图可知,语音信号具有短时平稳性,需对其进行分段(帧)处理(

7、帧长一般取 20 至 40ms 之间) 。 根据激励方式的不同,语音信号可以分成浊音和清音两大类: 浊音:激励源可模拟成准周期性的脉冲串。该周期称为音调周期,其倒数就是音调频率, 音调频率一般在几百赫兹以内。 清音:激励源可模拟成随机白噪声。 简化的语音生成数学模型如图所示:4准周期脉冲 序列发生器随机噪声 发生器基音周期时变线性 系 统浊音清音增益控制时变参数语音取样值3.2 分别画出一帧浊音和一帧清音的语音时域波形(采样频率为 16kHz,帧长为 25ms,每帧有 400 个样点) 。 subplot(211), plot(timit1(14501:14900) % /a/ in dark

8、. subplot(212), plot(timit1(35501:35900) % /s/ in wash.问题问题 1:这两帧语音的幅度有什么不同?哪帧的过零数(信号值改变符号的数目)大?:这两帧语音的幅度有什么不同?哪帧的过零数(信号值改变符号的数目)大?3.2 对于时变信号,可以计算它的短时功率。第 m 帧(帧长为 N 个样点)的功率)(nx)(mPx计算公式为:21)(1)( mNmnxnxNmP当用于分帧的窗函数每移动一个样点,都需重新计算一次新窗口中的信号功率时,可以采 用以下的递推公式来高效计算短时功率:522)()(1) 1()(NmxmxNmPmPxx编写一个用以计算信号短

9、时功率的函数“stpower.m” ,其 Matlab 代码如下:function Px=stpower (x, N) M = length (x); Px = zeros (M, 1); Px (N)=x (1:N)*x (1:N)/N; for (m = (N+1): M) Px (m) = Px (m-1)+ (x (m) 2-x (m-N) 2)/N; end3.3 对于时变信号,可以计算它的短时过零率。第 m 帧(帧长为 N 个样点)的过)(nx)(mZx零率计算公式为: mNmnxnxsignnxsignNmZ12)1()(1)(编写一个用以计算信号短时过零率的函数“stzeroc

10、ross.m” ,其 Matlab 代码如下:function Zx = stzerocross(x, N) M = length(x); Zx = zeros(M,1); Zx (N+1)=sum (abs (sign (x (2:N+1)sign (x (1:N) ) ) )/ (2*N); for (m= (N+2):M)Zx (m) = Zx (m-1) + (abs (sign (x (m) ) sign (x (m-1) ) ) abs(sign (x (m-N) ) sign (x (m-N-1 ) ) ) )/ (2*N); end3.4 加载“digits.mat”语音数据,

11、该数据包含英文数字 “0” 到 “9”的发音。计算其中的单词 “four”的短时功率和过零率(采样频率为 10kHz,帧长为 30ms,每帧有 300 个样点) 。: load digits; N = 300; x=digits.four1; Px = stpower (x,N); Zx = stzerocross (x,N); plot(Px*1e -5 Zx x/2000)6问题问题 2:如何利用短时功率和短时过零率这两个参数对语音信号进行浊音:如何利用短时功率和短时过零率这两个参数对语音信号进行浊音/清音的分类?请清音的分类?请 编写一个可以实现此分类功能的函数编写一个可以实现此分类功能

12、的函数 voiunvoi.m。3.5 加载“vowels.mat”语音数据,该数据包含元音/a/, /i/, /o/, /u/的发音。分别画出一帧/a/、 一帧/i/、一帧/o/ 和一帧/u/的时域波形(采样频率为 10kHz,帧长为 30ms,每帧有 300 个样点) 。 load vowels subplot(221) plot (vowels.a_1(2001:2300) subplot(222) plot (vowels.i_1(2001:2300) subplot(223) plot (vowels.o_1(2001:2300) subplot(224) plot (vowels.u

13、_1(2001:2300)7问题问题 3:试根据时域波形估计各帧元音的基音周期?并根据估计出的基音周期判断是男声:试根据时域波形估计各帧元音的基音周期?并根据估计出的基音周期判断是男声 还是女声。还是女声。3.6 使用命令“fieldnames(vowels)” ,会发现“vowels.mat”语音数据中还有 3 个神秘的元音 myst_1、myst_2 和 myst_3。画出这些元音帧的时域波形,并判断是什么元音。最后通过听音 证实一下。例如播放 vowles_myst1(其采样频率为 10000Hz): soundsc(vowels.myst_1,10000)soundsc(vowels.

14、myst_2,10000)soundsc(vowels.myst_3,10000)结果: ans = a_1a_2a_3a_4a_5a_6a_7a_8a_9a_aa_b8a_ci_1i_2i_3i_4i_5i_6i_7i_8i_9i_ai_bi_co_1o_2o_3u_1u_2u_3u_4u_5u_6u_7u_8u_9u_au_bu_cmyst_1myst_2myst_3subplot(221) plot (vowels.myst_1(2001:2300) subplot(222) plot (vowels.myst_2(2001:2300) subplot(223) plot (vowels.myst_3(2001:2300)9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号