# Vosk Speech-to-Text

Vosk STT Service uses vosk-api (opens new window) to perform offline speech-to-text in openHAB.

Vosk (opens new window) is an offline open source speech recognition toolkit. It enables speech recognition for 20+ languages and dialects - English, Indian English, German, French, Spanish, Portuguese, Chinese, Russian, Turkish, Vietnamese, Italian, Dutch, Catalan, Arabic, Greek, Farsi, Filipino, Ukrainian, Kazakh, Swedish, Japanese, Esperanto. More to come.

# Supported platforms

This add-on uses an underling binary to work. The following platforms are supported:

  • linux-aarch64
  • linux-armv7l
  • linux-x86_64
  • osx
  • win64

On Linux this binary requires the package libatomic to be installed (apt install libatomic1).

# Configuring the model

Before you can use this service you should configure your language model. You can download it from here (opens new window). You should unzip the contained folder into '<openHAB userdata>/vosk/' and rename it to model for the add-on to work.

# Configuration

# Speech to Text Configuration

Use your favorite configuration UI to edit Settings / Other Services - Vosk Speech-to-Text:

  • Preload Model - Keep language model loaded.
  • Single Utterance Mode - When enabled recognition stops listening after a single utterance.
  • Max Transcription Seconds - Max seconds to wait to force stop the transcription.
  • Max Silence Seconds - Only works when singleUtteranceMode is disabled, max seconds without getting new transcriptions to stop listening.

# Messages Configuration

Use your favorite configuration UI to edit Settings / Other Services - Vosk Speech-to-Text:

  • No Results Message - Message to be told when no results.
  • Error Message - Message to be told when an error has happened.

# Configuration via a text file

In case you would like to setup the service via a text file, create a new file in $OPENHAB_ROOT/conf/services named voskstt.cfg

Its contents should look similar to:

org.openhab.voice.voskstt:preloadModel=false
org.openhab.voice.voskstt:singleUtteranceMode=true
org.openhab.voice.voskstt:maxTranscriptionSeconds=60
org.openhab.voice.voskstt:maxSilenceSeconds=5
org.openhab.voice.voskstt:noResultsMessage="Sorry, I didn't understand you"
org.openhab.voice.voskstt:errorMessage="Sorry, something went wrong"

# Default Speech-to-Text Configuration

You can setup your preferred default Speech-to-Text in the UI:

  • Go to Settings.
  • Edit System Services - Voice.
  • Set Vosk as Speech-to-Text.

In case you would like to setup these settings via a text file, you can edit the file runtime.cfg in $OPENHAB_ROOT/conf/services and set the following entries:

org.openhab.voice:defaultSTT=voskstt