@数字信号处理大作业——基于matlab R2019a的男声变女声资料汇总与代码

概述

参考了很多前人的资料,发现很多函数已经过时了,而且从我通过VIP下载的代码来看,代码的逻辑不是很清晰,废话也多,注释也写的不清楚(也可能也是我太小白了看不懂哈哈哈哈哈)写博客的初心是对自己这三天做的工作给个总结,方便以后的人,自己也感觉非常开心,嘿嘿!

看看我的文件夹

各位小白菜注意,matlab的代码和其他相关文件一定要整整齐齐的放好,否则以后有你的苦吃,嘿嘿嘿;我也是小白嘿嘿,大家要互相学习鸭;第一次写博客,排版丑希望多提建议,小朱给大家鞠躬!

算法原理

查到了几种,以下为小本本记录的:

对语音的采样率进行变化,就能改变声音。比如采样率低于奈奎斯特定理中的2fh,就会丢失高频分量,声音音色自然会变化。但是这种会丢失信息,而且不易用参数控制;

可以通过改变播放的速度实现,快5%就是女声,慢5%就是男声。记得多普勒效应吗?一辆响着汽笛声的车,朝你来时声音尖,离你远去时声音闷,大概有点这意思。但是显然,我们不希望输入输出的声音速度发生变化,这样用户体验也太差了;

所以男女声变调必须是进行频谱搬移。学过通电/信号与系统的同志们都知道,余弦函数乘个余弦函数,积化和差,会有和频差频分量生成,频谱发生了搬移,这种变化称为“调制”。所以我们可以通过这种方法实现吗?不行。通电里可以,是因为两个相乘量的频率大小相差甚远,生成的信号可以方便的滤出来。男声女声距离很近,频带又宽,所以用模拟的方法没法实现。

哈哈哈所以这时候就体现了数字信号处理的优越性,虽然目前我做的效果也不大好,但我相信我能做的更好,之后会更新的!有些代码用cirshift进行搬移,可它就是个让频谱在固定范围转圈的函数,我真不明白用它有何用。所以我最后选择时域乘exp(jwt),可效果也不好,我不明白为啥。这大概就是理想与现实的差距,说明理论落地很难。

try1.m

clc

[y1,Fs] = audioread('source.wav'); %读出信号,采样率和采样位数。 %注意文件格式要求

%source为男声音频

%sound(y1,Fs); %播放文件

%设计巴特沃斯低通滤波器 此处加滤波器会使声音变模糊,似乎很重要的高频分量被丢掉了

%Wc1=2*1000/Fs; %男声截止频率 1000Hz

%[b,a]=butter(4,Wc1);

%y1=filter(b,a,y1);

Y1 = fft(y1);%Fast Fourier transform

sigLength=length(y1);%Length of largest array dimension

f=Fs*(1:sigLength)/sigLength;

absY=abs(Y1);%Absolute value and complex magnitude

figure('Name','Measured Data','NumberTitle','off');

%Create figure window

%Specify the Name property again, but this time, set the NumberTitle property to 'off'.

%The resulting title does not include the figure number.

%绘制男声频域

subplot(2,2,1);plot(f,absY);xlabel('Frequency(Hz)男声频域');grid on

%绘制男声时域

t=(0:sigLength-1)/Fs;%t = 1 / f

subplot(2,2,2);plot(t,y1);xlabel('Time(s)男声时域');grid on

%频谱搬移(时域相移,频域调制)

Y2 = fft(y1 .* exp(1000/(2 * pi) * 1i .* t'));

%绘制女声频域

absY2=abs(Y2);

subplot(2,2,3);plot(f,absY2);xlabel('Frequency(Hz)女声频域');grid on

%绘制女声时域

y2=ifft(Y2);

subplot(2,2,4);plot(t,y2);xlabel('Time(s)女声时域');grid on

y2=abs(y2);%audiowrite必须输入为实数

%失败的滤波器尝试

%BPF = load('LPF_60M.mat');

%y3 = filter(BPF.LPF_60M,1,y2);

%能调通但是效果不好的滤波器尝试

y3=highp(y2,400,500,0.0001,0.02,Fs);

audiowrite('transform30.wav',y3,Fs)

%transform30为生成的文件,它生成的地址不是很确定,会发生变化,

%我还没搞明白,以下是它出现的两个位置:

%C:\Users\honor\Documents\MATLAB\Examples\R2019a\matlab\WriteanAudioFileExample

%E:\…\dsp_greatassignment\try

若不清楚可在电脑“开始”里搜一下具体在哪。

上面用到的highp函数,这段代码很多网页上都有,我是从https://www.cnblogs.com/tkppain/p/6691052.html?utm_source=itdadao&utm_medium=referral 复制粘贴过来并作了一些改动。

function y=highp(x,f1,f2,rp,rs,Fs)

%高通滤波,该代码鲁棒性很差,试试你就晓得了

%也可能是我不会用

%通带或阻带的截止频率的选取范围是不能超过采样率的一半

%即,f1,f3的值都要小于 Fs/2

%x:需要带通滤波的序列

% f 1:通带截止频率

% f 2:阻带截止频率

%rp:边带区衰减DB数设置

%rs:截止区衰减DB数设置

%FS:序列x的采样频率

wp=2*pi*f1/Fs;

ws=2*pi*f2/Fs;

% 设计切比雪夫滤波器;

[n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs);

[bz1,az1]=cheby1(n,rp,wp/pi,'high');

%查看设计滤波器的曲线

[h,w]=freqz(bz1,az1,256,Fs);

h=20*log10(abs(h));

figure('Name','highpass filter','NumberTitle','off');

plot(w,h);title('所设计滤波器的通带曲线');grid on;

y=filter(bz1,az1,x);

end

%失败的滤波器尝试 使用了通过VIP下载的代码(就是参考代码里的‘filter’),但是不知为何调不通。在MATLAB命令行窗口键入fdatool即可弹出设计滤波器的窗口,但是设计完直接保存后生成的是.fda文件,没法直接用,得变成.mat文件;.mat文件也没法直接用,得在编辑器使用“load(‘BPF_130M.mat’)”或者在文件夹双击它。可是,可能我导出为mat文件的参数没选对,看着和参考代码‘filter’一样,就是调不通。捉急~~

资料

以下为艰难曲折探索过程中路过的有帮助的网页。

https://jingyan.baidu.com/article/3052f5a108e14397f21f8658.html

打开.mat文件

https://wenku.baidu.com/view/cf9f236cbd64783e09122b87.html#

fdatool和FIR MegaCore使用技巧的问题

https://blog.csdn.net/yangming2466/article/details/83548946

七种滤波方法

https://blog.csdn.net/flypassion/article/details/82082543?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160343803219724838551089%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160343803219724838551089&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-82082543.first_rank_ecpm_v3_pc_rank_v2&utm_term=%E9%AB%98%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%99%A8matlab&spm=1018.2118.3001.4187

滤波器资料

https://www.cnblogs.com/lianjiehere/p/3806964.html

fda文件

https://blog.csdn.net/qq_38559814/article/details/86521602

filter

https://www.cnblogs.com/tkppain/p/6691052.html

滤波

文章来源: blog.csdn.net,作者:朱文贞,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_46279604/article/details/109252160

用matlab实现女声变男声步骤,数字信号处理大作业——基于matlab R2019a的男声变女声资料汇总与代码...相关推荐

  1. 数字信号处理大作业——基于matlab R2019a的男声变女声资料汇总与代码

    @数字信号处理大作业--基于matlab R2019a的男声变女声资料汇总与代码 概述 参考了很多前人的资料,发现很多函数已经过时了,而且从我通过VIP下载的代码来看,代码的逻辑不是很清晰,废话也多, ...

  2. matlab编写fie滤波器,数字信号处理大作业mdash;mdash;基于matlab R2019a的男声变女声资料汇总与代码...

    @数字信号处理大作业--基于matlab R2019a的男声变女声资料汇总与代码 概述 参考了很多前人的资料,发现很多函数已经过时了,而且从我通过VIP下载的代码来看,代码的逻辑不是很清晰,废话也多, ...

  3. matlab音乐信号处理,数字信号处理课程设计---基于 MATLAB 的音乐信号处理和分析...

    数字信号处理课程设计---基于 MATLAB 的音乐信号处理和分析 1<数字信号处理>课程设计设计题目:基于 MATLAB 的音乐信号处理和分析一.课程设计的目的本课程设计通过对音乐信号的 ...

  4. 数字图像处理——大作业 基于车道信息的违法车辆车牌识别

    数字图像处理--大作业 基于车道信息的违法车辆车牌识别 一.车牌识别研究现状与分析 二.车牌识别算法原理 2.1 车牌定位 2.1.1 基于RGB阈值的车牌区域初定位 2.1.2 基于数学形态学的车牌 ...

  5. matlab求解多自由度振动系统,【2017年整理】1-《机械振动基础》大作业,基于matlab的多自由度振动.doc...

    [2017年整理]1-<机械振动基础>大作业,基于matlab的多自由度振动 <机械振动基础>大作业 (2016年春季学期) 题目多自由度振动系统的固有频率和固有阵型 姓 名学 ...

  6. 简述用matlab阶跃波形的步骤,数字信号处理:重要知识点整理

    写在前面:本文中涉及的函数的使用场景为matlab 数字信号处理之重要知识点 0 最重要!DFT和FFT的区别 1 连续时间信号频域分析 2 通过离散时间信号的Z变换表达式X(z)直接写出时域离散信号 ...

  7. matlab中数字信号处理zf均衡器,基于MATLAB的数字滤波器和数字均衡器的设计.doc

    摘要:在数字化信息技术的时代,数字化电子产品所产生的图像会模糊.声音会带有杂音等,在实时数字信号处理过程中,迫切需要对目标信号进行处理,以满足用户对信号的要求. 本文使用MATLAB设计不同类型的滤波 ...

  8. matlab对图像信号进行频谱分析及滤波,数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波...

    数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波 课课 程程 设设 计 (论文) 报计 (论文) 报 告告 书书 课程名称课程名称 数字信号处理 题题 目目 应用Matlab 对信 ...

  9. 数字信号处理实验matlab版答案,数字信号处理习题答案及matlab实验详解.pdf

    数字信号处理习题答案及matlab实验详解.pdf 第一章 参考答案: 1 (1)2 2 14 ,有理数,所以周期为 14 0 3  3 7 2 2 (2 ) 12 ,无理数,非周期  ...

最新文章

  1. 让人“眼前一亮、不明觉厉”的互联网技术PPT
  2. 笔试题——max pooling滑动窗口实现(python 代码)
  3. Hadoop的启动顺序和停止顺序
  4. Windows Server 2012 配置远程桌面帐户允许多用户同时登录
  5. python效率提升_Python GUI开发,效率提升10倍的方法!
  6. LaTeX的编译速度优化方案
  7. Linux下的文件系统与目录系统简介
  8. android应用开发(22)---Activity的生命周期
  9. 常见的UI设计素材模板
  10. serv u服务器显示图片,图解经典FTP服务器工具 SERV-U最安全的设置【防止被入侵】...
  11. 学习python: 单例设计模式
  12. 渗透工具-masscan
  13. Origin作图点太密集处理方法
  14. js 视频库 Video.js
  15. 算术平均、几何平均、调和平均、平方平均和移动平均
  16. 加拿大计算机专业前八大学,加拿大留学:计算机工程专业排名前八的名校详情...
  17. Unreal 蓝图工具 spline 道路组件
  18. 每周阅读精选(2013-02-18)
  19. 杂记之罗翔语录:要爱具体的人,而不要爱抽象的人
  20. 外星人计算机组装配置方案,最好的电脑配置_2020年最强最牛的笔记本配置与组装电脑方案...

热门文章

  1. [CVE-2022-30190]MICROSOFT OFFICE MSDT代码执行漏洞
  2. PHP面向对象的继承
  3. 踏足java领域,了解些基本的概念
  4. 基于JavaGUI的哈夫曼树编码解码
  5. 三维物体AABB碰撞检测算法
  6. 目录超出页边距了怎么办|word中自动插入目录,页码超出页边距如何修改
  7. 苹果IOS手机端该如何连接PPTP?
  8. 华为手机的热门推荐怎么删除
  9. 上坤地产上市两次破发:营收增速逐年下降,董事长朱静持股50%
  10. Problem B. S06-07 工业产值(翻一番问题log函数简单秒解方法)