怎么将音频原始文件导入matlab,Matlab2019b音频文件读取
Matlab中对音频文件的读取操作
Matlab中对文件的读取操作
注意:本程序与2016b版本以前不兼容
读取整个音频文件
如果你需要读取整个音频文件并输出数组时,可以使用audioread函数
[y,Fs] = audioread('C:\Users\Hong\Desktop\matlab\城之内.mp3');
读取部分音频文件
如果需要读取部分音频,这是将前两秒的数据读取出来,相当于新建了一个2秒的文件,再读取。个人感觉这种方式虽然简单,但不好用。
filename = 'C:\Users\Hong\Desktop\matlab\城之内.mp3';
audiowrite(filename,y,Fs);
samples = [1,2*Fs];%2为读取两秒
clear y Fs
[y,Fs] = audioread(filename,samples);
按帧读取音频文件(力荐)
通过dsptoolbox里面的dsp.AudioFileReader函数来进行读取初始化操作,是数据流操作
%% RichardYang 2020/3/10 Ver1.0
%%Copyright © 2020 by RichardYang. All rights reserved.
afr = dsp.AudioFileReader;%通过建立类型来初始化文件输入格式
afr.Filename='C:\Users\Hong\Desktop\matlab\城之内.mp3';%读取文件
afr.SampleRate%文件采样率(只读)
afr.SamplesPerFrame=1024;%每一帧读取1024个数据
aduioIn.PlayCount=1;%文件读取次数
afr.OutputDataType='double';%数据输出时的类型
afr.ReadRange=[1 inf];%数据读取的帧数范围
[audio,eof] = afr();%返回数据audio
info = audioinfo(afr.Filename);读取音频文件信息
release(afr);%释放读取
通过audioinfo可以获取读取文件的信息,比如SampleRate和Duration,通过设置afr.ReadRange可以设定读取帧数,本人通过下面这种方式来读取20秒的数据。
afr.ReadRange=[1 20*afr.SampleRate];%数据读取的帧数范围,这里读取20s
这种方式可以对读取文件进行详尽的设置,方便后续的处理。
按帧读取并存为整个文件(绘图或达到或audioread读出来的y相同的效果)
afr = dsp.AudioFileReader;%通过建立类型来初始化文件输入格式
afr.Filename='C:\Users\Hong\Desktop\matlab\城之内.mp3';%读取文件
afr.SampleRate%文件采样率(只读)
aduioIn.PlayCount=1;%文件读取次数
afr.OutputDataType='double';%数据输出时的类型
afr.ReadRange=[1 5*afr.SampleRate];%数据读取的帧数范围,这里读取5s
% afr.ReadRange=[1 inf];%数据读取的帧数范围,这里全部读取
[audio,eof] = afr();
info = audioinfo(afr.Filename)
r_channle=[];
l_channle=[];
while ~isDone(afr)
mySignal = afr();%从文件中读取数据
r_channle=[r_channle;mySignal(:,1)];%通道1
l_channle=[l_channle;mySignal(:,2)];%通道2
end
t=0:seconds(1/afr.SampleRate):seconds((size(l_channle,1))/afr.SampleRate);%这个地方使用dsp.filereader可能会有帧数不为整数的问题
t=t(1:end-1);%建立一个横坐标时间轴
subplot(2,1,1);
plot(t,r_channle)
title('右声道');
xlabel('Time');
ylabel('y');
subplot(2,1,2);
plot(t,l_channle)
title('左声道');
xlabel('Time');
ylabel('y');
由于这个是实时处理,所以需要播放完后才可以绘图,会比较慢,如需要实时显示波形,在后面的scope中会进行说明。
两种方式的选择
本人用这种方式来进行读取主要是进行音频的实时操作,在对帧操作后可以送入dsp.AudioFileWriter储存或送入dsp.AudioDeviceWriter中进行播放。如果不需要实时操作,就用audioread函数,速度较快。
Copyright © 2020 by RichardYang. All rights reserved.
仅供参考,严禁转载,感谢。
怎么将音频原始文件导入matlab,Matlab2019b音频文件读取相关推荐
- 实验一 元音音频时域、频谱分析 及 RGB文件读取、熵计算
实验内容: 录制三个元音音频,通过音频分析工具软件观察.总结时域波形.频谱的特点 编程实现RGB文件三通道分量的熵计算 该测试文件分辨率为256*256,数据格式为每个像素占用3字节,BGRBGR.. ...
- Matlab中的文件读取函数
textread的用法 tempText = textread(fileName); NodeNum = tempText(1,1); PathNum = tempText(1,2) ClientNu ...
- matlab查看hdf头文件,基于Matlab的HDF文件读取方法
应 用 技 术 基于 的 文 件读 取方法 黄 骏 (广东 电网 有 限责任 公 司 阳江供 电局 ) 摘 要是一种 广 泛用于 科 学数 据共 享的 国 际标准 数据 格式 ,正确 高效 地读 取文 ...
- 将solidworks机械臂模型导入Matlab
将solidworks机械臂模型导入Matlab 转STL文件 导入Matlab 最终效果 转STL文件 将SW中机械臂模型导入matlab中,需要先转成STL文件,最重要的设置选项如下所示,尤其注意 ...
- matlab对xml文件操作,Matlab读写xml文件
xml文件以文档对象模型表示,简称DOM(Document Object Model).在Matlab中,使用xmlread读取xml文件成DOM节点,对xml文件的操作转化成对DOM节点的操作,使用 ...
- matlab与音频处理
MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 1 MATLAB 音频相关函数 1 MATLAB 处理音频信号的流程 2 音量标准化 2 声道分离合并与组合 3 数 ...
- MATLAB 与 音频处理 相关内容摘记
原文地址为: MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 1 MATLAB 音频相关函数 1 MATLAB 处理音频信 ...
- 利用matlab对音频做FFT进行频谱分析
利用matlab对音频的左右声道做频谱分析. syms y fs; syms in_put; in_put= 'C:\Users\getao\Desktop\立体声.wav' %in_put 为音频文 ...
- MATLAB播放音频sound
MATLAB播放音频sound >> clear >> [y, Fs] = audioread('a_hisa.mp3'); %% y是音频数据m*n的矩阵,Fs是采样率.n是 ...
- matlab从mp4文件中提取音频,如何提取mp4中的音频文件 怎样将视音频文件分离,保存视频中的音频文件...
本以为立秋后的天气会比较凉爽的,但没想到还是依旧的炎热,尤其是昨天,一天的时间就让我脸上起了很多的小疙瘩,感觉像痱子似的.原来是"秋老虎"作祟,"秋老虎"发威果 ...
最新文章
- Python3 与 C# 并发编程之~ Net篇
- IDEA代码生成插件CodeMaker
- 无障碍开发(一)之初认识
- 最强markdown编辑器typora图床教程-七牛版
- 搭建你的持续集成server - CruiseControl step by step(1)
- 解决idea下tomcat乱码
- retainAll用法
- Container is restarting, wait until the container is running
- 抖音上热门的方法和技巧
- 安卓动态调试七种武器之离别钩 – Hooking(上)
- 公章,加盖公章,英语怎么说?
- 态密度的Delta函数公式以及范霍夫奇点
- UE4_关于Roll,Yaw,Pitch,Rotator的理解
- 旅游流的概念_国内旅游流综述
- 二级 c语言 资料,计算机二级C语言复习资料
- Web漏洞-XXE漏洞(详细)
- 相关公式如下:v=at;s=1/2*a*t2;其中v是速度,a是加速度,t是时间,s是距离。编写程序计算该飞机的加速度。
- 【mariadb的安装】
- 【BT】经典蓝牙连接速度优化
- 阿里云学生服务器官网地址入口