声音(音乐)分类综述

article/2025/8/22 3:55:09

文章还不完善,会慢慢更新。

1.介绍

2.Deep learning:

深度学习已经广泛应用各个领域,不管是图像识别还是语音识别方面均已超过原有的机器学习算法。取代了传统的人工特征方法。

2.1 Spectrogram:

声音信号是一维时域信号。通过傅里叶变换,到频域上可以看出信号的频率分布,但是丢失了时域信息,无法看出频率分布随时间的变化。为了解决这个问题,常用的办法是短时傅里叶变换(STFT)

2.1.1 生成声谱图:

  1. 对长信号分帧,加窗口;
  2. 对每一帧(短时)信号做傅里叶变换;
  3. 将频谱图旋转;
  4. 将频谱图幅度用灰度图来表示;
  5. 将FFT的结果按照时间维度堆叠;

在这里插入图片描述

2.2.2 声谱图的作用:

  1. 声音信号的时频域表示
  2. 研究语音的重要工具;
  3. 利用HMM对声谱建模,可以讲声音转化为文字;
  4. 提取声音分类所需要的特征;

2.2.3 MFCCs:

以上均为我们人为对声音信号的分析,相比这些,人的听觉系统具有巨大的优势。

  1. 只聚焦于某些特定频率区域:
    只让某些频率的信号通过;低频区域分布密集;高频区域分布稀疏

  2. 非线性系统:
    对不同频率信号的灵敏度不同;频率提高1倍,人察觉不到提高了两倍

  3. 语音特征:
    能提取出语义信息, 而且能提取出说话人的个人特征

梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient, MFCC)考虑到了人类的听觉特征。
梅尔标度:
将普通的频率标度转化为梅尔频率标度

映射关系:
m e l ( f ) = 2595 ∗ l o g 10 ( 1 + f / 700 ) mel(f) = 2595*log_{10}(1+f/700) mel(f)=2595log10(1+f/700)

通过这个映射关系,在梅尔标度下,人耳对频率的灵敏度变成了线性关系。

这部分内容大部分参考[13,14,15],此处仅做一个简单总结,描述如何得到MFCC特征。
可以简单认为梅尔频谱是对正常声谱加了一个滤波器得到对梅尔频谱做倒谱分析得到梅尔倒谱。

  1. 何为.wav文件,信号数据和采样频率:
    .wav文件即无损音频文件,录音设备在录音,或者python读取音频文件时,是按固定频率对真实声波的每个点进行采样,实现从真实信号到模拟信号的转变。此处采样频率应该满足奈奎斯特采样定律,即采样频率大于信号最大频率的2倍。保证能够还原原始信号。
  2. 数据预处理:
    为了提高信噪比,我们需要进行数据预处理。按照以下公式进行数据预处理(但不知道原理):
    y ( t ) = x ( t ) − α ∗ x ( t − 1 ) y(t) = x(t) - \alpha*x(t-1) y(t)=x(t)αx(t1)
  3. 分帧:
    将原始数据划分为多个音频段,类似一张图和视频的关系。比如我们常见的60帧。
  4. 加汉明(Hanmming)窗:
    作用是为了使帧和帧之间变得平滑,消除吉布斯效应。
  5. 离散傅里叶变换(FFT):

2.3 DL Model(CNN)

在这里插入图片描述

3. Machine Learning:

3.1 Feature Extraction:

3.1.1 时域特征(Time Domain)

  1. 中心距(Central moments):
    原始声音信号(声波)的幅度的均值(mean),标准差(standard deviation),偏度(skewness),峰度(kurtosis)

  2. 过零点(Zero Crossing Rate-ZCR):
    过零点即声音信号(声波)符号变化的点,也就是从正值变成负值。比如下面是一段声音信号:
    在这里插入图片描述
    对这段信号放大,只选取一小部分,得到放大的局部图:
    在这里插入图片描述
    我们可以从图中可以看出,这一段信号有6个过零点。
    提取信号过零点个数的 总数(sum),均值(mean),标准差(mean) 作为特征。
    对于某些Rock或者重金属音乐这个特征值会非常的高;

  3. Root Mean Square Energy (RMSE):
    ∑ n = 1 N ∣ x ( n ) ∣ 2 / N \sqrt{\sum^N_{n=1}|x(n)|^2/N} n=1Nx(n)2/N
    然后对RMSE求均值(mean),标准差(mean)

  4. 节奏(Tempo)
    节拍可以表征音乐的快慢,特被定义为每分钟的节拍数(Beats Per Minute-BPM)

3.1.2 频域特征(Frequency Domain)

  1. 梅尔倒谱系数(Mel-Frequency Cepstral Coefficients-MFCC )

  2. 色度特征(Chroma Features):
    这是一个音频信号非常有用的一个表征方式。可以认为是将整个频谱投影到12个箱子。
    有兴趣的可以参考[21],非音乐专业,不是很理解,以下是这个特征的生成方式。
    在这里插入图片描述

  3. 频谱中心(Spectral Centroid)
    f c = Σ k S ( k ) f ( k ) Σ k S ( k ) f_c = \frac{\Sigma_k S(k)f(k)}{\Sigma_k S(k)} fc=ΣkS(k)ΣkS(k)f(k)
    类比,假设我们有两首歌,风格分别是Blues和Metal。和Blues相比,Metal风格的声音,在音乐的尾部有更多的频率。二者的频率的中心也就有所不同。
    对频率做带权(幅度)求和,然后除以幅度求和。

  4. 频谱带宽(Spectral Band-width)
    f c = ( Σ k S ( k ) f ( k ) − f c ) 1 p f_c = (\Sigma_k S(k)f(k) - f_c)^\frac{1}{p} fc=(ΣkS(k)f(k)fc)p1

  5. 谱对比度(Spectral Contrast)

  6. Spectral Roll-off
    它是对声音信号形状(波形图)的一种衡量。它表示低于总频谱能量的指定百分比的频率。
    在这里插入图片描述
    蓝色为原声音信号,红色为Spectral Roll-off。可以发现和声波信号形状相似。

4.结论和展望:

参考资料:

[1] 手把手教你打造一个曲风分类机器人
[2] 怎样用深度学习发现一首歌属于哪个流派?
[3] Finding the genre of a song with Deep Learning — A.I. Odyssey part. 1
[4] 私人定制——使用深度学习Keras和TensorFlow打造一款音乐推荐系统
[5] Building a Music Recommender with Deep Learning
[6] 个性化推荐算法:为什么网易云音乐推荐歌单那么精准?
[7] pyAudioAnalysis: An Open-Source Python Library for Audio Signal Analysis
[8] Music Genre Classification
[9] Music Genre Classification using Machine Learning Techniques
[10] Speech Processing for Machine Learning: Filter banks, Mel-Frequency Cepstral Coefficients (MFCCs) and What’s In-Between
[11] 【干货】用神经网络识别歌曲流派(附代码)
[12] Models for AudioSet: A Large Scale Dataset of Audio Events
[13] 语音信号处理之(四)梅尔频率倒谱系数(MFCC)
[14] AI(I)语音(I):MFCC特征参数提取
[15] CMU:Topic: Spectrogram, Cepstrum and Mel-Frequency Analysis
[16] Recommending music on Spotify with deep learning
[17] Sound Classification using Spectrogram Images
[18] 采用深度学习算法为Spotify做基于内容的音乐推荐
[19] 音频特征提取——librosa工具包使用
[20] Music Genre Classification with Python
[21] 什么是Chroma Features


http://chatgpt.dhexx.cn/article/4mpEnraG.shtml

相关文章

倾听色彩的声音

前言 色彩是一个网站的情绪表达方式或者说是性格特征的体现,每种颜色都有着属于自己的声音。作为一种视觉元素,色彩是很难被量化被衡量的,也很难用理性的角度去分析和阐述它,我现在试着用另外一个角度去试图衡量网页的色彩&#x…

聆听膝盖的声音

目录 1,一般性保养 2,健膝运动法 3,聆听膝盖的声音 4,膝盖损伤的自我诊断 5,关于负重拉练 6,髌骨软化症的家庭治疗 7,中医手法加中药外敷治疗髌骨软化症 1,一般性保养 1.1&#xff…

关于声音

◆ ◆ ◆ 声波 声音始于空气中的振动,如吉他弦、人的声带或扬声器纸盆产生的振动。这些振动一起推动邻近的空气分子,从而轻微增加空气压力。压力下的空气分子随后推动周围的空气分子,后者又推动下一组分子,依此类推。 高压区域穿…

浅析硬件“好声音”: 声学器件

随着智能化产品的普及,音视频硬件在电子设计中所占的比例越来越高。常见如电视机、导航仪、商超机器人等。音视频硬件中,声学器件是必不可少的基础元件,声学器件主要包括麦克风和喇叭,麦克风拾取声音,喇叭播放声音。麦…

我们是如何听见声音的

目录 1. 言语链 2. 听觉器官 3. 听觉的机理 4. 听觉掩蔽 4.1 频域掩蔽 4.2 时域掩蔽 5. 听学模型 5.1 感知线性预测模型 5.2 Seneff听觉模型 了解人类是如何听见语音和感知语音有助于我们研究如何去表征语音信号本身,以及更好的设计语音信号处理系统。 1.…

《听--海的声音》项目

《听 – 海的声音》 一.项目简介 该项目是一个类似于喜马拉雅听书项目的一个简化版,实现了能够在线听歌,用户能够上传歌曲,用户能够录制歌曲等相关的一些功能。 二.模块 该项目一共分为了两大模块,一类是游客模块,…

html5 video标签播放视频流解决方案

项目要求从文件服务器读取音视频文件,以流的方式传给前台,并能够播放视频。 做了一个demo,用html5的video,audio标签实现。 后台实现代码: GetMapping(value "/getVideos") public String getVideos(Htt…

video 标签

一&#xff0c;video介绍 1&#xff0c;在H5之前要想在网页中播放视屏&#xff0c;需要相关的插件&#xff0c;例如flash。H5集成了视频组件video&#xff0c;可以轻松的在网页上添加视频。 2.在 <video></video> 标签中间的内容&#xff0c;是针对浏览器不支持此…

video标签样式属性设置

<!--初始标签--><video controls"controls"><source src"~/Content/Images/74d6af65-41f5-4be4-ba3d-e63b90107100.mp4" type"video/mp4" /></video>效果图 css隐藏一些视频操作 /*播放按钮*/video::-webkit-media-con…

h5 video标签

h5 video标签&#xff1a; Video 对象属性 属性描述audioTracks返回表示可用音频轨道的 AudioTrackList 对象。autoplay *设置或返回是否在就绪&#xff08;加载完成&#xff09;后随即播放视频。buffered返回表示视频已缓冲部分的 TimeRanges 对象。controller 返回表示视…

video标签和source标签

介绍 < video >元素用于在HTML或者XHTML文档中嵌入媒体播放器&#xff0c;用于支持文档内的视频播放。 < source >元素为< picture >,< audio >或者< video >元素指定多个媒体资源 video标签常见属性 autoplay 如果出现该属性&#xff0c;则…

html video标签播放直播视频,HTML5 Video 标签播放及控制视频

Video 是 HTML5 中新增的标签,使用 Video 标签可以播放 ogg、mp4、webm 等格式的视频,Video 标签的引入,减少前端页面对 Flash 动画的依赖。 0x0 预备知识 不同的浏览器支持的视频格式可能不同,以下是摘自 W3School 各个浏览器对三种视频格式的支持情况: 浏览器对视频格式…

html5 video css样式修改,htmlvideo标签用法

HTML5中 使用video标签 播放本地视频 JS&#xff1a; 在test.html页面&#xff0c;使用button标签创建四个按钮&#xff0c;分别是播放/暂停、大、中、小&#xff0c;用于控制视频的播放效果。同时&#xff0c;使用video标签创建一个视频。 网页设计中html5的video 标签如何写…

css video 样式,使用CSS修改 video 标签默认样式

使用CSS修改 video 标签默认样式 时间:2019-11-08 17:42:14 来源: 作者: 效果展示: 1、模拟直播,去除进度条、当前观看时间,剩余时间。 效果: 2、去除 video 标签全部控件 效果: Tags:CSS 点击:() 评论:() 声明:本站部分内容及图片来自互联网,转载是出于传递更多信…

video标签的使用

记录工作中的问题 需求&#xff1a;播放前自定义图片&#xff0c;添加遮罩&#xff0c;添加暂停按钮&#xff0c; 且不显示功能区。点击播放开始显示功能区。左右切换视频需要乱序重排&#xff0c;隐藏掉转发, 点击回到顶部等 左右切换&#xff1a; 播放前&#xff1a; 开始播…

有刷电机,无刷电机和电调的总结

有刷直流电机工作原理 &#xff1a; 有刷直流电机的主要结构就是定子转子电刷&#xff0c;通过旋转磁场获得转动力矩&#xff0c;从而输出动能。电刷与换向器不断接触摩擦&#xff0c;在转动中起到导电和换相作用。 有刷直流电机采用机械换向&#xff0c;磁极不动&#xff0c;…

BLDC无刷直流电机驱动电路-硬石电子

1.BLDC无刷直流电机驱动电路&#xff0c;因为BLDC是三相完全一样的驱动电路&#xff0c;下图为其中一相电路图&#xff0c;其他两相完全一样。 主要元器件&#xff1a; 高速光耦&#xff1a;TLP715 MOS管驱动IC&#xff1a;IR2110S MOS&#xff1a;IRF540NS D7和C13为自举电路…

涨知识:直流无刷电机的控制方式

目前直流无刷电机的控制主要分两大类&#xff1a;方波控制&#xff08;梯形波控制&#xff09;与正弦波控制&#xff0c;本文PEKEW派酷就具体解说一下这两种控制方式&#xff1a; 1&#xff09;方波控制 通过霍尔传感器获得电机转子的位置&#xff0c;然后根据转子的位置在36…

【零基础玩转BLDC系列】基于反电动势过零检测法的无刷直流电机控制原理

无刷直流电动机基本转动原理请参考《基于HALL传感器的无刷直流电机控制原理》&#xff0c;基本原理及基础知识本篇不再赘述。 目录 反电势过零检测法的原理 反电势过零检测实现方法 位置传感器的存在限制了无刷直流电机在某些特定场合中的应用&#xff0c;如&#xff1a;使电…

无刷电机与驱动

直流无刷电机 【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 | 稚晖的个人站 写得很清晰 机器人硬件三大核心部件&#xff08;电机、减速器、驱动器&#xff09; 照这样看来&#xff0c;直流电机驱动和无刷电机驱动完全不是一个维度的。 直流电机驱动都不用去管电机换…