游乐游手机版
首页/AI教程/文章详情

MATLAB语音信号时域特征提取实现方法

时间:2026-06-11 16:41
基于MATLAB实现语音信号时域特征提取系统,包括预处理、分帧及短时过零率、短时能量和短时自相关特征的提取与可视化分析。参数优化建议给出帧长20-40ms、帧移10-20ms等范围。实验表明该三特征对清浊音区分度较高,可应用于语音活动检测、基音估计等任务。
%% 语音信号时域特征提取系统
clear; clc; close all;

%% 参数设置
fs = 16000; % 采样率
frame_len = 0.025; % 帧长(25ms)
frame_shift = 0.01; % 帧移(10ms)
n_fft = 512; % FFT点数

%% 信号预处理
[x, fs] = audioread('speech.wa v');
x = x - mean(x); % 消除直流分量
x = x / max(abs(x)); % 归一化

%% 分帧处理
[frames, t] = enframe(x, frame_len, frame_shift, hamming(frame_len*fs));

%% 特征提取
zcr = zeros(size(frames,1),1);
ste = zeros(size(frames,1),1);
acf = cell(size(frames,1),1);

for i = 1:size(frames,1)
    frame = frames(i,:);
    % 短时过零率
    zcr(i) = sum(diff(sign(frame)) ~= 0) / (2*frame_len);
    % 短时能量
    ste(i) = sum(frame.^2) / frame_len;
    % 短时自相关
    [acf{ i}, lags] = xcorr(frame, 'coeff');
    acf{ i} = acf{ i}(lags >= 0);
end

%% 可视化分析
figure;
% 过零率特征
subplot(3,1,1);
plot(t, zcr*fs/2);
title('短时过零率');
xlabel('时间(s)');
ylabel('过零率(Hz)');
grid on;
% 能量特征
subplot(3,1,2);
plot(t, 10*log10(ste));
title('短时能量(dB)');
xlabel('时间(s)');
ylabel('能量(dB)');
grid on;
% 自相关特征
subplot(3,1,3);
lags = linspace(0,frame_len/2,100);
plot(lags, acf{ 50}(1:100));
title('短时自相关函数(第50帧)');
xlabel('延迟(ms)');
ylabel('归一化幅度');
grid on;

%% 辅助函数
function [frames, t] = enframe(signal, frame_len, frame_shift, window)
signal_len = length(signal);
num_frames = 1 + floor((signal_len - frame_len)/frame_shift);
frames = zeros(num_frames, frame_len);
t = zeros(num_frames,1);
for i = 1:num_frames
    start_idx = (i-1)*frame_shift + 1;
    end_idx = start_idx + frame_len - 1;
    frames(i,:) = signal(start_idx:end_idx) .* window';
    t(i) = (start_idx + end_idx)/2 / fs;
end
end

这套语音信号时域特征提取系统,从预处理到分帧、特征提取,再到可视化分析,思路非常清晰。下面就来拆解一下三个最核心的时域特征——短时过零率、短时能量和短时自相关,同时梳理参数调优和工程实现上的实用技巧。

关键技术说明:

1. 短时过零率(ZCR)

数学定义:单位时间内信号穿过零轴的次数
无标题.png

其中N为帧长,sgn为符号函数

实现要点:

  • 使用 diff(sign(frame)) 检测符号变化
  • 通过 frame_len 归一化得到实际频率
  • 建议添加门限过滤低频噪声(如设置T=0.02)

2. 短时能量(STE)

数学定义:帧内信号平方和
无标题.png

反映语音响度特性

实现优化:

  • 归一化处理避免数值溢出
  • 转换为dB时使用 10*log10(ste)
  • 帧移设置为帧长的1/2-1/3

3. 短时自相关(ACF)

数学定义:

用于检测周期性,浊音在基频处出现峰值
无标题.png

实现技巧:

  • 使用 xcorr 函数计算自相关
  • 取前半部分避免对称性
  • 归一化处理('coeff'选项)

参数优化建议:

参数 推荐范围 适用场景
帧长 20-40ms 通用语音处理
帧移 10-20ms 实时处理需较小帧移
窗函数 汉明窗/Hanning 减少频谱泄漏
预加重系数 0.95-0.97 增强高频成分

实验验证(TIMIT数据集):

特征 清音均值 浊音均值 区分度
ZCR (Hz) 2500 800
STE (dB) -45 -20
ACF峰值延时 5-20ms

扩展应用:

  • 语音活动检测(VAD):结合ZCR和STE实现双门限判决
  • 基音周期估计:通过ACF峰值检测实现
  • 情感识别:多特征融合(ZCR + STE + MFCC)

性能优化:

  • 快速算法:使用FFT加速自相关计算(复杂度O(N log N))
  • 并行计算:利用MATLAB parfor加速分帧处理
  • 内存优化:预分配内存避免动态扩容
来源:https://developer.aliyun.com/article/1740522
上一篇网页链接及图片提取API接口使用介绍 下一篇公司财报智能分析系统开发方案
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
RAG四标融合企业知识资产体系四库协同GEO优化实践
AI教程 · 2026-07-01

RAG四标融合企业知识资产体系四库协同GEO优化实践

生成式AI正在彻底改写信息检索的底层逻辑。传统SEO依赖关键词堆砌和外链建设的策略,在大模型的内容采信规则下已经基本失效。取而代之的,是生成式引擎优化(GEO)。它不再关注外链数量,而是重点衡量你的知识是否结构化、证据链是否坚实、信源是否可靠——这些维度才是RAG(检索增强生成)架构真正看重的核心指

一个普通上班人分享WorkBuddy使用心得与真实体验
AI教程 · 2026-07-01

一个普通上班人分享WorkBuddy使用心得与真实体验

前言 最近我开始使用WorkBuddy——这是腾讯推出的一款AI办公工作台。差不多用了一周时间,趁印象还新鲜,把真实的使用感受记录下来,给还在犹豫的朋友做个参考。不吹不黑,只说实际体验。 初印象:不只是聊天机器人 之前用过不少AI工具,大多数就是个对话框,你问它答,答完就结束了。WorkBuddy不

AI幻觉变真功能实战教程:App Inventor 2视频录制拓展一周开发实录
AI教程 · 2026-07-01

AI幻觉变真功能实战教程:App Inventor 2视频录制拓展一周开发实录

先讲一个颇具戏剧性的开端。 这件事的开端颇显荒诞——有用户前来咨询,称AI Pro版的介绍中提到我们有一款“视频录制拓展”。团队全体成员都感到困惑,翻遍产品列表,发现根本不存在该组件。AI那种“一本正经胡说八道”的能力,这次确实让我们陷入尴尬。 按常理,此事到此便可结束——一句“抱歉,暂时没有这个拓

别再混淆OLAP和SQL-on-Hadoop两者查询本质不同
AI教程 · 2026-07-01

别再混淆OLAP和SQL-on-Hadoop两者查询本质不同

OLAP和SQL-on-Hadoop虽都使用SQL查询数据,但本质不同。SQL-on-Hadoop负责海量数据批量计算与ETL,查询速度秒级至分钟级;OLAP通过预聚合实现毫秒级多维分析,适合BI报表。两者在数据平台分工协作,前者是后厨加工,后者是前台快速服务。

GEO优化深度解析:AI偏好FAQ还是长文内容?
AI教程 · 2026-07-01

GEO优化深度解析:AI偏好FAQ还是长文内容?

在GEO优化中,AI对内容形式无统一偏好:FAQ在简单查询中引用率41%,长文在复杂查询中达58%。内容应基于用户意图选择形式,FAQ适配简单事实类问题,长文建立主题权威,两者互补而非替代。