実現したいこと
pythonでwavファイルを処理しています.ステレオのファイルを入力として受け取り,左右の音量差を変更したいため,試しに右側の音を全部消してみようとし,右のチャンネルの要素をすべて0にしました.しかし,出力の音を聞いてみても,右と左の音量は変わらないように感じます.出力の仕方に問題があるのでしょうか?左右の音量を変更し,それを出力するまでが実現したいことです.どなたか知恵を貸してください.
該当のソースコード
python
1import wave 2import numpy as np 3from scipy.io.wavfile import write 4 5filename = 'input.wav' 6 7datafile = wave.open(filename, 'r') 8 9data_buf = datafile.readframes(-1) 10 11data = np.frombuffer(data_buf, dtype='int16') 12 13nchannles = datafile.getnchannels() 14 15data_l_channel = data[::nchannles] 16data_r_channel = data[1::nchannles] 17 18##ここで左右の音量を変更したい 19data_r_channel = data_r_channel * 0 20 21data = np.c_[data_l_channel, data_r_channel] 22data = data.astype(np.int16) 23 24#出力(44100は例) 25write('out.wav', 44100, data) 26
nchannlesを定義したら私の環境では動作しました。
ありがとうございます.
nchannelsが取得できるように変更しました.
完全に右の出力が消えるという結果には私はならないのですが,なりましたでしょうか?
data_r_channel0 = data_r_channel * 0
data_l_channel0 = data_l_channel * 0
して
data = np.c_[data_l_channel0, data_r_channel0]
にすると無音に感じました。
左右両方とも0にすると出力が無音になるのはこちらでも検証できました。
片耳だけ0にしたいのですがそれはできていますか?
音源(wav)では0になってますが、逆chの音がかすかに流れているみたいですね。
再生ソフトの問題なのか、HW起因なのかは判断しかねますが。
別デバイスでの再生を試すのを忘れてたと思い別PCで再生したらやりたいことができました.デバイスの問題みたいでした.
ありがとうございました.
回答2件
あなたの回答
tips
プレビュー