变声处理.doc_第1页
变声处理.doc_第2页
变声处理.doc_第3页
变声处理.doc_第4页
变声处理.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

s,fs,nbits=wavread(wo.wav);%载入语音ss=s/max(s); %归一化L=length(s);%读入语音长度S=fft(s,L);figuresubplot(2,1,1);plot(s);title(原语音信号波形);subplot(2,1,2);plot(abs(S);title(原语音信号频谱);小孩的声音clearall,closeall,clc; %定义常数FL=80; %帧长WL=240; %窗长P=10; %预测系数个数s,fs,nbits=wavread(wo.wav); %载入语音ss=s/max(s); %归一化L=length(s);%读入语音长度FN=floor(L/FL)-2; %计算帧长%预测和重建滤波器exc=zeros(L,1); %激励信号zi_pre=zeros(P,1);%预测滤波器的状态s_rec=zeros(L,1);%重建语音zi_rec=zeros(P,1); %变调不变速滤波器exc_syn_t=zeros(L,1);%合成的激励信号s_syn_t=zeros(L,1);%合成语音last_syn_t=0;%存储上一个(或多个)段的最后一个脉冲的下标zi_syn_t=zeros(P,1);%合成滤波器的状态hw=hamming(WL);%汉明窗%依次处理每帧语音forn=3:FN %计算预测系数s_w=s(n*FL-WL+1:n*FL).*hw;%汉明窗加权后的语音AE=lpc(s_w,P);%用线性预测法计算P个预测系数 %A是预测系数,E会被用来计算合成激励的能量s_f=s(n-1)*FL+1:n*FL);%本帧语音,下面就要对它做处理 %(4)用filter函数s_f计算激励,注意保持滤波器状态exc1,zi_pre=filter(A,1,s_f,zi_pre);exc(n-1)*FL+1:n*FL)=exc1;%计算得到的激励 %(5)用filter函数和exc重建语音,注意保持滤波器状态s_rec1,zi_rec=filter(1,A,exc1,zi_rec);s_rec(n-1)*FL+1:n*FL)=s_rec1;%计算得到的重建语音%注意下面只有在得到exc后才会计算正确s_Pitch=exc(n*FL-222:n*FL);PT=findpitch(s_Pitch);%计算基音周期PTG=sqrt(E*PT);%计算合成激励的能量G%(13)将基音周期减小一半,将共振峰频率增加7000Hz,重新合成语音PT1=floor(PT/2);%减小基音周期poles=roots(A);deltaOMG=700*2*pi/8000;for p=1:10 %增加共振峰频率,实轴上方的极点逆时针转,下方顺时针转ifimag(poles(p)0poles(p)=poles(p)*exp(j*deltaOMG);elseifimag(poles(p)0poles(p)=poles(p)*exp(j*deltaOMG);elseifimag(poles(p)0poles(p)=poles(p)*exp(-j*deltaOMG);endendA1=poly(poles);ifn=27figure;zplane(1,A1);endtempn_syn_t=1:n*FL-last_syn_t;exc_syn1_t=zeros(length(tempn_syn_t),1);exc_syn1_t(mod(tempn_syn_t,PT1)=0)=G;%某一段算出的脉冲exc_syn1_t=exc_syn1_t(n-1)*FL-last_syn_t+1:n*FL-last_syn_t);s_syn1_t,zi_syn_t=filter(1,A1,exc_syn1_t,zi_syn_t);exc_syn_t(n-1)*FL+1:n*FL)=exc_syn1_t;%计算得到的合成激励s_syn_t(n-1)*FL+1:n*FL)=s_syn1_t;%计算得到的合成语音last_syn_t=last_syn_t+PT1*floor(n*FL-last_syn_t)/PT1);end%(6)s,exc和s_rec的区别figure;subplot(3,1,1),plot(exc),xlabel(n(samples),ylabel(Amplitude),title(激励信号);subplot(3,1,2),plot(s),xlabel(n(samples),ylabel(Amplitude),title(原语音信号);subplot(3,1,3),plot(s_rec),xlabel(n(samples),ylabel(Amplitude),title(重建语音信号);figure;subplot(3,1,1),plot(exc),xlabel(n(samples),ylabel(Amplitude),title(激励信号),XLim(15*FL+1,16*FL);subplot(3,1,2),plot(s),xlabel(n(samples),ylabel(Amplitude),title(原语音信号),XLim(15*FL+1,16*FL);subplot(3,1,3),plot(s_rec),xlabel(n(samples),ylabel(Amplitude),title(重建语音信号),XLim(15*FL+1,16*FL);sound(exc);pause(2);sound(s);pause(2);sound(s_rec);pause(2); %原始语音与合成语音的差别figure;subplot(3,1,1),plot(exc_syn),xlabel(n(samples),ylabel(Amplitude),title(合成激励信号);subplot(3,1,2),plot(s),xlabel(n(samples),ylabel(Amplitude),title(原语音信号);subplot(3,1,3),plot(s_syn),xlabel(n(samples),ylabel(Amplitude),title(合成语音信号);sound(s);pause(2);sound(s_syn);pause(2);%变速不变调figure;subplot(3,1,1),plot(exc_syn_v),xlabel(n(samples),ylabel(Amplitude),title(合成慢速激励信号),XLim(0,length(exc_syn_v);subplot(3,1,2),plot(s),xlabel(n(samples),ylabel(Amplitude),title(原语音信号),XLim(0,length(s);subplot(3,1,3),plot(s_syn_v),xlabel(n(samples),ylabel(Amplitude),title(合成慢速语音信号),XLim(0,length(s_syn_v);sound(s);pause(2);sound(s_syn_v);pause(4);%变调不变速figure;subplot(3,1,1),plot(exc_syn_t),xlabel(n(samples),ylabel(Amplitude),title(合成高调激励信号),XLim(0,length(exc_syn_t);subplot(3,1,2),plot(s),xlabel(n(samples),ylabel(Amplitude),t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论