需求:将一个单通道的wav音频文件转化成双通道的wav文件
解决方法:将单通道文件复制成双通道
参考链接:【音频处理】python将两个单声道wav音频合成一个双声道wav音频_立体声感
import scipy.io.wavfile as wavfile
import numpy as np
import wave
path1="./result.wav"
path2="./reresult.wav"
merge_framerate = 16000 # 采样率
merge_samples = 2000 # 采样点
merge_sampwidth = 2 # 采样宽度,默认2Byte
merge_channels = 2 # 声道数,因为是生成双声道音频所以默认2
fs_left, data = wavfile.read(path1) # 读取音频数据
data = np.vstack([data, data]) # 组合左右声道
data = data.T # 转置(这里参考了双声道音频读取得到的格式)
#打开目标文件,wb表示以二进制写方式打开,只能写文件,如果文件不存在,创建该文件;如果文件已存在,则覆盖写
wf = wave.open(path2, 'wb')
wf.setnchannels(merge_channels) # 设置声道数
wf.setsampwidth(merge_sampwidth) # 设置采样宽度
wf.setframerate(merge_framerate) # 设置采样率
wf.writeframes(data.tobytes()) # 将data转换为二进制数据写入文件
wf.close() # 关闭已打开的文件