import gradio as gr import onnx_asr import time # Загружаем модели сразу при старте (чтобы не тупило на первом запросе) # Используем E2E версию по дефолту - она ставит знаки препинания. print("⏳ Загрузка GigaAM v3 ONNX...") try: # "gigaam-v3-e2e-ctc" - это версия с нормализацией и пунктуацией model = onnx_asr.load_model("gigaam-v3-e2e-ctc") print("✅ Модель готова!") except Exception as e: print(f"Ошибка загрузки: {e}") model = None def transcribe(audio_path): if audio_path is None: return "Ошибка: нет аудио", 0.0 if model is None: return "Ошибка: модель не загрузилась", 0.0 start_time = time.time() # Инференс одной строкой. Библиотека сама делает ресемплинг. text = model.recognize(audio_path) elapsed_time = time.time() - start_time return text, f"{elapsed_time:.3f} сек" # Интерфейс iface = gr.Interface( fn=transcribe, inputs=gr.Audio(type="filepath", label="Микрофон"), outputs=[ gr.Textbox(label="Результат (GigaAM v3 ONNX)"), gr.Label(label="Время инференса") ], title="🚀 GigaAM v3 (ONNX Int8)", description="Самая быстрая версия GigaAM для CPU. Использует библиотеку onnx-asr." ) iface.launch()