前提・実現したいこと
大量の水増し画像をコラボラトリーで出力しているのですが、ドライブへの保存のコードを書いているのですが真っ白な画像しか保存されません。お力を貸してください。
該当のソースコード
import librosa import librosa.display from sklearn import preprocessing import matplotlib.pyplot as plt import seaborn as sn import IPython.display as ipd import os import numpy as np from PIL import Image drive_root = "/content/drive/My Drive/" os.chdir(drive_root) # load a wave data def load_wave_data(file_name, audio_dir="./"): file_path = os.path.join(audio_dir, file_name) x, fs = librosa.load(file_path, sr=44100) return x,fs # change wave data to mfcc def calculate_mfcc(x, n_fft=2048, hop_length=128): stft = np.abs(librosa.stft(x, n_fft=n_fft, hop_length=hop_length))**2 log_stft = librosa.power_to_db(stft) melsp = librosa.feature.melspectrogram(S=log_stft) mfcc = librosa.feature.mfcc(S=melsp) mfcc = preprocessing.scale(mfcc, axis=1) return mfcc # display wave in plots def show_wave(x): plt.plot(x) plt.show() #display mfcc in heatmap def show_mfcc(mfcc, fs): librosa.display.specshow(mfcc, sr=fs) plt.colorbar() plt.show() for i in range(0,100): x, fs = load_wave_data(drive_root + "anamal_onsei/" + "dog/" + "dog_" + str(i + 1) + ".wav") mfcc = calculate_mfcc(x) #print("CAT'S MEOW!") #print("wave size:{0}\nmfcc size:{1}".format(x.shape, mfcc.shape)) #show_wave(x) #show_mfcc(mfcc, fs) ipd.Audio(x, rate=fs) def add_white_noise(x, rate=0.005): return x + rate*np.random.randn(len(x)) #print("ADD WHITE NOISE") x_wn = add_white_noise(x) mfcc = calculate_mfcc(x_wn) print("wave size:{0}\nmfcc size:{1}".format(x_wn.shape, mfcc.shape)) #show_wave(x_wn) show_mfcc(mfcc, fs) plt.savefig(drive_root + "animal_onsei/" + "dog/" + "dog_" + str(i + 1) + ".png") ipd.Audio(x_wn, rate=fs)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/12 14:23