1

クリーンな wav と、事前に生成されたノイズを含む wav があり、クリーンな wav ファイルにノイズを追加して、ノイズの多い wav を作成したいと考えています。

ここで、これはmatlabで簡単に実行できることがわかりました。

これをpythonでどのように行うことができますか?

4

1 に答える 1

1
import numpy as np
from scikits.audiolab import wavread, wavwrite

data1, fs1, enc1 = wavread("file1.wav")
data2, fs2, enc2 = wavread("file2.wav")

assert fs1 == fs2
assert enc1 == enc2
result = 0.5 * data1 + 0.5 * data2

wavwrite(result, 'result.wav')

ただし、サンプリング レート ( fs*) またはエンコード ( enc*) が異なる場合は、より複雑なものを試す必要がある場合があります。(ここからソース)

追加

配列のサイズが異なる場合data*は、最短の配列を長い配列のサブセットに一致させることができます。

min_size = min(len(data1), len(data2))

result = 0.5 * data1[:min_size] + 0.5 * data2[:min_size]

wrapまたは、最長の配列の長さと一致するように、最短の配列にすることもできます。

short, long = (data1, data2) if len(data1) < len(data2) else (data2, data1)
n = len(long) / len(short)
new_array = np.tile(short, n)

result = 0.5 * long[:n] * 0.5 * new_array

これらのメモは、質問の範囲外です。さらに問題がある場合は、おそらくこれを解決済みとしてマークし、新しい質問を開く必要があります。

于 2013-03-03T23:01:57.750 に答える