刘博

摘要:该文在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远远优于其它的高级编程语言,而且编程易学、直观,代码容易符合人们的思维习惯,相比较其他编程语言,更加简洁直观,具有很大的优势。

本文设计的语音信号采集和语谱图可视化系统是通过计算机声卡将得到的模拟语音信号转换成数字信号存入计算机硬盘,然后将存储的数字语音信号调入到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)?w(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)?w(n-m)e-2πkj/N] (2)

由功率谱函数(能量密度谱函数)的定义,短时功率谱和短时傅里叶变换有如下关系

[Sn(ejω)=Xn(ejω)?Xn(ejω)?=|Xn(ejω)|2] (3)

不难证明,它是[x(n)]的短时自相关函数的傅里叶变换

[Sn(ejω)=k=-∞∞Rn(k)ejωk] (4)

其中

[Rn(k)=m=-∞∞x(m)?w(n-m)?x(m+k)?w(n-m-k)] (5)

以时间[n]作为横坐标,[ω]作为纵坐标,由[Sn(ejω)]的值作为点[(x,ω)]处的灰度级,这样画出来的二维图像(其实是三维图像,第三维用灰度,即颜色深浅来表示了)被称作语谱图(Spectrogram)。

2.2 流程图及实现程序

利用MATLAB的语音工具箱voicebox完成了对采集的语音信号进行了频谱分析-语谱图,根据采集到的录音数据,将其读入到语谱图的显示程序中,流程图如图1所示。

图1 语谱图显示流程图

实验结果如图2所示,根据采集的语音信号,对其进行分帧加窗并计算能量谱密度,记得到语音信号的语谱图,此图的水平方向是时间轴,垂直方向是频率轴,图中或深或浅的黑色条纹表示各个时刻的短时谱。其中与时间轴平行的几条深黑色条纹称为“横杠”,也就是所谓的共振峰,这些条纹越密集表示基因频率越高。另外在某一时刻条纹颜色的深浅表示了这一刻信号的强度,颜色越红表示强度越大,蓝色表示强度低。因此我们可以从语谱图中观察到语音信号的时域和频域的变化情况。

图2 实验结果

3 小结

本文利用计算机的声卡,非常便捷的完成了语音信号的采集,叙述了语谱图的产生,并且利用MATLAB的语音工具箱voicebox完成了对采集的语音信号进行了语谱图显示和分析,非常便捷的对语音信号进行处理。

参考文献:.

[1]蔡莲红.现代语音技术基础与应用[M].北京:清华大学出版社,2003:30-31.

[2]李富强.基于MATLAB的语谱图显示与分析[J].微计算机信息,2005,21(10-3).

[3]题原.基于MATLAB 的语音信号采集和分析系统的可视化设计[J].齐齐哈尔大学学报,2006,22(6).

[4]王正林.精通MATLAB[M]. 3版.北京: 电子工业出版社,2013.

matlab语音信号生成语谱图,基于MATLAB的语音信号采集和语谱图分析相关推荐

  1. matlab凸轮转子泵型线设计坐标变换,基于Matlab的双头双螺杆泵转子型线设计

    ? 基于Matlab的双头双螺杆泵转子型线设计 基于Matlab的双头双螺杆泵转子型线设计 朱君,张帆,吴高捷,孙亚静 (扬州大学机械工程学院,江苏扬州 225127) 摘要:选用长幅外摆线加上外摆线 ...

  2. matlab svm 语音识别,【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】...

    一.简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数 ...

  3. matlab 能谱图,基于Matlab平台上γ能谱光滑处理

    核 动 力 工 程 Nuclear Power Engineering 第 28 卷 第 3 期 2 0 0 7 年6 月 Vol. 28. No.3 Jun. 2 0 0 7 文章编号:0258-0 ...

  4. matlab 双轴图,基于MATLAB图像识别的双轴寻光系统的制作方法

    本发明涉及新能源与图像处理与识别技术领域,具体涉及一种基于MATLAB图像处理的双轴寻光系统. 背景技术: 随着现在新能源技术的发展,如何高效地开发和利用好太阳能成为人们在新能源领域探索的焦点之一.光 ...

  5. MATLAB光栅的相移矩阵,(最新整理)基于MATLAB的相移光纤光栅反射谱仿真

    <(最新整理)基于MATLAB的相移光纤光栅反射谱仿真>由会员分享,可在线阅读,更多相关<(最新整理)基于MATLAB的相移光纤光栅反射谱仿真(10页珍藏版)>请在人人文库网上 ...

  6. matlab 信号的频谱分析,实验五基于Matlab的信号频谱分析(复杂)

    实验五基于Matlab的信号频谱分析(复杂) 本次实验注意:<实验五MALTAB基础知识(简单)> <实验五 基于Matlab的信号频谱分析(复杂)> 选作一个即可 实验五 基 ...

  7. matlab复杂周期信号类建立,实验五 基于Matlab的信号频谱分析(复杂)

    本次实验注意:<实验五MALTAB基础知识(简单)> <实验五 基于Matlab的信号频谱分析(复杂)> 选作一个即可 实验五 基于Matlab的信号频谱分析 (一) 实验目的 ...

  8. qam已调信号matlab相干解调,通信原理课程设计-基于MATLAB的M-QAM调制及相干解调的设计与仿真.doc...

    通 信 原 理 课 程 设 计 报 告 题 目:基于MATLAB 的M-QAM调 制及相干解调的设计与仿真 班 级:通信工程 1411 姓 名: 成 绩: 日 期:2016 年 12 月 21 日 基 ...

  9. matlab 复频谱图,基于MATLAB实现连续信号与系统复频域分析

    题目:基于MATLAB实现连续信号与系统复频域分析 摘要 拉普拉斯变换(Laplace Transform),是工程数学中常用的一种积分变换.它是为简化计算而建立的实变量函数和复变量函数间的一种函数变 ...

  10. 在word中编辑matlab图,基于Matlab在Word中插入函数图形

    在Word中插入已有的图片.图形,或者是用Word提供的绘图工具插入图形是非常方便的,但要在Word中精准地插入复杂的数学函数图像图形,Word本身提供的绘图功能就显得力不从心了,将Word与MatL ...

最新文章

  1. NopCommerce 增加 Customer Attributes
  2. C++中的覆盖(重写)、重载、隐藏(重定义)、多态!
  3. 《Excel 职场手册:260招菜鸟变达人》一第 13 招 利用数据验证给单元格添加注释,不用批注...
  4. c语言贪吃蛇_C语言贪吃蛇完整代码
  5. SDCMS 1.1sp1的XSS漏洞的挖掘与利用
  6. 企业如何降低应用安全风险?
  7. Python解析JSON数据的基本方法
  8. android rsa最大加密明文大小_Android 登录密码信息进行RSA加密示例
  9. NLPIR python测试
  10. 用Gson解析json
  11. 找不到该项目,请确认该项目的位置的办法
  12. visual studio 2019/2022 安装时卡住,一直正在提取文件时的亲测有效的解决方案
  13. 给硬件工程师的入门课-硬件工程师的基本素质和技能要求
  14. 使用JS实现对页面的繁体简体翻译转换
  15. python获取北京时间_python获取标准北京时间的方法
  16. predefined Serial item
  17. 再安利几个看片追剧的App
  18. TPU中的指令并行和数据并行
  19. postgres查询序列_PostgreSQL之序列(Sequence)
  20. 中国天气网全城市代码

热门文章

  1. 计算机查看图片的打开方式,win7系统图片打开方式没有windows照片查看器的解决步骤...
  2. php 小程序发送公众号的模板消息
  3. 如何通过WebEx Meeting进行远程IT协作?
  4. Visual Studio 2012下载资源 百度云
  5. 【转】简洁帮助文档制作 EasyCHM V3.84 build545 下载(含破解及注册码)
  6. segnet和unet区别_SegNet图像分割网络直观详解
  7. Qt之QThread介绍(常用接口及实现、自动释放内存、关闭窗口时停止线程运行、同步互斥)
  8. dart常用正则表达式
  9. Inpaint 5.6 图片去水印工具 限时免费
  10. Javascript基础——函数