Fnu Mahnoor
add repo
bf2d622
#!/usr/bin/env python3
"""
Command-line interface for Voice Summarizer
"""
import argparse
import sys
import os
# Add src to path
sys.path.append(os.path.dirname(__file__))
from transcription.live_transcriber import main as live_main
from transcription.file_transcriber import FileTranscriber
from src.analysis.llm import generate_answer
from io.saver import OutputSaver
def main():
parser = argparse.ArgumentParser(description="Voice Summarizer - Speech to Text and Analysis")
subparsers = parser.add_subparsers(dest='command', help='Available commands')
# Live transcription
subparsers.add_parser('live', help='Start live transcription from microphone')
# File transcription
file_parser = subparsers.add_parser('transcribe', help='Transcribe an audio file')
file_parser.add_argument('file', help='Path to audio file')
file_parser.add_argument('--model', default='base', choices=['tiny', 'base', 'small', 'medium', 'large'], help='Whisper model size')
file_parser.add_argument('--analyze', action='store_true', help='Also analyze the transcription')
args = parser.parse_args()
if args.command == 'live':
live_main()
elif args.command == 'transcribe':
transcriber = FileTranscriber(model_size=args.model)
transcription = transcriber.transcribe_file(args.file)
print("Transcription:")
print(transcription)
saver = OutputSaver()
session_id = saver.save_transcription(transcription)
if args.analyze:
analysis =generate_answer(prompt, max_new_tokens=1024)
print("\nAnalysis:")
print(analysis)
if session_id:
analysis_session_id = os.path.basename(session_id).replace('_transcript.txt', '')
saver.save_analysis(analysis, analysis_session_id)
else:
parser.print_help()
if __name__ == "__main__":
main()