import
1import numpy as np 2import pandas as pd 3import librosa 4import librosa.display 5import matplotlib.pyplot as plt 6import seaborn as sn 7from sklearn import model_selection 8from sklearn import preprocessing 9import IPython.display as ipd 10 11base_dir = "./" 12esc_dir = os.path.join(base_dir, "ESC-50") 13meta_file = os.path.join(esc_dir,"meta/音声データラベル分け.csv") 14audio_dir = os.path.join(esc_dir, "音声データwav/") 15 16meta_data = pd.read_csv(meta_file) 17 18print(meta_data) 19 20data_size = meta_data.shape 21print(data_size) 22 23def load_wave_data(audio_dir, file_name): 24 file_path = os.path.join(audio_dir, file_name) 25 x, fs = librosa.load(file_path, sr=44100) 26 return x,fs 27 28def add_white_noise(x, rate=0.002): 29 return x + rate*np.random.randn(len(x)) 30 31def shift_sound(x, rate=2): 32 return np.roll(x, int(len(x)//rate)) 33 34def stretch_sound(x, rate=1.1): 35 input_length = len(x) 36 x = librosa.effects.time_stretch(x,rate) 37 if len(x)>input_length: 38 return x[:input_length] 39 else: 40 return np.pad(x, (0, max(0, input_length - len(x))), "constant") 41 42for i in range(64): 43 x, fs = load_wave_data(audio_dir, meta_data.loc[i, "filename"]) 44 x_wn = add_white_noise(x) 45 x_s = shift_sound(x) 46 x_ss=stretch_sound(x) 47 ipd.display(ipd.Audio(x_s, rate=fs)) #x_sのみコンソールに表示 48 49#ストレッチ、ノイズ、シフトの音源を生成
このコードを使ってwavデータのAugumentationをしています。
Augumentationしたデータをコンソールに表示するのにipd.display(ipd.Audio(x_s, rate=fs))を使っています。
ここで生成されたwavを一つのフォルダ(名前はなんでもいい)にまとめたいです。どのようにすれば一つのフォルダに入れることができますか?
何かヒントになる記事や、解決策がありましたら、ご回答よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー