1、 1 基于 MATLAB的语音信号分析 洗手 洗手 洗手 摘要 : bef当今语音信号分析技术主要可以分析语音信号的时域与频域方面的分析 。 洗手 在 MATLAB的环境下 , 吃饭 提取语音信号的特征参数 (LPCC)分析 , 吃饭 用于信号分析 。 洗手 将语音信号进行分析之后能够运用到人机交互的环境中 , 吃饭 从而研究出智能的人机通信问题 。 洗手洗手 洗手 关键字 : b eef语音信号 ; beefMATLAB; beef人机通信 ; beef洗手 洗手 The Analysis of speech signal Based on MATLAB洗手 Abstract: The sp
2、eech signal analysis technology can analyze speech signal in time domain and frequency domain analysis of the. In the MATLAB environment, extraction of speech signal feature parameters ( LPCC ) analysis, used for signal analysis. Speech signal analysis can use to human-computer interaction in the en
3、vironment, in order to study the intelligent man-machine communication problems.洗手 洗手 Keyword: Speech signal;beefMATLAB;beefMan-machine communication洗手 洗手 1. 前言 洗手 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科 , 吃饭 是目前发展最为迅速的信息科学研究领域的核心技术之一 。 洗手 通过语音传递信息是人类最重要 、 bef最有效 、 bef最常用和最方便的交换信息形式 。 洗手 同时 ,吃饭 语言也是
4、人与机器之间进行通信的重要工具 , 吃饭 它是一种理想的人机通信方式 , 吃饭因而可为信息处理系统建立良好的人 机交互环境 , 吃饭 进一步推动计算机和其他智能机器的应用 , 吃饭 提高社会的信息化程度 。 洗手 洗手 2. 语音 信号基本分析 洗手 2.1 MATLAB的语音信号时域特征分析 洗手 1.窗口的选择 洗手 通过对发声机理的认识 , 吃饭 语音信号可以认为是短时平稳的 。 洗手 在 550ms的范围内 , 吃饭 语音频谱特性和一些物理特性参数基本保持不变 。 洗手 我们将每个短时的语音称为一个分析帧 。 洗手 一般帧长取 1030ms。 洗手 我们采用一个长度有限的窗函数来截取语
5、音信号形成分析帧 。 洗手 通常会采用矩形窗和汉明窗 。 洗手 图 1.1给出了这两种窗函数在帧长 N=50时的时域波形 。 洗手 洗手 洗手 0 20 40 6000 . 20 . 40 . 60 . 811 . 21 . 41 . 61 . 82矩形窗s a m p l ew(n)0 20 40 6000 . 10 . 20 . 30 . 40 . 50 . 60 . 70 . 80 . 91h a n m i n g 窗s a m p l ew(n)洗手 图 1.1 矩形窗和 Hamming窗的时域波形 洗手 洗手 矩形窗的定义 : beef一个 N点的矩形窗函数定义为如下 洗手 洗手
6、2 1 , 00,() nNwn 其 他 洗手 洗手 hamming窗的定义 : beef一个 N点的 hamming窗函数定义为如下 洗手 洗手 0 .54 0 .46 c o s( 2 ) , 010,()n nNNwn 其 他=洗手 洗手 这两种窗函数都有低通特性 , 吃饭 通过分析这两种窗的频率响应幅度特性可以发现(如图 1.2) :beef矩形窗的主瓣宽度小( 4*pi/N) , 吃饭 具有较高的频率分辨率 , 吃饭 旁瓣峰值大( -13.3dB) , 吃饭 会导致泄漏现象 ; beef汉明窗的主瓣宽 8*pi/N, 吃饭 旁瓣峰值低( -42.7dB) , 吃饭 可以有效的克服泄漏
7、现象 , 吃饭具有更平滑的低通特性 。 洗手 因此在语音频谱分析时常使用汉明窗 , 吃饭 在计算短时能量和平均幅度时通常用矩形窗 。 洗手 表 1.1对比了这两种 窗函数的主瓣宽度和旁瓣峰值 。 洗手洗手 洗手 0 0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9 1- 8 0- 6 0- 4 0- 2 00矩形窗频率响应归一化频率 ( f / f s )幅度/dB0 0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9 1- 1 0 0- 5 00H a m m i n g 窗频率
8、响应归一化频率 ( f / f s )幅度/dB洗手 图 1.2 矩形窗和 Hamming窗的频率响应 洗手 洗手 表 1.1 矩形窗和 hamming窗的 主瓣宽度和旁瓣峰值 洗手 洗手 洗手 2.短时能量 洗手 洗手 由于语音信号的能 量随时间变化 , 吃饭 清音和浊音之间的能量差别相当显著 。 洗手 因此对语音的短时能量进行分析 , 吃饭 可以描述语音的这种特征变化情况 。 洗手 定义短时能量为 : bef洗手 221 ( ) ( ) ( ) ( ) nn m m n NE x m w n m x m w n m ,吃饭 其中 N 为窗长 洗手 特殊地 , 吃饭 当采用矩形窗时 , 吃饭
9、 可简化为 : bef洗手 2 ()nmE x m 洗手 窗函数 主瓣宽度 旁瓣峰值 矩形窗 4*pi/N 13.3dB hamming 8*pi/N 42.7dB 3 图 1.3 和图 1.4 给出了不同矩形窗和 hamming 窗长的短时能量函数 , 吃饭 我们发现 : bef在用短时能量反映语音信号的幅度变化时 , 吃饭 不同的窗函数以及相应窗的长短均有影响 。 洗手 hamming 窗的效果比矩形窗略好 。 洗手 但是 , 吃饭 窗的长短影响起决定性作用 。 洗手 窗过大( N 很大) , 吃饭 等效于很窄的低通滤波器 , 吃饭 不能反映幅度 En 的变化 ; bef窗过小( N 很小
10、) , 吃饭 短时能量随时间急剧变化 , 吃饭 不能得到平滑的能量函数 。 洗手 在 11.025kHz 左右的采样频率下 , 吃饭 N 选为 100200 比较合适 。 洗手洗手 短时能量函数的应用 :1)可用于区分清音段与浊音段 。 洗手 En 值大对应于浊音段 , 吃饭 En 值小对应于清音段 。 洗手 2)可用于区分浊音变为清音或清音变为浊音的时间(根据 En 值的变化趋势) 。洗手 3)对高信噪比的语音信号 , 吃饭 也可以用来区分有 无语音(语音信号的开 始点或终止点) 。 洗手 无信号(或仅有噪声能量)时 , 吃饭 En 值很小 , 吃饭 有语音信号时 , 吃饭 能量显著增大 。
11、 洗手洗手 0 2000 4000 6000 8000 10000 12000 14000 16000 18000-101s a m p l e采样幅度0 2000 4000 6000 8000 10000 12000 14000 16000 18000024s a m p l e短时能量N = 5 00 2000 4000 6000 8000 10000 12000 14000 16000 180000510s a m p l e短时能量 N = 1 5 00 2000 4000 6000 8000 10000 12000 14000 16000 180000510s a m p l e短时
12、能量 N = 2 5 00 2000 4000 6000 8000 10000 12000 14000 16000 1800001020s a m p l e短时能量 N = 3 5 00 2000 4000 6000 8000 10000 12000 14000 16000 1800001020s a m p l e短时能量N = 4 5 0洗手 图 1.3 不同矩形窗长的短时能量函数 洗手 4 0 2000 4000 6000 8000 10000 12000 14000 16000 18000-101s a m p l e采样幅度0 2000 4000 6000 8000 10000 1
13、2000 14000 16000 18000012s a m p l e短时能量N = 5 00 2000 4000 6000 8000 10000 12000 14000 16000 18000024s a m p l e短时能量 N = 1 5 00 2000 4000 6000 8000 10000 12000 14000 16000 180000510s a m p l e短时能量 N = 2 5 00 2000 4000 6000 8000 10000 12000 14000 16000 180000510s a m p l e短时能量 N = 3 5 00 2000 4000 60
14、00 8000 10000 12000 14000 16000 180000510s a m p l e短时能量N = 4 5 0洗手 图 1.4 不同 hamming 窗长的短时能量函数 洗手 2.2 MATLAB 的语音信号 频域 特征分析 洗手 1、 beef短时傅立叶变换 洗手 由于语音信号是短时平稳的随机信号 , 吃饭 某一语音信号帧的短时傅立叶变换的定义为 : bef洗手 ( ) ( ) ( )jw jw mn mX e x m w n m e ( 2.1) 洗手 其中 w(n-m)是实窗 口函数序列 , 吃饭 n 表示某一语音信号帧 。 洗手 令 n-m=k, 吃饭 则得到 洗手
15、 ( )( ) ( ) ( )jw jw n kn kX e w k x n k e ( 2.2) 洗手 于是可以得到 洗手 ( ) ( ) ( )jw jw n jw kn kX e e w k x n k e ( 2.3)洗手 假定 洗手 ( ) ( ) ( )jw jw kn kX e w k x n k e ( 4)洗手 则可以得到 洗手 ( ) ( )jw jwn jwnnX e e X e ( 5) 洗手 同样 , 吃饭 不同的窗口函数 , 吃饭 将得到不同的傅立叶变换式的结果 。 洗手 由上式可见 , 吃饭 短 时傅立叶变换5 有两个变量 : befn 和 , 吃饭 所以它既是时
16、序 n 的离散函数 , 吃饭 又是角频率 的连续函数 。 洗手 与离散傅立叶变换逼近傅立叶变换一样 , 吃饭 如令 =2k/N, 吃饭 则得离散的短时傅立叶吧如下 : bef洗手 2/2/( ) ( )( ) ( ) , (0 1 )j k Nnnj k m NmX e X kx m w n m e k N (6)洗手 洗手 2、 beef语谱图 洗手 水平方向是时间轴 , 吃饭 垂直方向是频率轴 , 吃饭 图上的灰度条纹代表各个时刻的语音短时谱 。 洗手 语谱图反映了语音信号的动态频率特性 , 吃饭 在语音分析中具有重要的实用价值 。 洗手 被成为可视语言 。洗手洗手 语谱图的时间分辨率和频
17、 率分辨率是由窗函数的特性决定的 。 洗手 时间分辨率高 , 吃饭 可以看出时间波形的每个周期及共振峰随时间的变化 , 吃饭 但频率分辨率低 , 吃饭 不足以分辨由于激励所形成的细微结构 , 吃饭 称为宽带语谱图 ; bef而窄带语谱图正好与之相反 。 洗手洗手 宽带语谱图可以获得较高的时间分辨率 , 吃饭 反映频谱的快速时变过程 ; bef窄带语谱图可以获得较高的频率分辨率 , 吃饭 反映频谱的精细结构 。 洗手 两者相结合 , 吃饭 可以提供带两与语音特性相关的信息 。洗手 语谱图上因其不同的灰度 , 吃饭 形成不同的纹路 , 吃饭 称之为 “声纹 ”。 洗手 声纹因人而异 , 吃饭 因此
18、可以在 司法 、 beef安全等场合得到应用 。 洗手洗手 洗手 3、 beef复倒谱和倒谱 洗手 复倒谱 ()nx 是 x(n)的 Z 变换取对数后的逆 Z 变换 , 吃饭 其表达式如下 :洗手 1ln ( )Z Z x nx ( 7)洗手 倒谱 c(n)定义为 x(n)取 Z 变换后的幅度对数的逆 Z 变换 , 吃饭 即 洗手 1( ) ln | ( ) |c n z X z ( 8)洗手 在时域上 , 吃饭 语音产生模型实际上是一个激励信号与声道冲激响应的卷积 。 洗手 对于浊音 , 吃饭 激励信号可以由周期脉冲序列表示 ; bef对于清音 , 吃饭 激励信号可以由随机噪声序列表示 。
19、洗手 声道系统相当于参数缓慢变化的零极点线性滤波器 。 洗手 这样经过同态处理后 , 吃饭 语音信号的复倒谱 , 吃饭 激励信号的复倒谱 , 吃饭 声道系统的复倒谱之间满足下面的关系 : bef洗手 ( ) ( ) ( )s n e n v n ( 9) 洗手 由于倒谱对应于复倒谱的偶部 , 吃饭 因此倒谱与复倒谱具有同样的特点 , 吃饭 很容易知道语音信号的倒谱 , 吃饭 激励信号的倒谱以及声道系统的倒谱之间满足下面关系 : bef洗手 ( ) ( ) ( )s e vn n nc c c ( 10)洗手 浊音信号的倒谱中存在着峰值 , 吃饭 它的出现位置等于该语音段的基音周期 , 吃饭 而
20、清音的倒谱中则不存在峰值 。 洗手 利用这个特点我们可以进行清浊音的判断 , 吃饭 并且可以估计浊音的基音周期 。 洗手洗手 洗手 1 短时 谱 洗手 6 0 2 4 6 8 10 12x 1 04-1- 0 . 500 . 51o r i g i n a l s i g n a l0 50 100 150 200 250 300- 1 0 0- 5 0050短时谱洗手 图 2.1 短时谱 洗手 3 倒谱和复倒谱 洗手 图 2.3、 bef2.4 是加矩形窗和汉明窗的倒谱图和复倒谱图 ,图中横轴的单位是 Hz, 吃饭 纵轴的单位是dB。 洗手 洗手 0 50 100 150 200 250 3
21、00-1- 0 . 500 . 51加矩形窗时的倒谱0 50 100 150 200 250 300-505加矩形窗时的复倒谱洗手 图 2.3 加矩形窗 时 的 倒谱和 复倒谱图 洗手 洗手 7 0 50 100 150 200 250 300-2-101加汉明窗时的倒谱0 50 100 150 200 250 300- 2 0- 1 001020加汉明窗时的复倒谱洗手 图 2.4 加汉明窗 时倒谱和复 倒谱图 洗手 洗手 洗手 0 100 200 300 400 500 600-3-2-101点数 N倒谱幅度0 100 200 300 400 500 600- 2 0 0- 1 0 0010
22、0时间 / m s幅度/dB洗手 图 2.5 倒谱图 洗手 洗手 2.3 MATLAB 的语音信号 LPCC 洗手 如果声道特性 H(Z)用式 (14)所示的全极点模型表示 , 吃饭 有 洗手 111 p nnnSzHzIz az ( 16) 洗手 8 式中 , 吃饭 S(z)和 I(z)分别为语音信号 ns 和激励源 ni 的 Z 变换 。 洗手 对人的听觉来说 , 吃饭 浊音是最重要的语音信号 。 洗手 对于浊音 , 吃饭 模型的激励信号源 e(n)是以基音周期重复的单位脉冲 , 吃饭 此时有 洗手 1Iz 。 洗手 可得 ns 的 Z 变换 S(z)为 洗手 111 p nnnSz az
23、 ( 17) 洗手 式中 , 吃饭 1,2, ,ia i p 为 P 阶线性预测系数 。 洗手 根据倒谱的定义 , 吃饭 对具有最小相位特征的语音信号 ns , 吃饭 有 洗手 1ln nnnS z C z c z ( 18)洗手 式中 , 吃饭 nc 为语音信号的倒谱 。 洗手 将式 (16)代入式 (17), 吃饭 并对两边 1z 求导 , 吃饭 得 洗手 11111 , 1nn n k n kkcakc a a c n pn ( 19)洗手 根据上式即可由线性预测系数通过递推得到倒谱系数 , 吃饭 将这样得到的倒谱称为线性预测倒谱系数 。 洗手洗手 洗手 3. 程序部分 洗手 1) 短时
24、能量 洗手 ( 1)加矩形窗 洗手 a=wavread(beifeng.wav);beef洗手 subplot(6,1,1),plot(a);beef洗手 N=32;beef洗手 for i=2:6 洗手 h=linspace(1,1,2.(i-2)*N); beef%形成一个矩形窗 , 吃饭 长度为 2.(i-2)*N 洗手 En=conv(h,a.*a);beef% 求短时能量函数 En 洗手 subplot(6,1,i),plot(En);beef洗手 if(i=2) legend(N=32);beef洗手 elseif(i=3) legend(N=64);beef洗手 elseif(i
25、=4) legend(N=128);beef洗手 elseif(i=5) legend(N=256);beef洗手 elseif(i=6) legend(N=512);beef洗手 end 洗手 end 洗手 洗手 ( 2)加汉明窗 洗手 9 a=wavread(beifeng.wav);beef洗手 subplot(6,1,1),plot(a);beef洗手 N=32;beef洗手 for i=2:6 洗手 h=hanning(2.(i-2)*N); beef%形成一个汉明窗 , 吃饭 长度为 2.(i-2)*N 洗手 En=conv(h,a.*a);beef% 求短时能量函数 En 洗手
26、subplot(6,1,i),plot(En);beef洗手 if(i=2) legend(N=32);beef洗手 elseif(i=3) legend(N=64);beef洗手 elseif(i=4) legend(N=128);beef洗手 elseif(i=5) legend(N=256);beef洗手 elseif(i=6) legend(N=512);beef洗手 end 洗手 end 洗手 2)短时谱 洗手 clear 洗手 a=wavread(beifeng.wav);beef洗手 subplot(2,1,1),洗手 plot(a);beeftitle(original sig
27、nal);beef洗手 grid 洗手 N=256;beef洗手 h=hamming(N);beef 洗手 for m=1:N 洗手 b(m)=a(m)*h(m)洗手 end 洗手 y=20*log(abs(fft(b)洗手 subplot(2,1,2)洗手 plot(y);beeftitle(短时谱 );beef洗手 grid 洗手 洗手 洗手 3)倒谱 和复倒谱 洗手 ( 1)加矩形窗时的倒谱和复倒谱 洗手 clear 洗手 a=wavread(beifeng.wav,4000,4350);b eef洗手 N=300;b eef洗手 h=linspace(1,1,N);b eef洗手 fo
28、r m=1:N 洗手 b(m)=a(m)*h(m);b eef洗手 end 洗手 c=cceps(b);b eef洗手 c=fftshift(c);b eef洗手 d=rceps(b);b eef洗手 d=fftshift(d);b eef洗手 10 subplot(2,1,1)洗手 plot(d);b eeftitle(加矩形窗时的倒谱 )洗手 subplot(2,1,2)洗手 plot(c);b eeftitle(加矩形窗时的复倒谱 )洗手 ( 2)加汉明窗时的倒谱和复倒谱 洗手 clear 洗手 a=wavread(beifeng.wav,4000,4350);b eef洗手 N=300
29、;b eef洗手 h=hamming(N);b eef洗手 for m=1:N 洗手 b(m)=a(m)*h(m);b eef洗手 end 洗手 c=cceps(b);b eef洗手 c=fftshift(c);b eef洗手 d=rceps(b);b eef洗手 d=fftshift(d);b eef洗手 subplot(2,1,1)洗手 plot(d);b eeftitle(加汉明窗时的倒谱 )洗手 subplot(2,1,2)洗手 plot(c);b eeftitle(加汉明窗时的复倒谱 )洗手 洗手 4.总结 洗手 本文 从时域和频域上对语音 信号进行了分析 , 吃饭 根据语音信号的特
30、殊性 , 吃饭 着重分析了短时能量和短时傅里叶变换 , 吃饭 运用了倒谱进行更深的分析 。 洗手 这些参数可以运用到人机交互上 , 吃饭 特别是 LPCC 能够很好的提取出来运用到语音信号识别上 , 吃饭 从而进行智能设计 。 洗手洗手 洗手 参考文献 洗手 1 杨行竣 , 吃饭 迟惠生语音信号数字处理 M.电子工业出版社 , 吃饭 1995 49-80 洗手 2 覃爱娜 , 吃饭 韩华说话人识别技术及其在工厂自动控制系统中的应用 J.长沙电力学院学报 , 吃饭 2003, 吃饭 18( 2) : b eef68-70 洗 手 3 丁美玉 , 吃饭 高西全数字信号处理 M.西安电子科技大学出版社 , 吃饭 2004 68-71 洗手 4 李宏松 , 吃饭 苏健民 , 吃饭 黄英来 , 吃饭 于慧伶基于声音信号的特征提取方法的研究 J .信息技术 , 吃饭 2006, 吃饭 26( 6) : beef91-94 洗手 5 谢霞 , 吃饭 李宏 , 吃饭 郑俊基于 GMM 的说话人辨认系统及其改进 J电脑与信息技术 , 吃饭 2006,吃饭 14( 2) : b eef 48-51 洗手 洗手 洗手