This module takes a command (…Task.Do) with a idnumber and plays a wave file xxx_id.wav, right now this module has to be on the same machine as the speech_renderer since the speech renderer creates the wave file locally.
<module name="Speaker"> <description>Plays wave files. Needs Festival</description> <trigger from="WBSystem" type="RU.S1.Internal.Module.Status.Ping"/> <triggers from="WBPlan"> <trigger type="RU.S1.Output.Plan.Task"/> <trigger type="RU.S1.Output.Plan.Task.Do"/> <trigger type="RU.S1.Output.Plan.Task.Cancel"/> <trigger type="RU.S1.Output.Action.Speech.ReplyTo"/> <trigger type="RU.S1.Output.Action.Speech.ReplyTo.Do"/> <trigger type="RU.S1.Internal.Instruct.Speak.Segment.Done"/> <trigger type="RU.S1.Output.Plan.Task.Speech.Question"/> </triggers> <trigger from="WBAction" type="RU.S1.Output.Plan.Task.Speech.Do"/> <trigger from="WBAction" type="RU.S1.Output.Plan.Act.Comm.Sound.*"/> <posts to="WBPlan"> <post type="RU.S1.Output.Plan.Task.Speech.Ready"/> <post type="RU.S1.Output.Plan.Task.Speech.Done"/> </posts> </module>
In:
RU.S1.Output.Plan.Task.Do
Desription: Play sentence
Xml: <Speak fragment_id=“97”/>
Out:
RU.S1.Output.Plan.Task.Speech.Done
Desription: Playing sentence done
Xml: <SpeechDone fragment_id=“97”/>
The executables are located in the “roboradio/is/ru/cadia/roboradio/src/modules/executors/speech/SpeechPlanner” folder
The same module is used for Speech_renderer and Speech_player but with different parameters
To run the speech_renderer in Linux: ./speechplanner psyclone=localhost
To run the Speech_player: ./speechplanner psyclone=localhost module=Speaker