2022年南邮通达语音时频参数的提取和应用和语音编码实验.pdf





《2022年南邮通达语音时频参数的提取和应用和语音编码实验.pdf》由会员分享,可在线阅读,更多相关《2022年南邮通达语音时频参数的提取和应用和语音编码实验.pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、资料收集于网络如有侵权请联系网站删除谢谢精品文档南京邮电大学通达学院实 验 报 告实验名称语音时频参数的提取和应用实验语音编码实验课程名称信息处理技术专业综合实验班级学号姓名开课时间2016/2017 学年, 第 二 学期精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档实验一语音时频参数的提取和应用一、实验目的熟悉基本的语音时频参数提取方法,观察并比较各类参数采用不同提取方法的效果,了解这些时频参
2、数在语音处理中的应用。二、实验内容1、编写并调试语音时域参数提取程序,包括短时功率、短时过零率等函数。2、编写并调试语音频域参数提取程序,包括频谱、语谱图、基音频率、共振峰等。3、利用提取出的时频参数对语音信号进行静/清 /浊音的划分。三、实验原理语音信号具有短时平稳性,需对其进行分段(帧)处理(帧长一般取10至 30ms之间)。根据激励方式的不同,语音信号可以分成浊音和清音两大类:浊音:激励源可模拟成准周期性的脉冲串。该周期称为基音周期,其倒数就是基音频率,基音频率一般在几百赫兹以内。清音:激励源可模拟成随机白噪声。简化的语音生成数学模型如图所示:准周期脉冲序列发生器随机噪声发生器基音周期时
3、变线性系统浊音清音增益控制时变参数语音取样值对语音时频波形进行绘制与观察,有助于了解语音的清/浊音等特性。对基音周期等声门参数和共振峰等声道参数进行提取与分析,是语音处理与应用的重要内容。对于时变语音信号)(nx,可以计算它的短时功率)(mPx和短时过零率)(mZx。第m帧(帧长为N个样点)的功率计算公式为:21)(1)(mNmnxnxNmP精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档过零率计
4、算公式为:mNmnxnxsignnxsignNmZ12)1()(1)(对于浊音语音,可以利用其频谱)(X具有丰富的谐波分量的特点,求出其谐波乘积谱,计算公式为:RrrXHPSx1)()(式中, R一般取为5。在谐波乘积谱中,基频分量变得很大,更易于估计基音周期。四、实验方法及程序1. 调用 matlab 中的 wavread 和 wavplay 读入并播放语音文件。2. 调用 fft 命令计算语音的频谱。3. 调用 specgram 命令得到语音的语谱图。4. 调用 plot 命令绘制并观察语音的时频域波形。5. 根据短时功率、短时过零率、谐波乘积谱的计算公式,编写分别用以计算短时 功 率 、
5、 短 时 过 零 率 、 基 音 频 率 的 函 数 : function Px=stpower、 function Zx = stzerocross(x, N) 和function HPSx = hpspectrum(x,N,R)。6. 利用短时功率和短时过零率这两个参数可以对语音信号进行浊音/清音分类。编写实现此分类功能的函数voiunvoi.m。五、实验结果与分析1. 清音和浊音的短时功率、短时过零率各有何特点?清音段的能量一般比浊音段的小得多。浊音时能量集中于较低频率段内,具有较低的过零率,而清音时能量集中于较高频率段内,具有较高的过零率。2. 如何利用短时功率和短时过零率这两个参数对
6、语音信号进行浊音/清音的分类?发浊音时, 由于声门波引起了谱的高频跌落。所以其语音能量集中在3kHz 以下;发清音时,多数能量出现在高频。高频率意味着高的平均过零率,低频率意味着低的平均过零率,一般可认为浊音具有较低的平均过零率,清音具有较高的平均过零率。3. 如何根据时域波形估计各帧元音的基音周期?看图可知四帧语音的周期均为0.01s ,第一帧0100Hz 有 10个峰值点,基频约为10Hz ,第二帧0100Hz 有5个峰值点,基频约为20Hz ,第三帧0100Hz 有 5个峰值点,基频约为20Hz ,第四帧0100Hz 有 4个峰值点,基频约为25Hz 。4. 如何根据基于DFT 的对数幅
7、度谱估计某幀浊音的基音周期?01172 为一个基因周期。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档5. 如何根据基于DFT 的对数幅度谱,估计出共振峰频率?有 7个峰点,因此基频约为167。6. 时域对语音信号进行加窗,反映在频域,其窗谱对基于DFT 的对数幅度谱有何影响?如何估计出窗谱的主瓣宽度?因 为时 间窗 幅度 的傅 立叶 变换 为脉 冲状 态 ,则频谱偏差 很小 ,当 定常 过程
8、x(n) 的平均值 为零且 N 很大时ETN()=f()(12)所以加窗的周期图TN( )是频谱密度函数的无偏估计。固有TN()=1+ ( )f()。如果原始信号的频谱成份与FFT 中的谱线完全一致,这种情况下采样数据的长度为信号周期的整数倍,频谱中只有主瓣。7. 如何根据窄带、宽带语谱图,提取出语音的基音和共振峰轨迹?在基音提取中,广泛采用语音波形或误差信号波形的低通滤波。提取共振峰特性最简便的手段是使用语谱仪。提取共振峰还有倒谱法、LPC 分析法等更为有效、准确的方法。( 做完试验后,记住要回答这些问题)实验过程记录与结果分析1、进入 matlab 1.1 在 Windows 环境中,创建
9、一个名为speech的文件夹,存放语音数据和与实验相关的 Matlab 文件。如:E:speech 。用于实验的语音数据(.mat )及相应说明(.txt )包括:digits.mat % 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.txt timit1.mat % 一句连续语音timit2.mat %
10、 一句连续语音timit3.mat % 一句连续语音timit4.mat % 一句连续语音vowels.mat % 元音 /a/, /i/, /o/, /u/的发音vowels.txt words.mat % 十个孤立字的发音精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档words.txt 1.2 在 Windows桌面上,双击Matlab的图标,进入Matlab的工作环境。在命令窗口 提示符后
11、,键入cd E:speech指令,进入实验文件夹路径。1.3 在命令窗口键入clear all指令,清除工作空间的所有变量。2、加载语音数据,熟悉matlab 命令2.1 加载“ timit1.mat”语音数据,命令为:load timit1 2.2用命令“who ”和“whos ”列出当前工作空间中的变量。变量“timit1 ”会以包含55911 个元素的矩阵(列向量)形式出现Your variables are: timit1 Name Size Bytes Class Attributes timit1 55911x1 447288 double2.3 利用命令“length ”和“ s
12、ize”查看语音信号timit1的长度和维数:m = length(timit1) m,n = size(timit1) (粘贴实验结果)m = 55911 m = 55911 n = 1 2.4 通过以下命令,分别查看语音信号timit1中间的1 个、 2 个和 20 个数据值:timit1(5001) timit1(5001,5003) timit1(5001:5020) (粘贴实验结果)ans = 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 30 页 - - - - - - - -
13、- - 资料收集于网络如有侵权请联系网站删除谢谢精品文档-0.0646 ans = -0.0646 0.0111 ans = -0.0646 0.0307 0.0111 -0.0200 0.2021 0.4012 0.1869 -0.1756 -0.1902 0.0823 0.2363 0.1712 0.0637 -0.0209 -0.0683 -0.0394 0.0081 0.0105 0.0311 0.0696 2.5 Matlab中,符号“ ”可以实现转置运算,运行以下命令进行观察:size (timit1 ) (粘贴实验结果)ans = 1 55911 2.6 使用函数max 和 mi
14、n 可以分别得到信号的最大值和最小值:max(timit1) min(timit1) (粘贴实验结果)ans = 1 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档ans = -0.8068 3、语音信号的时域分析3.1 使用以下命令,画出语音信号timit1 (采样频率为16kHz ,长度为3.5 秒)的时域波形。plot (timit1) title ( timit1 ) xlabel (
15、Time Index,it n ) ylabel ( Amplitude ) axis (0 length(timit1) -1 1) grid 3.2 分别画出一帧浊音和一帧清音的语音时域波形(采样频率为16kHz ,帧长为25ms,每帧有400 个样点) 。subplot(211), plot(timit1(14501:14900) % /a/ in dark.subplot(212), plot(timit1(35501:35900) % /s/ in wash.精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - -
16、 - -第 7 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档3.3 编写个一用以计算信号短时功率的函数“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; 3.4 编写一个用以计算信号短时过零率的函数“stzerocross.m ” ,其M
17、atlab代码如下: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); end 3.5 加载“ digits.mat ”语音数据,该数据包含英文数
18、字“0” 到“ 9”的发音。计算其中的单词“four ”的短时功率和过零率(采样频率为10kHz ,帧长为30ms,每帧有300 个样点) 。load digits; N = 300; x=digits.four1; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档Px = stpower (x,N); Zx = stzerocross (x,N); plot(Px*1e -5 Zx x/2000
19、) 3.6 加载“ 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_1(2001:
20、2300) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档3.7编写一个利用短时功率和短时过零率这两个参数对语音信号进行浊音/清音分类的函数“voiunvoi.m” ,其Matlab代码如下:function voi = voiunvoi(x,N,Pth,Zth) % Short-time power Px and zero crossing Zx measures. Px = stpower(
21、x,N); Zx = stzerocross(x,N); % Compare estimates with threshold values. voi = (PxPth*max(Px) & (ZxZth); % Shift the voi-flag N/2 samples to the left (middle sample in window). voi = voi(fix(N/2)+1:length(voi);voi(length(voi)*ones(fix(N/2),1); 4、语音信号的频域分析4.1 加载“ ma1_1 ”语音数据。基于DFT 变换,画出其中一帧数据(采样频率为8kH
22、z ,帧长为37.5ms ,每帧有300 个样点)的频域波形(对数幅度谱)。load ma1_1; x = ma1_1 (4161:4460); subplot(121), plot(x) N = 1024; k = 0:N/2-1; X = fftshift (fft (x.*hann (length (x),N); subplot(122), plot (k,20*log10 (abs(X(N/2:-1:1), axis (0 N/2-1 -inf inf ) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - -
23、 -第 10 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档4.2 编写一个用以计算信号谐波乘积谱的函数“hpspectrum.m ” ,其Matlab代码如下:function HPSx = hpspectrum(x,N,R) k = 1:R:N/2; K = length(k); X = fft (x.*hann(length(x), N); HPSx = X(k); for (r = R-1:-1:1) HPSx = HPSx.*X (1:r:r*K); end 4.3 利用函数“hpspectrum.m ” ,来估计一帧浊音的
24、基音周期。代码如下:X = ma1_1(4161:4460); N = 1024; R = 5; HPSx = hpspectrum (x, N, R); plot (20*log10 (abs (HPSx) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 30 页 - - - - - - - - - - 资料收集于网络如有侵权请联系网站删除谢谢精品文档4.4 加载“vowels.mat ”语音数据, 分别画出一帧/i/ 和一帧 /u/( 采样频率为10kHz ,帧长为30ms ,每帧有30
25、0 个样点)的基于DFT 的对数幅度谱。其Matlab 代码如下:load vowels x = vowels.i_1(2001:2300); N = 1024; k= -N/2:N/2-1; X = fftshift (fft (x.*hann (length(x),N); plot (k,20*log10(abs(X), axis(0 fix (N/2) 0 100) x = vowels.u_1(2001:2300); N= 1024; k = - N/2:N/2-1; X = fftshift (fft (x.*hann(length(x),N); plot (k,20*log10(a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 年南邮 通达 语音 参数 提取 应用 编码 实验

限制150内