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