刘博
摘要:该文在MATLA平台上设计了一个语音信 采集和语谱图分析系统,该系统通过计算机声卡和MATLAB数据采集工具实现了语音信 的实时采集,然后利用MATLAB的语音工具箱voicebox完成了对采集的语音信 进行了频谱分析-语谱图。
关键词:语音信 采集;MATLAB;语谱图
中图分类 :TP311 文献标识码:A 文章编 :1009-3044(2015)11-0177-02
Speech Signal Collection and Spectrum Analysis Based on MATLAB
LIU Bo
(Henan University of Animal Husbandry and Economy, Zhengzhou 450044, China)
Abstract: This paper presents a visualization system based on MATLAB speech signal collection and spectrum analysis. The system through a computer sound card and MATLAB data collection tool to achieve a real-time collection of the speech signal, and then using MATLAB voicebox completed the collection of speech signal spectrum analysis – spectrogram.
Key words: speech signal collection; MATLAB; spectrogram
语音信 数字处理是一门涉及面很广的交叉学科,它和语音学、语言学、数理统计以及神经生理学、数字信 处理等有密切的联系,语音信 是人类最有效、最常用和最便捷的交换信息方式,在信息化时代,在高度发达的信息 会中用现代手段研究语音信 ,使人们能够更加有效的方法对语音信 进行传送、存储、识别、合成、增强具有很强的实用意义。
语音信 的处理分析工作选用了MATLAB平台。MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB的数据分析和处理功能非常强大,可以用它来对语音信 进行分析、处理。MATLAB 将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,在编程效率、程序可读性、可移植性和可扩充性上,MATLAB远远优于其它的高级编程语言,而且编程易学、直观,代码容易符合人们的思维习惯,相比较其他编程语言,更加简洁直观,具有很大的优势。
1 语音信 采集系统的设计
语音信 的频谱分量主要集中在300Hz~3400Hz的范围内。在进行语音信 数字处理时,最先接触到并且也最直观的额是它的时域波形。为了获取一段语音信 的时域波形,首先用话筒将语音信 转换成电信 ,再用A/D转换把电信 转换成数字化采样信 存进计算机,随后再读取,并画出波形图。
计算机系统系统中自带的声卡可用于语音信 的采集,性能良好并且价格低廉,一般声卡都可以实现双通道、高保真、16位分辨精度,可以满足许多工程测量和科学实验。MATLAB自带的语音工具箱voicebox提供了一整套专门用于语音信 采集的命令和函数,可用来语音信 的采集。该部分主要使用了wavrecord该函数进行语音信 的录取,采样率设为44100Hz,笔者录制一句话的语音信 。
主要代码如下:
fs=44100; % 采样率
duration=2; % 采样时间为2秒
fprintf (‘按任意键后开始%g 秒采集:\n’,duration); pause %提示信息
fprintf(‘采集中……\n’); %提示信息
y=wavrecord(duration*fs, fs); % 采集的数据点数是duration*fs个
fprintf(‘采集结束\n’);
nbits=16; % 每个数据点用16位二进制表示
wavwrite(y, fs, nbits, ‘test.wav’); % 以test.wav为文件名
2 语音信 频谱分析-语谱图
2.1 语谱图的产生
根据短时分析的方法,我们认为10ms到30ms这样长度的语音信 是平稳信 ,可以对这一段信 做傅里叶变换,称作短时傅里叶变换。短时傅里叶变换的定义如下:
[Xn(ejω)=m=-∞∞x(m)n-m)e-jωm] (1)
其中[w(n)]是窗函数,[Xn(ejω)]既是[ω]的函数,也是[n]的函数。
令[ω=2πk/N,(0≤k≤N-1)],则信 的短时傅里叶变换为:
[Xn(k)=Xn(e2πkj/N)=m=-∞∞x(m)n-m)e-2πkj/N] (2)
由功率谱函数(能量密度谱函数)的定义,短时功率谱和短时傅里叶变换有如下关系
[Sn(ejω)=Xn(ejω)(ejω)Xn(ejω)|2] (3)
不难证明,它是[x(n)]的短时自相关函数的傅里叶变换
[Sn(ejω)=k=-∞∞Rn(k)ejωk] (4)
其中
[Rn(k)=m=-∞∞x(m)n-m)m+k)n-m-k)] (5)
以时间[n]作为横坐标,[ω]作为纵坐标,由[Sn(ejω)]的值作为点[(x,ω)]处的灰度级,这样画出来的二维图像(其实是三维图像,第三维用灰度,即颜色深浅来表示了)被称作语谱图(Spectrogram)。
2.2 流程图及实现程序
利用MATLAB的语音工具箱voicebox完成了对采集的语音信 进行了频谱分析-语谱图,根据采集到的录音数据,将其读入到语谱图的显示程序中,流程图如图1所示。
图1 语谱图显示流程图
实验结果如图2所示,根据采集的语音信 ,对其进行分帧加窗并计算能量谱密度,记得到语音信 的语谱图,此图的水平方向是时间轴,垂直方向是频率轴,图中或深或浅的黑色条纹表示各个时刻的短时谱。其中与时间轴平行的几条深黑色条纹称为“横杠”,也就是所谓的共振峰,这些条纹越密集表示基因频率越高。另外在某一时刻条纹颜色的深浅表示了这一刻信 的强度,颜色越红表示强度越大,蓝色表示强度低。因此我们可以从语谱图中观察到语音信 的时域和频域的变化情况。
图2 实验结果
3 小结
参考文献:.
[1]蔡莲红.现代语音技术基础与应用[M].北京:清华大学出版 ,2003:30-31.
[2]李富强.基于MATLAB的语谱图显示与分析[J].微计算机信息,2005,21(10-3).
[3]题原.基于MATLAB 的语音信 采集和分析系统的可视化设计[J].齐齐哈尔大学学 ,2006,22(6).
[4]王正林.精通MATLAB[M]. 3版.北京: 电子工业出版 ,2013.
相关资源:Yalefree雅乐简谱打谱软件_打谱软件-WindowsServer工具类资源…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!