Spaces:
Sleeping
Sleeping
| import sys | |
| import os | |
| import numpy as np | |
| import soundfile as sf | |
| # Add CDAC_ASR to sys.path | |
| sys.path.append("/home/mihir/Codes/CDAC_ASR") | |
| from src.eval.ScoreCalcs import PronunciationScorer | |
| def test_pitch(): | |
| # Convert mp3 to wav | |
| mp3_path = "/home/mihir/Codes/CDAC_ASR/product/backend/cache/tts/cf673f7ee88828c9fb8f6acf2cb08403_normal.mp3" | |
| wav_path = "/home/mihir/Codes/CDAC_ASR/scratch/test_debug.wav" | |
| import subprocess | |
| cmd = ["ffmpeg", "-y", "-i", mp3_path, "-ar", "16000", "-ac", "1", wav_path] | |
| subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) | |
| speech, sr = sf.read(wav_path) | |
| print(f"Loaded audio: shape={speech.shape}, sr={sr}") | |
| scorer = PronunciationScorer() | |
| # Dummy alignment and phoneme times | |
| # Let's say we have 5 phonemes | |
| n_phonemes = 5 | |
| duration = len(speech) / sr | |
| step = duration / n_phonemes | |
| times = [(i*step, (i+1)*step) for i in range(n_phonemes)] | |
| aligned_pairs = [("a", "a")] * n_phonemes | |
| # Extract contours | |
| pred_contours = scorer._extract_pitch_contour(speech, sr, times) | |
| print(f"Pred contours: {len(pred_contours)}") | |
| for i, c in enumerate(pred_contours): | |
| print(f" Phoneme {i}: len={len(c)}, mean={c.mean() if len(c) > 0 else 'empty'}") | |
| res = scorer.pitch_score(speech, speech, sr, aligned_pairs, times, times) | |
| print("Pitch score result:", res) | |
| if __name__ == "__main__": | |
| test_pitch() | |