Files
microdao-daarion/services/stt-service/README.md
Apple e0cb3ddbdb refactor: rewrite STT service to use qwen3_asr_toolkit Python API
- Replace Whisper subprocess calls with direct qwen3_asr_toolkit API
- Remove subprocess dependencies, use pure Python API
- Update to use DASHSCOPE_API_KEY instead of WHISPER_MODEL
- Cleaner code without CLI calls
- Better Ukrainian language recognition quality
2025-11-15 12:55:21 -08:00

128 lines
3.3 KiB
Markdown
Raw Blame History

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.
# STT Service (Speech-to-Text)
Сервіс для розпізнавання мови з аудіо файлів за допомогою Qwen3 ASR Toolkit.
## Можливості
- Розпізнавання мови з голосових повідомлень (Telegram voice, audio, video_note)
- Підтримка форматів: ogg, mp3, wav, m4a, webm, flac
- Автоматична обробка та конвертація аудіо (всередині qwen3_asr_toolkit)
- Чистий Python API без subprocess/CLI викликів
- Висока якість розпізнавання української мови
## Запуск
### Локально (development)
```bash
cd services/stt-service
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 9000
```
### Docker
```bash
docker-compose up stt-service
```
## API
### POST /stt
Розпізнати мову з аудіо файлу.
**Request:**
- `file`: аудіо файл (multipart/form-data)
**Response:**
```json
{
"text": "розпізнаний текст",
"language": "uk",
"duration": 5.2
}
```
**Приклад:**
```bash
curl -X POST http://localhost:9000/stt \
-F "file=@voice.ogg"
```
### GET /health
Health check endpoint.
## Конфігурація
### Environment Variables
- `DASHSCOPE_API_KEY`: **Обов'язково** - API ключ DashScope для доступу до Qwen3 ASR API
- Отримати ключ: https://dashscope.console.aliyun.com/
- Встановити: `export DASHSCOPE_API_KEY="your-api-key"`
### Отримання API ключа DashScope
1. Зареєструйтеся на https://dashscope.console.aliyun.com/
2. Створіть API ключ в розділі "API Keys"
3. Встановіть змінну середовища `DASHSCOPE_API_KEY`
## Інтеграція з Gateway
Gateway автоматично використовує STT-сервіс для обробки голосових повідомлень з Telegram:
1. Користувач надсилає voice/audio/video_note
2. Gateway завантажує файл з Telegram
3. Gateway відправляє файл в STT-сервіс
4. STT повертає розпізнаний текст
5. Текст відправляється в DAGI Router як звичайне текстове повідомлення
## Встановлення залежностей
### qwen3-asr-toolkit
```bash
pip install qwen3-asr-toolkit
```
### ffmpeg (може знадобитися для деяких форматів)
```bash
# Ubuntu/Debian
sudo apt-get install ffmpeg
# macOS
brew install ffmpeg
# Docker
Вже включено в Dockerfile
```
## Troubleshooting
### Помилка: "qwen3_asr_toolkit not available"
Встановіть бібліотеку:
```bash
pip install qwen3-asr-toolkit
```
### Помилка: "DASHSCOPE_API_KEY not configured"
Встановіть змінну середовища:
```bash
export DASHSCOPE_API_KEY="your-api-key"
```
Або додайте в `docker-compose.yml`:
```yaml
environment:
- DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY}
```
### Помилка: "ffmpeg not found"
Встановіть ffmpeg (див. вище). Більшість форматів обробляються без ffmpeg, але деякі можуть його потребувати.