Matlab读取音频文件并进行分析

Matlab读取音频文件并进行分析


文章目录

  • Matlab读取音频文件并进行分析
  • 前言
  • 一、读取mp3文件
  • 二、节拍分析
  • 三、旋律分析
  • 总结


前言

我们


一、读取mp3文件

对音频处理的前提是将音频数据导入到Matlab中,这里使用audioread函数进行实现
将需要处理的音频文件放在m文件的路径下,进行如下调用即可
输出的data1根据mp3文件的详细格式有所变化,双声道音频为2维矩阵,单声道则为1维列表
fs为mp3文件的采样率,在后续的处理中需要用到。
在这里插入图片描述
获取的音频信号如下:
Matlab读取音频文件并进行分析_第1张图片

二、节拍分析

在对音乐的旋律进行分析之前,需要先获取音乐的节拍,即每个音的长度对应的时间,由于音乐的节拍通常不会改变,具有一定的规律,下面有2种方法对节拍进行计算。
1.时域分析,通过观察时域图像可以发现节拍的间隔。
Matlab读取音频文件并进行分析_第2张图片

2.自相关处理,由于音乐的节拍具有规律,在一定的时间间隔上的信号具有较高的相关性,通过自相关处理,可以在相关系数的曲线中获取信号的最小时间间隔,通常这就是节拍。
Matlab读取音频文件并进行分析_第3张图片
Matlab读取音频文件并进行分析_第4张图片

三、旋律分析

当我们希望从音频文件中获取音乐的主旋律时,我们可以通过短时FFT将音乐中的频率提取出来,为此我们需要音阶对应的频率列表,列表如下图所示,也可以在其他的网站上搜到对应的数据。
Matlab读取音频文件并进行分析_第5张图片
根据得到的节拍,对音频进行切分,对切片进行fft处理,得到频谱后,对能量较高的频率分量进行查值得到音频存在的旋律。
Matlab读取音频文件并进行分析_第6张图片

Matlab读取音频文件并进行分析_第7张图片


总结

以上是Matlab对于音频文件的通用处理方法,不同的音频内容处理效果存在差异。要实现更加复杂的处理效果,最好使用专业的音频处理软件或用神经网络进行研究。

你可能感兴趣的:(matlab,算法,开发语言)