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