
 # Global configuration for Speech Dispatcher
 # ==========================================
 
 # -----SYSTEM OPTIONS-----
 
 # CommunicationMethod specifies the method to be used by Speech Dispatcher to communicate with
 # its clients. Two basic methods are "unix_socket" and "inet_socket".
 #
 # unix_socket -- communication over Unix sockets represented by a file in the
 # filesystem (see SocketPath below). This method works only locally, but is
 # preferred for standard session setup, where every user runs his own instance of Speech
 # Dispatcher to get voice feedback on his own computer.
 #
 # inet_socket -- alternatively, you can start Speech Dispatcher on
 # a TCP port and connect to it via hostname/port. This allows for a more
 # flexible setup, where you can use Speech Dispatcher over network
 # from different machines. See also the Port and LocalhostAccessOnly
 # configuration variables.
 #
 # CommunicationMethod "unix_socket"
 
 # SocketPath is either "default" or a full path to the filesystem
 # where the driving Unix socket file should be created in case the
 # CommunicationMethod is set to "unix_socket". The default is
 # $XDG_RUNTIME_DIR/speech-dispatcher/speechd.sock where $XDG_RUNTIME_DIR
 # is the directory specified by the XDG Base Directory Specification.
 # Do not change this unless you have a reason and know what you are doing.
 
 # SocketPath "default"
 
 # The Port on which Speech Dispatcher should be available to clients if the "inet_socket"
 # communication method is used.
 
 # Port 6560
 
 # By default, if "inet_socket" communication method is used, the specified port is opened only
 # for connections coming from localhost. If LocalhostAccessOnly is set to 0 it disables this
 # access control. It means that the port will be accessible from all computers on the
 # network. If you turn off this option, please make sure you set up some system rules on what
 # computers are and are not allowed to access the Speech Dispatcher port.
 
 # LocalhostAccessOnly 1
 
 # By default, Speech Dispatcher is configured to shut itself down after a period of
 # time if no clients are connected. The timeout value is in seconds, and is started when
 # the last client disconnects. A value of 0 disables the timeout.
 
 # Timeout 5
 
 # -----LOGGING CONFIGURATION-----
 
 # The LogLevel is a number between 0 and 5 specifying the
 # verbosity of information to the logfile  or screen
 # 0 means nothing, 5 means everything (not recommended).
 
 LogLevel  3
 
 # The LogDir specifies where the Speech Dispatcher logs reside
 # Specify "stdout" for standard console output
 # or a custom log directory path. 'default' means
 # the logs are written to the default destination (e.g. a preconfigured
 # system directory or the home directory if .speech-dispatcher is present)
 # DO NOT COMMENT OUT THIS OPTION, leave as "default" for standard logging
 
 LogDir  "default"
 #LogDir  "/var/log/speech-dispatcher/"
 #LogDir  "stdout"
 
 # The CustomLogFile allows logging all messages # regardless of
 # priority, to the given destination.
 #CustomLogFile "protocol" "/var/log/speech-dispatcher/speech-dispatcher-protocol.log"
 
 # ----- VOICE PARAMETERS -----
 
 # The DefaultRate controls how fast the synthesizer is going to speak.
 # The value must be between -100 (slowest) and +100 (fastest), default
 # is 0.
 
 DefaultRate   0

 # The DefaultPitch controls the pitch of the synthesized voice.  The
 # value must be between -100 (lowest) and +100 (highest), default is
 # 0.
 
 DefaultPitch   0

 # The DefaultPitchRange controls the pitch range of the synthesized voice.  The
 # value must be between -100 (lowest) and +100 (highest), default is
 # 0.
 
 DefaultPitchRange   0

 # The DefaultVolume controls the default volume of the voice.  It is
 # a value between -100 (softly) and +100 (loudly).  Currently, +100
 # maps to the default volume of the synthesizer.
 
 DefaultVolume 100
 
 # The DefaultVoiceType controls which voice type should be used by default.
 # Voice types are symbolic names which map to particular voices provided by
 # the synthesizer according to the output module configuration.
 # Please see the synthesizer-specific configuration
 # in etc/speech-dispatcher/modules/ to see which voices are assigned to
 # different symbolic names.  The following symbolic names are
 # currently supported: MALE1, MALE2, MALE3, FEMALE1, FEMALE2, FEMALE3,
 # CHILD_MALE, CHILD_FEMALE
 
 # DefaultVoiceType  "MALE1"
 
 # The Default language with which to speak
 # Note that the spd-say client in particular always sets the language to its
 # current locale language, so this particular client will never pick this
 # configuration.
 
 DefaultLanguage   en-US

 
 # ----- MESSAGE DISPATCHING CONTROL -----
 
 # The DefaultClientName specifies the name of a client who didn't
 # introduce himself at the beginning of an SSIP session.
 
 # DefaultClientName  "unknown:unknown:unknown"
 
 # The Default Priority. Use with caution, normally this shouldn't be
 # changed globally (at this place)
 
 # DefaultPriority  "text"
 
 # The DefaultPauseContext specifies by how many index marks a speech
 # cursor should return when resuming after a pause. This is roughly
 # equivalent to the number of sentences before the place of the
 # execution of pause that will be repeated.
 
 # DefaultPauseContext 0
 
 # -----SPELLING/PUNCTUATION/CAPITAL LETTERS  CONFIGURATION-----
 
 # The DefaultPunctuationMode sets the way dots, comas, exclamation
 # marks, question marks etc. are interpreted.  none: they are ignored
 # some: some of them are sent to synthesis (see
 # DefaultPunctuationSome) all: all punctuation marks are sent to
 # synthesis
 
 # DefaultPunctuationMode "none"
 
 # Level of punctuation for which symbol pre-processing should be performed by
 # the server rather than by the module.
 #
 # This is completely independent of what punctuation level is actually asked, it
 # controls to which extent the server should do the punctuation work to insert
 # the appropriate words or if the output module is responsible for doing it.
 #
 # Setting this to "no" disables pre-processing completely and leaves all
 # punctuation preprocessing to the output module. Setting this to
 # "none" enables only the server rules which are always enabled whatever
 # the punctuation level. Setting this to "all" enables all server rules for
 # punctuation. Setting this to "char" enables all server rules, including
 # rules for spelling spaces. Of course, which rules actually take effect depends
 # on the requested punctuation level.
 
 SymbolsPreproc "char"
 
 # Which preprocessing files should be loaded, and in which order
 #
 # This is done first for the most specific localization, then lesser specific
 # localization, etc.  I.e. for the fr_FR language for instance, fr-fr files are
 # loaded first, then fr files, then en files.
 
 SymbolsPreprocFile "gender-neutral.dic"
 SymbolsPreprocFile "font-variants.dic"
 SymbolsPreprocFile "symbols.dic"
 SymbolsPreprocFile "emojis.dic"
 SymbolsPreprocFile "orca.dic"
 SymbolsPreprocFile "orca-chars.dic"
 
 # The DefaultCapLetRecognition: if set to "spell", capital letters
 # should be spelled (e.g. "capital b"), if set to "icon",
 # capital letters are indicated by inserting a special sound
 # before them but they should be read normally, it set to "none"
 # capital letters are not recognized (by default)
 
 # DefaultCapLetRecognition  "none"
 
 # The DefaultSpelling: if set to On, all messages will be spelt
 # unless set otherwise (this is usually not something you want to do.)
 
 # DefaultSpelling  Off
 
 # ----- AUDIO CONFIGURATION -----------
 
 # -- AUDIO OUTPUT --
 
 # Chooses between the possible sound output systems:
 #       "pulse" - PulseAudio
 #       "alsa"  - Advanced Linux Sound System
 #       "oss"   - Open Sound System
 #       "pipewire" -   the new low-latency sound server, for near realtime speech performance
 #       "nas"   - Network Audio System
 #       "libao" - A cross platform audio library
 #
 # Pipe Wire is the newest audio output method in this configuration, but not the default one.
 # However, if it works in your deployment, it is recommended because of the
 # latency related advantages it has over pulseaudio and others, however enabling
 # it should be done with precaution, because it isn't tested to work in all
 # configurations supported by speech dispatcher.
 # For now, enabling this is at the discression of the users and packagers of
 # speech dispatcher. However, because we want to eventually make this the default
 # for everyone, trying it in your deployments, if non-critical, is recommended
 #
 # OSS, Pulse Audio and ALSA are only provided for compatibility with
 # architectures that do not include Pipe Wire.
 #
 # NAS provides network transparency, but is not very well tested.
 #
 # libao is a cross platform library with plugins for different sound systems
 # and provides alternative output for Pulse Audio and ALSA as well as for other
 # backends.
 
 AudioOutputMethod   pulse,alsa

 # -- Pulse Audio parameters --
 
 # Pulse audio device name or "default" for the default pulse device
 
 #AudioPulseDevice "default"
 
 # Latency requested from pulseaudio, in ms. Smaller values make speech
 # interruption snappier, but also uses more CPU time thus battery.
 # 10ms latency is considered in HCI (Human-computer Interaction) as real-time.
 
 #AudioPulseMinLength 10
 
 # -- ALSA parameters --
 
 # Audio device for ALSA output
 
 #AudioALSADevice "default"
 
 # -- OSS parameters --
 
 # Audio device for OSS output
 
 #AudioOSSDevice "/dev/dsp"
 
 # -- NAS parameters --
 
 # Route to the Network Audio System server when NAS
 # is chosen for the audio output. Note that NAS
 # server doesn't need to run on your machine,
 # you can use it also over network (for instance
 # when working on remote machines).
 
 #AudioNASServer "tcp/localhost:5450"
 
 
 
 # -----OUTPUT MODULES CONFIGURATION-----
 
 # Each AddModule line loads an output module.
 #  Syntax: AddModule "name" "binary" "configuration" "logfile"
 #  - name is the name under which you can access this module
 #  - binary is the path to the binary executable of this module,
 #    either relative (to libexec/speech-dispatcher-modules/
 #    or ~/.local/libexec/speech-dispatcher-modules) or absolute
 #  - configuration is the path to the config file of this module,
 #    either relative (to etc/speech-dispatcher/modules/
 #    or ~/.config/speech-dispatcher) or absolute
 
 #AddModule "espeak"                   "sd_espeak"    "espeak.conf"
 #AddModule "espeak-ng"                "sd_espeak-ng" "espeak-ng.conf"
 #AddModule "festival"                 "sd_festival"  "festival.conf"
 #AddModule "flite"                    "sd_flite"     "flite.conf"
 #AddModule "ivona"                    "sd_ivona"     "ivona.conf"
 #AddModule "pico"                     "sd_pico"      "pico.conf"
 #AddModule "espeak-ng-mbrola"         "sd_espeak-ng-mbrola" "espeak-ng-mbrola.conf"
 #AddModule "espeak-ng-mbrola-generic" "sd_generic"   "espeak-ng-mbrola-generic.conf"
 #AddModule "espeak-mbrola-generic"    "sd_generic"   "espeak-mbrola-generic.conf"
 #AddModule "swift-generic"            "sd_generic"   "swift-generic.conf"
 #AddModule "epos-generic"             "sd_generic"   "epos-generic.conf"
 #AddModule "dtk-generic"              "sd_generic"   "dtk-generic.conf"
 #AddModule "ibmtts"                   "sd_ibmtts"    "ibmtts.conf"
 #AddModule "cicero"                   "sd_cicero"    "cicero.conf"
 #AddModule "kali"                     "sd_kali"      "kali.conf"
 #AddModule "mary-generic"             "sd_generic"   "mary-generic.conf"
 #AddModule "baratinoo"                "sd_baratinoo" "baratinoo.conf"
 #AddModule "rhvoice"                  "sd_rhvoice"   "rhvoice.conf"
 #AddModule "voxin"                    "sd_voxin"     "voxin.conf"
 # AddModule "piper-tts-generic" "sd_generic" "piper-tts-generic.conf"
 
 # The output module testing doesn't actually connect to anything. It
 # outputs the requested commands to standard output and reads
 # responses from stdandard input. This way, Speech Dispatcher's
 # communication with output modules can be tested easily.
 
 # AddModule "testing"
 
 # The DefaultModule selects which output module is the default.  You
 # must use one of the names of the modules loaded with AddModule.
 
 DefaultModule   "espeak-ng"

 # The LanguageDefaultModule selects which output modules are preferred
 # for specified languages.
 
 #LanguageDefaultModule "en"  "espeak"
 #LanguageDefaultModule "cs"  "festival"
 #LanguageDefaultModule "es"  "festival"
 
 # -----CLIENT SPECIFIC CONFIGURATION-----
 
 # Here you can include the files with client-specific configuration
 # for different types of clients. They must contain one or more sections with
 # this structure:
 #     BeginClient "emacs:*"
 #          DefaultPunctuationMode "some"
 #          ...and/or some other settings
 #     EndClient
 # The parameter of BeginClient tells Speech Dispatcher which clients
 # it should apply the settings to (it does glob-style matching, you can use
 # * to match any number of characters and ? to match one character)
 
 # There are some sample client settings
 
 Include "clients/*.conf"
 
 # The DisableAutoSpawn option will disable the autospawn mechanism.
 # Thus the server will not start automatically on requests from the clients
 # DisableAutoSpawn
 
 
 # Copyright (C) 2001-2009 Brailcom, o.p.s
 # Copyright (C) 2009 Rui Batista <ruiandrebatista@gmail.com>
 # Copyright (C) 2010 Andrei Kholodnyi <Andrei.Kholodnyi@gmail.com>
 # Copyright (C) 2010 William Hubbs <w.d.hubbs@gmail.com>
 # Copyright (C) 2010 Trevor Saunders <trev.saunders@gmail.com>
 # Copyright (C) 2012 William Jon McCann <jmccann@redhat.com>
 # Copyright (C) 2014 Rob Whyte <fudge@thefudge.net>
 # Copyright (C) 2014-2016 Luke Yelavich <themuso@ubuntu.com>
 # Copyright (C) 2014 Hussain Jasim <hussainmkj@gmail.com>
 # Copyright (C) 2017 Colomban Wendling <cwendling@hypra.fr>
 # Copyright (C) 2018 Raphaël POITEVIN <rpoitevin@hypra.fr>
 # Copyright (C) 2018 Florian Steinhardt <no.known.email@example.com>
 # Copyright (C) 2018-2024 Samuel Thibault <samuel.thibault@ens-lyon.org>
 #
 # 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 <https://www.gnu.org/licenses/>.
 
