# The mary-generic output module is based on the generic plugin for Speech # Dispatcher. It means there is no code written explicitly for # this plugin, all the specifics are handled in this configuration # and we call a simple command line client to perform the actual # synthesis. Use this config file with the sd_generic output module. # Debug turns debugging on or off # See speechd.conf for information where debugging information is stored Debug 0 # IMPORTANT: The audio output method relies on an audio playback # utility (play, aplay, paplay for OSS, ALSA or Pulse) # being installed. If this is not the case, consider installing it # or replace the $PLAY_COMMAND string in the GenericExecuteString below # with play, paplay or similar. # # GenericExecuteSynth is the shell command that should be # executed in order to say some message. This command must # stop saying the message on SIGKILL, otherwise it's useless. # You can use the variables $LANGUAGE, $VOICE, $PITCH and $RATE # which will be substituted for the appropriate value (you # can modify this value, see other parameters). # This line uses the command curl, so you might need to install # curl if it isn't already installed. # The command can be split into more lines, if necessary, using '\'. GenericExecuteSynth "\ curl \ -X POST \ -H 'Content-Type: application/json' \ -d '{ \"voice\":\"$VOICE\", \"text\": \"$DATA\", \"length_scale\": \"$RATE\" }' \ -o - \ localhost:5000 \ | $PLAY_COMMAND --volume=$(echo 'scale=0; $VOLUME*65536/100' | bc)" GenericCmdDependency "curl" GenericPortDependency 5000 GenericSoundIconFolder "/usr/share/sounds/sound-icons/" # The following three items control punctuation levels None, Some, and All. # Each of these values will be substituted into the $PUNCT variable depending # on the value passed to speech dispatcher from applications. # Note that if an empty string is specified, then $PUNCT will be blank # which is a default situation for espeak. GenericPunctNone "" GenericPunctSome "--punct=\"()[]{};:\"" GenericPunctMost "--punct=\"()[]{};:\"" GenericPunctAll "--punct" # GenericStripPunctChars is a list (enclosed in doublequotes) of # all the characters that should be replaced by whitespaces in # order not to be badly handled by the output module or misinterpreted # by shell. #GenericStripPunctChars "" # If the language you need to pass in $LANG is different # from the standard ISO language code, you can specify # which string to use instead. If you wish to use # other than ISO charset for the specified language, # you can add its name (as accepted by iconv) as a # third parameter in doublequotes. GenericLanguage "en" "en-US" "utf-8" #GenericLanguage "en" "en-GB" "utf-8" #GenericLanguage "de" "de" "utf-8" #GenericLanguage "fr" "fr" "utf-8" #GenericLanguage "tr" "tr" "utf-8" #GenericLanguage "te" "te" "utf-8" #GenericLanguage "it" "it" "utf-8" #GenericLanguage "nl" "nl-NL" "utf-8" #GenericLanguage "nl" "nl-BE" "utf-8" # AddVoice specifies which $VOICE string should be assigned to # each language and symbolic voice name. All the voices you want # to use must be specified here. This list will likely not be # up-to-date, please check your mary installation and add the voices # you want to use. AddVoice "en-US" "MALE1" "en_US-ryan-medium" AddVoice "en-US" "MALE2" "en_US-john-medium" AddVoice "en-US" "FEMALE1" "en_US-amy-medium" #AddVoice "nl-NL" "MALE1" "nl_NL-pim-medium" #AddVoice "nl-BE" "MALE1" "nl_BE-rdh-medium" #AddVoice "nl-BE" "FEMALE1" "nl_BE-nathalie-medium" # DefaultVoice specifies which $VOICE string should be used if no voice is # specified otherwise. DefaultVoice "en_US-ryan-medium" # These parameters set _rate_, _pitch_, and _volume_ conversion. This is # part of the core of the definition of this generic output # module for this concrete synthesizer, it's not intended to # be modified by common users. # The resulting rate (or pitch) has the form: # (speechd_rate * GenericRateMultiply) + GenericRateAdd # while speechd_rate is a value between -100 (lowest) and +100 (highest) # You have to define some meaningful conversion for each synthesizer # The SSIP defaults are actually controlled via DefaultRate, DefaultPitch, and # DefaultVolume in the speechd.conf file. # Specific values for Piper: GenericRateAdd 1 #GenericPitchAdd 1 #GenericVolumeAdd 1 # (These values are multiplied by 100, because DotConf currently # doesn't support floats. So you can write 0.85 as 85 and so on.) GenericRateMultiply -1 #GenericPitchMultiply 1 #GenericVolumeMultiply 1 # If the client program can't handle floats, you will have to # use these two options to force integers as the parameters # 1 means force integers, 0 means do nothing (write floats). GenericRateForceInteger 0 #GenericPitchForceInteger 0 #GenericVolumeForceInteger 0 # Copyright (C) 2026 Eric Lafortune # Copyright (C) 2018 Florian Steinhardt # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. See the GNU General Public License for more details (file # COPYING in the root directory). # # You should have received a copy of the GNU General Public License # along with this program. If not, see .