Fast_api / vcs /main.py
mulasagg's picture
Add application file
8ad2ab3
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())