【基音周期】分别通过端点检测算法、线性预测法、倒谱法、自相关法实现语音信号的基音周期估计MATLAB仿真

目录

1.算法仿真效果

2.MATLAB源码

3.算法概述

3.1 端点检测算法

3.2  线性预测法 (Linear Prediction, LP)

3.3 倒谱法 (Cepstral Method)

3.4 自相关法 (Autocorrelation Method)

4.部分参考文献

5.程序内容,运行方法和源码获取

5.1 程序包括

5.2 运行方法

5.3 源码获取


1.算法仿真效果

matlab2022a仿真结果如下:

端点检测

线性预测法

倒谱法

自相关法

2.MATLAB源码

0003..............................................................................
wlen=320; inc=80;              % 分帧的帧长和帧移
T1=0.05;                       % 设置基音端点检测的参数
[x,fs]=audioread('dat.wav');                        % 读入wav文件
x=x-mean(x);                                % 消去直流分量
x=x/max(abs(x));                            % 幅值归一化

[voiceseg,vosl,SF,Ef,period]=pitch_Corr(x,wlen,inc,T1,fs); %基于自相关法的基音周期检测

fn=length(SF);
time = (0 : length(x)-1)/fs;                % 计算时间坐标
frameTime = FrameTimeC(fn, wlen, inc, fs);  % 计算各帧对应的时间坐标
subplot 211, plot(time,x,'k');  title('语音信号')
axis([0 max(time) -1 1]); grid;  ylabel('幅值');
subplot 212; plot(frameTime,period,'k'); hold on;
xlim([0 max(time)]); title('自相关基音周期检测'); 
grid; xlabel('时间/s'); ylabel('样点数');
for k=1 : vosl
    nx1=voiceseg(k).begin;
    nx2=voiceseg(k).end;
    nxl=voiceseg(k).duration;
    fprintf('%4d   %4d   %4d   %4d\n',k,nx1,nx2,nxl);
    subplot 211
    line([frameTime(nx1) frameTime(nx1)],[-1 1],'color','r','linestyle','-');
    line([frameTime(nx2) frameTime(nx2)],[-1 1],'color','b','linestyle','--');
    subplot 212
    line([frameTime(nx1) frameTime(nx1)],[0 150],'color','r','linestyle','-');
    line([frameTime(nx2) frameTime(nx2)],[0 150],'color','b','linestyle','--');
end

3.算法概述

       语音信号的基音周期估计是语音处理中的一个重要环节,对于语音识别、合成、分析等领域有着基础性的意义。基音周期通常指的是连续两个声门脉冲(或基音脉冲)之间的时间间隔,反映了语音信号的基本频率特征。以下是通过端点检测算法、线性预测法、倒谱法、自相关法四种方法实现基音周期估计的详细原理及数学表述。

3.1 端点检测算法

      端点检测主要用来确定语音信号的开始和结束点,以此去除静音部分对基音周期估计的影响。然而,它也可以作为基音周期检测的一个预处理步骤,确保分析的信号段内包含连续的周期性结构。

3.2  线性预测法 (Linear Prediction, LP)

        线性预测法通过建立当前样本值与过去样本值之间的线性关系来预测未来样本值,其残差(预测误差)包含了基音周期信息。

3.3 倒谱法 (Cepstral Method)

倒谱法利用倒谱分析来提取语音信号的周期性特征,尤其是在基音相关的低频区域。

3.4 自相关法 (Autocorrelation Method)

       自相关法直接利用信号自身的相关性来估计基音周期,因为周期性信号的自相关函数会在基音周期的整数倍处出现峰值。

       综上所述,每种方法各有侧重,端点检测是预处理步骤,线性预测法侧重于信号模型的建立,倒谱法则利用频域变换来突出周期性特征,而自相关法则直接从时域特性出发寻找周期性。实际应用中,这些方法往往需要根据具体任务和信号质量综合考虑,甚至结合使用以提高基音周期估计的准确性和鲁棒性。

4.部分参考文献

[1]吴鹏,赵风海,黄洋.一种结合线性预测倒谱法和组合滑动窗口平滑法的基音周期估计改进算法[J].南开大学学报:自然科学版, 2019(2):6.DOI:CNKI:SUN:NKDZ.0.2019-02-006.

[2]张景扩,彭龑.一种基于倒谱法的基音周期检测改进算法[J].电声技术, 2017(7):113-116.DOI:10.16311.j.audioe.2017.h7.24.

[3]陈盼弟,黄华,何凌.基于自相关和倒谱法的基音检测改进算法[J].计算机应用与软件, 2015, 32(1):4.DOI:10.3969/j.issn.1000-386x.2015.01.042.

5.程序内容,运行方法和源码获取

5.1 程序包括

matlab程序,WAV测试样本

5.2 运行方法

1.在matlab的左侧的当前文件夹窗口;

2.四个Runme分别对应四个基音估计算法;

5.3 源码获取

step1.打开博客主页的左侧推广栏查看,或扫博客文章底部信息

step2.然后用电脑打开网页链接,输入文章标题搜索

V

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simuworld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值