Matlab 变音(声调高低和倍速)

阅读: 评论:0

Matlab 变音(声调高低和倍速)

Matlab 变音(声调高低和倍速)

Matlab 变音(声调高低和倍速)

clear;
[y,fs]=audioread('mao.mp3'); %读取声音文件
x1=y(:,1); %读入的y矩阵有两列,取第1列frqratio = 1;   % 控制播放速度,>1倍速
ratio = 1.5;    % 更改采样率使基频改变 ratio>1降低(女变男);ratio<1升高(男变女)
Traudio = voice(x1,ratio);
audiowrite("TransformedAudio.wav",Traudio,frqratio*fs);% 下面是频谱分析
% N=length(Traudio); %长度
% n=0:N-1;
% w=2*n*pi/N;
% y1=fft(Traudio); %对原始信号做FFT变换
% 
% subplot(2,1,1);
% plot(n,Traudio) %做原始语音信号的时域波形图
% title('变声语音信号时域图');
% xlabel('时间t');
% ylabel('幅值');
% 
% subplot(2,1,2); %做原始语音信号的频谱图
% plot(w/pi,abs(y1));
% title('变声语音信号频谱')
% xlabel('频率');
% ylabel('幅度');function Y=voice(x,f) %更改采样率使基频改变 f>1降低(女变男);f<1升高(男变女)f=round(f*1000);    d=resample(x,f,1000); %时长整合使语音文件恢复原来时长    W=400;  Wov=W/2;    Kmax=W*2;   Wsim=Wov;    xdecim=8;    kdecim=2; X=d';    F=f/1000;   Ss =W-Wov;    xpts = size(X,2);    ypts = round(xpts / F);    Y = zeros(1, ypts);    xfwin = (1:Wov)/(Wov+1);    ovix = (1-Wov):0; newix = 1:(W-Wov);    simix = (1:xdecim:Wsim) - Wsim;    padX = [zeros(1, Wsim), X, zeros(1,Kmax+W-Wov)];   Y(1:Wsim) = X(1:Wsim); lastxpos = 0; km = 0;   for ypos = Wsim:Ss:(ypts-W)        xpos = round(F * ypos);        kmpred = km + (xpos - lastxpos);        lastxpos = xpos;        if (kmpred <= Kmax)        km = kmpred;       else        ysim = Y(ypos + simix);        rxy = zeros(1, Kmax+1);        rxx = zeros(1, Kmax+1);        Kmin = 0;        for k = Kmin:kdecim:Kmax        xsim = padX(Wsim + xpos + k + simix);            rxx(k+1) = norm(xsim);            rxy(k+1) = (ysim * xsim');        end        Rxy = (rxx ~= 0).*rxy./(rxx+(rxx==0));        km = min(find(Rxy == max(Rxy))-1);        end        xabs = xpos+km;       Y(ypos+ovix) = ((1-xfwin).*Y(ypos+ovix)) + (xfwin.*padX(Wsim+xabs+ovix));        Y(ypos+newix) = padX(Wsim+xabs+newix);    end
end

代码源自

作者:繁星不语
这里进行了输出处理

本文发布于:2024-01-30 18:06:12,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170660917321856.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:声调   倍速   Matlab
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23