如何在MATLAB中建立一个GUI界面,设计个按钮来读取电脑的音频文件并保存音频数据,音频文件格式支持持 WAV、M4A、MP3 格式。

1.在MATLAB的命令行窗口输入guide,并摁下回车键,得到下图:

2.点击确定,然后得到下图:

3.点击按钮,然后绘制一个按钮方框,得到下图:

4.然后双击按钮,编辑其属性,主要是改按钮的名字和文字大小;首先String对应的是按钮的名字,可以修改成:读取音频文件;然后Fontsize对应的是按钮的文字大小,这里我设置的是25,修改后的属性界面如下图所示:

5.然后返回GUI界面,右键“读取音频文件”按钮,点击查看回调,选择Callback,具体操作如下图所示:

6.在下图所示的代码最下端,输入读取音频文件的代码:

7.代码如下图所示:

global y fs  %定义全局变量
[filename,pathname]=uigetfile({'*.wav;*.m4a;*.mp3;'},'选择语音信号')
if isequal(filename,0)||isequal(pathname,0) % 若取消了文件选择操作,则退出当前函数
    return;
end
yy=[pathname,filename];%完成语音信号文件的路径
[y,fs]=audioread(yy);%读取已选择的语音信号文件的数据,y是要播放的音频信号向量,fs为音频信号的采样

8.最后点击MATLAB上边工具栏的运行按钮,然后选择自己想要读入的音频文件。

谢谢各位读者的浏览,下期我会讲解如何播放读取的音频,并且还可以随时暂停播放(GUI界面)。

 

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个MATLAB编写的带有GUI的FFT变换代码,可以导入音频文件并显示其信号图和FFT频谱图: ```matlab function fft_gui() % 创建GUI窗口 fig = figure('Visible','off','Position',[360,500,450,285]); % 创建导入按钮 uicontrol('Style','pushbutton','String','导入文件','Position',[315,220,70,25],... 'Callback',{@importfile_callback}); % 创建信号图轴 axes1 = axes('Units','pixels','Position',[50,50,200,200]); % 创建频谱图轴 axes2 = axes('Units','pixels','Position',[200,50,200,200]); % 显示GUI窗口 fig.Visible = 'on'; % 导入文件回调函数 function importfile_callback(source,eventdata) % 打开文件选择对话框 [filename, pathname] = uigetfile({'*.wav','WAV files (*.wav)';'*.mp3','MP3 files (*.mp3)'},'选择音频文件'); % 如果用户取消选择文件,则返回 if isequal(filename,0) return; end % 读取音频文件 [y,fs] = audioread(fullfile(pathname,filename)); % 绘制信号图 t = (0:length(y)-1)/fs; plot(axes1,t,y); xlabel(axes1,'Time (s)'); ylabel(axes1,'Amplitude'); title(axes1,'Audio Signal'); % 计算FFT并绘制频谱图 n = length(y); f = (0:n-1)*(fs/n); Y = fft(y); plot(axes2,f,abs(Y)); xlabel(axes2,'Frequency (Hz)'); ylabel(axes2,'Magnitude'); title(axes2,'FFT'); end end ``` 这个代码创建了一个GUI窗口,其包含一个“导入文件”按钮和两个绘图轴。单击“导入文件”按钮将打开文件选择对话框,用户可以选择要分析的音频文件。一旦用户选择了音频文件,代码将读取文件并计算FFT,然后在信号图和FFT图上绘制相应的数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个想学好MATLAB的飞龙在天小子

谢谢支持

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

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

打赏作者

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

抵扣说明:

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

余额充值