Awesome Python Scientific Audio:做音频研究,这些 Python 工具你得知道 文章目录Awesome Python Scientific Audio做音频研究这些 Python 工具你得知道Awesome Python Scientific Audio做音频研究这些 Python 工具你得知道做音频方向的科研离不开各种工具库。从读取音频文件、提取特征到跑深度学习模型每一步都需要趁手的 Python 包。但问题来了音频相关的 Python 库散落在各处质量参差不齐找起来费劲。awesome-python-scientific-audio 这个仓库做的事情很简单把和科学音频研究相关的 Python 工具做了一次系统整理按功能分成十几个类别总共收录了 67 个包。仓库目前拿到了 1,694 个 Star不算特别火爆但对做音频研究的人来说这份清单的实用价值很高。音频读写最基础的需求是把音频文件读进来、写出去。这个类别里有几个常用的库audioread 是一个跨平台的音频解码库底层支持 GStreamer、Core Audio、MAD、FFmpeg 等多种后端基本上什么格式都能处理。PySoundFile 基于 libsndfile配合 NumPy 使用读写速度很快。pydub 提供了更高层的接口裁剪、拼接、转格式这些操作一行代码就能搞定。如果需要处理音频的元数据比如 ID3 标签、专辑信息这类mutagen 可以读写各种格式的音频元数据。tinytag 则专注于轻量级的元数据读取支持 MP3、OGG、FLAC、WAV。数字信号处理DSP 是音频研究的基础。这个分类下的工具覆盖了从滤波器设计到频谱分析的各个环节。pyFFTW 是 FFTW 的 Python 封装做快速傅里叶变换性能很好。PyWavelets 实现了离散小波变换。pyroomacoustics 可以模拟房间声学生成房间脉冲响应在麦克风阵列和语音增强研究中用得很多。pyfar 这个库值得关注它专门为声学信号设计提供了从文件读取、DSP 处理到可视化的完整工具链。NSGT 实现了非平稳 Gabor 变换和常 Q 变换适合做音乐信号的时频分析。特征提取做音频分类或识别特征提取是绕不开的环节。librosa 是这个领域最知名的库提供了频谱质心、MFCC、色度特征等常用特征的计算接口文档和教程都很完善。essentia 是 MTG 开发的音乐特征提取库C 内核加 Python 绑定性能出色支持低级和高级特征的提取。audioFlux 是一个相对新的库专注于音频和音乐分析的特征提取。aubio 用 C 写的提供了节拍检测、音高检测等功能也有 Python 接口。语音处理语音相关的工具在这个清单里占了很大比重。SpeechRecognition 封装了多个语音识别引擎和 API支持在线和离线识别。deepspeech 是 Mozilla 开源的预训练语音识别模型。pyannote.audio 专注于说话人分割用神经网络实现在会议记录、多人对话场景下效果不错。pyAudioAnalysis 集成了特征提取、分类和说话人分割功能是一个比较全面的音频分析工具。py-webrtcvad 是 WebRTC 语音活动检测器的 Python 接口判断音频里哪些部分有人说话。做语音质量评估的话pypesq 封装了 PESQ 评分计算pystoi 实现了短时客观可懂度指标。数据增强训练模型需要大量数据音频数据增强是扩充数据集的常用手段。audiomentations 提供了加噪声、时间拉伸、音高偏移等增强操作使用方式和图像增强库类似。muda 专门为音乐数据增强设计。pydiogment 也是一个音频数据增强库功能类似。音乐信息检索MIR 是一个比较细分的研究方向这个类别里的工具都很专业。librosa 同时也属于这个分类它的节拍检测、结构分析功能在 MIR 研究中广泛使用。madmom 在节拍检测、起始检测和和弦识别上有很强的表现。mir_eval 提供了各种 MIR 任务的评估指标包括源分离评估。msaf 专注于音乐结构分析。深度学习深度学习在音频领域的应用越来越广这个分类收录了几个专门面向音频的深度学习工具。TorchAudio 是 PyTorch 官方的音频处理库数据加载和预处理都很方便。Kapre 为 Keras 提供了音频预处理层可以直接在模型里做频谱计算。nnAudio 用一维卷积网络加速音频处理基于 PyTorch 实现。其他类别除了上面这些清单还收录了数据增强、感知模型、源分离、MIDI 处理、实时音频、Web 音频等方向的工具。源分离方面有 NUSSL它是一个完整的源分离框架支持传统 DSP 方法和深度学习方法。MIDI 处理方面有 Music21、Pretty-MIDI、mido 等。实时音频方面有 PYO 和 python-sounddevice。仓库还整理了相关的教程、书籍和论文。入门推荐看 Numpy 和 Scipy 的官方教程进阶可以看 Meinard Müller 的《Fundamentals of Music Processing》配套有 Python 练习。做音频研究的 Python 开发者可以把这个仓库当成一个工具索引来用。按需查阅找到适合自己研究方向的库比漫无目的地搜索效率高很多。练习。做音频研究的 Python 开发者可以把这个仓库当成一个工具索引来用。按需查阅找到适合自己研究方向的库比漫无目的地搜索效率高很多。