SpeakEasy is a GUI to access text-to-speech facilities. Currently supported are the built-in Linux voice, and Cepstral voices. Users type an utterance, select a voice, and play the corresponding speech either locally on their computer, or remotely at a ROS controlled robot that runs an associated node.

Utterances can be saved and associated with GUI buttons for immediate replay later. Sound effects can be played as well, again, on the local computer, or on the robot.


GUI Overview

At the GUI's top is the text input field. Users type into this field to create utterances. The text may contain modulation markup (SSML), if the underlying speech engine can manage such information. Cepstral can, the built-in Linux text-to-speech engine cannot.

Below the text input field are play and stop buttons for testing and fine tuning speech. The play once and play repeatedly buttons control whether an utterance is to be repeated over and over, or spoken just once. The time information next to these buttons controls the pause in between loop iterations. The adjacent bank of voice radiobuttons will differ among installations, depending on installed capabilities and licenses.

The block of speech buttons below these controls serve to recall programmed utterances. These utterances will be spoken with the voices with which the respective button was programmed. The current choice of radio button in the voices bank has no effect.

Below the speech buttons are the sound effect buttons. Any playable sound file in the project directory's sounds subdirectory will be accessible by one of these buttons. Add or remove files from that directory to control the presence of absence of sound effect choices.

The speech set buttons below the sound effects allow users to create coherent sets of speech buttons that can be swapped in and out of the GUI as collections. For example, household related utterances may be combined in one set of buttons, while traveling utterances are stored in other buttons.


The play locally and play at robot radio buttons control where the speech is sounded. If no speech node or ROS master is found, play reverts to local. Local play is independent of ROS, and accesses the Linux facilities for voicing speech.

The speech modulation button accesses advanced speech modification facilities that insert SSML markup into text within the text input field at the cursor position.


Programming Speech Buttons

To program an utterance into a speech button, type the respective text into the text input area, and select an available voice. Optionally use speech modulation facilities to fine tune the text-to-speech translation if the the underlying speech engine is set up for SSML. When all is set, left-click and hold the target speech button until it blinks, and a dialog appears. The dialog allows users to define a label for the speech button.

The following text might appear upon attempting button assignment:

  • Before (re)programming a button, please choose an existing button set via the 'Pick different speech set' button, or create a new set via the 'Save speech set' button.

This instruction is a precaution to prevent accidental overwriting of the empty-buttons default speech set. Use the pick different speech set button to select a non-default set. Then repeat the button assignment.

To recall a programmed utterance from a speech button, right click the button, and select copy to text area. The text will be appended to the text input area.

You may look at your button programs as they are stored on the disk. They are at


Linkage to the Puppet Facility

To transfer a programmed utterance to the Puppet command pane, right click the respective speech button, and select broadcast program.

Launch Options

To start SpeakEasy in purely local mode:

roslaunch speakeasy speakeasy_local.launch

The program will not look for a ROS master when started with this launch file.

In contrast, starting SpeakEasy like this:

roslaunch speakeasy speakeasy_ros.launch

will attempt to find a ROS master, and to have speech output to a robot.

Finally, on a robot that is to provide SpeakEasy service to the GUI, use the following launch command:

roslaunch speakeasy speakeasy_ros_server_only.launch

Adding New Sound Effect Files

If you want add new sound effect buttons to your SpeakEasy, deposit a .wav or .mp3 file in


Report a Bug


Wiki: speakeasy (last edited 2013-08-16 23:17:10 by AndreasPaepcke)