文献

计算机时代2005年第8期

25

语音端点检测及其在Matlab中的实现

(桂林工学院科技处,广西桂林541004)

摘要:介绍了语音的基本特征和语音端点检测的基本方法,对基于Matlab的端点检测算法进行了分析,然后,进行一个语音截取合并的实验,结果表明:用Matlab进行语音处理不仅编程简便,也具有很好的效果。关键词:语音端点;检测;短时能量;过零率;Matlab

1引言

语音端点检测是语音分析、合成和识别中的一个重要环节,目的是从包含语音的一段信号中找出语音的起始点及结束点,从而只存储和处理有效语音信号。有效的端点检测不仅可以减少数据的存储量和处理时间,而且能排除无声段的噪声干扰。端点检测的困难在于无声段或者语音段前后人为呼吸等产

生的杂音、语音开始处的弱摩擦音或弱爆破音以及终点处的鼻

音,这些使得语音的端点比较模糊,需要综合利用语音的各种信号特征,从而确保定位的精确性,避免包含噪音信号和丢失语音信号。本文讨论语音的特点、端点检测的一般方法及在

Matlab中的实现方法,最后给出一个简单的应用实例。

2语音特点及端点检测方法

语音信号一般可分为无声段、清音段和浊音段。无声段是

背景噪声段,平均能量最低。浊音段为声带振动发出对应的语

音信号段,平均能量最高。清音段为空气在口腔中的摩擦、冲击或爆破而发出的语音信号段,平均能量居于两者之间。

采用基于能量的算法来检测浊音通常是可行也是可靠的。但对清音而言,除非信号具有极高的信噪比,例如在隔音室中录制的高保真度录音(对于这种高信噪比录音,最低电平语音

的能量超过背景噪声能量几倍到几十倍),否则,采用能量算法从背景噪声中鉴别出清音就不够可靠了。

此时,需要用到语音信号的另一重要特征,即过零率:一定时间内信号穿越零电平的次数。清音段与无声段的波形特点有明显不同,无声段信号变化比较缓慢,清音段信号由气流摩擦产生,在幅度上的变化比较剧烈,穿越零电平次数较多。经验表

明,通常清音段过零率最大,无声段的过零率的变化范围较大。

可见,振幅特征适合检测浊音,过零率适合检测清音,为了同时检测两者,一般综合利用两种特征。

实际处理中,由于语音信号是一种非平稳信号,一般对数字化语音进行分帧处理,并认为在一帧内它是平稳的。一帧内的信号能量值和过零次数被称为短时能量和过零率。下面分别描述它们的定义和检测方法。

2.1短时能量

1—1.1

E=艺Ix(n)I或E=乞xZ(n)

n=l

n=1

方数据式中x(n)为信号幅度,N为语音帧长。

检测过程:将短时能量与给定能量门限Gl相比,若大于它并能在一定时问内达到门限G2并维持给定帧数(防止把短时脉冲误判为语音),则认为是语音起点,否则继续向下找。判定起点后,继续将短时能量与给定门限G3比较,当小于它并能在一定时间内降到门限G4并维持给定帧数(防止将语音中的小停顿误判为语音结束),认为是终点,否则继续向下找。

2.2过零率

N一1

11

ZCR=乞Ix(n)一x(n+1)l

n=l

求过零率时,为避免无声段过零率太大,一般还要设定一个门限delta,规定只有当相邻样点异号且差值大于delta时,才将过零率数值加l。

检测过程:用短时能量方法找到语音起点后,再计算起点之前几帧的过零率,把求得的结果与给定门限比较,连续3帧都大于门限则认为其中第一帧是语音起点。因为有些音节以清

音开始,单用能量方法检测可能会漏音,而用过零率则可以避

免这种情况。

端点检测可以采用上面描述的分别用短时能量和过零率与门限比较的双门限算法,也可以把短时能量和过零率两者的乘积(能频积)作为检测参数,此时只需进行单一门限比较。3基于Matlab的语音处理

Madab(MarxLaboratory)是目前非常流行的科学计算

和工程计算软件工具,提供了一个高性能的数值计算、信号处理和可视化开发环境以及大量具有特殊用途的函数和工具箱,

其中包括基本的语音信号处理函数。

基本语音处理函数包括wav文件的读写函数,声卡的录音

和放音函数及波形的显示函数等,还有一些第三方开发的语音处理工具(如Voicebox等)。利用这些函数和工具,我们就可

以方便地进行一些语音的处理工作。例如:

(1)语音采样可以用以下命令实现:

x=wavrecord(k+fs,fs,‘dtype’):

其中x为语音采样信号,fs为采样率,k为采样秒数,。dtype’为

采样数据类型。

(2)语音数据也可以用以下命令从语音文件中读取:

x=wavread('filename。)

matlab浊音段和清音段,语音端点检测及其在Matlab中的实现相关推荐

  1. MATLAB语音端点检测

    第一章 绪论 Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交 ...

  2. matlab浊音段和清音段,基于Matlab编写的语音端点检测1

    wavread 基于Matlab编写的语音端点检测 专业: 班级: 姓名: 指导教师: 2011年6月18日 一.实验目的 1.学会MATLAB的使用,掌握MATLAB的程序设计方法: 3.掌握语音处 ...

  3. 语音端点检测 matlab 论文,基于MATLAB的语音端点检测

    求助,哪位高手帮忙看看以下程序全不? 基于Matlab编写的语音端点检测程序 function [x1,x2] = vad(x) %幅度归一化到[-1,1] x = double(x); x = x ...

  4. 【数字语音处理】Part3 语音信号的短时时域分析:短时平均、短时自相关、语音端点检测、基音周期估值

    Part3 语音信号的短时时域分析 一.帧和加窗的概念 二.短时平均能量 三.短时平均幅度函数 四.短时平均过零率 五.短时自相关分析 六.基于能量和过零率的语音端点检测 七.基音周期估值 八.总结 ...

  5. 语音端点检测 php,几种语音端点检测方法简介

    几种语音端点检测方法简介 2011年第11期福建电脑 67 几种语音端点检测方法简介 邢亚从 (苏州市职业大学江苏苏州215000) [摘要]:语音的端点检测在语音的编码.语音识别.语音增强.说话人识 ...

  6. 语音端点检测c语言,语音端点检测的方法.ppt

    语音端点检测的方法 语音端点检测的方法 演讲者:刘德体 语音端点检测的目的和意义 基于短时能量和短时平均过零率的端点检测 基于倒谱特征的端点检测 基于熵的端点检测 基于复杂性的端点检测(KC复杂性和C ...

  7. 双门限法语音端点检测(Python实现)

    写在前面 花了几天时间写完了第一个视听觉信号处理的实验,其实还挺简单的,在这里分享一下. 本文介绍一下利用双门限法进行语音端点检测的方法,该方法主要利用了语音的短时能量和短时过零率,关于这两个语音特征 ...

  8. 基于短时能量的语音端点检测算法

    1 带噪语音信号 日常生活中噪声无处不在,说话声.风声.雨声.打字声.机器运行的声音等都可定义为噪声.噪声的种类也很多,每种都有其各自的特点,对有用信息的影响程度也不同.噪音主要包括稳定噪音和非稳定噪 ...

  9. 语音端点检测(1):双门限法(简单教学版)

    为什么要有语音端点检测?或者换个角度说,静默检测.静音检测. 以下摘自百度. 语音活动检测(Voice Activity Detection,VAD)又称语音端点检测,语音边界检,是指在噪声环境中检测 ...

最新文章

  1. 多平台Gstreamer Multiplatform
  2. [转载]无需软件合并多个TS流文件
  3. [转]linux tar 解压命令总结
  4. TestNG 入门教程
  5. Hard Disk Drive HDU - 4788——24行代码AC,解题报告
  6. oracle数据库安装过程中出现主目录不兼容的问题
  7. 计算机桌面壁纸怎样拉伸,win10桌面壁纸怎么拉伸?手把手教你拉伸win10桌面壁纸的方法...
  8. Oracle学习笔记:oracle和serverver在过程sql中通过select对变量进行赋值的区别
  9. NOIP 2016(不是游记)
  10. mysql5.1 utf8_编译安装mysql 5.1使用utf8解决乱码问题
  11. 【开发工具】之windows下gnu makefile编写
  12. 今天看到了和我男朋友不一样的程序员!好帅哦!
  13. 入住博客园,小庆一下
  14. 梦到曦和二字与公司起名
  15. Servlet中将JavaBean对象传递到JSP页
  16. linux抓包UDP流量
  17. 【微波技术与电路】02 有界空间的微波
  18. bzoj4448(LCT)
  19. java批量生成条形码图片 打包zip
  20. 制作价目表用什么软件

热门文章

  1. 喜马拉雅歌曲下载工具 - xmlyfetcher
  2. SaaS应用选型,必须考虑的10个安全问题
  3. JAVA开发(token过期续期)
  4. 【猪脸识别哪家强?】智能养猪成千万级别饲养规模杀手锏
  5. Matlab 三维相图,用MATLAB绘制Pb-Sn-Sb三维立体相图
  6. 阿里全体系中台架构分享
  7. 两种PI电流调节器分析比较
  8. 实现滚动轴承仿真信号
  9. python 读取yml文件_python读取yaml配置文件
  10. 谈谈对java线程的认识