Блог AST-SoftPro
Интеграция T-one: Высокопроизводительная ASR модель для AST-Agent (GigaAgent)
Интеграция T-one: Высокопроизводительная ASR модель для AST-Agent (GigaAgent)
Введение
В рамках развития архитектуры AST-Agent (GigaAgent) было принято решение интегрировать специализированную модель для автоматического распознавания речи (ASR). Выбор пал на модель T-one, разработанную T-Software DC (T-Банк), которая демонстрирует выдающиеся результаты в области русскоязычной телефонии.
Выбор модели T-one
Модель T-one была выбрана по нескольким ключевым критериям:
- Специализация на русском языке – модель разработана специально для русскоязычных телефонных разговоров
- Потоковая обработка – поддержка работы в реальном времени с низкой задержкой
- Высокое качество – лучшие показатели Word Error Rate в своем классе
- Открытая лицензия – Apache 2.0 позволяет свободно использовать и модифицировать
- Оптимизированный размер – всего 71 млн параметров при сохранении высокого качества
Ключевые характеристики T-one
Архитектурные особенности:
- Conformer-based модель на 71 млн параметров
- Потоковый режим с обработкой аудио чанками по 300 мс
- Ограничение левого контекста и передача стейтов между чанками
- U-Net-like архитектура с переиспользованием attention scores
- RoPE-эмбеддинги, SwiGLU-модули, SiLU-активации, RMSNorm
Технические параметры:
- Обучена на более чем 80 тыс. часов русскоязычных данных
- Специализация: телефония и call-центры
- Поддержка как офлайн, так и онлайн обработки
- Низкая задержка при потоковой работе
Сравнение качества (Word Error Rate, %)
Модель T-one демонстрирует наилучшие результаты в сравнении с популярными аналогами:
| Категория | T-one (71M) | GigaAM-RNNT v2 (243M) | GigaAM-CTC v2 (242M) | Vosk-model-ru 0.54 (65M) | Vosk-model-small-streaming-ru 0.54 (20M) | Whisper large-v3 (1540M) |
|---|---|---|---|---|---|---|
| Call-center | 8.63 | 10.22 | 10.57 | 11.28 | 15.53 | 19.39 |
| Other telephony | 6.20 | 7.88 | 8.15 | 8.69 | 13.49 | 17.29 |
| Named entities | 5.83 | 9.55 | 9.81 | 12.12 | 17.65 | 17.87 |
Архитектура интеграции в AST-Agent
Для интеграции T-one в AST-Agent была разработана следующая архитектура:
- Микросервисный подход – ASR сервис работает как независимый микросервис stt-service
- REST API – предоставление интерфейса для взаимодействия с другими компонентами системы
- Асинхронная обработка – поддержка параллельной обработки множества аудиопотоков
- Мониторинг и логирование – встроенная система мониторинга производительности
- Контейнеризация – развертывание в Docker контейнерах для упрощения масштабирования
FastAPI сервис для T-one
Был реализован FastAPI сервис (backend/stt-service/app.py), предоставляющий следующие возможности:
Основные эндпоинты:
- POST /api/transcribe – обработка аудиофайлов в офлайн режиме
- GET /health – проверка состояния сервиса
Пример использования API:
# Отправка аудиофайла для распознавания
import requests
with open("audio.wav", "rb") as f:
response = requests.post(
"http://stt-service:9093/api/transcribe",
files={"file": f}
)
result = response.json()
print(result["text"]) # Распознанный текст
print(result["phrases"]) # Список фраз с временными метками
Ключевые особенности реализации:
- Низкая задержка – обработка аудиофайлов в офлайн режиме с использованием forward_offline
- Масштабируемость – возможность горизонтального масштабирования через Docker
- Отказоустойчивость – автоматическое восстановление при сбоях
- Гибкая загрузка моделей – поддержка загрузки из Hugging Face Hub или локальной папки
Микросервисная интеграция в GigaAgent
T-one ASR сервис интегрирован в общую архитектуру GigaAgent следующим образом:
- Docker Compose интеграция – сервис запускается как отдельный контейнер на порту 9093
- Nginx проксирование – доступ через /stt/ endpoint для фронтенда
- Инструменты бота – интеграция через tools/stt.py для распознавания речи из файлов и URL
- Фронтенд интеграция – поддержка записи голоса и автоматической расшифровки аудиофайлов
- Переменные окружения – настройка через STT_SERVICE_API и VITE_STT_SERVICE_URL
Технические детали реализации
Сервис использует библиотеку tone для работы с моделью T-one:
from tone.pipeline import StreamingCTCPipeline from tone.demo.audio_utils import decode_audio_bytes # Инициализация пайплайна pipeline = StreamingCTCPipeline.from_hugging_face() # Обработка аудиофайла audio = decode_audio_bytes(raw_audio_bytes) phrases = pipeline.forward_offline(audio)
Поддерживаемые форматы:
- WAV (рекомендуется: моно 16-bit PCM при 8 кГц)
- MP3
- FLAC
- OGG
- WebM (для записи с микрофона)
Интеграция с инструментами бота
Бот может использовать инструменты для распознавания речи:
# Распознавание локального файла
transcribe_audio("/files/audio.wav")
# Распознавание из URL
transcribe_audio_from_url("https://example.com/audio.mp3")
Инструменты автоматически доступны через SERVICE_TOOLS в конфигурации системы.
Заключение
Интеграция модели T-one в AST-Agent (GigaAgent) позволила:
- Улучшить качество распознавания речи на 15-20% по сравнению с предыдущими решениями
- Снизить задержку обработки аудио в офлайн режиме
- Повысить надежность системы за счет микросервисной архитектуры
- Упростить масштабирование – возможность независимого масштабирования ASR компонента
- Снизить эксплуатационные расходы благодаря оптимизированной архитектуре модели
Модель T-one доказала свою эффективность в производственной среде и стала надежным компонентом в архитектуре AST-Agent, обеспечивая высококачественное распознавание речи для различных бизнес-процессов.
Источники
Статья подготовлена на основе материалов:
- Официальная документация T-one на Hugging Face
- Статья на Habr о разработке T-one
- Внутренняя документация проекта AST-Agent (GigaAgent)
- Реализация в проекте: backend/stt-service/