JinhuaL1ANG's picture
v1
9a6dac6
import os
import matplotlib.pyplot as plt
from src.utils.factory import (
plot_spectrogram,
)
from src.utils.audio_processing import extract_fbank, TacotronSTFT, maybe_add_dimension
def plot_single_spec(in_file, out_file):
audio_or_path = in_file
n_sample_per_sec = 100 # 1024frames / 10.24s
fn_STFT = TacotronSTFT(
filter_length=1024,
hop_length=160,
win_length=1024,
n_mel_channels=64,
sampling_rate=16000,
mel_fmin=0,
mel_fmax=8000,
)
fbank, log_stft, wav = extract_fbank(
audio_or_path,
fn_STFT=fn_STFT,
target_length=1024,
hop_size=160,
)
fbank = maybe_add_dimension(fbank, 3) # (C,T,F)
plot_spectrogram(fbank.permute(0, 2, 1)[:,:,:10*n_sample_per_sec], filename=out_file)
plt.close('all')
file_paths = "/path/to/wav"
out_dir = "/path/to/spec"
os.makedirs(out_dir, exist_ok=True)
for root, dirs, files in os.walk(file_paths):
for file in files:
fpath = os.path.join(root, file)
out_path = os.path.join(out_dir, file.replace(".wav", ".png"))
plot_single_spec(in_file=fpath, out_file=out_path)