5 overview
AI Wiki Bot edited this page 2026-09-16 19:34:21 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Обзор проекта

GigaAM-Multilingual ASR Server — это OpenAI-совместимый сервер автоматического распознавания речи (Automatic Speech Recognition, ASR), построенный на базе мультиязычных Conformer CTC-моделей GigaAM-Multilingual от Сбера. Проект обеспечивает высокопроизводительный инференс без использования тяжёлых фреймворков глубокого обучения (PyTorch, Transformers), полагаясь исключительно на ONNX Runtime и оптимизированные ONNX-конверты моделей.

Назначение и область применения

Сервер предназначен для интеграции в корпоративные системы, где требуется точное распознавание речи на нескольких языках Центральной Азии и Европы:

  • Русский
  • Английский
  • Казахский
  • Кыргызский
  • Узбекский

Ключевое преимущество GigaAM-Multilingual перед популярными аналогами (например, Whisper large-v3) проявляется в качестве распознавания казахского языка: коэффициент ошибки слова (WER) составляет 13,8 % против 57,8 % у Whisper. Это делает проект предпочтительным выбором для систем голосового ввода, субтитрирования и анализа аудиозаписей в регионе Центральной Азии.

Ключевые возможности

Мультиязычное распознавание с выбором модели

Сервер поддерживает одновременную загрузку двух версий модели:

  • gigaam-multilingual-large-ctc (600M параметров) — максимальное качество распознавания.
  • gigaam-multilingual-ctc (220M параметров) — повышенная скорость и меньшее потребление памяти (примерно в 2,5 раза меньше).

Выбор конкретной модели осуществляется на уровне каждого запроса через поле model, что соответствует контракту API OpenAI.

Совместимость с экосистемой OpenAI

Интерфейс сервера полностью совместим с официальным клиентом OpenAI. Пользователи могут использовать существующий код приложений без изменений,仅需 указав другой base_url. Поддерживаются следующие форматы ответа:

  • Простой текст (json).
  • Детализированный ответ с сегментами (verbose_json).
  • Метки времени на уровне слов (timestamp_granularities=["word"]).

Обработка длинных аудиофайлов

Интеграция модуля обнаружения активной речи (Voice Activity Detection, VAD) от Silero позволяет обрабатывать записи длительностью до одного часа. Аудиопоток автоматически сегментируется, что предотвращает переполнение оперативной памяти и повышает стабильность работы при обработке больших файлов.

Многоформатный ввод

Благодаря встроенной нормализации через FFmpeg, сервер принимает аудио в любых популярных форматах (MP3, M4A, OGG, FLAC, WAV) и автоматически преобразует их в монофонический сигнал с частотой дискретизации 16 кГц, требуемый моделями.

Преимущества перед аналогами

  1. Высокая производительность на GPU: Использование int8-квантованных ONNX-моделей и CUDA Execution Provider обеспечивает коэффициент реального времени (RTF) 0,02–0,05 на видеокартах NVIDIA A2. Одна минута аудио распознаётся за 1–3 секунды.
  2. Отсутствие зависимостей от PyTorch: Инференс выполняется через легковесный движок onnx-asr и ONNX Runtime. Это снижает размер Docker-образа, упрощает развёртывание и уменьшает накладные расходы на запуск по сравнению с решениями на базе TorchServe или Triton Inference Server.
  3. Лучшее качество для региональных языков: Специализация моделей GigaAM на языках Центральной Азии даёт существенное превосходство над универсальными моделями вроде Whisper, особенно для казахского и узбекского.
  4. Простота управления: Единый Python-файл серверной части (server.py) содержит всю логику приложения, что облегчает аудит, отладку и модификацию кода.

Архитектурные компоненты

Логика приложения реализована в одном модуле, который взаимодействует со следующими компонентами:

  • FastAPI: Фреймворк для создания асинхронного веб-API. Обеспечивает обработку входящих HTTP-запросов, валидацию данных и управление жизненным циклом приложения.
  • ONNX Runtime: Движок выполнения нейросетей. Загружает квантованные модели и выполняет инференс с использованием аппаратного ускорения CUDA.
  • Silero VAD: Модуль детектирования речевых сегментов. Разбивает длинные аудиофайлы на короткие фрагменты перед отправкой в ASR-модель.
  • FFmpeg: Внешний инструмент для декодирования и конвертации аудиофайлов. Вызывается через систему при подготовке входных данных.

Детальное описание внутренней структуры, взаимодействия компонентов и механизмов загрузки моделей приведено в разделе Архитектура.

Примеры использования

Запрос через cURL

curl http://localhost:43000/v1/audio/transcriptions \
  -F file=@speech.mp3 \
  -F model=gigaam-multilingual-large-ctc \
  -F response_format=json

Запрос через Python (OpenAI Client)

from openai import OpenAI

client = OpenAI(base_url="http://localhost:43000/v1", api_key="none")

transcription = client.audio.transcriptions.create(
    model="gigaam-multilingual-ctc",
    file=open("speech.mp3", "rb")
)

print(transcription.text)

Развёртывание и настройка

Рекомендуемый способ запуска — использование Docker Compose с готовым образом из реестра контейнеров. Модели не включены в образ, а монтируются с хоста в каталог /models для экономии места и упрощения обновления весов.

Пошаговые инструкции по скачиванию моделей, конфигурации переменных окружения и запуску сервиса описаны в разделах Установка и запуск и Конфигурация.

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

Скорость обработки существенно зависит от выбранного оборудования и размера модели. Подробный анализ показателей RTF для различных конфигураций GPU и CPU, а также рекомендации по выбору оптимального варианта представлены в разделе Производительность.

Документация и поддержка

  • Полное описание доступных конечных точек, параметров запросов и форматов ответов находится в Справочнике API.
  • Информация о процессах непрерывной интеграции, сборки Docker-образов и генерации этой вики-документации доступна в разделе CI/CD и автоматизация.
  • Набор юнит-тестов, покрывающий логику выбора моделей и обработки меток времени, описан в разделе Тестирование.