基音检测 matlab,基于MATLAB基音检测分析.doc

基于MATLAB基音检测分析

基于MATLAB基音检测分析

摘要:基音检测作为语音信号处理的重要手段,被广泛地应用于语音的合成、编码及识别等一系列语音信号处理技术问题。基音检测的准确性对于要求极高的语音识别、合成、分析、压缩编码等等都有重要的意义。该文用自相关函数法、平均幅度差函数法和倒谱法这三种常用的基音检测方法,运用MATLAB编程实现,对语音信号的基音周期轨迹图进行了比较分析,并由此得出和倒谱法进行语音信号基音的检测更为精确。

关键词:基音检测;MATLAB;自相关函数法;平均幅度差函数法;倒谱法

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)18-4293-03

1 概述

语音是人类相互之间进行信息交流的基本手段和重要载体,随着现代通信科学技术的迅速发展,尤其是计算机的日趋普及,对语音信号的处理发挥着越来越重要的作用。汉语中的声调对于语音的理解很重要,同时相同的汉语在不同的语气或词义下均有不同的声调[1]。因此,基音检测的准确性对于汉语语音信号的识别极为重要。

根据声带的震动情况,我们一般将语音信号分为清音和浊音两种[2]。清音和普通的白噪声相似,尚未发现明显的规律性;而浊音就是俗称的有声语言,携带着语音的大部分能量,并且具有明显的周期性。当人们在发出浊音的时候,气流往往会通过声门迫使声带产生规律性的震动,我们称之为激励脉冲串。通过声带震动产生的频率被定义为:基音频率,同样地,就有了基音周期[3]。通常所指的基音检测实际上就是一种对基音周期的估计,结果是希望能够找出与声带的振动频率相一致或较为吻合的轨迹曲线。

语音信号的处理包括四大类,分别为:语音合成、语音识别、语音编码以及语音识别 [2]。其中,准确提取语言信号参数对于整个的语音信号处理是至关重要的。只有当某些可以表示语音信号本质特征的参数被准确地提出,这些参数才可以被利用进行有效的语音合成,语音识别以及语音的压缩解码处理,其中语音周期提取的准确性会直接影响到语音合成的真实性,因此在众多参数中就会显得尤为重要[4]。

2 研究方法

2.1 自相关函数法(ACF函数法)

当采用ACF函数算法进行基音检测时,主要是利用了短时自相关函数能够取到最大值这一性质。使用此方法时,可以利用一个窗函数,使窗本身不动,而语音信号移动。窗口的长度[N]大于等于两倍的基音周期,当[N]越大,函数波形的细节会显示地越清晰,更加有利于基音的检测,然而会有繁重的计算量。

这一算法适用于在噪声环境下基音的提取。通过上面的性质可以知道,自相关函数都是在基音周期处出现峰值,并且标出出很强的规律性。在一般情况下,基波分量不是最强的分量,并且多变的谐波使得语音信号的波形变得较为复杂,对于基音检测是一大难题,经常发生的基频估计结果往往是:二次倍频或二次分频的实际基音频率。同时,还有一些清浊混杂的情况,使得基音检测成为目前的一大难题。

2.2 平均幅度差函数法(AMDF函数法

得到语音信号基音周期的具体过程是:首先对语音信号的序列进行z变换,然后对其取模再取对数,最后再进行逆z变换。根据语音信号的产生及瞬时平稳的特性可以得知:声道滤波器频谱与声源频谱的乘积就得到了短时谱的语音信号。对于浊音信号而言,脉冲激励源的周期性表现为快速变化的周期性细致结构[8]。语音信号倒谱的取得是:首先对语音信号的短时谱取对数,然后再进行反傅里叶变换,因此,浊音信号的倒谱会出现周期性的冲激,就可以从倒谱波形中提取出相对应的基音周期。

3 基于MATLAB基音检测

本文所采用的语音文件为:在windows附件中的录音机功能录制2-3秒 “啊”的四个音调,采样频率为11.025KHz,位数为16位,声道为单声道。

从已得到的语音信号中选取一段较理想的样本,取样点数应为帧长的整数倍。对语音信号的采样,通过软件MATLAB对语音文件的计算得知其语音长度为2.5秒,若采样频率为11KHz,共计27500个采样点。采样模块从采样频率为11KHz的语音信号中截取11000个样点进行分析,取帧长为20ms,即每帧为220个样点值,共分为50帧。运用matlab编写程序得出以下结果:

图1是原始语音信号的波形,图2是采样信号的波形,从原始语音信号中截取11000个样点进行分析.

图3是用ACF函数法得到的基音轨迹图,这一算法适用于在噪声环境下基音的提取。由图中可知,信号在是在基音周期处出现峰值,并且标出出很强的规律性。

图4是用AMDF函数法得到的基因轨迹图,平均幅度差函数法只需进行加减法和取绝对值等简单的计算,算法简单,运算量比自相关函数法大大减少,容易在计算机实现。

图5是运用倒谱法得到的基音检测轨迹图.倒谱法对于干净语

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php多线程 static变量,private static和public static的比较:多线程间

private static和public static的比较,区别在于修改的范围不同,但作用域都是全局的即整个进程内共享,与具体线程无关。以下是测试代码:声明静态内部变量的抽象类package atest.privateStatic;public abstract class TypeObject {p…

matlab 数值解 期权顶级啊,潮盈期权院高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍...

主题:高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍会场流程:13:30--14:00:参会嘉宾到场签名14:00--14:45:期权知识14:45--15:25:期权交易策略使用15:25--15:35:茶歇15:35--16:35&#…

nginx怎么升级php的版本号,nginx 升级指南,最详细的nginx升级步骤

查看nginx当前版本通过nginx -V 命令就可以查看当前的版本,已经当前版本安装时候的一些nginx命令[rootlocalhost sbin]# ./nginx -Vnginx version: nginx/1.2.9built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)configure arguments: --prefix/nginx_instal1.下…

oracle sum函数返回类型,Oracle / PLSQL SUM函数

这个Oracle教程解释了如何使用Oracle / PLSQL SUM函数。SUM(x) 添加x中的所有值,并返回总和。SUM函数对一组行进行操作,并返回一行输出。 Null值被SUM函数忽略。您可以使用DISTINCT关键字排除重复条目。语法Oracle / PLSQL SUM函数的语法是:S…

pdo oracle返回参数游标,PDOStatement::closeCursor

PDOStatement::closeCursorPDOStatement::closeCursor — 关闭游标,使语句能再次被执行。(PHP 5 > 5.1.0, PECL pdo > 0.9.0)说明语法bool PDOStatement::closeCursor ( void )PDOStatement::closeCursor() 释放到数据库服务的连接,以便发出其他 S…

php的用例图箭头怎么画,需求中如何画用例图 - china008的个人空间 - OSCHINA - 中文开源技术交流社区...

UML用例图用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是 设计系统分析阶段的起点,设计人员根据客户的需求来创建…

php stmp 授权码问题,PHPmailer 使用网易126发送邮件的问题

最近使用PHPMailer库连接网易的smtp.126.com邮件服务发送邮件总是返回连接失败Mailer Error: SMTP connect() failed.换过swiftmailer库也是一样的结果。这是使用新的网易帐号才会有的问题,因为新的网易帐号需要开启客户端授权码才能使用SMTP服务。旧帐号是没有这个…

oracle学习数据,Oracle从入门到精通的学习笔记

本次知识点:1.认识SQL的介绍2.掌握scott用户的数据结构3.查询语句之简单查询1.SQL:SQL是指结构化查询语言,在80年代的时候,基本存在80多种数据库,每一种数据库都有自己的的操作命令,也就导致了程序员从一个数据库到另一个数据库的转化时变的极为麻烦,基本就要从新学习.在70年代…

linux创建新进程就分配空间,linux几种创建进程的方法

在Linux中主要提供了fork、vfork、clone三个进程创建方法。在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时,通过一个系统调用表映射到sys_fork(),sys_vfork(),sys_clone(),再在这三个函数中去调用do_fork()去做具体的创建进程工作。forkfork创建…

java文件下载至linux乱码,JAVA 文件下载乱码问题解决办法

页面设置隐藏的iframe页面下载按钮id"btnDown" href"javascript:void(download(btnDown))" >下载模板页面JS脚本function download(id){$("#reqFrame").attr("src",encodeURI("/servlet/Common?actiondownloadByPath&fil…

强行更改linux服务器时间,加强Linux服务器安全的20项建议

一般情况下用 Linux 做桌面在默认配置下是很安全的,我在一定程度上同意这个说法(很值得商榷的话题)。不过 Linux 内置的安全模型和工具做得确实很到位,用户只需进行简单的调整和自定义就可以加强 Linux 服务器安全。与恶意用户做斗争对于所有 Linux 系统…

webshell提权教程linux,Linux下WEBSHELL提权

用phpshell2.0和Linux Kernel2.6x 本地溢出代码配合提ROOT,现在不少LINUX主机都还有这个本地溢出漏洞。前提&#xff1a;1、目标机上安装了GCC能编译源码2、Kernel 2.6.x (> 2.6.13 && < 2.6.17.4)因为是在webshell里溢出成功也得不到返回的ROOT SHELL,所…

Linux宏定义实现类成员函数,全面解析Linux内核的同步与互斥机制

http://blog.csdn.net/sailor_8318/archive/2008/06/30/2599357.aspx【摘要】本文分析了内核的同步及互斥的几种机制&#xff1a;原子运算符(atomicoperator)、自旋锁Spinlock、等待队列Waitqueue、事件Event、completion、信号量Semaphore及其优化版互斥锁&#xff0c;详细分析…

Linux命令sngre,linux gre隧道创建

linux gre隧道创建实验环境两台可以相互通信的虚拟机&#xff0c;两个虚拟机在不通的网段。如下所示host A:[[email protected] ~]# ip a1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127…

linux终端提示符含义,Linux:终端提示符 (prompt) 不如期生效原因

前言先来简单介绍下, prompt是什么鬼? 顾名思义就是提示符的意思, 看起来和我们遥远, 但实际上只要是每个接触shell的童鞋, 都有看到, 那就是我们在输命令时前面的那串提示符.例如:当然, 这个样式是可以修改的, 这就涉及到我们的PS1和PS2了, 有经验或者以前有设置过的童鞋估计…

skyeye linux qt,ARM仿真器SkyEye的安装及使用

SkyEye是一个开源软件(OpenSource Software)项目&#xff0c;中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境&#xff0c;模拟常见的嵌入式系统&#xff0c;可在SkyEye上运行μCLinux以及μC/OS-II等&#xff0c;以及各种…

Linux 读写 优化 ssd,linux ssd 优化

一、修改默认的固态硬盘(SSD)柱面大小提升Linux下固态硬盘的使用率&#xff0c;在安装Linux操作系统前就应该做相关工作。系统会先在磁盘上创建分区&#xff0c;通常创建的分区包含固定数量的柱面&#xff0c;而默认情况下&#xff0c;每个柱面由16065512个字节的扇区组成。现在…

linux中dev目录的作用,Linux 的dev目录详解和Linux系统各个目录的作用

Linux /dev目录详解在linux下&#xff0c;/dev目录是很重要的&#xff0c;各种设备都在下面。下面简单总结一下&#xff1a; dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部…

linux 类型排序,Linux命令之排序命令sort使用实例

名称&#xff1a;sort位置&#xff1a;/usr/bin/sort权限&#xff1a;所有用户用法&#xff1a; sort [OPTION]... [FILE]...sort [OPTION]... --files0-fromF选项&#xff1a;-b --ignore-leading-blanks 忽略最前面的空格-f --ignore-case fold lower case to…

2g 双核电脑 linux,9208)(奔腾双核E5200/2G/320G)电脑详细技术

处理器型&#xff1a;intel 酷睿2双核 p7350 intel 酷睿2双核 p7450 intel 酷睿2双核 t6600 intel 奔腾双核t4300 intel 奔腾双核 t4400 intel 赛扬双核 t1600 intel 赛扬双核 t3000操作系统&#xff1a;windowsvista home basic dos标配内存&#xff1a;1gb 2gb 硬盘容量&…