保存numpy.ndarray音频文件
时间: 2024-09-10 20:12:24 浏览: 74
保存 numpy.ndarray 音频文件通常涉及将数组转换为常见的音频格式,比如 WAV、MP3 或者 FLAC 等。你可以使用 Python 的 scipy 和 pydub 库来完成这个过程。以下是基本步骤:
1. 导入所需的库:
```python
import numpy as np
from scipy.io.wavfile import write
from pydub import AudioSegment
```
2. 创建或加载 numpy array 形状为 (frames, channels) 的音频数据。例如,(44100 * seconds, 1) 对应单声道,(44100 * seconds, 2) 对应立体声。
3. 将 numpy array 转换为 WAVE 格式:
```python
def save_numpy_array_as_wav(array, filename):
# 如果需要立体声,可以转置数组
if len(array.shape) == 2 and array.shape[1] > 1:
array = array.T
sample_rate = 44100 # 常见采样率
data = array.tobytes()
write(filename, sample_rate, data)
```
4. 使用 pydub 将 numpy array 转换为其他格式:
```python
def save_numpy_array_as_mp3(array, filename):
audio = AudioSegment.from_wav_bytes(array.tobytes())
audio.export(filename, format="mp3")
```
5. 调用函数并传入音频数据和文件名:
```python
# 示例,假设你已经有了名为 `audio_data` 的 numpy array
save_numpy_array_as_wav(audio_data, "output.wav")
save_numpy_array_as_mp3(audio_data, "output.mp3")
```
阅读全文