Простой веб-сервис распознавания речи с помощью 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