getf0.m

来自「语音处理平台 可以分析语音能量 第一振峰频率等数据」· M 代码 · 共 38 行

M
38
字号
function [avgF0, f01] = getf0 (sr,x)

% Copyright (c) 1995 Philipos C. Loizou
%

n_samples=length(x);

fRate=floor(40*sr/1000);  % -- Use a 40 msec segment
nFrames=floor(2*n_samples/fRate); 
	
k=1;
f01=zeros(1,nFrames-1);
f0=zeros(1,nFrames-1);
m=1;
avgF0=0.0;
for t=1:nFrames-1
		yin=x(k:k+fRate-1);
		
		a=pitch(fRate,sr,yin);
		f0(t)=a;
		if t>2 %--do some median filtering
		  z=f0(t-2:t);
		  md=median(z);
		  f01(t-2)=md;
		end

		if a > 0
		  avgF0=avgF0+a;
		  m=m+1;
		end
	
k=k+fRate/2;
    
end

avgF0=avgF0/m;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?