文件名称:
Matlab语音信号处理程序-f11.m
开发工具:
文件大小: 2kb
下载次数: 0
上传时间: 2019-08-13
详细说明: Matlab语音信号处理程序-f11.m 可以对语音信号的单个字,词进行频率及过零率分析 clc [filename,pathname]=uigetfile; [x,Fs]=wavread; %幅度归一化到[-1,1] x = double; x = x / max); %常数设置 FrameLen = 240; FrameInc = 80; amp1 = 10; amp2 = 2; zcr1 = 10; zcr2 = 5; maxsilence = 3; % 6*10ms = 30ms minlen = 15; % 15*10ms = 150ms status = 0; count = 0; silence = 0; %计算过零率 tmp1 = enframe, FrameLen, FrameInc); tmp2 = enframe , FrameLen, FrameInc); signs = <0; diffs = >0.02; zcr = sum; %计算短时能量 amp = sum, FrameLen, FrameInc)), 2); %调整能量门限 amp1 = min/4); amp2 = min/8); %开始端点检测 x1 = 0; x2 = 0; x3=0; x4=0; for n=1:length goto = 0; switch status case {0,1} % 0 = 静音, 1 = 可能开始 if amp > amp1 % 确信进入语音段 x1 = max; status = 2; silence = 0; count = count 1; elseif amp > amp2 | ... % 可能处于语音段 zcr > zcr2 status = 1; count = count 1; else % 静音状态 status = 0; count = 0; end case 2, % 2 = 语音段 if amp > amp2 | ... % 保持在语音段 zcr > zcr2 count = count 1; else % 语音将结束 silence = silence 1; if silence < maxsilence % 静音还不够长,尚未结束 count = count 1; elseif count < minlen % 语音长度太短,认为是噪声 status = 0; silence = 0; count = 0; else % 语音结束 status = 3; end end case 3, break; end end count = count-silence/2; x2 = x1 count -1; subplot plot axis -1 1]) ylabel; line; line; subplot plot; axis 0 max]) ylabel; line,max], Color, red); line,max], Color, red); subplot plot; axis 0 max]) ylabel; line,max], Color, red); line,max], Color, red); 复制代码
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
相关搜索: