python读取音频文件
时间: 2025-08-16 08:11:31 浏览: 5
在Python中读取音频文件是音频信号处理的基础任务之一,Python提供了多个库来支持不同格式的音频文件读取和处理。以下是一些常用的方法和相关库:
### 1. 使用 `wave` 模块
Python标准库中的 `wave` 模块可以用于读取和写入 `.wav` 格式的音频文件。该模块提供了对WAV文件的底层访问,适用于需要精确控制音频数据的应用场景。例如:
```python
import wave
with wave.open('test.wav', 'rb') as wf:
print("Number of channels:", wf.getnchannels())
print("Sample width:", wf.getsampwidth())
print("Frame rate:", wf.getframerate())
print("Number of frames:", wf.getnframes())
```
### 2. 使用 `pydub` 库
`pydub` 是一个高级音频处理库,支持多种音频格式(如 `.wav`, `.mp3`, `.ogg` 等),并且可以轻松地进行音频剪切、拼接、音量调整等操作。`pydub` 依赖于 `ffmpeg` 或 `libav` 来处理非WAV格式的音频文件。安装后可以通过以下方式读取音频文件:
```python
from pydub import AudioSegment
audio = AudioSegment.from_file("test.mp3")
print("Duration in seconds:", len(audio) / 1000)
```
### 3. 使用 `librosa` 库
`librosa` 是一个专注于音乐和音频分析的库,支持读取 `.wav`, `.mp3`, `.ogg` 等格式的音频文件,并提供了丰富的音频特征提取功能。例如:
```python
import librosa
audio, sr = librosa.load("test.wav", sr=None)
print("Sampling rate:", sr)
print("Audio duration:", len(audio) / sr)
```
### 4. 使用 `soundfile` 库
`soundfile` 是一个基于 `libsndfile` 的库,支持多种音频格式的读写操作,接口简洁易用。例如:
```python
import soundfile as sf
data, samplerate = sf.read('test.wav')
print("Sampling rate:", samplerate)
print("Data shape:", data.shape)
```
### 5. 使用 `sndhdr` 模块
Python标准库中的 `sndhdr` 模块可以用于识别音频文件的格式,类似于 `imghdr` 模块用于识别图像文件格式。例如:
```python
import sndhdr
info = sndhdr.what('test.wav')
print("File type:", info.filetype)
print("Frame rate:", info.framerate)
print("Number of channels:", info.nchannels)
print("Number of frames:", info.nframes)
print("Sample width:", info.sampwidth)
```
这些库和方法涵盖了从底层到高层的音频文件读取需求,用户可以根据具体应用场景选择合适的工具。[^2]
阅读全文
相关推荐




















