基音周期估计

这篇博客介绍了使用自相关法进行基音周期估计的语音信号数字处理课程作业。实验中,首先对8kHz采样率、16bits/sample的语音信号进行预处理,包括分帧、滤波,然后设定阈值、进行削波处理。接着,利用MATLAB的voicebox工具箱,通过互相关计算确定基音周期。实验结果和分析讨论了低通滤波、分帧、阈值设定等步骤的必要性和影响。
摘要由CSDN通过智能技术生成
这是语音信号的数字处理课程的课程作业,这里采用了自相关法对基音周期进行估计。语料采样率: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样点)
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值