# Smart STT Pipeline v3 Умный пайплайн распознавания речи (Speech-to-Text) для русского языка с автоматическим выбором движка и пунктуацией. ## 🚀 Возможности - **Два STT-движка**: T-one (быстрый) + GigaAM-v2 (точный) - **Автоматический роутинг**: выбор движка по длительности аудио - **Пунктуация через LLM**: Qwen3.5-4B - **Поддержка форматов**: OGG, WAV, MP3 и другие (через ffmpeg) ## 📊 Сравнение движков | Движок | Время STT | Точность | Русский | |--------|-----------|----------|---------| | **T-one** | ~3 сек | Высокая | ✅ | | **GigaAM-v2** | ~7 сек | Очень высокая | ✅ | ## 🔄 Логика роутинга ``` Аудио < 10 сек → GigaAM-v2 (точнее для коротких) Аудио ≥ 10 сек → T-one (быстрее для длинных) T-one fail → GigaAM (fallback) ``` ## 🛠️ Установка ```bash docker build -t stt-pipeline-v3 . docker run -d --name stt-pipeline-v3 --network host stt-pipeline-v3 ``` ## 📡 API ### POST /transcribe Распознать аудиофайл с автоматическим выбором движка. **Request:** ```bash curl -X POST http://localhost:8005/transcribe \ -F "file=@voice_message.ogg" ``` **Response:** ```json { "original": "какие докеры у нас еще остались", "punctuated": "Какие докеры у нас еще остались?", "duration_sec": 2.7, "stt_time_sec": 7.14, "punct_time_sec": 0.87, "server_used": "178.17.143.46:8080", "stt_engine": "gigaam" } ``` ### GET /health Проверка статуса сервиса. ```bash curl http://localhost:8005/health # {"status":"ok","service":"stt-pipeline-v3"} ``` ## 🏗️ Архитектура ``` Аудиофайл │ ▼ ┌─────────────┐ │ FFmpeg │ ← Конвертация в WAV (16kHz mono) └─────┬───────┘ │ ▼ ┌─────────────┐ │ Определяем │ ← Длительность аудио │ длительность│ └─────┬───────┘ │ ▼ ┌─────────────────────────────────┐ │ Smart STT Router │ │ ┌─────────┐ ┌──────────────┐ │ │ │ < 10 сек │ │ ≥ 10 сек │ │ │ │ GigaAM │ │ T-one │ │ │ └─────────┘ └──────┬───────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ │ │ │ T-one fail? │ │ │ └──────┬───────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ │ │ │ GigaAM │ │ │ │ (fallback) │ │ │ └──────────────┘ │ └─────────────────────────────────┘ │ ▼ ┌─────────────┐ │ Qwen3.5-4B │ ← Пунктуация (178.17.143.46:8080) └─────┬───────┘ │ ▼ JSON ответ ``` ## 📁 Структура проекта ``` stt-pipeline-v3/ ├── app.py # FastAPI приложение ├── Dockerfile # Контейнеризация ├── requirements.txt # Зависимости └── README.md # Документация ``` ## 🔧 Зависимости - Python 3.12 - FastAPI 0.115 - Uvicorn 0.32 - FFmpeg (конвертация аудио) - T-one STT (localhost:8003) - GigaAM-v2 STT (localhost:8001) - Qwen3.5-4B (178.17.143.46:8080) ## 📝 Лицензия MIT