3f97810f894f9203d2d27ae1261fd36fb61a7e8b
# Conflicts: # .env.example # README.md # app.py # docker-compose.yml
ASR service на базе Whisper + AMD ROCm
Сервис для распознавания речи с использованием GPU AMD через ROCm.
Требования
- GPU AMD с поддержкой ROCm (RX5000, RX6000 +)
- Установленный ROCm
- Docker + Compose plugin
- Debian based linux (для инструкции)
- Минимум 8GB RAM
- Минимум 2GB свободного места + место для ROCm + Модели (turbo ~3.5GB)
Установка и запуск
1. Клонирование репозитория
git clone https://github.com/SlavaVlad/simple-asr-server.git ./asr
cd asr
2. Создание Docker-образа
Перед запуском в файле docker-compose.yml можно изменить всякие переменные окружения, например модель по умолчанию.
docker compose up -d
Тут он сам всё соберёт и запустится.
Управление API-ключами
При первом запуске сервиса автоматически создается файл keys.txt со случайно сгенерированным API-ключом.
Добавление новых ключей
- Откройте файл
keys.txt - Добавьте новые ключи, каждый с новой строки
- Перезапустите сервис
Пример содержимого keys.txt:
f7a9c2b3d4e5a6b7c8d9e0f1a2b3c4d5
e8b9a2c3d4f5g6h7i8j9k0l1m2n3o4p5
Использование API
Распознавание речи
curl -X POST "http://localhost:9854/transcribe" \
-H "x-api-key: ВАШ_КЛЮЧ" \
-F "file=@путь_к_аудио_файлу" \
-F "model_name=turbo" # (необязательно, по умолчанию turbo)
Ответ API
{
"transcription": [...],
"text": "распознанный текст",
"metrics": {
"processing_time_seconds": 1.23,
"characters_per_second": 45.6,
"audio_realtime_ratio": 2.34,
"audio_duration": 5.67,
"text_length": 89
}
}
Метрики производительности
API возвращает следующие метрики:
processing_time_seconds: время обработки в секундахcharacters_per_second: скорость обработки (символов в секунду)audio_realtime_ratio: отношение длительности аудио к времени обработкиaudio_duration: длительность аудио в секундахtext_length: количество символов в распознанном тексте
Поддерживаемые форматы
Поддерживаются все аудиоформаты, которые может обработать FFmpeg. Файлы автоматически конвертируются в нужный формат.
Решение проблем
Проверка статуса сервиса
curl http://localhost:9854/docs
Частые проблемы
-
Ошибка доступа к GPU
sudo usermod -a -G video,render $USER sudo reboot -
Ошибка 403
- Проверьте правильность API-ключа
- Убедитесь, что ключ добавлен в файл keys.txt
- Перезапустите сервис
Лицензия
MIT License
Languages
Python
56.1%
Shell
36.7%
Dockerfile
7.2%