且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

python中的立体声到单声道插值

更新时间:2022-06-22 22:37:32

原来我不知道 audioop 内置模块(感谢 Anil_M答案.此外,我在转换立体声方面都错了格式写作(我应该使用结构).

Turns out like I didn't know about the audioop built-in module (thanks to Anil_M's answer. Also, I was wrong on both converting the stereo format and writing (I should have used struct).

这让一切变得更加简单:

This makes everything absolutely easier:

stereo = wave.open('stereofile.wav', 'rb')
mono = wave.open('monofile.wav', 'wb')
mono.setparams(stereo.getparams())
mono.setnchannels(1)
mono.writeframes(audioop.tomono(stereo.readframes(float('inf')), stereo.getsampwidth(), 1, 1))
mono.close()

然后您可以通过修改最新的2个参数(1, 0 为左,0, 1 为右)甚至使用1.414 来选择单个通道 等功率代替等幅

Then you can select a single channel by modifying the latest 2 parameters (1, 0 for left, 0, 1 for right) or even using 1.414 for equal power instead of equal amplitude