TTSCP is a client-server connection-oriented, both human- and machine-readable communication protocol, remotely similar to the File Transfer Protocol in spirit. TTSCP is offered as a standard interface for controlling generic speech processing applications, not only Text-To-Speech ones. It is primarily designed to rtrols the interpretation of those adjustments themselves.
The asterisk stands for a @-separated symbolic name of a linguistic description
level, such as phone, syll or word. The parameter
is an integer value primarily used for enabling (1) or disabling (0)
certain levels of description when the total quantities for a segment
are computed. It must however be understood that when some rules
like smooth are applied, the prosodic values are distributed
down to the target level of such a rule and cannot be distinguished
anymore. If higher values than 1 are set, that will multiply the
prosodic effect assigned to a level correspondingly.
The asterisk stands for a single letter, f, i or t,
that is, a prosodic quantity symbol. This option controls how
are the prosodic values for individual levels of description
combined. If it is off, they are summed up (taking the corresponding pros_neutral_*
as the baseline); if it is on, they get multiplied with each other
(again taking pros_neutral_* as the neutral value). See
prosody modelling for more information and examples.
The asterisk stands for a single letter, f, i or t,
that is, a prosodic quantity symbol. This option controls what
prosodic value is to be considered neutral for use in Epos. The current
configuration file use 100 and prosodic adjustments are essentially
percentages, but a higher value could be used for more fine grained
prosody control (provided the synthesis algorithms can take advantage
of it).
In Epos, most of the files ever opened are located in a single directory tree.
This tree usually starts at /usr/share/epos, but it can be changed at
configure time. For example, after issuing
cd src
./configure --prefix=/usr/local
and after recompiling and reinstalling Epos, the files will be searched under
/usr/local/lib/epos. See configure --help for more
details on configuring Epos. It is also possible to use the command
line option base_dir at Epos startup to change the
tree base without recompilation. Files of the same type -- and related
to the same language or voice, if applicable -- are located in the same subdirectory
by default. Thus, the path name actually used by Epos consists of the base directory
path, the subdirectory (or directory for short) and a relative file name.
This makes it possible to move either the whole configuration structure, or
a specific part of it, or a single file to another place.
The relative file name may contain slashes (directory name separators).
If they only occur in the middle of the name, the file name is still
relative to the directory it would normally
be located in. However, if the file name begins with a slash or with ./,
the file is treated as absolute or relative to the current working directory
of the Epos process, respectively. The second case is thus slightly unreliable,
but the first one allows to place any file in an arbitrary directory.
Likewise, if the directory name begins with a slash, it is not considered
to be relative to the base directory.
Changing these options in run time does not immediately cause re-reading the renamed files. All of the options in this section are static unless stated otherwise.
Only changeable on the command line. The value is an absolute directory name. This option can be used to change the location of the whole configuration structure, which can also be used for trying out Epos before installing it:
cd src
./epos --base_dir ../cfg
The value is a directory name. Sets the path prepended to any file name referenced in the TTSCP stream command. This subtree cannot be escaped with cute parent-of-root paths, but you can use symlinks to arbitrary accessible parts of the kernel name space, again, without giving access to the rest of the file system. Write access to this subtree to any user except Epos effectively gives him the privilege to use the Epos file access rights anywhere in the system through creating a symlink to the absolute root directory. This option is not static.
The value is a directory name. Sets the path to language independent configuration files. This option is only changeable on the command line.
The value is a file name. This option can be used to change the file name
of the fixed.ini file, which usually contains operating system
independent, relatively fixed default global configuration. This option
is only changeable on the command line.
The value is a file name. This option can be used to change the file name
of the epos.ini file.
The value is a file name. This option can be used to change the file name
of the local sound card device. In many unices,
setting this to /dev/dsp is the recommended way to actually hear
Epos speak. Other unices don't have /dev/dsp, however. If the
sound card has no file name at all, set this to the null device
file name (that may be handled specially by the respective port of
Epos).
The file name of the mbrola executable file, either absolute or relative to the location of the voice configuration (which allows using different binaries with different voices, although this option is not voice dependent). Because of a limitation of the interface the binary is spawned by Epos every time it is needed and so this option is not static.
The value is a file name. This option can be used to change the file name of the implicit input text used by the monolithic version of Epos. The value is language dependent.
The value is a file name. This option can be used to change the file name
whereto various debugging output should be written. If not set at all,
stdout will be used.
The value is a file name. This option can be used to change the file name whereto output unrelated to the usual output should be printed. It includes especially error messages.
The language dependent value is a directory name. The directory shall contain the rules file.
The language dependent value is a directory name. The directory shall contain any dictionaries used by the rules.
The language dependent value is a directory name. The directory shall contain the implicit input text file for the monolithic version of Epos.
The value is a global directory name, not a language dependent one. It serves as the base directory for looking up the newly constructed languages.
The value is a global directory name, not a language dependent one. It serves as the base directory for looking up the newly constructed voices. It is however only used for configuration files, not for inventories. A language dependent subdirectory name is appended to it.
The value is a global directory name, not a language dependent one.
It serves as the base directory for looking up inventories and
related data. A voice dependent subdirectory name (the location
option) is appended to it.
The value is global directory name. It serves as the base directory for looking up mappings between individual character sets and the Unicode and also between SAMPA notation and Unicode.
The value is a directory name. In this directory, TTSCP help files
for individual TTSCP commands and other help topics are located.
The contents of these files is sent to the TTSCP control connection
in reply to a corresponding help command. This option is not
static.
The value is a global directory name. Any waveform files created by Epos without explicit directory specification will be created in this directory. Applies only to the monolithic Epos.
All options in this subsection are static. They also usually have no effect if changed during run time; change them in the configuration files instead and request Epos reinitialization.
The value is a file name. This option can be used to set the file where various information about the Epos process is recorded. At the moment that is of little practical use except for debugging.
Log all TTSCP error messages with syslogd, if the syslog facility
is available. Due to the internal design of Epos, some of these
messages are never actually sent over TTSCP to anyone - for example,
a fatal misconfiguration condition detected before the first client
connects; but they're logged anyway.
Log all TTSCP completion messages with syslogd, if the syslog facility is
available, including 1xx and 2xx class messages.
Log all security relevant TTSCP completion messages with the
facility authpriv instead of daemon. This includes
messages concerning denial of access or incorrectly specified
resource or password. In that case, the err message level
is used instead of warn. Notice that network errors
are not affected by this option.
When set, all TTSCP messages are preceded with their numeric codes
as in TTSCP when logging using syslogd.
The value is a file name. This option can be used to force the server
to store its internal password to a file. This password can then
be used for TTSCP authentication in order to issue restricted commands
such as down. If the file can not be created, no error is reported.
The value is a string. The string may be used instead of the server password. Use of this option usually makes TTSCP insecure and is discouraged.
The file named by this parameter provides access control in TTSCP to individual options. Its syntax is described above. This option can only be changed from the command line.
The TCP port number where the daemon should be listening for incoming TTSCP connections. The daemon will check if no other service is already running on that port and refuses to run if the port is already occupied.
When this option is set, the daemon accepts no new connections on network interfaces except the localhost one. This way, only clients running on the same machine can connect to the server. If this option is not set, the server accepts new connections on all available interfaces.
Various kinds of debugging information can be printed by Epos to standard
output.
The amount of it is configurable. Most debugging information is printed throughout
the code using the D_PRINT macro; other sources of debugging
information are not discussed in this subsection. The D_PRINT
macro takes three parameters: the severity level, the
format string and additional parameters as implied by the format
string. The semantics is fully analogous to the printf family
of standard library functions with the additional condition that
only information whose severity level is sufficiently high under
current settings is printed. There is also a variant of the macro,
DO_PRINT, which prints its message unconditionally. This
is useful for temporary promotion of individual debugging messages
without losing their standard severity levels. There is one more
variant, DBG, which can be used for debugging printouts
which are not effectively handled by the printf-style
function like dumping of arrays.
Note also that #define DEBUGGING
must be enabled in interf.h, else the debugging macros are ignored
altogether.
The severity level may have one of these values:
| level | debugging messages | easy invocation | typical examples |
| 3 | rare | -D | major events, warnings |
| 2 | normal | -DD | informative messages |
| 1 | verbose | -DDD | detailed debugging printouts |
| 0 | detailed | -DDDD | miscellaneous chaos |
Both options in this subsection are static.
This option must be on to provide any debugging information (except for
daemon activity logging controlled by
the daemon_log option and syslog logging.
The minimum severity level of debugging messages which should be printed.