# -*- coding: utf-8 -*-
import os
import subprocess
import sys
import glob
import librosa
import numpy as np
from nnmnkwii.metrics import melcd
import pyworld
args=sys.argv
if len(args) != 3:
print("python3 mcd.py [input wavfile1] [input wavfile2]")
sys.exit()
else:
sr = 16000
wav1, _ = librosa.load(sys.argv[1], sr=sr, mono=True)
wav2, _ = librosa.load(sys.argv[2], sr=sr, mono=True)
wav1 = wav1.astype(np.float64)
f0_1, timeaxis_1 = pyworld.harvest(wav1, sr, frame_period=5.0, f0_floor=71.0, f0_ceil=800.0)
sp1 = pyworld.cheaptrick(wav1, f0_1, timeaxis_1, sr)
wav2 = wav2.astype(np.float64)
f0_2, timeaxis_2 = pyworld.harvest(wav2, sr, frame_period=5.0, f0_floor=71.0, f0_ceil=800.0)
sp2 = pyworld.cheaptrick(wav2, f0_2, timeaxis_2, sr)
# mel-cepstrum
coded_sp_1 = pyworld.code_spectral_envelope(sp1, sr, 24)
coded_sp_2 = pyworld.code_spectral_envelope(sp2, sr, 24)
result = melcd(coded_sp_1,coded_sp_2 , lengths=None)
print(result)