@Wayne-Z
2017-11-17T13:25:27.000000Z
字数 2301
阅读 3193
语音处理
本文对韵母进行了另一次梳理,将分析的频率主要集中在了0-2500HZ的区间,同时对程序解析的窗口进行了二分,使得处理更加精细。
代码如下:
fs=44000; %语音信号采样频率为44100file = 'a-1.wav';wavelength = length(audioread(file));term = floor(wavelength/1100);samples = [1, 2200];T = 1:term;P = zeros(2048,term);for id = 1:termx = audioread(file,samples);t = (0:length(x)-1)/fs;y = fft(x,4096); %对信号做2048点FFT变换f = fs*(0:2047)/4096;p= abs(y(1:2048));[pks,locs,widths,proms] = findpeaks(p,'SortStr','descend');s = widths.*pks;idx = 1;Sum =s(1);%P(locs(1),id) = s(1);for j = 2 : length(s)if s(j)/Sum > 0.10Sum = Sum + s(j);idx = [idx , j];%P(locs(j),id) = s(j);endend% for k = 1 : 2048% if any(k == idx)% P(k,id) = p(k);% end% end% 用于显示单纯的振幅峰值% 筛选出0-1000,1000-2000,2000-3000的频率ids = [];idm = [];idl = [];for i = 1:length(idx)if f(idx) <=1000ids = [ids,idx(i)];elseif f(idx) <= 2000;idm = [idm,idx(i)];elseidl = [idl, idx(i)];endend%将各个区间内的多条化为一条As = sum(s(ids));Am = sum(s(idm));Al = sum(s(idl));Fs = floor(dot( s(ids),locs(ids))/As);Fm = floor(dot( s(idm),locs(idm))/Am);Fl = floor(dot( s(idl),locs(idl))/Al);Ps = dot(s(ids),pks(ids))/As;Pm = dot(s(idm),pks(idm))/Am;Pl = dot(s(idl),pks(idl))/Al;if ~isnan(Fs)P(Fs,id) = Ps;endif ~isnan(Fm)P(Fm,id) = Pm;endif ~isnan(Fl)P(Fl,id) = Pl;endif 1100*(id+2) <= wavelengthsamples = [1100*id, 1100*(id+2)];elsesamples = [1100*id,wavelength];endendsurf(T,f,P,'edgecolor','none'); axis tight;view(0,90); % 通常看时谱图时都采用这个角度,若需要可以采用set(gca, 'YLim',[0 3000])xlabel('Time (0.025s)'); ylabel('Hz');
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
ê不作为音节使用, 不与任何辅音声母相拼,只构成复韵母ie、üe,并在书写时省去上面的附加符号“ˆ”。
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
中响复韵母的声纹符合其名称特点,呈现出中间的元音能量大,前后一个能量小的特性。能量图呈现出工字型。
归一化处理后
归一化处理后
归一化处理后
归一化处理后!
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后
归一化处理后