In this tutorial we will install
Text-to-Speech System (MARY TTS) and connect it with
Baxter Robot .The final output will be a synchronized action between Baxter's gestures and audio.
First we need have the Baxter workspace set up
After the workspace is set up we need to download Text-to-Speech System (MARY TTS) and VisualSceneMaker Baxter's branch
from VisualSceneMaker. For downloading the latest VSM to work with
Baxter, execute in the terminal
git clone -b VisualSceneMakerBaxter https://github.com/SceneMaker/VisualSceneMaker/
###MARY TTS INSTALLATION
Go to the Mary TTS website and download the latest version of the software (The Runtime version)
As the MARY TTS is a server-client application, we need to have the server running in order to use it. So depending on your OS uncompress the downloaded
file and go to the bin folder and execute the marytts-server.bat for Windows or open a terminal and execute the marytts-server script.
####MARY TTS VOICE INSTALLATION (optional)
By default there is only one voice installed, so if we want to integrate more voices in VSM we will need to install them.
Let's install two voices, namely **obadiah (man)** and **poppy(woman)**. Once again using the terminal go to the bin folder and execute the script
marytts-component-installer. When the window is opened select the language en-GB and then select the voices: "dfki-obadiah" and "dfki-poppy" and then
press the button "Install selected". Make sure the en-GB Language is marked as installed This could take a while depending on your Internet connection.
After everything is installed if you had the server running, stop it and execute it again using the script marytts-server.
###Connecting VSM with Baxter
Baxter is accesible using Pyhthon language. So in order to connect VSM with Baxter, we need a python server running. To this end, there is a
folder inside the VSM installation which consist of the server script and the script with the commands to make baxter move.
If you are still on the terminal go to where the VSM folder is.
Before running the python server we must indicate the ip where the baxter robot is connected. Just go the the baxter_server.py and edit the line where
the variable TCP_IP is defined and write the Baxter Ip address.
1. cd /res/pybaxter.
2. cp -R * where_your_ros_workspace_is/src/baxter_examples/scripts
3. cd where_your_ros_workspace_is/
5. cd where_your_ros_workspace_is/src/baxter_examples/scripts
6. python baxter_server.py
If everything went fine, you should see the message Listening...
Now you can check the tutorial about how to play around with Baxter using VSM
Configuring project.xml file:
The project.xml is where we define, among other things which sceneplayer to use. This file is automatically generated when we create a new project.
By default VSM uses the default sceneplayer, so in order to work with Baxter we need to change this. Open the project.xml and under the tag Players
copy this lines:
<Player name="defaultsceneplayer" class="de.dfki.vsm.players.BaxterSceneGroupPlayer">
<Feature key="vsm.agent.number" value="0"/>
<Feature key="vsm.agent.remote.host" value="127.0.0.1"/>
<Feature key="vsm.agent.remote.port" value="1313"/>
The class in the Player tag is indicating which sceneplayer we are going to use.
If your VSM and the Baxter scripts are on different computers, change the value of vsm.agent.remote.host to the IP address where the Baxter computer is located
If you want to use another port you can change the value of vsm.agent.remote.port. Notice that if you do this, you will need to change the port value in the python