簡體   English   中英

如何使用python向WAV文件添加噪音?

[英]How to add noise to wav file using python?

我有一個干凈的WAV,並且WAV包含一個預先生成的噪音,我想將噪音添加到干凈的WAV文件中,以創建一個嘈雜的WAV。

我在這里看到可以使用matlab輕松完成。

如何使用python完成此操作?

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

這些說明不在您的問題范圍內。 如果您還有其他麻煩,您可能應該將其標記為已解決,並提出一個新問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM