No description
  • Python 84.1%
  • Dockerfile 15.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
AKalagov-Oh-Agent 76ee68a5b3 ci(wiki): generate in Russian, trigger on release tags only
- WIKI_LANG: ru (the wiki is now documented in Russian)
- drop push-on-main trigger: regenerate only on v* tags and manual
  dispatch, per request

Co-authored-by: openhands <openhands@all-hands.dev>
2026-09-16 19:01:24 +00:00
.forgejo/workflows ci(wiki): generate in Russian, trigger on release tags only 2026-09-16 19:01:24 +00:00
scripts chore: default download target dir is 'models' (plural) 2026-08-28 09:31:56 +00:00
src/gigam_asr feat: CORS_ORIGINS env (default *, list, or empty to disable) 2026-08-28 10:16:19 +00:00
tests feat: CORS_ORIGINS env (default *, list, or empty to disable) 2026-08-28 10:16:19 +00:00
.dockerignore Restructure to src-layout, add CI/CD and Docker build pipeline 2026-08-27 19:19:41 +00:00
.gitignore Models out of the image: mount from host into /models 2026-08-27 19:51:37 +00:00
CHANGELOG.md release: prepare v0.1.4 (renovate deps) 2026-09-16 09:43:13 +00:00
docker-compose.yml docs/compose: map host port 43000 (matches production deployment) 2026-08-27 20:51:24 +00:00
Dockerfile chore(deps): update nvidia/cuda docker tag to v13.3.1 2026-09-01 06:27:06 +00:00
LICENSE Restructure to src-layout, add CI/CD and Docker build pipeline 2026-08-27 19:19:41 +00:00
pyproject.toml release: prepare v0.1.4 (renovate deps) 2026-09-16 09:43:13 +00:00
pytest.ini Restructure to src-layout, add CI/CD and Docker build pipeline 2026-08-27 19:19:41 +00:00
README.md release: prepare v0.1.4 (renovate deps) 2026-09-16 09:43:13 +00:00
renovate.json Restructure to src-layout, add CI/CD and Docker build pipeline 2026-08-27 19:19:41 +00:00
requirements.txt chore(deps): onnxruntime-gpu 1.30, uvicorn 0.53, huggingface-hub 0.36 2026-09-16 08:20:13 +00:00

GigaAM-Multilingual ASR Server

Python Version ONNX Runtime CUDA 13 Docker License Vibe Coding

Gitea Stars Gitea Forks Gitea Issues Gitea Issues Gitea Last Commit (branch) Gitea Release

OpenAI-совместимый ASR-сервер на базе GigaAM-Multilingual — Conformer CTC-модели от Сбера (220M / 600M) — одной из лучших open-source моделей распознавания русского, казахского, кыргызского и узбекского (WER казахского CV: 13.8% против 57.8% у Whisper large-v3).

Архитектура

  • Инференс: onnx-asr 0.12 + ONNX Runtime (без torch/transformers)
  • Модели: large_ctc (600M) и ctc (220M), обе в int8 — готовые ONNX-конверты istupakov/gigaam-multilingual-{,large-}ctc-onnx. Загружаются обе, выбираются полем model на запросе (по умолчанию large). Если VRAM впритык (у вас A2 общая с mineru) — отгрузите одну: env MODELS=gigaam-multilingual-large-ctc
  • VAD: Silero VAD для длинных записей (до 1 часа), сегментация речи
  • API: FastAPI, эндпоинт POST /v1/audio/transcriptions совместим с официальным OpenAI-клиентом
POST /v1/audio/transcriptions
  multipart: file, model, response_format(json|verbose_json), timestamp_granularities(word)
→ {"text": "...", "model": "...", "latency_s": 1.2, "_rtf": 0.03, "segments": [...], "words": [...]}

Выбор модели (поле model, обязательно — как в OpenAI API; неизвестное имя → 404):

значение модель
gigaam-multilingual-large-ctc large (600M) — лучшее качество
gigaam-multilingual-ctc small (220M) — быстрее, ~2.5× меньше память

Быстрый старт

Через Docker (рекомендуется)

# 1. Скачайте модели на хост (однократно): large + small + VAD (~810MB)
#    структура models/gigaam-onnx/<модель>/ + models/vad/
python3 scripts/download_models.py ./models   # требует pip install huggingface-hub

# 2. Pull из Forgejo Container Registry (собирается CI автоматически) и запуск:
#    :v0.1.4 — закреплённая версия (релиз), :latest — последняя сборка main
docker pull git.maydayoffice.kz/maydayoffice/gigaam-asr-server:v0.1.4

docker run -d --gpus all -p 43000:8000 --name gigaam-asr \
  -v "$PWD/models:/models:ro" \
  git.maydayoffice.kz/maydayoffice/gigaam-asr-server:v0.1.4

# Использование (model: gigaam-multilingual-large-ctc | gigaam-multilingual-ctc | gigaam=large)
curl http://localhost:43000/v1/audio/transcriptions \
  -F file=@speech.mp3 -F model=gigaam-multilingual-large-ctc
curl http://localhost:43000/v1/audio/transcriptions \
  -F file=@speech.mp3 -F model=gigaam-multilingual-ctc

# Python (официальный OpenAI-клиент, без изменений кода)
from openai import OpenAI
client = OpenAI(base_url="http://localhost:43000/v1", api_key="none")
print(client.audio.transcriptions.create(model="gigaam-multilingual-ctc", file=open("speech.mp3", "rb")).text)

Модели не вшиваются в образ — контейнер читает их из /models (bind mount с хоста).

Сборка вручную

docker compose up -d --build     # compose уже содержит volume-мап моделей

Python (без Docker)

pip install -r requirements.txt
python3 scripts/download_models.py ./models  # скачает ONNX + VAD из HF
python3 -m gigam_asr.server                  # GIGAAm_CUDA=0 для CPU

Конфигурация (env)

Переменная По умолчанию Описание
MODEL_DIR /models/gigaam-onnx (в Docker) Корневой каталог моделей; каждая модель — в <MODEL_DIR>/<имя>/ (mount с хоста)
VAD_DIR /models/vad (в Docker) Каталог с Silero VAD
MODELS gigaam-multilingual-large-ctc,gigaam-multilingual-ctc Список моделей «alias=имя-в-onnx-asr» через запятую
QUANTIZATION int8 Квантизация: int8 или пустая строка (fp32)
GIGAAm_CUDA auto auto/1 — GPU (CUDA EP), 0 — только CPU
CHUNK_SECONDS 300 VAD long-form; 0 выключает VAD
MAX_DURATION 3600 Макс. длительность аудио, сек
API_KEYS (пусто) Список Bearer-токенов через запятую; пусто = авторизация выключена
CORS_ORIGINS * CORS: * — все origin, список через запятую, пусто — CORS выключен
PORT 8000 Порт HTTP

Производительность

Платформа RTF (1 мин аудио) Комментарий
NVIDIA A2, CUDA 13, int8 ~0.02–0.05 1 мин за 1–3 с
CPU (16 ядер), int8 ~0.10–0.16 1 мин за 6–10 с

RTF (real-time factor) = время распознавания / длительность аудио. Меньше — быстрее.

Структура проекта

├── src/gigam_asr/server.py      # FastAPI-сервер (единый файл, мульти-модельный)
├── scripts/download_models.py   # Скачивание ONNX (large+small) + VAD из Hugging Face
├── tests/                       # Pytest (проходят при сборке образа)
├── .forgejo/workflows/          # CI: lint, build-and-push, wiki-gen
├── Dockerfile                   # nvidia/cuda:13.0.1 + onnxruntime-gpu 1.28, non-root
└── docker-compose.yml           # Локальный запуск

Модель