代码详解:用Python给你喜欢的音乐分个类吧
你喜欢什么样的音乐?目前,很多公司实现了对音乐的分类,要么是为了向客户提供推荐(如Spotify、SoundCloud),要么只是作为一种产品(如Shazam)。对音乐进行分类,首先要确定音乐类型。事实证明,用机器学习技术从大量数据中出音乐的各种潮流和类型是非常成功的。音乐分析亦然。
本文我们将学习如何用Python进行音频/音乐信号分析以及之后如何用该技能对不同类型的音乐片段进行分类。
用Python处理音频
声音以音频信号的形式表示,音频信号具有频率、带宽、分贝等参数,音频信号一般可表示为振幅和时间的函数。
这些声音有多种格式,因此计算机可以对其进行读取和分析。例如:
• mp3 格式
• WMA (Windows Media Audio) 格式
• wav (Waveform Audio File) 格式
音频库
Python有一些很好用的音频处理库,比如Librosa和PyAudio。另外,还有一些基本的音频功能的内置模块。
我们将主要使用两个音频库进行音频采集和回放,如下:
1.Librosa
Librosa是一个Python模块,通常用于分析音频信号,但更适合音乐信号分析。它包括构建
一个音乐信息检索(MIR)系统的具体细节,目前,Librosa已充分实现文档化,并具有许多相关的示例和教程。
安装
pip install librosa
or
conda install -c conda-forge librosa
可以安装附带很多音频解码器的ffmpeg(一个开源免费跨平台的视频和音频流方案)以提高音频解码功率。
2.IPython.display.Audio
IPython.display.Audio可以让用户直接在Jupyter notebook中播放音频。
音频包加载
import librosa
audio_path = '../T08-violin.wav'
x , sr = librosa.load(audio_path)
print(type(x), type(sr))linspace函数python
<class 'numpy.ndarray'> <class 'int'>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论