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).

Navigation



  • Google Search (http://www.google.com/custom?sa=Google+Search&cof=S%3Ahttp%3A%2F%2Fwww.ipodlinux.org%3BVLC%3Apurple%3BAH%3Acenter%3BBGC%3Awhite%3BLH%3A141%3BLC%3Ablue%3BL%3Ahttp%3A%2F%2Fipodlinux.org%2Fstylesheets%2Fimages%2Fwiki.png%3BALC%3Ablue%3BLW%3A128%3BT%3Ablack%3BAWFID%3A70a74ab66f4d59ae%3B&domains=ipodlinux.org&sitesearch=ipodlinux.org)