File size: 1,593 Bytes
7722c13
f12aa02
3c06631
7722c13
f12aa02
 
 
3c06631
f12aa02
 
 
3c06631
f12aa02
 
3c06631
 
cd42252
f12aa02
3c06631
f12aa02
 
 
3c06631
 
f12aa02
 
3c06631
 
 
 
7722c13
cd42252
7722c13
 
f12aa02
3c06631
f12aa02
 
aceaffc
f12aa02
 
7722c13
 
 
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
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()