MATLAB:女声转男声

MATLAB:女声转男声

代码:

%女声转变为男声
clc;
[y,Fs]=audioread('test1.wav');%读出信号,采样率和采样位数。 
sigLength=length(y);
Y = fft(y,sigLength);
%Pyy = Y.* conj(Y) / sigLength;% conj函数,用于求一个复数的复共轭
halflength=floor(sigLength/2); % 根据模板大小确定要扩展的边界
f=Fs*(1:sigLength)/sigLength;
stor=Y(1);
Y(1)=0;
absY=abs(Y);
figure(1)
subplot(2,2,1);plot(f,absY);xlabel('Frequency(Hz)');grid on
axis([0,f(end)/2,0,15]);title('初始音频频谱');
t=(0:sigLength-1)/Fs;
subplot(2,2,2);plot(t,y);title('初始音频时域');
xlabel('Time(s)');grid on
y1=y;
Y0=Y;
Y1=circshift(Y0,100);%移频
absY1=abs(Y1);
subplot(2,2,3);plot(f,absY1);xlabel('Frequency(Hz)');grid on;
y2=ifft(Y1);title('变换后音频频谱');
subplot(2,2,4);plot(t,y2);title('变换后音频时域');
xlabel('Time(s)');grid on;
audiowrite('test4.wav',y2,1.45*Fs);
[audio2,fs2]=audioread('test4.wav');%声音读取audio是读出数据 fs为音频文件的采样率
audio_final = [y;audio2];%原始语音,变换后语音,合成音频矩阵
sound(audio_final); %播放语音

图像:
在这里插入图片描述

  • 4
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li星野

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值