使用matlab制作声音采样率转换、播放以及显示的界面

利用matlab做一个声音采样率转换、播放以及显示的界面

大抵流程:

  1. 图形界面创建:使用figure函数创建名为“声音采样率转换”的图形界面,并设置了其位置和大小。

  2. 按钮和文本框:使用uicontrol函数创建了选择音频文件的按钮、显示当前采样率和目标采样率的文本标签以及用于输入当前采样率和目标采样率的编辑文本框,还有进行采样率转换和播放音频的按钮。

  3. 回调函数:定义了选择音频文件、采样率转换和播放音频等按钮点击后的回调函数。这些回调函数负责实际的操作,比如读取音频文件、进行采样率转换和播放音频。

  4. 音频处理:使用audioread函数读取音频文件,resample函数进行采样率转换,soundsc函数播放音频。

  5. 绘制波形:定义了用于绘制音频波形的函数plotAudioWaveform,其中使用axes函数创建坐标系,并使用plot函数绘制音频波形图。

  6. 数据传递:使用setappdatagetappdata函数在各个回调函数之间传递音频数据和采样率信息。

详细代码:

function audioConversionGUI()% 创建图形界面fig = figure('Name', '声音采样率转换', 'Position', [200, 200, 400, 300]);% 创建按钮和文本框uicontrol(fig, 'Style', 'pushbutton', 'String', '选择音频文件', 'Position', [50, 230, 120, 30], 'Callback', @selectAudioFile);uicontrol(fig, 'Style', 'text', 'String', '当前采样率:', 'Position', [50, 180, 100, 20]);uicontrol(fig, 'Style', 'text', 'String', '目标采样率:', 'Position', [50, 130, 100, 20]);uicontrol(fig, 'Style', 'edit', 'Position', [160, 180, 100, 20], 'Tag', 'currentRate');uicontrol(fig, 'Style', 'edit', 'Position', [160, 130, 100, 20], 'Tag', 'targetRate');uicontrol(fig, 'Style', 'pushbutton', 'String', '采样率转换', 'Position', [50, 80, 120, 30], 'Callback', @convertSamplingRate);uicontrol(fig, 'Style', 'pushbutton', 'String', '播放音频', 'Position', [200, 80, 120, 30], 'Callback', @playAudio);% 选择音频文件回调函数function selectAudioFile(~, ~)[filename, pathname] = uigetfile({'*.wav;*.mp3'}, '选择音频文件');if filename ~= 0filepath = fullfile(pathname, filename);[audio, sampleRate] = audioread(filepath);% 更新当前采样率文本框currentRateTextBox = findobj(fig, 'Tag', 'currentRate');set(currentRateTextBox, 'String', num2str(sampleRate));% 保存音频数据和采样率setappdata(fig, 'audioData', audio);setappdata(fig, 'sampleRate', sampleRate);% 绘制音频波形plotAudioWaveform(audio, sampleRate);endend% 采样率转换回调函数function convertSamplingRate(~, ~)% 获取音频数据和采样率audio = getappdata(fig, 'audioData');sampleRate = getappdata(fig, 'sampleRate');% 获取目标采样率targetRateTextBox = findobj(fig, 'Tag', 'targetRate');targetRate = str2double(get(targetRateTextBox, 'String'));% 进行采样率转换convertedAudio = resample(audio, targetRate, sampleRate);% 更新音频数据和采样率setappdata(fig, 'audioData', convertedAudio);setappdata(fig, 'sampleRate', targetRate);% 绘制音频波形plotAudioWaveform(convertedAudio, targetRate);end% 播放音频回调函数function playAudio(~, ~)% 获取音频数据和采样率audio = getappdata(fig, 'audioData');sampleRate = getappdata(fig, 'sampleRate');% 播放音频soundsc(audio, sampleRate);end% 绘制音频波形function plotAudioWaveform(audio, sampleRate)axes('Parent', fig, 'Units', 'pixels', 'Position', [50, 20, 300, 50]);t = (0:length(audio)-1) / sampleRate;plot(t, audio);xlabel('时间 (秒)');ylabel('幅度');title('音频波形');end
end

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/221147.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[PyTorch][chapter 8][李宏毅深度学习][Back propagation]

前言: 反向传播算法(英:Backpropagation algorithm,简称:BP算法)是一种监督学习算法,常被用来训练多层感知机。 它用于计算梯度计算中,降低误差。 目录: 链式法则 模型简介(Model) 损失函…

电脑风扇控制软件Macs Fan Control mac支持多个型号

Macs Fan Control mac是一款专门为 Mac 用户设计的软件,它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度,以提高设备的散热效果,减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温…

【Git】Git基本操作

文章目录 Git 是什么Git 的优点Git 安装Linux UbuntuLinux CentOsWindows Git 基本操作1. 创建 Git 本地仓库2. 配置 Git3. Git工作区、暂存区和版本库4. 添加文件5. 查看 .git 文件6. 修改文件7. 版本回退 Git 是什么 Git是一个免费的、开源的分布式版本控制系统,…

行业追踪,2023-12-20

自动复盘 2023-12-20 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

WPF——样式和控件模板、数据绑定与校验转换

样式和控件模板 合并资源字典 Style简单样式的定义和使用 ControlTemplate控件模板的定义和使用 定义 使用 Trigger触发器 数据绑定与校验转换 数据绑定的设置 代码层实现绑定 数据模板DataTemplate xml文件的读取与显示 方法的返回值作为源绑定到控件中ObjectDataProvider L…

【SQL】根据年份,查询每个月的数据量

根据年份,查询每个月的数据量 一种 WITH Months AS (SELECT 1 AS Month UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION…

3.1 内容管理模块 - 工程搭建、课程查询、配置Swagger、数据字典

文章目录 内容管理模块一、基础工程搭建1.1 需求分析1.2 业务流程1.3 数据模型1.4 创建模块工程1.4.1 介绍1.4.2 xuecheng-plus-content 聚合工程1.4.3 模块演示 二、课程查询准备2.1 需求分析2.1.1 业务流程2.1.2 数据模型 2.2 生成PO类2.2.1 新增Maven配置2.2.2 课程基本信息…

Dokit 开源库:简化 Android 应用开发的利器

Dokit 开源库:简化 Android 应用开发的利器 一、Dokit 简介二、Dokit 功能三、Dokit 使用3.1 DoKit Android 最新版本3.2 DoKit Android 接入步骤 四、总结 在 Android 应用开发过程中,我们经常需要处理调试、性能优化和用户体验等方面的问题。然而&…

最新全网整理的7个最佳开源免费库存/仓库管理系统(WMS)都具有高星star

最新全网整理的7个最佳开源免费库存/仓库管理系统(WMS)都具有高星star。 库存/仓库管理软件是一种用于帮助企业管理库存、仓储位置和交付过程的软件系统。这种类型的软件对于拥有大量库存和多个仓库的企业非常有用。 库存/仓库管理软件的作用包括以下几个方面&…

竞赛保研 python的搜索引擎系统设计与实现

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python的搜索引擎系统设计与实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:5分创新点:3分 该项目较为新颖&#xff…

优维科技荣获第二届中国赛宝信息技术应用创新优秀解决方案三等奖

近日,“第二届中国赛宝信息技术应用创新优秀解决方案”评选活动圆满结束。优维科技所提交的《Hyperlnsight超融合持续观测解决方案》、《EasyOps一体化运维平台》从全国近300份申报方案中脱颖而出,荣获2023中国赛宝信息技术应用创新优秀解决方案奖。 本…

SQL Server 安装教程

安装数据库 1、启动SQL Server2014安装程序,运行setup.exe文件,打开”SQL Server安装中心“对话框,单击左侧 的导航区域中的”安装“选项卡。 2、选择”全新SQL Server独立安装或向现有安装添加功能“,启动SQL Server2014安装向导…

基于Spring Boot 框架的试卷自动生成系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题,今天给大家介绍…

SpringBoot actuator应用监控

文章目录 引入依赖端点(Endpoints)端点种类端点开启配置暴露端点手动暴露端点 端点保护引入spring security依赖配置security 端点响应缓存访问端点路径修改CORS跨域支持健康信息(/actuator/health)自定义healthInfo 应用信息(/actuator/info) 监控信息可视化引入依赖配置查看配…

Kioptrix-1

信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-18 20:02 CST Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.00025s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 0bc…

C语言中的一维数组与二维数组

目录 一维数组数组的创建初始化使用在内存中的存储 二维数组创建初始化使用在内存中的存储 数组越界 一维数组 数组的创建 数组是一组相同类型元素的集合。 int arr1[10]; char arr3[10]; float arr4[10]; double arr5[10];下面这个数组能否成功创建? int count…

k8s-ingress特性 9

TLS加密 创建证书 测试访问 auth认证 创建认证文件 rewrite重定向 进入域名时,会自动重定向到hostname.html 示例: 测试 版本的升级迭代,之前利用控制器进行滚动更新,在升级过程中无法做到快速回滚 更加平滑的升级&#xff1…

WinDbg调试异常(!!! second chance !!!)

以前使用windbg调试样本时不时会遇到异常并提示(!!! second chance !!!),之前也尝试查找过原因但是并没有找到,一直十分郁闷。这次又出现了异常,有时间查找原因并发现了问题所在,于是记录下分析过程。 起因 在调试一个样本,每次用windbg调试都会出现: 但是使用x64dbg调…

中国社科院与新加坡新跃社科联合培养工商管理博士

全球经济正在经历由科技进步与创新、政治和人口的剧烈变化所带来的巨大不确定性与挑战。企业的领导者和管理者需要发展出战略性思维和全球洞察力以便面对越来越大的经济波动。中国社科院与新加坡新跃社科联合培养工商管理博士项目的训练能够让学生在一个企业和组织的改变和发展…

AWS 知识一:如何在AWS上启动云AD服务器(详细到极致)

前言: 首先这里指的云AD服务器,只是为了让读友更好理解。云AD服务器在AWS中称为目录。AWS一共提供了4种目录类别,下面我将全程使用AWS托管微软AD这种目录类别进行示例。他完全提供了和Microsoft AD的功能,包括NTLM,Ker…