Python常用音频库

之前做一个Python项目,跟音频有关,具体包括录音、绘制波形以及特征分析等。为此接触到几个音频库,简单总结一下。

sounddevice与soundfile

Python sounddevice库提供了音频设备的查询、设置接口,以及音频流的输入(录音)和输出(播放功能)。函数接口简单易用,详细文档可参考https://python-sounddevice.readthedocs.io/。sounddevice库底层使用PortAudio库的接口,而PortAudio本身就支持多个平台的音频接口,如Linux的ALSA,macOS的Core Audio,以及Windows的多种API。详见http://portaudio.com/。

sounddevice在播放和录音时,用到了numpy数组。sounddevice中的音频流其实就是numpy数组流。如果要操作存储在磁盘上的音频文件,就涉及到numpy数组(流)和存储格式之间的转换。这时就要用到另一个工具库,即soundfile。利用soundfile库,可以方便地将numpy数组存储到音频文件或者将音频文件加载到numpy数组中。关于soundfile库,详细文档可参考http://pysoundfile.readthedocs.org/。因此soundfile库常常和soundfile库一起配合使用。

安装

安装sounddevice:

pip install sounddevice

安装soundfile:

pip install soundfile

设备管理

安装好sounddevice后,直接运行该模块就会列出系统中可用的音频设备。这也可以用来测试sounddevice库是否工作正常。比如在本人的macOS上,其结果如下。

 python3 -m sounddevice
> 0 Built-in Microphone, Core Audio (2 in, 0 out)
< 1 Built-in Output, Core Audio (0 in, 2 out)

当然也可以在代码里列举音频设备,只需要调用query_devices():

#!/usr/bin/env python3
import sounddevice as sd
print(sd.query_devices())
python3 sd_list.py
> 0 Built-in Microphone, Core Audio (2 in, 0 out)
< 1 Built-in Output, Core Audio (0 in, 2 out)

你可能感兴趣的:(计算机技术,#,Python,音频特征,mfcc,python)