# VoiceRSS Text-to-Speech

# Overview

VoiceRSS is an Internet based TTS service hosted at https://api.voicerss.org (opens new window). You must obtain an API Key to get access to this service. The free version allows you to make up to 350 requests per day; for more you may need a commercial subscription.

For more information, see https://www.voicerss.org (opens new window).

# Obtaining Credentials

Before you can integrate this service, you need to register to https://www.voicerss.org (opens new window) with at least a free account to get an API key.

# Samples

Replace API_KEY with your personal API key for simple testing of different API calls:

# EN
https://api.voicerss.org/?key=API_KEY&hl=en-us&src=Hello%20World
https://api.voicerss.org/?key=API_KEY&hl=en-us&c=WAV&src=Hello%20World
https://api.voicerss.org/?key=API_KEY&hl=en-us&f=44khz_16bit_mono&src=Hello%20World
https://api.voicerss.org/?key=API_KEY&hl=en-gb&f=44khz_16bit_stereo&src=Hello%20World

# DE
https://api.voicerss.org/?key=API_KEY&hl=de-de&f=44khz_16bit_mono&src=Hallo%20Welt

# Configuration

The following settings can be edited in UI (Settings / Other Services - VoiceRSS Text-to-Speech):

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

Its contents should look similar to:

org.openhab.voice.voicerss:apiKey=1234567890

# Voices

It supports the following voices (depending on language):

  • Oda (Arabic - Egypt)
  • Salim (Arabic - Saudi Arabia)
  • Dimo (Bulgarian)
  • Rut (Catalan)
  • Luli (Chinese - China)
  • Shu (Chinese - China)
  • Chow (Chinese - China)
  • Wang (Chinese - China)
  • Jia (Chinese - Hong Kong)
  • Xia (Chinese - Hong Kong)
  • Chen (Chinese - Hong Kong)
  • Akemi (Chinese - Taiwan)
  • Lin (Chinese - Taiwan)
  • Lee (Chinese - Taiwan)
  • Nikola (Croatian)
  • Josef (Czech)
  • Freja (Danish)
  • Daan (Dutch - Belgium)
  • Lotte (Dutch - Netherlands)
  • Bram (Dutch - Netherlands)
  • Zoe (English - Australia)
  • Isla (English - Australia)
  • Evie (English - Australia)
  • Jack (English - Australia)
  • Rose (English - Canada)
  • Clara (English - Canada)
  • Emma (English - Canada)
  • Mason (English - Canada)
  • Alice (English - Great Britain)
  • Nancy (English - Great Britain)
  • Lily (English - Great Britain)
  • Harry (English - Great Britain)
  • Eka (English - India)
  • Jai (English - India)
  • Ajit (English - India)
  • Oran (English - Ireland)
  • Linda (English - United States)
  • Amy (English - United States)
  • Mary (English - United States)
  • John (English - United States)
  • Mike (English - United States)
  • Aada (Finnish)
  • Emile (French - Canada)
  • Olivia (French - Canada)
  • Logan (French - Canada)
  • Felix (French - Canada)
  • Bette (French - France)
  • Iva (French - France)
  • Zola (French - France)
  • Axel (French - France)
  • Theo (French - Switzerland)
  • Lukas (German - Austria)
  • Hanna (German - Germany)
  • Lina (German - Germany)
  • Jonas (German - Germany)
  • Tim (German - Switzerland)
  • Neo (Greek)
  • Rami (Hebrew)
  • Puja (Hindi)
  • Kabir (Hindi)
  • Mate (Hungarian)
  • Intan (Indonesian)
  • Bria (Italian)
  • Mia (Italian)
  • Pietro (Italian)
  • Hina (Japanese)
  • Airi (Japanese)
  • Fumi (Japanese)
  • Akira (Japanese)
  • Nari (Korean)
  • Aqil (Malay)
  • Marte (Norwegian)
  • Erik (Norwegian)
  • Julia (Polish)
  • Jan (Polish)
  • Marcia (Portuguese - Brazil)
  • Ligia (Portuguese - Brazil)
  • Yara (Portuguese - Brazil)
  • Dinis (Portuguese - Brazil)
  • Leonor (Portuguese - Portugal)
  • Doru (Romanian)
  • Olga (Russian)
  • Marina (Russian)
  • Peter (Russian)
  • Beda (Slovak)
  • Vid (Slovenian)
  • Juana (Spanish - Mexico)
  • Silvia (Spanish - Mexico)
  • Teresa (Spanish - Mexico)
  • Jose (Spanish - Mexico)
  • Camila (Spanish - Spain)
  • Sofia (Spanish - Spain)
  • Luna (Spanish - Spain)
  • Diego (Spanish - Spain)
  • Molly (Swedish)
  • Hugo (Swedish)
  • Sai (Tamil)
  • Ukrit (Thai)
  • Omer (Turkish)
  • Chi (Vietnamese)

# Default Text-to-Speech and Voice Configuration

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

  • Go to Settings.
  • Edit System Services - Voice.
  • Set VoiceRSS as Default Text-to-Speech.
  • Choose your preferred Default Voice for your setup.

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:defaultTTS=voicerss
org.openhab.voice:defaultVoice=voicerss:frFR_Zola

# Supported Audio Formats

It supports the following audio formats: MP3, OGG, AAC and WAV.

# Caching

The VoiceRSS extension does cache audio files from previous requests, to reduce traffic, improve performance, reduce number of requests and provide same time offline capability.

For convenience, there is a tool where the audio cache can be generated in advance, to have a prefilled cache when starting this extension. You have to copy the generated data to your userdata/voicerss/cache folder.

Synopsis of this tool:

Usage: java org.openhab.voice.voicerss.tool.CreateTTSCache <args>
Arguments: --api-key <key> <cache-dir> <locale> <voice> { <text> | @inputfile } [ <codec> <format> ]
  key       the VoiceRSS API Key, e.g. "123456789"
  cache-dir is directory where the files will be stored, e.g. "voicerss-cache"
  locale    the language locale, has to be valid, e.g. "en-us", "de-de"
  voice     the voice, "default" for the default voice
  text      the text to create audio file for, e.g. "Hello World"
  inputfile a name of a file, where all lines will be translatet to text, e.g. "@message.txt"
  codec     the audio codec, "MP3", "WAV", "OGG" or "AAC", "MP3" by default
  format    the audio format, "44khz_16bit_mono" by default

Sample: java org.openhab.voice.voicerss.tool.CreateTTSCache --api-key 1234567890 cache en-US default @messages.txt

You will need to specify the classpath for your addon (jar) in the command line (java -cp ...).