1

使用可能なサウンド ファイルにエコーを配置する次のコードを作成しました。残念ながら、出力は非常にノイズの多い結果であり、正確には理解できません。これに関して誰でも私を助けることができますか?スキップされたステップはありますか?

#convolving a room impulse response function with a sound sample both of stereo type
from scipy.io import wavfile
    inp=wavfile.read(sound_path+sound_file_name)
    IR=wavfile.read(IR_path+IR_file_name)
    if inp[0]!=IR[0]:
        print "Size mismatch"
        sys.exit(-1)
    else:
        rate=inp[0]
    print sound_file_name
    out_0=fftconvolve(inp[1][:,1],IR[1][:,0])
    out_1=fftconvolve(inp[1][:,1],IR[1][:,1])
    in_counter+=1
    out=np.vstack((out_0,out_1)).T
    out[:inp[1].shape[0]]=out[:inp[1].shape[0]]+inp[1]
    wavfile.write(sound_path+sound_file_name+'_echoed.wav',rate,out)
4

2 に答える 2

2

サウンドファイルにエコーを追加することは、まさに...エコーを追加することです。 あなたのコードは、2 つのサウンドを一緒に追加しているようには見えません。入力音を別のものに変換しているように見えます。

データ フローは次のようになります。

source sound ------------------------------>|
      |                                     + ----------> target sound
      ---------> convolution echo --------->|

エコー サウンドは元のサウンドより長くなることに注意してください (つまり、「テール」があります)。

2 つのサウンドを一緒に追加することは、単純に、両方のサウンドから個々のサンプルをそれぞれ追加して、新しい出力波形を生成することです。私はそうは思わvstackない。

于 2014-09-24T20:57:22.107 に答える