Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说手把手教你用matlab做GUI,让你的声音变成PAPI酱![通俗易懂],希望能够帮助你!!!。
感谢zyx19950825的分享!
由于并非专业变声制作,所以原理上只是进行了对时间轴的压缩或拉伸(浅层的频率变换)和振幅的变化,没有对音频文件进行滤波啊什么的深入处理。只适合娱乐一下而已。
________________________________________
每种声音变换对应一张图片。
_____________________________
[x,FS]=audioread(pathall); %pathall代表wav文件路径
t=(0:length(x)-1)/FS;
通过调节时间t的长短来变换频率FS;
eg:
x3=x*2;%低沉~闷,交响乐
t3=t*1.5;
FS3=(0:length(x)-1)/t3;
eg:
选择一个‘坐标轴’调整合适的大小用来播放变声种类的图片,上面箭头所指;拖拽4个按钮(下面箭头),并给每个控件设置名称和显示的文字,以及文字大小,当然还可设计背景颜色;并保存gui界面。
在打开音频的按钮控件函数下添加如下代码,打开文件夹并获得文件路径;
[FileName,PathName] = uigetfile('*.wav');
pathall=strcat(PathName,FileName);
然后对wav文件进行读取:
[x,FS]=audioread(pathall);
t=(0:length(x)-1)/FS
当然程序需要定义两个全局变量x,t,因为后面变声程序需要调用这两个数据;所以得在上面程序前加上:
global x t;
function load_wav_Callback(hObject, eventdata, handles)
{ global x t;
[FileName,PathName] = uigetfile('*.wav');
pathall=strcat(PathName,FileName); %获得wav路径
[x,FS]=audioread(pathall); %读取wav文件的数据和频率
t=(0:length(x)-1)/FS; %变换得到播放时间}
怎么样,是不是很简单,赶紧动手试试吧!
上一篇
已是最后文章
下一篇
已是最新文章