File size: 1,586 Bytes
a25acff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from summarizer import AudioSummarizer

# Загрузка модели (один раз)
summarizer = AudioSummarizer(
    beta=[0.2, 0.25, 0.3, -0.15],
    lambd=0.5,
    delta=0.1,
    theta=0.6,
    alpha=0.7,
    L=2
)


def process_audio(audio_file, k=5):
    """Обработка аудио: возвращает (полный_текст, реферат)"""
    if audio_file is None:
        return "Файл не загружен", "Загрузите аудиофайл"

    result = summarizer.summarize(audio_path=audio_file, k=int(k))

    full_text = result.get('full_text', 'Ошибка транскрибации')
    summary = '\n'.join(result.get('summary', ['Ошибка суммаризации']))

    return full_text, summary


# Интерфейс Gradio
with gr.Blocks(title="ESPA Summarizer") as demo:
    gr.Markdown("# 🎙️ Аудио суммаризация ESPA")

    audio_input = gr.Audio(type="filepath", label="Загрузите аудиофайл")
    k_slider = gr.Slider(minimum=1, maximum=10, value=5, step=1, label="Количество предложений в реферате")
    submit_btn = gr.Button("Суммаризировать")

    full_text_output = gr.Textbox(label="📄 Полный текст транскрибации", lines=10)
    summary_output = gr.Textbox(label="📝 Реферат", lines=6)

    submit_btn.click(
        fn=process_audio,
        inputs=[audio_input, k_slider],
        outputs=[full_text_output, summary_output]
    )

if __name__ == "__main__":
    demo.launch()