📅  最后修改于: 2023-12-03 15:38:47.513000             🧑  作者: Mango
本文介绍如何使用Python拆分多声道的音频文件(wav格式)为单声道的音频文件。
import wave
import numpy as np
from scipy.io import wavfile
# 打开WAV文件
wav = wave.open('test.wav', 'r')
# 获取WAV文件的信息
num_channels = wav.getnchannels() # 声道数
sample_width = wav.getsampwidth() # 采样位宽(字节)
framerate = wav.getframerate() # 采样率(每秒样本数)
num_frames = wav.getnframes() # 音频帧数
# 读取音频数据
data = np.frombuffer(wav.readframes(num_frames), dtype=np.int16)
# 重塑数组(行数为声道数)
data = data.reshape((-1, num_channels))
# 拆分声道
for i in range(num_channels):
# 取出单个声道数据
channel_data = data[:, i]
# 写入单声道WAV文件
wavfile.write(f'channel_{i+1}.wav', framerate, channel_data)
# 关闭WAV文件
wav.close()
通过上述简单的步骤,我们可以方便地将多声道的WAV文件拆分为多个单声道的音频文件。本文所使用的代码可以根据具体需求进行定制化修改。