Spaces:
Configuration error
Configuration error
| import gradio as gr | |
| import whisperx | |
| import os | |
| # Загрузка модели один раз | |
| model = whisperx.load_model("small", device="cpu") | |
| # Основная функция транскрибации и диаризации | |
| def transcribe_with_diarization(audio_path): | |
| result = model.transcribe(audio_path, diarize=True) | |
| segments = result["segments"] | |
| # Формируем вывод с возможностью редактирования | |
| text_output = "" | |
| for seg in segments: | |
| speaker = seg.get("speaker", "SPEAKER_00") | |
| start = seg["start"] | |
| end = seg["end"] | |
| text = seg["text"] | |
| text_output += f"[{speaker}] ({start:.2f} - {end:.2f}): {text}\n\n" | |
| return text_output | |
| # Интерфейс | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# 📱🎤 Транскрибация и диаризация аудио") | |
| gr.Markdown("Загрузите аудиофайл, прослушайте сегменты, отредактируйте спикеров и выгрузите результат.") | |
| with gr.Row(): | |
| audio_input = gr.Audio(source="upload", type="filepath", label="Загрузите аудиофайл") | |
| transcribe_btn = gr.Button("▶️ Транскрибировать") | |
| transcript_output = gr.Textbox(label="Результат транскрипции", lines=20) | |
| transcribe_btn.click(fn=transcribe_with_diarization, inputs=audio_input, outputs=transcript_output) | |
| demo.launch() |