MULTISPEECH.CONF(5)

πŸ’– MULTISPEECH.CONF πŸ’–

okay bestie, so this is the manual page for multispeech.conf β€” the Multispeech configuration file (section 5 of the File Formats Manual, iykyk). grab a strawberry πŸ“ and let's get into it.


✨ NAME ✨

multispeech.conf β€” the Multispeech configuration file. that's it, that's the name, periodt.


🌸 DESCRIPTION 🌸

so when multispeech boots up, it's looking for its config in two places, no cap:

  • /etc/multispeech.conf
  • ~/.multispeechrc

and here's the tea on who wins πŸ«–: the user settings you put in ~/.multispeechrc always take precedence over the system-wide ones in /etc/multispeech.conf. always always.

and all of those settings can then get overridden by an extra config file you pass in on the command line. and when multispeech gets started as a Speech Dispatcher module, it treats that command-line file as an extension of the global config. so options in there override the main system config file... but ~/.multispeechrc still takes precedence over both of them. main character energy, honestly πŸ‘‘

some configuration options are mandatory, so at least one of these files has to exist. no config, no vibes. 😭

πŸŽ€ SYNTAX πŸŽ€

the syntax is lowkey simple.

  • lines that start with the # character are treated as comments
  • blank lines get ignored, they're just there for aesthetic
  • every option entry looks like this:
keyword = value

case is significant. fr fr, don't try to be cute with it.

all options are logically grouped into sections. each section starts with its name in square brackets on its own line. very demure, very mindful. πŸ’…


πŸ¦‹ CLIENT INTERACTION CONTROL OPTIONS πŸ¦‹

these options live in the section named frontend. here's what's inside:

  • charset β€” the input charset should be specified by its name. you can find available names in /usr/share/i18n/SUPPORTED or wherever else it lives on your system. by default this option is not set, so your current locale setting gets used.
  • native_voices β€” enable native voice control embedded commands.
  • dtk_voices β€” enable DECtalk voice control embedded commands.

ok so these last two control inline parameter parsing, and here's the breakdown. in the default state, only native voices are enabled β€” so multispeech behaves like it always used to and accepts only the special inline commands formed by emacspeak. when dtk voices are enabled, multispeech recognizes DECtalk inline commands and tries to emulate some subset of the DECtalk voice control capabilities.

use the word yes or on to enable, and the word no or off to disable. and nothing's stopping you from keeping both options enabled at the same time β€” in that case, DECtalk inline commands get accepted right alongside the native ones. but if you disable both? then inline command detection and parsing just doesn't happen at all. πŸ’€


🌈 GENERAL AUDIO OUTPUT CONTROL OPTIONS 🌈

section name is audio. it contains the following options:

  • device β€” the default device for all audio output (speech, sounds and tones). if you don't specify it explicitly, the system default gets used. DSP device specifications (like /dev/dsp) are allowed here, and so are the ALSA ones. invoke multispeech -l to get a list of all available devices on your system.
  • general_volume β€” the volume level applied to all audio output in general. it should be in the range of (0.0..1.0]. when this option isn't specified, the default value 0.8 is used.
  • latency β€” audio output latency, in seconds. the special value 0.0 implies that a reasonable latency will be chosen automatically by the system. normally you should not set this up explicitly. do it only if you're pretty unsatisfied by the default.
  • async_operation β€” this enables truly asynchronous audio stream operation. normally it is absolutely not necessary, so it's disabled by default β€” but theoretically there can be some circumstances where it'd be preferable. use the word yes or on to enable, and the word no or off to disable.
  • pulseaudio_direct β€” this allows direct usage of the PulseAudio API for the pulse and default devices when a pulse device is present in the system. if it's disabled, those devices get accessed via the native host API bridge instead. use the word yes or on to enable, and the word no or off to disable.

πŸ”₯ SOUNDS PLAYING CONTROL OPTIONS πŸ”₯

section name is sounds. it's got several options that affect sound file playing capability:

  • device β€” the sound files playing device. this setting overwrites the general default and lets you play sound files on a separate audio device. DSP device specifications (like /dev/dsp) are accepted here, and so are the ALSA ones. invoke multispeech -l to get a list of all available devices on your system.
  • volume β€” relative volume level for sound files playing. it's 1.0 by default.
  • asynchronous β€” this enables or disables playing sound files simultaneously with other audio activities, like speech and tone signals producing. it's enabled by default. use the word yes or on to enable, and the word no or off to disable.

⭐ TONE SIGNALS PRODUCING CONTROL OPTIONS ⭐

section name is tones. it consists of the following options:

  • device β€” the tones producing device. this setting overwrites the general default and lets you use a separate device for tone signals. DSP device specifications (like /dev/dsp) are accepted here, and so are the ALSA ones. invoke multispeech -l to get a list of all available devices on your system.
  • volume β€” relative volume level for tone signals producing. it's 1.0 by default.
  • sampling β€” sampling frequency for generated tone signals. it's 44100 by default.
  • asynchronous β€” this enables or disables producing tone signals simultaneously with other audio activities, like speech and sound files playing. it's enabled by default. use the word yes or on to enable, and the word no or off to disable.

πŸ’œ GENERAL SPEECH CONTROL OPTIONS πŸ’œ

section name is speech. these options affect speech output in general:

  • device β€” the speech output device. this setting overwrites the general default and lets you produce speech on a separate audio device. DSP device specifications (like /dev/dsp) are accepted here, and so are the ALSA ones. invoke multispeech -l to get a list of all available devices on your system.
  • volume β€” relative volume level for speech output. it's 1.0 by default.
  • language β€” this specifies the language to speak. allowed values are:
    • en for English
    • ru for Russian
    • de for German
    • fr for French
    • es for Spanish
    • pt for Portuguese
    • it for Italian
    • autodetect for automatic detection from the text nature

by default the language is autodetected. and the language can then be changed on the fly during runtime by the respective commands. 🧚

  • fallback β€” this specifies the language that'll be chosen when it should be changed, but autodetection fails. any supported language may be specified here, obviously β€” except autodetect. and of course, the language you declare as a fallback must be available itself. see below for the language related options. πŸ‘‡

there's a separate section for each supported language, named:

  • en for English
  • ru for Russian
  • de for German
  • fr for French
  • es for Spanish
  • pt for Portuguese
  • it for Italian

these sections contain pretty much the same collection of options that affect speech in a specific language. the actual speech engine gets chosen by the key option engine. by default it's espeak for all languages. if it's explicitly not set, or set as disabled, then the language won't be available in Multispeech and no resources will be spent for it. the actual choice varies from language to language, but these two values are always legitimate. you don't have to define a speech engine for each language, but at least one must be defined. and honestly? it's wise to define a speech engine for only those languages you're actually gonna use β€” or define a speech engine for all languages in the global config and then locally disable the ones you don't need. chef's kiss. πŸ’…

each language specific section consists of the following options:

  • engine β€” TTS engine specification. allowed values are as follows:
    • freephone β€” English speech with Freephone and Mbrola voice en1
    • ru_tts β€” Russian speech with Ru_tts speech synthesizer
    • espeak β€” all supported languages with Espeak TTS engine
    • mbrola β€” English, German, French, Spanish, Portuguese and Italian speech produced by Mbrola in conjunction with Espeak as a preprocessor
    • user β€” user defined TTS engine
  • priority β€” language detection priority. any integer value is allowed. during autodetection, languages are probed in ascending order of their priority values. it's 0 by default.
  • volume β€” specific voice loudness relative to the general speech volume level. it's 1.0 by default.
  • pitch β€” specific voice pitch adjustment relative to its normal level. it's 1.0 by default. a greater value causes higher pitch.
  • rate β€” relative speech rate for a specific voice. it's 1.0 by default. a higher value causes quicker speech.
  • acceleration β€” apply additional speech tempo acceleration. the speech rate gets changed by the specified difference in percents compared to the original tempo. positive values cause speech acceleration, while negative ones actually imply slowing it down. default value is 0, so no additional tempo change is applied.
  • char_pitch β€” relative voice pitch control applied to single letters pronunciation. by default 1.0 is suggested.
  • char_rate β€” relative speech rate control applied to single letters pronunciation. by default 1.0 is suggested.
  • caps_factor β€” voice pitch factor for capital letters. by default it's 1.2, so capital letters get pronounced by slightly higher pitch.
  • speak_numbers β€” this affects numbers speaking. when it's yes or on, digits are treated as if they belong to the native alphabet and therefore do not cause language switching. when it's no or off, digits are treated as foreign symbols, causing a switch to another language β€” which will be the fallback one, or some other one according to the language priority settings. it's yes by default.

Okay bestie, the section literally named mbrola is where you tell multispeech how to talk to the mbrola speech engine. Options go here:

  • executable β€” the path to the Mbrola executable. If you only drop a program name (which is the default vibe, btw), then the environment variable PATH gets examined and every path mentioned in there gets searched. iykyk.
  • voices β€” path to the directory where Mbrola voice files live. Default suggestion is /usr/share/mbrola.

🌸 MBROLA VOICES ASSIGNMENT 🌸

So these voices are used by the Mbrola backend in conjunction with Espeak. If you wanna see the list of voices Espeak supports, go invoke espeak --voices. Only Mbrola voices are allowed in here, periodt. Also make sure you actually have the corresponding Mbrola voices, because no voice files = no slay. See the Espeak documentation for further details.

  • en β€” English voice. By default en1 is used.
  • de β€” German voice. By default de6 is used.
  • fr β€” French voice. By default fr4 is used.
  • es β€” Spanish voice. By default es1 is used.
  • pt β€” Portuguese voice. By default br3 is used.
  • it β€” Italian voice. By default it3 is used.

The section named freephone is fully devoted to the freephone speech backend, and here's what lives in it:

  • executable β€” path to the Freephone executable. If only a program name is specified (as it is by default), then the environment variable PATH gets examined and all paths mentioned there get searched.
  • lexicon β€” path to the lexical database. Default suggestion is /usr/share/freespeech/enlex.db.

Section ru_tts is all the options that control how multispeech interacts with the ru_tts speech synthesizer:

  • executable β€” path to the Ru_tts executable. If only a program name is specified (as it is by default), then the environment variable PATH gets examined and all paths mentioned there get searched.
  • lexicon β€” path to the lexical database. Default suggestion is /usr/share/freespeech/rulex.db.
  • log β€” an optional file to collect unknown words. This file must be writable for the Multispeech user. The collected data can be used later to improve the lexical database. No such file is suggested by default, so unknown words are simply not stored. 🫢
  • expressiveness β€” relative voice pitch variation level. The default value is 1.0, which is the normal intonation. A value of 0.0 causes absolutely monotonic speech (robotic queen behavior, ngl).
  • female_voice β€” when this option is yes, the alternative female voice is used instead of the default (male) one. πŸ’…
  • decimal_point, decimal_comma β€” these options enable or disable treating a point and a comma inside a number as a decimal separator. By default both are enabled. Use yes or on to enable and no or off to disable.
  • interclause_gap_factor β€” the factor applied to all interclause gap durations.
  • comma_gap_factor, dot_gap_factor, semicolon_gap_factor, colon_gap_factor, question_gap_factor, exclamation_gap_factor β€” the factors applied to the durations of the gaps implied by the corresponding punctuations. (Yes, every punctuation mark gets its own lil knob. Obsessed.)
  • intonational_gap_factor β€” the factor applied to the duration of intonational gaps not caused by punctuations.

Interaction with the espeak TTS engine is controlled by the options grouped in section espeak:

  • executable β€” path to the Espeak executable. If only a program name is specified (as it is by default), then the environment variable PATH gets examined and all paths mentioned there get searched.
  • en β€” English voice specification. By default en is suggested. Invoke espeak --voices to see all available alternatives.
  • ru β€” Russian voice specification. By default ru is suggested. Invoke espeak --voices to see all available alternatives.
  • de β€” German voice specification. By default de is suggested. Invoke espeak --voices to see all available alternatives.
  • fr β€” French voice specification. By default fr is suggested. Invoke espeak --voices to see all available alternatives.
  • es β€” Spanish voice specification. By default es is suggested. Invoke espeak --voices to see all available alternatives.
  • pt β€” Portuguese voice specification. By default pt is suggested. Invoke espeak --voices to see all available alternatives.
  • it β€” Italian voice specification. By default it is suggested. Invoke espeak --voices to see all available alternatives.

✨ USER DEFINED TTS BACKEND OPTIONS ✨

The section name is user. Here's what gets grouped in there:

  • command β€” the shell command that performs the TTS transformation. This command must accept text on the standard input and produce a sound stream on the standard output. It should be a simple command β€” pipes or other shell complications are not allowed here β€” but command line arguments may be specified. On top of that, there are several special keywords recognized by Multispeech and replaced by actual values internally, right before execution. This mechanism is how Multispeech passes the current speech parameters to the TTS engine. The keywords are:
%lang - replaced by the language id string;
%pitch - replaced by relative voice pitch value;
%rate - replaced by relative speech rate value;
%freq - replaced by the sampling frequency value.

That last keyword is replaced only when freq_control is enabled (see below).

  • format β€” produced sound stream sample format. The allowed values here are:
s8 - signed 8 bits;
u8 - unsigned 8 bits;
s16 - signed 16 bits.
Leave this option commented out if the sound stream is produced in a format that can be detected automatically, like a wave file for instance.
  • sampling β€” produced sound stream sampling frequency in Hz. Assumed 22050 by default. This option is ignored when the sound stream format is autodetected.
  • stereo β€” set to yes if the produced sound stream is stereo. By default it is assumed mono. This option is ignored when the sound stream format is autodetected.
  • freq_control β€” set this option to yes if the TTS engine accepts a sampling frequency specification (like mbrola does, for instance) and you wish to make use of this capability. This option allows %freq keyword replacement in the command line. Leave it commented out if unsure. πŸ™ˆ
  • charset β€” the character set in which the TTS engine accepts its input. Available charset names can be found in /usr/share/i18n/SUPPORTED or wherever else it is on your system. By default this option is not set, so the current locale setting is used.

The section name is spd. The following options are grouped here:

  • version β€” Speech Dispatcher version. Usually it is correctly guessed automatically, but you can specify it explicitly when compatibility issues take place.
  • sound_icons β€” path to the directory where multispeech will search sound icon files when acting as a Speech Dispatcher module. Default suggestion is /usr/share/sounds/sound-icons.
  • use_voice_language β€” this option defines multispeech's behaviour when synthesis_voice and language settings are passed by Speech Dispatcher in a single request. If it is yes or on, the language will be chosen according to the specified voice; otherwise, when it is no or off, the last setting in the packet takes precedence. By default this option is yes.
  • accept_explicit_language β€” this option enables or disables explicit language choice by Speech Dispatcher. When disabled, language can be chosen only via synthesis_voice. Use the word yes or on to enable and the word no or off to disable. By default this option is enabled.
  • ignore_unknown_voice β€” when this option is yes or on, Speech Dispatcher requests to set synthesis_voice with an unknown name are ignored. Otherwise, when it is no or off, such requests are treated as if the voice name was NULL. That special name is used for the so-called default voice, which lets multispeech utilize its language autodetection mechanism β€” though language still can be changed explicitly by Speech Dispatcher if enabled. This option is no by default.
  • index_marks β€” this option enables or disables index marks support. When it is yes or on, index marks are reported correctly, but it becomes necessary to split the message at the point of the index mark. If such a side effect is somewhat inconvenient, it may be better to turn index marks support off by setting this option to no or off. By default index marks support is enabled.

πŸ‘€ SEE ALSO πŸ‘€

espeak(1), freephone(1), mbrola(1), multispeech(1), ru_tts(1), speech-dispatcher(1).


πŸ‘‘ AUTHOR πŸ‘‘

Igor B. Poretsky <poretsky@mlbox.ru>.


And that's the whole page, bestie!! πŸ’– This was MULTISPEECH.CONF(5), dated March 2, 2010 β€” yes, a whole legend, we stan. Go configure something gorgeous. πŸŽ€βœ¨

πŸ“¦ where this page comes from