@Wayne-Z
2017-11-17T13:26:27.000000Z
字数 2097
阅读 4423
语音处理
本文对韵母进行了另一次梳理,将分析的频率主要集中在了0-2500HZ的区间,同时对程序解析的窗口进行了二分,使得处理更加精细。
代码如下:
fs=44000; %语音信号采样频率为44100file = 'a.wav';wavelength = length(audioread(file));term = floor(wavelength/1100);samples = [1, 2200];T = 1:term;P = ones(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));[pks2,locs,widths,proms] = findpeaks(p,'SortStr','descend');s = widths.*pks2;idx = locs(1);Sum =s(1);for j = 2 : length(s)if s(j)/Sum > 0.10Sum = Sum + s(j);idx = [idx , locs(j)];endendfor k = 1 : 2048if any(k == idx)P(k,id) = p(k);endendif 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 2500])xlabel('Time (0.05s)'); ylabel('Hz');
单韵母是由单元音充当的,普通话10个单韵母可以分为舌面元音、舌尖元音和卷舌元音三类。舌面元音是由舌面起主要作用的元音,有a、o、e、ê、i、u、ü七个;舌尖元音是由舌尖起主要作用的元音,有-i(前)、-i(后)两个;er是卷舌元音。下面对各单元音的声纹进行分析
ê不作为音节使用, 不与任何辅音声母相拼,只构成复韵母ie、üe,并在书写时省去上面的附加符号“ˆ”。
-i(前)、-i(后)分别作为zi、ci、si、ri和zhi、chi、shi的韵母存在,不单独成音节。
复韵母是由两个或三个元音组成的韵母,其中的元音存在响亮和模糊的不同。响度大的元音在前的,叫做前响复韵母(ɑi、ɑo、ei、ou共4个);响度大的元音在后的,叫做后响复韵母(ia、ie、ua、uo、üe共5个);响度大的元音在中间的,叫做中响复韵母(iao、iou、uai、uei共4个)。
前响复韵母的声纹符合其名称特点,呈现出前一个元音能量大,后一个能量小的特性。
后响复韵母的声纹符合其名称特点,呈现出后一个元音能量大,前一个能量小的特性。
中响复韵母的声纹符合其名称特点,呈现出中间的元音能量大,前后一个能量小的特性。能量图呈现出工字型。
鼻韵母指带有鼻辅音的韵母,又叫做鼻音尾韵母。前鼻音尾韵母指的是鼻韵母中以-n为韵尾的韵母。普通话中的前鼻音尾韵母有8个:ɑn、en、in、un、iɑn、uɑn、üɑn、uen。后鼻音尾韵母指的是鼻韵母中以-ng为韵尾的韵母。普通话中的后鼻音尾韵母有8个:ang、eng、ing、ong、iang、uang、ueng、iong。