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音频文件读取相关推荐

  1. 实验一 元音音频时域、频谱分析 及 RGB文件读取、熵计算

    实验内容: 录制三个元音音频,通过音频分析工具软件观察.总结时域波形.频谱的特点 编程实现RGB文件三通道分量的熵计算 该测试文件分辨率为256*256,数据格式为每个像素占用3字节,BGRBGR.. ...

  2. Matlab中的文件读取函数

    textread的用法 tempText = textread(fileName); NodeNum = tempText(1,1); PathNum = tempText(1,2) ClientNu ...

  3. matlab查看hdf头文件,基于Matlab的HDF文件读取方法

    应 用 技 术 基于 的 文 件读 取方法 黄 骏 (广东 电网 有 限责任 公 司 阳江供 电局 ) 摘 要是一种 广 泛用于 科 学数 据共 享的 国 际标准 数据 格式 ,正确 高效 地读 取文 ...

  4. 将solidworks机械臂模型导入Matlab

    将solidworks机械臂模型导入Matlab 转STL文件 导入Matlab 最终效果 转STL文件 将SW中机械臂模型导入matlab中,需要先转成STL文件,最重要的设置选项如下所示,尤其注意 ...

  5. matlab对xml文件操作,Matlab读写xml文件

    xml文件以文档对象模型表示,简称DOM(Document Object Model).在Matlab中,使用xmlread读取xml文件成DOM节点,对xml文件的操作转化成对DOM节点的操作,使用 ...

  6. matlab与音频处理

    MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 1 MATLAB 音频相关函数 1 MATLAB 处理音频信号的流程 2 音量标准化 2 声道分离合并与组合 3 数 ...

  7. MATLAB 与 音频处理 相关内容摘记

    原文地址为: MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 1 MATLAB 音频相关函数 1 MATLAB 处理音频信 ...

  8. 利用matlab对音频做FFT进行频谱分析

    利用matlab对音频的左右声道做频谱分析. syms y fs; syms in_put; in_put= 'C:\Users\getao\Desktop\立体声.wav' %in_put 为音频文 ...

  9. MATLAB播放音频sound

    MATLAB播放音频sound >> clear >> [y, Fs] = audioread('a_hisa.mp3'); %% y是音频数据m*n的矩阵,Fs是采样率.n是 ...

  10. matlab从mp4文件中提取音频,如何提取mp4中的音频文件 怎样将视音频文件分离,保存视频中的音频文件...

    本以为立秋后的天气会比较凉爽的,但没想到还是依旧的炎热,尤其是昨天,一天的时间就让我脸上起了很多的小疙瘩,感觉像痱子似的.原来是"秋老虎"作祟,"秋老虎"发威果 ...

最新文章

  1. Python3 与 C# 并发编程之~ Net篇
  2. IDEA代码生成插件CodeMaker
  3. 无障碍开发(一)之初认识
  4. 最强markdown编辑器typora图床教程-七牛版
  5. 搭建你的持续集成server - CruiseControl step by step(1)
  6. 解决idea下tomcat乱码
  7. retainAll用法
  8. Container is restarting, wait until the container is running
  9. 抖音上热门的方法和技巧
  10. 安卓动态调试七种武器之离别钩 – Hooking(上)
  11. 公章,加盖公章,英语怎么说?
  12. 态密度的Delta函数公式以及范霍夫奇点
  13. UE4_关于Roll,Yaw,Pitch,Rotator的理解
  14. 旅游流的概念_国内旅游流综述
  15. 二级 c语言 资料,计算机二级C语言复习资料
  16. Web漏洞-XXE漏洞(详细)
  17. 相关公式如下:v=at;s=1/2*a*t2;其中v是速度,a是加速度,t是时间,s是距离。编写程序计算该飞机的加速度。
  18. 【mariadb的安装】
  19. 【BT】经典蓝牙连接速度优化
  20. 阿里云学生服务器官网地址入口

热门文章

  1. 学校网络认证服务器无响应,校园网常见问题
  2. 常规英文字体 电商_最强电商美工逆袭系列1——最全的电商字体应用详解
  3. 初读《Linux运维之道》浅见
  4. Python和Java哪个更好找工作?
  5. wps vba宏插件_wps下载_wps下载免费完整版客户端[办公软件]
  6. mac安装mysql devel_Mac安装Mysql
  7. Linkedin领英如何避免封号
  8. Visio2007产品密钥
  9. Windows下安装PyQt5教程
  10. 【WinForm】自己写一个截图软件1 --注册全局热键