您的位置 首页 > 数码极客

matlabgui界面如何添加背景图

感谢zyx19950825的分享!

由于并非专业变声制作,所以原理上只是进行了对时间轴的压缩或拉伸(浅层的频率变换)和振幅的变化,没有对音频文件进行滤波啊什么的深入处理。只适合娱乐一下而已。

________________________________________

实现效果:

每种声音变换对应一张图片。

_____________________________

实现原理:将音频看作一个二维轴,x轴代表播放的时间,y轴代表振幅;通过函数audioread()读取wav文件的数据长度和频率,利用数据长度比上频率就是时间长度;

[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;

1. guic操作界面的设计

a.新建>图形用户界面>选择默认的(default)

eg:

B.

选择一个‘坐标轴’调整合适的大小用来播放变声种类的图片,上面箭头所指;拖拽4个按钮(下面箭头),并给每个控件设置名称和显示的文字,以及文字大小,当然还可设计背景颜色;并保存gui界面。

2. 程序的设计

在打开音频的按钮控件函数下添加如下代码,打开文件夹并获得文件路径;

[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; %变换得到播放时间}

在变声处理的对应按钮下面进行x,t的处理以及加入图片显示和播放处理后的音频数据;(以大叔的为例)其他变声同样,只需改变显示的图片和变换t,x就可以了;

怎么样,是不是很简单,赶紧动手试试吧!

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“matlabgui界面如何添加背景图,matlabgui背景图设定”边界阅读