File size: 2,223 Bytes
8ad2ab3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import json
import whisper
from .compute_vcs import analyze_voice_quality

def main():
    """
    Main function to run voice clarity analysis on audio files
    """
    # Fixed parameters - modify these values directly in the code
    audio_file = r"D:\Intern\shankh\audio_samples\obama_short.wav"  # Path to your audio file
    model_size = "base"  # Whisper model size (tiny, base, small, medium, large)
    verbose = True  # Whether to print detailed results
    
    try:
        # Load whisper model
        print(f"Loading Whisper model ({model_size})...")
        whisper_model = whisper.load_model(model_size)
        
        # Calculate voice clarity score
        print(f"Analyzing voice clarity for {audio_file}...")
        results = analyze_voice_quality(audio_file, whisper_model)
        
        # Print summary results
        print("\nVoice Quality Analysis Results:")
        print(f"- Voice Clarity Score (VCS): {results['VCS']:.2f}/100")
        print(f"- Insight: {results['insight']}")
        print(f"- Articulation: {results['components']['articulation']:.2f}/100")
        print(f"- Enunciation: {results['components']['enunciation']:.2f}/100")
        print(f"- Speech Pause Control: {results['components']['speech_pause_control']:.2f}/100")
        
        # Print verbose results if enabled
        if verbose:
            print("\nDetailed Metrics:")
            print(f"- Pitch Stability: {results['components']['pitch_stability']:.2f}/100")
            print(f"- Voice Resonance: {results['components']['voice_resonance']:.2f}/100")
            print(f"- Voice Strength: {results['components']['voice_strength']:.2f}/100")
            print(f"- Word Count: {results['components']['word_count']}")
            print(f"- Duration: {results['components']['duration']:.2f} seconds")
            
            # Print first 100 characters of transcript
            transcript_preview = results['transcript'][:] + "..." if len(results['transcript']) > 100 else results['transcript']
            print(f"\nTranscript preview: {transcript_preview}")
        
    except Exception as e:
        print(f"Error during analysis: {str(e)}")
        return 1

if __name__ == "__main__":
    exit(main())