Spaces:
Sleeping
Sleeping
File size: 1,915 Bytes
bf2d622 |
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 50 51 52 53 54 55 |
#!/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() |