Gnuspeech (external project)

Gnuspeech is an articulatory speech synthesizer. The project implemented the first articulatory text-to-speech (TTS) software (as far as I know). It was developed in the 90s, around 30 years ago (in 2022). The original authors are David R. Hill, Craig R. Taube-Schock and Leonard Manzara.

Gnuspeech was previously a closed source commercial software, available only for NeXT computers. After the demise of NeXT, the software was donated to the GNU project. It uses a simple vocal tract model, because the NeXT was a very slow computer, even considering its DSP. The CPUs of the 90s operated at a frequency of tens of MHz (not a typo), around 100x slower than the technology in 2022. The relative low complexity of the model makes it not too difficult to understand, and it allows low latency synthesis on modern personal computers.

License: GNU GPLv3-or-later.


Synthesis examples:

Note: The original TTS system had two implementations of the vocal tract model (tube model), one that executed on a 56k DSP, written in assembly, and another that executed on the CPU, written in C. The DSP tube model generates better speech, with more balanced fricatives. The OS X and C++ ports below are based on the C tube model.

- The Chaos by Gerard Nolst Trenité (short version) synthesized by the original TTS system for NeXTSTEP, running inside Previous, a 68k NeXT emulator. The speech has been synthesized using the DSP tube model.

English - Male MP3

The video "Gnuspeech on NeXTSTEP" shows the software running on the emulator.

- The Chaos by Gerard Nolst Trenité (short version) synthesized by GnuspeechSA 0.1.6 (C tube model).

English - Male MP3
English - Female MP3
English - Large child MP3
English - Small child MP3
English - Baby MP3

Performance of GnuspeechSA 0.1.7 using the english male voice:
CPU: Core i5-3470 (the software uses only one thread).
Duration of the synthesized speech: 421 s.
Time to synthesize the speech (includes initialization): 8.9 s (47x faster than real-time).


Documentation:


Ports: