• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

config/H03-May-2022-4,5072,305

doc/H03-May-2022-20,91918,155

include/H03-May-2022-1,110769

locale/H03-May-2022-353,397351,964

m4/H24-Nov-2020-11,53410,544

po/H07-May-2022-8,3236,916

src/H03-May-2022-53,13840,241

.tarball-versionH A D24-Nov-20207 21

.versionH A D24-Nov-20207 21

ANNOUNCEH A D08-Sep-20203.3 KiB8562

AUTHORSH A D08-Sep-20202.5 KiB7947

BUGSH A D08-Sep-2020887 2315

COPYING.GPL-2H A D08-Sep-202017.7 KiB340281

COPYING.GPL-3H A D08-Sep-202034.3 KiB675553

COPYING.LGPLH A D08-Sep-202025.9 KiB503418

FAQH A D08-Sep-20202.7 KiB7353

INSTALLH A D08-Sep-202010.3 KiB293216

Makefile.amH A D03-May-20221.8 KiB5825

Makefile.inH A D03-May-202233.5 KiB1,044920

NEWSH A D24-Nov-202014.6 KiB381337

README.mdH A D08-Sep-20205.3 KiB147105

README.overview.mdH A D20-Sep-20206.1 KiB160122

README.packagersH A D08-Sep-20201.2 KiB2820

README.style.mdH A D08-Sep-20202.4 KiB6948

README.translatorsH A D08-Sep-20203.9 KiB11173

TODOH A D08-Sep-20209.1 KiB230183

aclocal.m4H A D24-Nov-202060.2 KiB1,6661,507

build.shH A D08-Sep-20201.2 KiB4014

compileH A D24-Nov-20207.2 KiB349259

config.guessH A D24-Nov-202043.2 KiB1,4811,288

config.h.inH A D24-Nov-20206.7 KiB251171

config.rpathH A D26-Apr-202018.1 KiB685588

config.subH A D24-Nov-202035.3 KiB1,8021,661

configureH A D24-Nov-2020769.6 KiB25,26521,725

configure.acH A D24-Nov-202018.6 KiB529480

depcompH A D24-Nov-202023 KiB792502

git-version-genH A D09-Nov-20186.4 KiB17350

import-nvda.shH A D08-Sep-2020935 307

install-shH A D24-Nov-202015.3 KiB530346

ltmain.shH A D24-Nov-2020319.6 KiB11,2528,044

missingH A D24-Nov-20206.7 KiB216143

py-compileH A D24-Nov-20205.1 KiB190141

speech-dispatcher.pc.inH A D24-Nov-20201 KiB2926

speech-dispatcherd.service.inH A D08-Sep-2020990 2723

split-version.shH A D08-Sep-20201.1 KiB4221

README.md

1speech-dispatcher
2=================
3
4*Common interface to speech synthesis*
5
6Introduction
7------------
8
9This is the Speech Dispatcher project (speech-dispatcher). It is a part of the
10[Free(b)soft project](https://devel.freebsoft.org/), which is intended to allow
11blind and visually impaired people to work with computer and Internet based on
12free software.
13
14Speech Dispatcher project provides a high-level *device independent* layer
15for access to speech synthesis through a simple, stable and well documented
16interface.
17
18Documentation
19-------------
20
21Complete documentation may be found in doc directory:
22the speech dispatcher documentation: doc/speech-dispatcher.html,
23the spd-say documentation: doc/spd-say.html,
24and the SSIP protocol documentation: doc/ssip.html.
25
26Read [doc/README](doc/README) for more information.
27
28This documentation is also available online:
29the [speech dispatcher documentation](http://htmlpreview.github.com/?https://github.com/brailcom/speechd/blob/master/doc/speech-dispatcher.html),
30the [spd-say documentation](http://htmlpreview.github.com/?https://github.com/brailcom/speechd/blob/master/doc/spd-say.html),
31and the [SSIP protocol documentation](http://htmlpreview.github.com/?https://github.com/brailcom/speechd/blob/master/doc/ssip.html).
32
33The key features and the supported TTS engines, output subsystems, client
34interfaces and client applications known to work with Speech Dispatcher are
35listed in [overview of speech-dispatcher](README.overview.md) as well as voices
36settings and where to look at in case of a sound or speech issue.
37
38Mailing-lists
39-------------
40
41There is a public mailing-list
42[speechd-discuss](https://lists.nongnu.org/mailman/listinfo/speechd-discuss)
43for this project.
44
45This list is for Speech Dispatcher developers, as well as for users. If you
46want to contribute the development, propose a new feature, get help or just be
47informed about the latest news, don't hesitate to subscribe. The communication
48on this list is held in English.
49
50Development
51-----------
52
53Various versions of speech-dispatcher can be downloaded from the [project
54archive](https://github.com/brailcom/speechd/releases).
55
56Bug reports, issues, and patches can be submitted to [the github
57tracker](https://github.com/brailcom/speechd/issues).
58
59The source code is freely available. It is managed using Git. You can use
60the [GitHub web interface](https://github.com/brailcom/speechd) or clone the
61repository from:
62
63    https://github.com/brailcom/speechd.git
64
65A Java library is currently developed separately. You can use the [GitHub web
66interface](https://github.com/brailcom/speechd-java) or clone the repository
67from:
68
69    https://github.com/brailcom/speechd-java.git
70
71To build and install speech-dispatcher and all of it's components, read the
72file [INSTALL](INSTALL).
73
74
75People
76------
77
78Speech Dispatcher is being developed in closed cooperation between the Brailcom
79company and external developers, both are equally important parts of the
80development team. The development team also accepts and processes contributions
81from other developers, for which we are always very thankful! See more details
82about our development model in Cooperation. Bellow find a list of current inner
83development team members and people who have contributed to Speech Dispatcher in
84the past:
85
86Development team:
87
88  * Samuel Thibault
89  * Jan Buchal
90  * Tomas Cerha
91  * Hynek Hanke
92  * Milan Zamazal
93  * Luke Yelavich
94  * C.M. Brannon
95  * William Hubbs
96  * Andrei Kholodnyi
97
98Contributors: Trevor Saunders, Lukas Loehrer,Gary Cramblitt, Olivier Bert, Jacob
99Schmude, Steve Holmes, Gilles Casse, Rui Batista, Marco Skambraks ...and many
100others.
101
102License
103-------
104
105Copyright (C) 2001-2009 Brailcom, o.p.s
106Copyright (C) 2018-2020 Samuel Thibault <samuel.thibault@ens-lyon.org>
107Copyright (C) 2018 Didier Spaier <didier@slint.fr>
108
109This program is free software; you can redistribute it and/or modify it under
110the terms of the GNU General Public License as published by the Free Software
111Foundation; either version 2 of the License, or (at your option) any later
112version.
113
114This program is distributed in the hope that it will be useful, but WITHOUT ANY
115WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
116PARTICULAR PURPOSE.  See the GNU General Public License for more details (file
117COPYING in the root directory).
118
119You should have received a copy of the GNU General Public License
120along with this program.  If not, see <https://www.gnu.org/licenses/>.
121
122
123Note:
124
125- The speech-dispatcher server (src/server/ + src/common/) contains
126GPLv2-or-later and LGPLv2.1-or-later source code, but is linked against
127libdotconf, which is LGPLv2.1-only at the time of writing.
128
129- The speech-dispatcher modules (src/modules/ + src/common/ + src/audio/)
130contain GPLv2-or-later, LGPLv2.1-or-later, and LGPLv2-or-later source code,
131but are also linked against libdotconf, which is LGPLv2.1-only at the time of
132writing.
133
134- The spd-conf tool (src/api/python/speechd_config/), spd-say tool
135(src/clients/say), and spdsend tool (src/clients/spdsend/) are GPLv2-or-later.
136
137- The C API library (src/api/c/) is LGPLv2.1-or-later
138
139- The Common Lisp API library (src/api/cl/) is LGPLv2.1-or-later.
140
141- The Guile API library (src/api/guile/) contains GPLv2-or-later and
142LGPLv2.1-or-later source code.
143
144- The Python API library (src/api/python/speechd/) is LGPLv2.1-or-later.
145
146- All tests in src/tests/ are GPLv2-or-later.
147

README.overview.md

1Overview of Speech Dispatcher
2=============================
3
4Key features:
5-------------
6
7  * Common interface to different Text To Speech (TTS) engines
8  * Handling concurrent synthesis requests — requests may come asynchronously
9  from multiple sources within an application and/or from different applications
10  * Subsequent serialization, resolution of conflicts and priorities of incoming
11  requests
12  * Context switching — state is maintained for each client connection
13  independently, event for connections from within one application
14  * High-level client interfaces for popular programming languages
15  * Common sound output handling — audio playback is handled by Speech
16  Dispatcher rather than the TTS engine, since most engines have limited sound
17  output capabilities
18
19What is a very high level GUI library to graphics, Speech Dispatcher is to
20speech synthesis. The application neither needs to talk to the devices directly
21nor to handle concurrent access, sound output and other tricky aspects of the
22speech subsystem.
23
24Supported TTS engines:
25----------------------
26
27  * Festival
28  * Flite
29  * Espeak
30  * Cicero
31  * IBM TTS
32  * Espeak+MBROLA (through a generic driver)
33  * Epos (through a generic driver)
34  * DecTalk software (through a generic driver)
35  * Cepstral Swift (through a generic driver)
36  * Ivona
37  * Pico (possibly through a generic driver)
38  * Espeak NG
39  * Kali TTS
40  * Baratinoo (Voxygen)
41  * Mary-TTS
42
43Supported sound output subsystems:
44----------------------------------
45
46  * OSS
47  * ALSA
48  * PulseAudio
49  * NAS
50  * Libao
51
52The architecture is based on a client/server model. The clients are all the
53applications in the system that want to produce speech (typically assisting
54technologies). The basic means of client communication with Speech Dispatcher
55is through a Unix socket or Inet TCP connection using the Speech Synthesis
56Interface Protocol (See the SSIP documentation for more information). High-level
57client libraries for many popular programming languages implement this protocol
58to make its usage as simple as possible.
59
60Supported client interfaces:
61----------------------------
62
63  * C/C++ API
64  * Python 3 API
65  * Java API
66  * Emacs Lisp API
67  * Common Lisp API
68  * Guile API
69  * Simple command line client
70
71A golang API is also available on https://github.com/ilyapashuk/go-speechd
72
73Existing assistive technologies known to work with Speech Dispatcher:
74
75  * speechd-el (see https://devel.freebsoft.org/speechd-el)
76  * Orca (see http://live.gnome.org/Orca/SpeechDispatcher)
77  * Yasr (see http://yasr.sourceforge.net/)
78  * BrlTTY (see http://brltty.com)
79  * Chromevox (extension of the Chrome and Chromium browsers)
80
81Voices settings
82---------------
83The available voices depend on the TTS engines and voices installed.
84
85The voice to use can be set in speech-dispatcher itself, at the system and user
86level, and from the client application, like Orca, speechd-el or Chromevox.
87The settings in each application and in speech dispatcher are independent of
88each others.
89
90The settings in speech-dispatcher at the user level override those
91made at the system level.
92
93
94In speech-dispatcher, the system settings are recorded in the file
95/etc/speech-dispatcher/speechd.conf among which a default synthesizer, a voice
96type or symbolic name (e.g. MALE1) and a default language.
97
98In turn, each installed voice is associated to a voice type and a language, thus
99with this default setting a voice available with these characteristics (voice
100type, language, synthesizer) will be chosen if available.
101
102
103The default values of theses voices parameters can also be set at the system
104level customized at the user level: rate, pitch, pitch range and volume.
105
106It is also possible to make the synthesizer depend on the language used.
107
108
109The user settings are written in the file ~/.config/speech-dispatcher/spd.conf
110using the application spd-conf, which also allows to modify the system settings.
111
112spd-conf allows to set the synthesizer, the language and other voice parameters
113but not select directly a specific voice.
114
115
116Instead a specific voice can be chosen from the client application, selecting it
117by name in a proposed list that depends on the synthesizer chosen.
118
119The voice name can be a first name like 'bob' or 'viginie", a locale code in the
120form language_COUNTRY or a language code followed by a number, for instance.
121
122The language code associated to each name is listed alongside it between
123parenthesis, like (fr-FR) for French from France.
124
125Where to look at in case of a sound or speech issue
126---------------------------------------------------
127
128Speech dispatcher links together all the components that contribute to speak a
129text, so if you don't get speech at all or something is not spoken, or not the
130way you expect, this can come from speech dispatcher itself or from any of those
131components (or lack of) and their settings:
132- the audio subsystem in use, e.g. alsa or pulseaudio,
133- the synthesizer in use, e.g espeak-ng or pico,
134- the client application, like Orca or speechd-el or an underlying software like
135  at-spi,
136- the application that provides the text to be spoken, like Firefox.
137
138How to investigate a specific issue goes far beyond this document, but bear in
139mind that all listed components can be involved, as the audio equipment in use
140and the way it is linked to the computer.
141
142
143Copyright (C) 2001-2009 Brailcom, o.p.s
144Copyright (C) 2018-2020 Samuel Thibault <samuel.thibault@ens-lyon.org>
145Copyright (C) 2018 Didier Spaier <didier@slint.fr>
146Copyright (C) 2018 Alex ARNAUD <alexarnaud@hypra.fr>
147
148This program is free software; you can redistribute it and/or modify it under
149the terms of the GNU General Public License as published by the Free Software
150Foundation; either version 2 of the License, or (at your option) any later
151version.
152
153This program is distributed in the hope that it will be useful, but WITHOUT ANY
154WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
155PARTICULAR PURPOSE.  See the GNU General Public License for more details (file
156COPYING in the root directory).
157
158You should have received a copy of the GNU General Public License
159along with this program.  If not, see <https://www.gnu.org/licenses/>.
160

README.packagers

1Notes for packagers of Speech Dispatcher.
2
3The python bindings distributed in this release in directory
4src/api/python/speechd/ have been ported to Python 3 and are backward
5incompatible with Python 2. For applications relying on the Python
6bindings, such as the Orca screen reader, to be compatible with this
7release, a version must be used which runs on Python 3.
8
9Please make sure to setup the package dependencies correctly
10to avoid possible problems.
11
12
13Copyright (C) 2006 Gary Cramblitt <garycramblitt@comcast.net>
14Copyright (C) 2006-2012 Brailcom, o.p.s
15
16This program is free software; you can redistribute it and/or modify it under
17the terms of the GNU General Public License as published by the Free Software
18Foundation; either version 2 of the License, or (at your option) any later
19version.
20
21This program is distributed in the hope that it will be useful, but WITHOUT ANY
22WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
23PARTICULAR PURPOSE.  See the GNU General Public License for more details (file
24COPYING in the root directory).
25
26You should have received a copy of the GNU General Public License
27along with this program.  If not, see <https://www.gnu.org/licenses/>.
28

README.style.md

1Speech Dispatcher Coding Guidelines
2===================================
3
4This document describes the coding style used in this repository. All
5patches or changes must follow this style. If you have any questions,
6please contact the speech dispatcher mailing list.
7
8Coding Style Guidelines for C Code
9----------------------------------
10
11The indenting style we use is the same as the linux kernel, with the following exceptions and extensions:
12
13  * Goto statements should not be used unless in very special cases.
14
15  * Function names should be
16    * lowercase words separated by underscores.
17    * functions which are only implementation details of the given source file
18  should be declared as static
19
20  * Variable names
21    * global variables should follow the same conventions as functions (e.g.
22    `output_modules`)
23    * the verbosity of the name of local variables should be appropriate to its
24    scope
25
26  * Macro names
27    * Macro names should be in uppercase, words separated by underscores
28    (e.g. `SPEECHD_OPTION_CB_STR`)
29
30  * Type names
31    * New types are defined in mixed uppercase (e.g. MessageType)
32
33If you use
34GNU indent 2.2.10 or later, you should run it as follows:
35
36    indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1 -il0
37
38For versions of indent earlier than 2.2.10, drop the -il0 from the parameters.
39
40In emacs environment the following can be used (untested):
41
42    (defun speechd-c-mode ()
43      "C mode with adjusted defaults for use with Speech Dispatcher."
44      (interactive)
45      (c-mode)
46      (c-set-style "K&R"))
47
48Coding Style Guideline for other code
49-------------------------------------
50
51Please respect the coding style of the given component.
52
53
54Copyright (C) 2001-2018 Brailcom, o.p.s
55Copyright (C) 2011 William Hubbs <w.d.hubbs@gmail.com>
56
57This program is free software; you can redistribute it and/or modify it under
58the terms of the GNU General Public License as published by the Free Software
59Foundation; either version 2 of the License, or (at your option) any later
60version.
61
62This program is distributed in the hope that it will be useful, but WITHOUT ANY
63WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
64PARTICULAR PURPOSE.  See the GNU General Public License for more details (file
65COPYING in the root directory).
66
67You should have received a copy of the GNU General Public License
68along with this program.  If not, see <https://www.gnu.org/licenses/>.
69

README.translators

1This file contains instructions for translators to translate Speech
2Dispatcher interface to their languages.  Speech Dispatcher uses
3gettext[1] for its internationalization support.
4
5If you're not familiar with gettext po files we recommend that you
6read the Gettext manual[2] before continuing.
7
8== Requirements ==
9
10To translate Speech Dispatcher you need a git clone of speech
11dispatcher.  If you are not reading this file from a git checkout
12please check the `INSTALL` file for detailed instructions.  You will
13also need gettext package installed, as recommended on
14the `INSTALL` file.
15
16== Adding a new Language ==
17
18If your locale is not already supported by Speech Dispatcher you must
19create a new <locale>.po file and translate all contained
20messages. The following steps explain the process.
21
221. ON your Speech Dispatcher source directory change to the po directory.
23
242. Create a pot template for Speech Dispatcher running:
25
26$ make -C po speech-dispatcher.pot-update
27
28This will create a file called Speech Dispatcher.pot with all
29translatable Speech Dispatcher messages.
30
313. Create the po template for the current system locale from Speech
32Dispatcher.pot running
33
34$ msginit
35
36And follow the prompts.  If you want to create a translation for a
37different locale please run
38
39$ msginit -l <locale>
40
41where <locale> is the locale's name.  This will create a <locale>.po
42file.  msginit will fill in the po template header for you from your
43environment but we recommend to double-check that information.
44
45You may also copy the Speech Dispatcher.pot file to <locale>.po and
46fill in the header information yourself.
47
48At this stage you can remove the Speech-Dispatcher.pot file since it
49is not needed anymore.
50
514. Open the file `LINGUAS` and add your locale name there.  Please put
52one locale on each line and keep the file alphabetically sorted.
53
545. Translate all messages in <locale>.po and run make.  If you found
55errors reported by msgfmt about your <locale>.po file please correct
56them before continuing.
57
586. When you're done see the section about testing below.
59
60== Updating an existing Translation ==
61
62When there are new Speech Dispatcher messages for translation or some
63messages are changed, you need to update your <locale.>.po file.
64
65To update an existing po file with new messages please run
66
67$ make -C po <locale>.po-update
68
69Where <locale> is the locale po file to update.
70
71Then you can translate new messages and, if needed, update the ones
72gettext guessed wrong when updating the po file.
73
74== Testing your Translation ==
75
76To confirm that your translation works, please install Speech
77Dispatcher with your translation included and test it with your system
78configured for your locale.
79
80We recommend you test with spd-say and spd-conf, since those are the
81tools with more translatable content.
82
83== Sending your Translation to Speech Dispatcher ==
84
85When you think your translation is ready to be included in Speech
86Dispatcher send the po file to our development mailling-list at
87speechd-discuss@nongnu.org
88
89== References ==
90
91[1] Gettext: https://www.gnu.org/software/gettext/
92[2] Gettext Manual: https://www.gnu.org/software/gettext/manual/gettext.html
93
94
95Copyright (C) 2010 Rui Batista <ruiandrebatista@gmail.com>
96Copyright (C) 2012 Brailcom, o.p.s
97Copyright (C) 2017 Jan Tojnar <jtojnar@gmail.com>
98
99This program is free software; you can redistribute it and/or modify it under
100the terms of the GNU General Public License as published by the Free Software
101Foundation; either version 2 of the License, or (at your option) any later
102version.
103
104This program is distributed in the hope that it will be useful, but WITHOUT ANY
105WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
106PARTICULAR PURPOSE.  See the GNU General Public License for more details (file
107COPYING in the root directory).
108
109You should have received a copy of the GNU General Public License
110along with this program.  If not, see <https://www.gnu.org/licenses/>.
111