Bind a servo to spoken audio to move a mouth similating speaking
+ How To Add This Control To Your Project (Click to Expand)
- Make sure you have the latest version of ARC installed.
- Select the Get button in this page to download the archive file.
- Double click the downloaded archive file to execute installer.
- The installer will add this control to ARC.
- Load ARC and press the Project -> Add Control button from the menu.
- Choose the Audio category tab.
- Press the Talk Servo V2 icon to add the control to your project.
This skill will bind to the Text-to-speech engine and move servos to simulate jaw movement when speaking. Whenever a text-to-speech script command is executed (i.e. Say, SayEZB, SayWait, SayEZBWait), this skill will move the specified servos to simulate a mouth movement. If your robot has servos connected to simulate a mouth, this skill will move those servos while speaking.
There are parameters to configure for the voice and voice settings selection in this skill. Every voice and different voice settings (i.e. speaking speed) will require custom settings. The settings are delays for each type of audio. For example, there are delay specifications for Constants and Vowels. The mouth is closed when a Constant is detected and opened when a vowel is detected. The mouth is again closed at the end of a word or sentence. The delays for each of these settings can be specified to tune your effect.
1. Text Display
Displays the text that is being sent by a script to activate the servo movement.
2. Pause Checkbox
When checked the talk servo skill will be paused and won't execute servo commands until unchecked.
3. Stop Button
This button will stop the servo movement at any time.
A script must be used to activate the Talk servo skill. Use commands like Say, SayEZB, SayWait, or SayEZBWait to activate the servo movement.
1. Title Field
This field contains the title of the Talk servo skill. You can change it if you'd like.
2. servo Settings
This section allows you to set up servo movement parameters such as servo port, board index, servo configuration, max/min degree limitations, multiple servo control, and inverted direction.
3. Constant Delay Drop-down
For each consonant in the text being executed by this skill, the talk servo will go to the minimum servo value. The value in this drop-down determines how long the servo will stay in that position. The range is 10-1995 milliseconds. The default is 90 ms.
4. Vowel Delay Drop-down
For each vowel in the text being executed by this skill, the talk servo will go to the maximum servo value. The value in this drop-down determines how long the servo will stay in that position. The range is 10-1995 milliseconds. The default is 40 ms.
5. Period Delay Drop-down
For each period or coma in the text being executed by this skill, the talk servo will go to the minimum servo value. The value in this drop-down determines how long the servo will stay in that position. The range is 10-1995 milliseconds. The default is 300 ms.
6. Start Delay Drop-down
The text-to-speech engine and audio buffer have a slight delay before the audio begins to play. Use this drop-down to adjust the delay before the Talk servo movement begins. Use this delay to sync up the servo movements with the audio. The range is 10-1995 milliseconds. The default is 460 ms.
How to use Talk Servo
1) Attach a servo to your ARC connected I/O controller.
2) Add the Talk servo skill to your ARC project (Project -> Add Skill -> Audio -> Talk Servo).
3) Add a Script skill to your ARC project (Project -> Add Skill -> Scripting -> Script).
4) Configure the servo settings in the Talk servo skill settings menu.
5) Write a script in the Script skill, such as Audio.say("I am using a servo to move my mouth"); for example. Then run the script. Watch as the servo moves according to the settings in the Talk servo Skill.
A servo motor and an EZB I/O controller.