Files
stt-pipeline-v3/README.md
T

136 lines
4.3 KiB
Markdown

# 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