stt - docker wyoming-vosk
Table of Contents
How to use
clone the repo
change into the repo: cd wyoming-vosk-standalone
build the container: bash build.sh
optional: adapt docker-compose.yaml to your use-case
run the container: docker compose up
A directory called dirs will be created in the current folder. Inside that folder are the volumes specified in docker-compose.yaml
Build docker wyoming-vosk image
# clone the repo
git clone https://github.com/dekiesel/wyoming-vosk-standalone
# change into the repo
cd wyoming-vosk-standalone
# list files
ls -l
total 20
-rw-r--r-- 1 root root 286 Feb 11 13:07 build.sh
-rw-r--r-- 1 root root 427 Feb 11 13:07 docker-compose.yaml
-rw-r--r-- 1 root root 826 Feb 11 13:07 Dockerfile
-rw-r--r-- 1 root root 1366 Feb 11 13:07 README.md
-rw-r--r-- 1 root root 1230 Feb 11 13:07 start.sh
# build the container
bash build.sh
output
# cd wyoming-vosk-standalone
root@debian:~/wyoming-vosk-standalone# bash build.sh
[+] Building 965.1s (9/9) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 865B 0.0s
=> [internal] load metadata for ghcr.io/home-assistant/amd64-base-debian:bookworm 3.2s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/5] FROM ghcr.io/home-assistant/amd64-base-debian:bookworm@sha256:1ce7ca169e5c8b77300ceacb592c656467945 57.4s
=> => resolve ghcr.io/home-assistant/amd64-base-debian:bookworm@sha256:1ce7ca169e5c8b77300ceacb592c6564679457 0.0s
=> => sha256:e8a35b731771e17379eb8c5c148a1f808758a1d5751e02b6ad05e4ee27f7e427 4.70kB / 4.70kB 0.0s
=> => sha256:8cf9fb7a0b56cf93bf2502aff8087344f2dd06e29fb027b0c06aa2726ab3eda8 29.15MB / 29.15MB 54.9s
=> => sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B 3.0s
=> => sha256:40f89111e0f7ff5e130192aa23a37ddc22939ec3953b7a8c959431de22c8fee9 10.69MB / 10.69MB 42.5s
=> => sha256:1ce7ca169e5c8b77300ceacb592c6564679457cf02ab93f9c2a862b564bb6d94 947B / 947B 0.0s
=> => extracting sha256:8cf9fb7a0b56cf93bf2502aff8087344f2dd06e29fb027b0c06aa2726ab3eda8 1.8s
=> => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 0.0s
=> => extracting sha256:40f89111e0f7ff5e130192aa23a37ddc22939ec3953b7a8c959431de22c8fee9 0.4s
=> [internal] load build context 0.0s
=> => transferring context: 1.27kB 0.0s
=> [2/5] WORKDIR /usr/src 3.0s
=> [3/5] RUN apt-get update && apt-get install -y --no-install-recommends netcat-traditiona 900.1s
=> [4/5] COPY start.sh /start.sh 0.0s
=> exporting to image 1.3s
=> => exporting layers 1.3s
=> => writing image sha256:00fe184759813d092368d6e006935d5c2f5ef67283660889d3cef886ad7b3100 0.0s
=> => naming to docker.io/library/wyoming-vosk-standalone:1.5.0
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wyoming-vosk-standalone 1.5.0 00fe18475981 23 minutes ago 220MB
movedwhisper latest 9455da0dfada 2 weeks ago 564MB
Run first
version: "2"
services:
vosk:
image: wyoming-vosk-standalone:1.5.0
environment:
- CORRECT_SENTENCES=0.0
- PRELOAD_LANGUAGE=en
- DEBUG_LOGGING=TRUE
- LIMIT_SENTENCES=TRUE
- ALLOW_UNKNOWN=False
volumes:
- ./dirs/data:/data
- ./dirs/sentences:/share/vosk/sentences
- ./dirs/models:/share/vosk/models
ports:
- 10300:10300
restart: unless-stopped
Run first
docker compose up
output
WARN[0000] /root/wyoming-vosk-standalone/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
Attaching to vosk-1
vosk-1 | CORRECT_SENTENCES = 0.0
vosk-1 | PRELOAD_LANGUAGE = en
vosk-1 | DEBUG_LOGGING = TRUE
vosk-1 | LIMIT_SENTENCES = TRUE
vosk-1 | ALLOW_UNKNOWN = False
vosk-1 | flags = --debug --limit-sentences
vosk-1 | DEBUG:root:Namespace(uri='tcp://0.0.0.0:10300', data_dir=['/share/vosk/models'], download_dir='/data', language='en', preload_language=['en'], model_for_language={}, casing_for_language={}, model_index=0, sentences_dir='/share/vosk/sentences', database_dir='/share/vosk/sentences', correct_sentences=0.0, limit_sentences=True, allow_unknown=False, debug=True, log_format='%(levelname)s:%(name)s:%(message)s')
vosk-1 | DEBUG:root:Preloading model for en
vosk-1 | DEBUG:wyoming_vosk.download:Downloading: https://huggingface.co/rhasspy/vosk-models/resolve/main/en/vosk-model-small-en-us-0.15.zip
A directory called dirs will be created in the current folder.
~/wyoming-vosk-standalone# ls -l
total 24
-rw-r--r-- 1 root root 286 Feb 11 13:07 build.sh
drwxr-xr-x 5 root root 4096 Feb 11 13:58 dirs
-rw-r--r-- 1 root root 427 Feb 11 13:07 docker-compose.yaml
-rw-r--r-- 1 root root 826 Feb 11 13:07 Dockerfile
-rw-r--r-- 1 root root 1366 Feb 11 13:07 README.md
-rw-r--r-- 1 root root 1230 Feb 11 13:07 start.sh
Using a specific model
Models are automatically downloaded from HuggingFace, but they are originally from Alpha Cephei(https://alphacephei.com/vosk/models).
# cd into the models directory
cd dirs/models
# Download the model
wget https://alphacephei.com/vosk/models/vosk-model-small-cn-0.22.zip
wget https://alphacephei.com/vosk/models/vosk-model-cn-0.22.zip
wget https://alphacephei.com/vosk/models/vosk-model-cn-kaldi-multicn-0.15.zip
# ls -l
total 1913544
-rw-r--r-- 1 root root 1358736686 Jun 1 2022 vosk-model-cn-0.22.zip
-rw-r--r-- 1 root root 556773376 Feb 11 14:11 vosk-model-cn-kaldi-multicn-0.15.zip
-rw-r--r-- 1 root root 43898754 May 1 2022 vosk-model-small-cn-0.22.zip
# unzip
unzip vosk-model-small-cn-0.22.zip
unzip vosk-model-cn-0.22.zip
unzip vosk-model-cn-kaldi-multicn-0.15.zip
# vosk uses the foldername to determine the language
mv vosk-model-small-cn-0.22 cn
mv vosk-model-cn-0.22 cn
mv vosk-model-cn-kaldi-multicn-0.15 cn
Accuracy
Recognition is very poor compared to Whisper with small model.
Comments
Comments are closed