import json from textwrap import indent import gradio as gr import os from humanfriendly.terminal import output from app.modules.processing import transcript_audio, save_transcript from app.modules.summarizer import process_transcript_file, generate_meeting_minutes from app.config import * from app.modules.exporter import export_meeting_minutes_to_docx def process_audio_to_doc(audio_path: str, open_ai_key: str) -> str: """ Nhận 1 file audio -> Meeting minutes :param audio_path: :return: """ os.environ['OPENAI_API_KEY'] = open_ai_key if not audio_path: raise ValueError("No audio path provided") transcript = transcript_audio(audio_path, device=WHISPER_DEVICE, vad_filter=WHISPER_USE_VAD, beam_size=WHISPER_BEAM_SIZE, model_size=WHISPER_MODEL_SIZE) print(transcript) temp_path = 'temp_transcript.txt' save_transcript(transcript, temp_path) #Xử lý transcript meeting_minutes = process_transcript_file(temp_path) print(meeting_minutes) # Refine output_docx = "generated_meeting_minutes.docx" export_meeting_minutes_to_docx(meeting_minutes, output_docx) return output_docx #Xây dựng 1 giao diện Gradio iface = gr.Interface( fn=process_audio_to_doc, inputs= [gr.Audio(type="filepath", label="Tải lên file audio"), gr.Text(label="API_open_ai key")], outputs = gr.File(label="Tải xuống docx cuộc họp"), title="Meeting minutes", description="Taỉ audio và trả về biên bản cuộc họp", ) if __name__ == "__main__": iface.launch()