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