Spaces:
Sleeping
Sleeping
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() |