alphacep / vosk-server

WebSocket, gRPC and WebRTC speech recognition server based on Vosk and Kaldi libraries
Apache License 2.0
869 stars 241 forks source link

Solution: Running docker images on arm64 (e.g. M1/Apple Silicon) #209

Open wuxmax opened 1 year ago

wuxmax commented 1 year ago

The docker images currently provided on docker hub are only build for linux/amd64 and do not run natively on arm64 (emulation via the docker run --platform flag is unpractical performance-wise in my experience).

Simply building the underlying 'kaldi-vosk-server' image won't work either on arm64 with the provided Dockerfile. The easiest solution to this problem that I found is to have a simple Dockerfile like this:

Dockerfile.kaldi-vosk-server-python

FROM python:3.9

RUN pip install vosk
RUN git clone https://github.com/alphacep/vosk-server /opt/vosk-server

Then build it locally on your arm64 machine and tag it: docker build -f Dockerfile.kaldi-vosk-server-python -t alphacep/kaldi-vosk-server .

Then you can build the Kaldi images, which are based on that, e.g.: docker build -f Dockerfile.kaldi-en -t YOUR_IMAGE_NAME_OF_CHOICE .

LIMITATION: This does not allow for GPU/CUDA support, for that refer to: https://github.com/sskorol/vosk-api-gpu

Other issues mentioning this topic:

nshmyrev commented 1 year ago

Thanks for sharing! We probably need to publish ARM images