Flite (festival-lite)
From wikiPodLinux
Flite (festival-lite) is a small, fast run-time speech synthesis engine developed at Carnegie Mellon University (http://www.cmu.edu/) by Alan W Black and Kevin A Lenzo. It has been designed for particular small embedded machines and is available under GNU.
The Flite offical home is http://www.speech.cs.cmu.edu/flite/. It provides the source code (http://www.speech.cs.cmu.edu/flite/download.html) of the Flite engine and other information (documentation, related projects...).
This page explains how to use the Module libttsclient and ttsserver to build your own module with speech functionality.
| Table of contents |
Client-Server Architecture
The architecture consists of two Modules: TTSServer and TTSClient. Both communicate using a socket based mechanism through the local interface.
- The TTSServer Module is responsible to start/stop our speech server daemon (similar to MDP module).
- The TTSClient is used to send commands to the TTSServer using a simple protocol (self-defined).
TTSServer
The binary can be downloaded for ARM platform only: TTSServer_ARM.zip. Setup your iPod to load the TTSServer at startup. Make sure that the localhost interface is well defined on the platform.
Note: only the ARM binary version is available at present.
TTSClient
Download the libttsclient.tar.gz file and decompress it in your Module directory. Note: only the ARM binary version of libttsclient is provided at present.
How to use the TTSServer/Client
Any module can get access to the speech server (TTSServer) using the TTSClient module. You need to specify a dependency in your Module file by adding the line:
Dependencies: libttsclient
You also need to add the following lines on top of your module after any includes:
#ifndef __LIBTTSCLIENT_H__ int send_tts_request(char *); #endif
Finally you can call the send_tts_request() function in your code as much as you want and ask the speech server to convert your text into speech.
send_tts_request("Hello, this is the iPod speaking.");
send_tts_request("This is a small example of the speech functionality.");
Note: TTSServer implements a FIFO stack for messages. All sent messages will be synthetized and played one after the other.
Application
The project Podiffusions (http://www.podiffusions.com) by Jerome Marc (http://ipodlinux.org/User:JeromeM) uses this mechanism. It consists of an RSS browser for iPod with text-to-speech functionality. You can watch a video of the application on YouTube (http://www.youtube.com/watch?v=HZ81X2l4LsI) and DailyMotion (http://www.dailymotion.com/tag/podiffusions/video/x2fean_podiffusions-ipod_news).
