我想读取左右声道。
import wave
origAudio = wave.open("6980.wav","r")
frameRate = origAudio.getframerate()
nChannels = origAudio.getnchannels()
sampWidth = origAudio.getsampwidth()
nbframe=origAudio.getnframes()
da = np.fromstring(origAudio.readframes(48000), dtype=np.int16)
origAudio.getparams()
参数 (2, 3, 48000, 2883584, 'NONE', 'not compressed')
现在我想用 24 位数据中的波形文件分隔左右声道 最佳答案
您可以使用 wavio
,这是我编写的一个小模块,用于使用 numpy 数组读取和写入 WAV 文件。在你的情况下:
import wavio
wav = wavio.read("6980.wav")
# wav.data is the numpy array of samples.
# wav.rate is the sampling rate.
# wav.sampwidth is the sample width, in bytes. For a 24 bit file,
# wav.sampwdith is 3.
left_channel = wav.data[:, 0]
right_channel = wav.data[:, 1]
wavio
is on PyPi ,源代码在 github 上的 https://github.com/WarrenWeckesser/wavio 。关于python - Python从24位数据的立体声wav文件wav中读取单声道数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40507151/