Одноконтейнерный сервис STT (GigaAM) + TTS (Silero v5_5_ru) для русского языка. OpenAI-совместимый API: распознавание речи и синтез голоса в одном процессе, без внешних зависимостей — модели уже внутри образа.
POST /v1/audio/transcriptions # STT: аудио -> текст
POST /v1/audio/speech # TTS: текст -> аудио (5 голосов)
GET /healthz # статус
GET /v1/audio/voices # список голосов
docker run -d --name ru-stt-tts \
--restart unless-stopped \
-p 8000:8000 \
bampodev/ru-sst-tts-docker:linux-amd64 # или :linux-arm64 на aarch64-хосте
Проверка (прогрев моделей ~30–90 с):
curl -s http://localhost:8000/healthz
# {"ok": true, "stt": "gigaam", "tts": "v5_5_ru"}
TTS (цифры, даты, IP и латиница читаются корректно — текст нормализуется автоматически):
curl -s http://localhost:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"voice":"aidar","input":"Созвон в 14:30, позвони на +7 921 555-35-35"}' \
--output out.wav
Голоса: aidar (по умолчанию), baya, kseniya, eugene, xenia.
Форматы вывода: wav (default), mp3, opus, flac, pcm; скорость 0.5–2.0.
STT (форматы, которые понимает ffmpeg: wav, mp3, ogg, webm/opus, m4a):
curl -s http://localhost:8000/v1/audio/transcriptions -F "[email protected]"
# {"text": "распознанный текст"}
Длинное аудио режется на фрагменты по тишине и склеивается.
| Env | По умолчанию | Назначение |
|---|---|---|
SILERO_MODEL | v5_5_ru | модель TTS |
SILERO_SPEED | 1.2 | скорость по умолчанию |
OMP_NUM_THREADS | 4 | потоки torch/onnxruntime |
Опционально: -v /path/to/out:/data — каталог для legacy-режима TTS
(поле output_path в POST /tts, /generate). Для OpenAI-API не нужен.
| Тег | Платформа |
|---|---|
linux-amd64 | x86-64 |
linux-arm64 | aarch64 (Raspberry Pi 4/5, postmarketOS) |
Подробности: gitflic.ru/bampo/ru-sst-tts-docker
Content type
Image
Digest
sha256:c355a0a81…
Size
1.1 GB
Last updated
about 1 month ago
docker pull bampodev/ru-sst-tts-docker:linux-arm64