基音周期估计

这是语音信号的数字处理课程的课程作业,这里采用了自相关法对基音周期进行估计。语料采样率:8kHz;量化精度为16bits/sample;

1、 算法描述

本次实验选择了自相关方法对基音周期进行估计。算法主要包括以下几个步骤

  • 预处理:包括语料读取和分帧、滤波。
  • 阈值设定:对每帧数据选择合适的阈值进行设定
  • 削波处理:提高检测准确性
  • 互相关求基音频率:通过求解互(自)相关得到基音周期的检测值。

本实验准备使用MATLAB软件完成基音检测任务,具体步骤实现如下

  1. 下载语音工具箱voicebox,并导入MATLAB中。
  2. 使用readwav读取预料,enframe完成分帧,fir1设计低通滤波器滤波。
  3. 采用MAX函数分别取前60点最大值和最后60点最大值,选择其中较小的乘以0.68作为阈值。
  4. 对信号进行中心削波和三电平量化得到f_c,f_3。
  5. 求这两个信号的互相关值(或者分别求自相关)。取20-160点中的最大值,如果大于0值处1/4,认为是基音周期,否则认为基音周期为0.

2. 实验代码

MATLAB代码如下所示

 1 %% 基音检测-语音信号的数字处理作业
 2 % 本代码实现了语音信号的基音检测功能,采用了自相关方法处理。
 3 %
 4 % * 作者:曹文慧
 5 % * 日期:2015-04-15
 6 %
 7
 8 %% 预处理
 9 %%
10 % 清空工作区
11 clc;clear all;close all;
12 %%
13 % 读取预料,同时对其进行低通滤波(900Hz)和分帧
14 [y,fs,wmode,fidx]=readwav(‘MaoYiSheng.wav‘,‘p‘,-1,-1);
15 f=enframe(y,160);       %分析帧长:20ms(160样点)
16 lpf_900 = fir1(39,900/fs);
17 f_l = conv2(f,lpf_900,‘same‘);
18 figure;plot(f_l(5,:));xlabel(‘n‘);ylabel(‘幅值‘);title(‘语音信号波形(低通滤波)‘);
19 %% 阈值设定
20 %%
21 % 对每帧预料进行阈值选择
22 f_l_max = [max(abs(f_l(:,1:60)),[],2) max(abs(f_l(:,101:160)),[],2)];
23 CL = 0.68*min(f_l_max,[],2);
24 figure; stem(CL);xlabel(‘帧序号‘);ylabel(‘阈值大小‘);title(‘阈值分布‘);
25 CL = repmat(CL,1,160);
26 %% 削波处理
27 %%
28 % 三电平量化
29 f_3 = zeros(size(f));
30 f_3(f>CL) = 1;
31 f_3(f<-CL) = -1;
32 figure;plot(f_3(5,:));xlabel(‘n‘);ylabel(‘幅值‘);title(‘语音信号波形(三电平量化)‘);
33 %%
34 % 中心削波
35 f_c = zeros(size(f));
36 f_c(f>CL) = f(f>CL) - CL(f>CL);
37 f_c(f<-CL) = f(f<-CL) + CL(f<-CL);
38 figure;plot(f_c(5,:));xlabel(‘n‘);ylabel(‘幅值‘);title(‘语音信号波形(中心削波)‘);
39 %% 互相关求基音频率
40 % 互相关 (采用卷积计算)
41 f_3_inv = f_3(:,end:-1:1);
42 f_c_inv = f_c(:,end:-1:1);
43 for n = 1:45
44     f_xcorr(n,:) = conv(f_c(n,:),f_c_inv(n,:));
45 end
46 f_xcorr = f_xcorr(:,160:319);
47 %%
48 % 找出最大值位置
49 [f_xcorr_max,f_postition] = max(f_xcorr(:,21:160),[],2);
50 f_postition = f_postition+20;
51 noPitch = f_xcorr_max<f_xcorr(:,1)/4;   % 清音检测
52 pitchFrequence = fs./f_postition;       % 基音频率
53 pitchFrequence(noPitch==1) = 0;
54 figure;stem(pitchFrequence);xlabel(‘帧序号‘);ylabel(‘基音频率(Hz)‘);
55 title(‘基音频率检测‘);grid on;

3.实验结果

4.结果分析

以下将通过几个问题,具体对基音检测进行分析。

    (1). 为何要通过低通滤波?

通过对比滤波器和波形,可以发现滤波之前有很多高频分量,而这些高频分量会对基音检测带来不利影响,选择合适的低通滤波器能消除这一影响,更好体现低频特性。

(2). 为何要分帧?

语音只有短期的平稳特性,譬如对整个语料做谱估计结果如下图所示,这样的信号是完全无法辨别基音频率的

(3). 为何要分前后段求最大幅度?

如下图所示,如果我们只求一次最大幅度,那么前面的波形就完全消失了。基音估计每帧要有两个周期,而幅度是会改变的,如果我们求最大值,那么阈值选择很有可能是不合适的。

(4). 互(自)相关求解的是什么?

互(自)相关求解的是波形之间的相似程度,也就是说对于周期信号在相邻周期时间下的互(自)相关值会很大。

(5). 削波带来了什么影响?不同的削波方式之间的差异是什么。

削波可以使得在基音周期位置呈现大的峰值,获得更良好的性能。三电平削波可以简化自相关运算,然而其性能却没有中心削波好。

时间: 2024-10-10 02:39:22

基音周期估计的相关文章

Android生命周期里你或许不知道的事

Android生命周期估计连初学者都再熟悉不过的东西了,但这里我抛出几个问题,或许大家以前没有想过或者可能认识的有些错误. 一.当A启动B时,A和B生命周期方法执行的先后顺序是怎样的?当按返回键返回时,又是怎样的?(读者可以先想想,可能会跟你的答案不一致) A--->B时,打印结果如下: 按返回键B--->A,打印结果如下: 结论:先执行当前显示Activity的onPause方法,接着执行完将要显示Activity的生命周期方法,最后再执行当前显示Activity的其它生命周期方法 二.生命

【自动语音识别课程】第二课 语音信号分析

[传送门] [自动语音识别课程]第一课 统计语音识别介绍 原文地址:http://blog.csdn.net/joey_su/article/details/36414877 转载请注明出处,欢迎交流. 概述 针对ASR的语音信号分析 特征 频谱分析 倒谱分析 标准特征:MFCC和PLP分析 动态特征 第一课的结尾提到了语音识别的框图,下图展示了信号分析技术在语音识别系统中的位置: 我们先来认识下语音的产生过程: 语音是在发音器官和声道共同作用下产生的.说话时,声带振动发出具有一定周期特性(基音

音频特征提取——常用音频特征

作者:桂. 时间:2017-05-05  21:45:07 链接:http://www.cnblogs.com/xingshansi/p/6815217.html 前言 主要总结一下常用的音频特征,并给出具体的理论分析及代码. 一.过零率 过零率的表达式为: 其中N为一帧的长度,n为对应的帧数,按帧处理. 理论分析:过零率体现的是信号过零点的次数,体现的是频率特性.因为需要过零点,所以信号处理之前需要中心化处理. code(zcr1即为过零率): for i=1:fn z=X(:,i); % 取

语音信号中的特征提取

原文链接地址:http://blog.csdn.net/u010451580/article/details/51178190 一.语音的产生简介 1.1   发音器官 人体的语音是由人体的发音器官在大脑的控制下做生理运动产生的.人体发音器官由三部分组成:肺和气管.喉.声道. 肺是语音产生的能源所在.气管连接着肺和喉,是肺与声道的联系通道.喉是由一个软骨和肌肉组成的复杂系统,其中包含着重要的发音器官--声带.声带为产生语音提供主要的激励源.声道是指声门(喉)至嘴唇的所有发音器官,包括咽喉.口腔和

音频编码介绍汇总

音频编码汇总 PCMU(G.711U) 类型:Audio 制定者:ITU-T 所需频宽:64Kbps(90.4) 特性:PCMU和PCMA都能提供较好的语音质量,但是它们占用的带宽较高,需要64kbps. 优点:语音质量优 缺点:占用的带宽较高 应用领域:voip 版税方式:Free 备注:PCMU and PCMA都能够达到CD音质,但是它们消耗的带宽也最多(64kbps).如果网络带宽比较低,可以选用低比特速率的编码方法,如G.723或G.729,这两种编码的方法也能达到传统长途电话的音质,

【转帖】WebRTC回声抵消模块简要分析

webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:回声时延估计:NLMS(归一化最小均方自适应算法):NLP(非线性滤波):CNG(舒适噪声产生).一般经典aec算法还应包括双端检测(DT). 考虑到webrtc使用的NLMS.NLP和CNG都属于经典算法范畴,故只做简略介绍,本文重点介绍webrtc的回声时延估计算法,这也是webrtc回声抵消算法区别一般算法(如视频会议中的算法)比较有特色的地方. 1) 回声时延估计回声延时长短对回声抵消器的性能有比较大的影响(此处不

webrtc 的回声抵消(aec、aecm)算法简介(转)

webrtc 的回声抵消(aec.aecm)算法简介 webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS(归一化最小均方自适应算法) 3.NLP(非线性滤波) 4.CNG(舒适噪声产生),一般经典aec算法还应包括双端检测(DT).考虑到webrtc使用的NLMS.NLP和CNG都属于经典算法范畴,故只做简略介绍,本文重点介绍webrtc的回声时延估计算法,这也是webrtc回声抵消算法区别一般算法(如视频会议中的算法)比较有特色的地方. 1

即时通讯中音频的格式介绍(上)

PCM编码(原始数字音频信号流) 类型:Audio 制定者:ITU-T 所需频宽:1411.2 Kbps 特性:音源信息完整,但冗余度过大 优点:音源信息保存完整,音质好 缺点:信息量大,体积大,冗余度过大 应用领域:voip 版税方式:Free WMA(Windows Media Audio) 类型:Audio 制定者:微软公司 所需频宽:320-112kbps(压缩10-12倍) 特性:当Bitrate小于128K时,WMA几乎在同级别的所有有损编码格式中表现得最出色,但似乎128k是WMA

拓展 - Webrtc 的回声抵消(aec、aecm)算法简介

webrtc 的回声抵消(aec.aecm)算法简介 webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS(归一化最小均方自适应算法) 3.NLP(非线性滤波) 4.CNG(舒适噪声产生),一般经典aec算法还应包括双端检测(DT).考虑到webrtc使用的NLMS.NLP和CNG都属于经典算法范畴,故只做简略介绍,本文重点介绍webrtc的回声时延估计算法,这也是webrtc回声抵消算法区别一般算法(如视频会议中的算法)比较有特色的地方. 1