「フレーム」を理解したい場合は、標準のwaveファイル形式を読んでください。その文書からhttps://web.archive.org/web/20140221054954/http://home.roadrunner.com/~jgglatt/tech/wave.htm
:たとえば
「演奏」することを意味しているサンプル点すなわち、アナログコンバータ(DAC)に送信されると同時に、まとめサンプルフレームと呼ばれています。ステレオ波形の例では、2つのサンプルポイントごとに別のサンプルフレームが作成されます。これは、そのステレオの例で以下に示されています。
sample sample sample
frame 0 frame 1 frame N
_____ _____ _____ _____ _____ _____
| ch1 | ch2 | ch1 | ch2 | . . . | ch1 | ch2 |
|_____|_____|_____|_____| |_____|_____|
_____
| | = one sample point
|_____|
あなたはこのような何かを行うことができモノラルに変換するには、
import wave
def stereo_to_mono(hex1, hex2):
"""average two hex string samples"""
return hex((ord(hex1) + ord(hex2))/2)
wr = wave.open('piano2.wav','r')
nchannels, sampwidth, framerate, nframes, comptype, compname = wr.getparams()
ww = wave.open('piano_mono.wav','wb')
ww.setparams((1,sampwidth,framerate,nframes,comptype,compname))
frames = wr.readframes(wr.getnframes()-1)
new_frames = ''
for (s1, s2) in zip(frames[0::2],frames[1::2]):
new_frames += stereo_to_mono(s1,s2)[2:].zfill(2).decode('hex')
ww.writeframes(new_frames)
は、ステレオからモノラルに行くには何の明確な方法はありません。あなたはただ一つのチャンネルを落とすことができます。上の、私はチャンネルを平均しています。それはあなたのアプリケーションによって異なります。
ありがとうございました、このリンクは非常に参考になり、面白かったです。 – jameh
私はちょっとした投票や受け入れられた答えの愛を得ることができますか? –