基于Matlab语音信号的采集与分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MATLAB 的语音信号分析和处理
【摘要】:
本文通过用三星手机系统自带录音机采集了一段语音,wav格式转换后再Matlab平台上对其进行了时域分析,频谱分析,分析语音信号的特性。利用函数对采样频率进行控制,比较其波形。通过对两段铃声(分别为男声、女声)进行分析初步找出男声女声的特点和区别。应用Matlab平台对录制的语音信号加入噪声,对比加噪前后的语音信号的时域和频域特性,回放加噪语音信号。
【关键词】:
语音信号;频域特性 ; 时域特性 ; 滤波器
目录
一、背景介绍
1.1 语音信号的概述
1.2 语音信号处理工具的选择
二、语音信号的录制采集和分析
2.1 语音信号的采集
2.2 语音信号的读入与打开
2.3 取不同采样频率得出的波形比较
三、对男声、女声语音信号特点的分析
3.1女声(vfemale.wav)男声(vmale.wav)的时域分析
3.2女声(vfemale.wav)男声(vmale.wav)的频域分析
四、加噪声与滤波处理分析
4.1 高斯白噪声(SNR=30)
4.2 单频正弦噪声
五、心得与体会
一、背景介绍
1.1语音信号的概述
语言是人类创造的,是人类区别于其他地球生命的本质特征之一。人类用语言交流的过程可以看成是一个复杂的通信过程,为了获取便于分析和处理的语音信源,必须将在空气中传播的声波转变为包含语音信息并且记载着声波物理性质的模拟(或数字)电信号,即语音信号,因此语音信号就成为语音的表现形式或载体。
1.2语音信号处理工具的选择
语音信号的进一步处理分析工作选用了Matlab平台。Matlab是一种科学计算软件,专门以矩阵的形式处理数据。Matlab将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,不断完善Matlab产品以提高产品自身的竞争能力Matlab的数据分析和处理功能十分强大,运用它来进行语音信号的分析、处理和可视化相当便捷。在编程效率、程序可读性、可移植性和可扩充性上Matlab远远优于其它的高级编程语言,而且编程易学、直观,代码非常符合人们的思维习惯。另外Matlab为用户提供了丰富的windows图形界面设计方法,使用户能够在利用其强大的数值计算功能的同时可设计出友好的图形界面,它受到了越来越多的用户的欢迎。
Matlab几乎可以在各种机型和操作系统上运行,所以在可移植性和可扩充性上,Matlab远优越于其他的高级编程语言。Matlab语言具有强大的数值计算能力和视图能力,其偏微分方程工具箱提供了有限元求解的一个强大而灵活的环境,并且有限元网格可做精细划分以满足要求。但是,和其他的高级语言相比,Matlab程序的执行速度较慢。在目前电脑处理速度不断提升的情况下,如果实时性要求不是非常高的情况下,使用Matlab开发就不存在此类问题了。
二、语音信号的录制采集与分析
2.1 语音信号的采集
用手机自带的录音软件录音,录制时配备电话耳机作为麦克风,在安静,低噪声的环境下录制。将得到的m4a格式的音频文件转换成wav格式,便于在Matlab平台上处理。本人录制的是朗读的是毛泽东的《沁园春*长沙》。
2.2 语音信号的读入与打开
在Matlab中,[y,fs,bits]=wavread('Blip',[N1 N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。[N1 N2]表示读取的值从N1点到N2点的值。
sound(y); 用于对声音的回放。向量y则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。
下面是语音信号在MATLAB中的语言程序,它实现了语音的读入与打开,并绘出了语音信号的波形频谱图。
Matlab的M文件:
[x,fs,bits]=wavread('C:\Users\Day\Desktop\02120011.wav'); sound(x,fs,bits);
X=fft(x);
subplot(221);plot(x);title('原始信号波形');
subplot(222);plot(X); title('原始信号频谱');
subplot(223);plot(abs(X));title('原始信号幅值');
subplot(224);plot(angle(X));title('原始信号相位');
程序运行可以听到自己录制的声音,得到的结果如图2.2.1所示:
2.2.1 语音信号的读入与打开
2.2.2 用Matlab得出fs,bits的值
2.3 取不同采样频率得出的波形比较
在Matlab中,resample函数用于改采样的频率,Y=resample(X,P,Q)表示对X取P/Q倍的原始采样频率,P,Q,必须为正整数。
1)fs=22050hz:(y=resample(x,1,2);)
2.3.1 采样频率fs=22050hz的波形
2)fs=11025hz: (y=resample(x,1,4);)
2.3.2 采样频率fs=11025hz的波形
3)fs=5512.5hz: (y=resample(x,1,8);)
2.3.3 采样频率fs=5512.5hz的波形
4)fs=2756.25hz:(y=resample(x,1,16);)
2.3.4 采样频率fs=2756.25hz的波形
分析:
随着采样频率的降低,录制的声音音调变得越来越高,语速也将越来越快,fs=22050hz时自己的声音特别像当红动画《神偷奶爸》里的小黄人的声音,让人捧腹。当采样频率降到1/4的时候已经听不出录制的诗词了,当采样频率降到1/128的时候已经听不到声音了。
三、对女声、男声语音信号特点的分析
选择男声的信号文件(vmale.wav)是截取一首歌曲《直到世界的尽头》的副歌部分,女声的信号文件(vfemale.wav)是截取一首歌曲《I Will Always Love You》的副歌部分,通过时序分析和频域分析进行比较。