Простой веб-сервис распознавания речи с помощью PocketSphinx.
docker run -d \
--name=rhvoice-rest \
-p 8085:8085 \
--restart unless-stopped \
ghcr.io/aculeasis/pocketsphinx-rest:latestПоддерживаемые архитектуры:
| Architecture | Available | Tag |
|---|---|---|
| x86-64 | ✅ | amd64 |
| arm64 | ✅ | arm64v8 |
| armhf | ✅ | arm32v7 |
Для автоматического обновления можно использовать Watchtower.
git clone https://github.com/Aculeasis/pocketsphinx-rest
cd pocketsphinx-rest
# Указать Dockerfile под целевую архитектуру
docker build -t pocketsphinx-rest -f Dockerfile.arm64v8 .
docker run -d -p 8085:8085 pocketsphinx-rest
Просто отправить файл через POST
POST /stt
Host: SERVER
Content-Type: audio/x-wav
(wav file)
Требования к файлу:
- Формат - wav
- Число каналов - 1 (моно)
- Частота дискретизации - 16 000 Гц
- Квантование - 16 бит.
Если нужно, перекодируйте файл перед отправкой.
Сервер пришлет ответ в json, где:
code- код ошибки или 0text- распознанный текст если code равен 0 иначе сообщение об ошибке
Для проверки сервера можно использовать pocketsphinx_rest_file.py FILE [URL]
- Из-за большого словаря для запуска нужно минимум 1 GB RAM.
- Распознование происходит в однопоточном режиме, что накладывает высокие требования на производительность CPU core. На OPI Prime распознование фраз занимает от 10 до 40 секунд.
- Веб-сервер также запущен в однопоточном режиме.
- Качество распознования
оставляет желать лучшегоужасно. - Поддерживается только русский язык.
- PocketSphinx https://github.com/cmusphinx/pocketsphinx
- Pocketsphinx Python https://github.com/bambocher/pocketsphinx-python