[英]noise reduction on multiple wav file in python
我已經使用了https://github.com/davidpraise45/Audio-Signal-Processing中的代碼
使函數可以在包含大約100個wav文件的整個文件夾上運行它,但無法獲取輸出無法理解問題所在。
def noise_reduction(dirName):
types = ('*.wav', '*.aif', '*.aiff', '*.mp3', '*.au', '*.ogg')
wav_file_list = []
for files in types:
wav_file_list.extend(glob.glob(os.path.join(dirName, files)))
wav_file_list = sorted(wav_file_list)
wav_file_list2 = []
for i, wavFile in enumerate(wav_file_list):
#samples = get_samples(wavFile,)
(Frequency, samples)=read(wavFile)
FourierTransformation = sp.fft(samples) # Calculating the fourier transformation of the signal
scale = sp.linspace(0, Frequency, len(samples))
b,a = signal.butter(5, 9800/(Frequency/2), btype='highpass') # ButterWorth filter 4350
filteredSignal = signal.lfilter(b,a,samples)
c,d = signal.butter(5, 200/(Frequency/4), btype='lowpass') # ButterWorth low-filter
newFilteredSignal = signal.lfilter(c,d,filteredSignal) # Applying the filter to the signal
write(New,wavFile, Frequency, newFilteredSignal)
noise_reduction("C:\\Users\\adity\\Desktop\\capstone\\hindi_dia_2\\sad\\sad_1.wav")
scipy.io.wavfile.read
僅支持WAV格式。 它無法讀取aif
, aiff
, mp3
, au
或ogg
文件。
scipy.io.wavfile.write
函數有四個參數,只需三個。 New,wavFile
最有可能應該是os.path.join(os.path.dirname(wavFile)
, "New"+os.path.basename(wavFile))
。 這將在原始目錄的同一目錄中創建一個帶有New
前綴的文件。 如果要在當前目錄中創建它們,請使用"New"+os.path.basename(wavFile)
。
您正在向函數傳遞文件名,而不是目錄名:
noise_reduction("C:\\Users\\adity\\Desktop\\capstone\\hindi_dia_2\\sad\\sad_1.wav")
應該可能是:
noise_reduction("C:\\Users\\adity\\Desktop\\capstone\\hindi_dia_2\\sad")
這將導致glob
模式最終變為: C:\\\\Users\\\\adity\\\\Desktop\\\\capstone\\\\hindi_dia_2\\\\sad\\\\sad_1.wav\\\\*.wav
。 除非sad_1.wav
是目錄並且其中包含以.wav
結尾的文件,否則該模式沒有匹配sad_1.wav
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.