Difference between revisions of "Speech Recognition"
(→Setting up Speech Recognition) |
(→Commands recognized by Robotino) |
||
(53 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | == | + | ==Introduction== |
+ | {|cellspacing="20" cellpadding="10" | ||
+ | |- style="vertical-align:top" | ||
+ | |[[Image:Robotino_sr_icon_64.png]] | ||
+ | |Robotino can now comprehend basic human speech commands. This feature is integrated in the v2.4 OS for both 1GB and 4GB CF cards. The setup is preconfigured for a Logitech ClearChat PC Wireless Stereo Headset. Read below how to modify the setup to fit your audio device. | ||
+ | {{#ev:youtube|VNE9QJsZv-s}} | ||
+ | ! style="text-align:left; width:20em; background-color:#dddddd"| | ||
+ | === Package links === | ||
+ | [[downloads#CF card images|CF card images]] | ||
− | + | [http://julius.sourceforge.jp/en_index.php Julius] | |
+ | |} | ||
− | == | + | ==Speech recognition== |
− | + | Robotino has already been trained for a voice but this may not work for everyone. In case it doesn't, then a new acoustic model will have to be created for that person. There are two ways to do this | |
+ | #'''Recommended''' The acoustic model is created by us and we just need your training data -> [[Recording data for speech recognition training]] | ||
+ | #[[Creating the acoustic model yourself]] | ||
− | === | + | ==Setup audio devices== |
+ | When the Logitech ClearChat headset is plugged into Robotino's USB port, the udev rule ''"/etc/udev/rules.d/99-robotinosr.rules"'' matches | ||
+ | <pre>SUBSYSTEMS=="usb", KERNEL=="hiddev[0-9]*", SYSFS{idVendor}=="046d", SYSFS{idProduct}=="0a12", RUN+="/usr/local/OpenRobotinoAPI/1/daemons/srd.sh start", SYMLINK+="headset" | ||
+ | </pre> | ||
+ | udev runs ''"/usr/local/OpenRobotinoAPI/1/daemons/srd.sh start"'' | ||
+ | |||
+ | Copy ''"/etc/udev/rules.d/99-robotinosr.rules"'' to ''"/etc/udev/rules.d/99-myheadset.rules"'' and modify the new rule to fit your hardware. How to do this can be read [http://wiki.ubuntuusers.de/UDEV here]. | ||
+ | |||
+ | ''"/usr/local/OpenRobotinoAPI/1/daemons/srd.sh"'' uses the ''"/usr/local/OpenRobotinoAPI/1/daemons/configure_alsa.sh"'' to write a valid alsa configuration to ''"/root/.asoundrc"''. The audo interface from which card and device number are taken is given in ''"/etc/robotino/sr/devicename"''. Modify this file to match the output from ''"aplay -l"''. | ||
+ | |||
+ | Test the setup by running ''"/usr/local/OpenRobotinoAPI/1/daemons/configure_alsa.sh"'' and see if ''"/root/.asoundrc"'' is reasonable. Then run ''"/usr/local/OpenRobotinoAPI/1/daemons/srd.sh start"''. If this works test your udev rule by detaching and reattaching your USB audio device and see if srd comes up. | ||
+ | |||
+ | ==Commands recognized by Robotino== | ||
+ | |||
+ | Robotino can currently recognize the following commands: | ||
+ | |||
+ | <pre> | ||
+ | ROBOTINO STOP | ||
− | + | ROBOTINO ROTATE *NUMBER* DEGREES | |
+ | ROBOTINO ROTATE *NUMBER* *NUMBER* DEGREES | ||
+ | ROBOTINO ROTATE *NUMBER* *NUMBER* *NUMBER* DEGREES | ||
− | + | ROBOTINO ROTATE MINUS *NUMBER* DEGREES | |
− | + | ROBOTINO ROTATE MINUS *NUMBER* *NUMBER* DEGREES | |
− | + | ROBOTINO ROTATE MINUS *NUMBER* *NUMBER* *NUMBER* DEGREES | |
− | + | ||
− | + | ROBOTINO MOVE FORWARD *NUMBER* METERS | |
− | * | + | ROBOTINO MOVE FORWARD *NUMBER* *NUMBER* METERS |
− | + | ROBOTINO MOVE FORWARD *NUMBER* *NUMBER* *NUMBER* METERS | |
− | * | + | ROBOTINO MOVE FORWARD *NUMBER* CENTIMETERS |
− | + | ROBOTINO MOVE FORWARD *NUMBER* *NUMBER* CENTIMETERS | |
− | * | + | ROBOTINO MOVE FORWARD *NUMBER* *NUMBER* *NUMBER* CENTIMETERS |
− | + | ||
− | + | ROBOTINO MOVE BACKWARD *NUMBER* METERS | |
− | + | ROBOTINO MOVE BACKWARD *NUMBER* *NUMBER* METERS | |
− | + | ROBOTINO MOVE BACKWARD *NUMBER* *NUMBER* *NUMBER* METERS | |
− | * | + | ROBOTINO MOVE BACKWARD *NUMBER* CENTIMETERS |
− | + | ROBOTINO MOVE BACKWARD *NUMBER* *NUMBER* CENTIMETERS | |
+ | ROBOTINO MOVE BACKWARD *NUMBER* *NUMBER* *NUMBER* CENTIMETERS | ||
+ | |||
+ | ROBOTINO MOVE LEFT *NUMBER* METERS | ||
+ | ROBOTINO MOVE LEFT *NUMBER* *NUMBER* METERS | ||
+ | ROBOTINO MOVE LEFT *NUMBER* *NUMBER* *NUMBER* METERS | ||
+ | ROBOTINO MOVE LEFT *NUMBER* CENTIMETERS | ||
+ | ROBOTINO MOVE LEFT *NUMBER* *NUMBER* CENTIMETERS | ||
+ | ROBOTINO MOVE LEFT *NUMBER* *NUMBER* *NUMBER* CENTIMETERS | ||
+ | |||
+ | ROBOTINO MOVE RIGHT *NUMBER* METERS | ||
+ | ROBOTINO MOVE RIGHT *NUMBER* *NUMBER* METERS | ||
+ | ROBOTINO MOVE RIGHT *NUMBER* *NUMBER* *NUMBER* METERS | ||
+ | ROBOTINO MOVE RIGHT *NUMBER* CENTIMETERS | ||
+ | ROBOTINO MOVE RIGHT *NUMBER* *NUMBER* CENTIMETERS | ||
+ | ROBOTINO MOVE RIGHT *NUMBER* *NUMBER* *NUMBER* CENTIMETERS | ||
− | * | + | *NUMBER* = ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE |
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
− | + | Examples: | |
<pre> | <pre> | ||
− | + | ROBOTINO MOVE FORWARD ONE METER | |
</pre> | </pre> | ||
− | |||
− | |||
<pre> | <pre> | ||
− | + | ROBOTINO ROTATE ONE EIGHT ZERO DEGREES | |
− | |||
</pre> | </pre> | ||
− | |||
− | |||
<pre> | <pre> | ||
− | + | ROBOTINO MOVE BACKWARD FOUR FIVE CENTIMETERS | |
− | |||
</pre> | </pre> |
Latest revision as of 15:32, 22 February 2011
Contents
Introduction
Speech recognition
Robotino has already been trained for a voice but this may not work for everyone. In case it doesn't, then a new acoustic model will have to be created for that person. There are two ways to do this
- Recommended The acoustic model is created by us and we just need your training data -> Recording data for speech recognition training
- Creating the acoustic model yourself
Setup audio devices
When the Logitech ClearChat headset is plugged into Robotino's USB port, the udev rule "/etc/udev/rules.d/99-robotinosr.rules" matches
SUBSYSTEMS=="usb", KERNEL=="hiddev[0-9]*", SYSFS{idVendor}=="046d", SYSFS{idProduct}=="0a12", RUN+="/usr/local/OpenRobotinoAPI/1/daemons/srd.sh start", SYMLINK+="headset"
udev runs "/usr/local/OpenRobotinoAPI/1/daemons/srd.sh start"
Copy "/etc/udev/rules.d/99-robotinosr.rules" to "/etc/udev/rules.d/99-myheadset.rules" and modify the new rule to fit your hardware. How to do this can be read here.
"/usr/local/OpenRobotinoAPI/1/daemons/srd.sh" uses the "/usr/local/OpenRobotinoAPI/1/daemons/configure_alsa.sh" to write a valid alsa configuration to "/root/.asoundrc". The audo interface from which card and device number are taken is given in "/etc/robotino/sr/devicename". Modify this file to match the output from "aplay -l".
Test the setup by running "/usr/local/OpenRobotinoAPI/1/daemons/configure_alsa.sh" and see if "/root/.asoundrc" is reasonable. Then run "/usr/local/OpenRobotinoAPI/1/daemons/srd.sh start". If this works test your udev rule by detaching and reattaching your USB audio device and see if srd comes up.
Commands recognized by Robotino
Robotino can currently recognize the following commands:
ROBOTINO STOP ROBOTINO ROTATE *NUMBER* DEGREES ROBOTINO ROTATE *NUMBER* *NUMBER* DEGREES ROBOTINO ROTATE *NUMBER* *NUMBER* *NUMBER* DEGREES ROBOTINO ROTATE MINUS *NUMBER* DEGREES ROBOTINO ROTATE MINUS *NUMBER* *NUMBER* DEGREES ROBOTINO ROTATE MINUS *NUMBER* *NUMBER* *NUMBER* DEGREES ROBOTINO MOVE FORWARD *NUMBER* METERS ROBOTINO MOVE FORWARD *NUMBER* *NUMBER* METERS ROBOTINO MOVE FORWARD *NUMBER* *NUMBER* *NUMBER* METERS ROBOTINO MOVE FORWARD *NUMBER* CENTIMETERS ROBOTINO MOVE FORWARD *NUMBER* *NUMBER* CENTIMETERS ROBOTINO MOVE FORWARD *NUMBER* *NUMBER* *NUMBER* CENTIMETERS ROBOTINO MOVE BACKWARD *NUMBER* METERS ROBOTINO MOVE BACKWARD *NUMBER* *NUMBER* METERS ROBOTINO MOVE BACKWARD *NUMBER* *NUMBER* *NUMBER* METERS ROBOTINO MOVE BACKWARD *NUMBER* CENTIMETERS ROBOTINO MOVE BACKWARD *NUMBER* *NUMBER* CENTIMETERS ROBOTINO MOVE BACKWARD *NUMBER* *NUMBER* *NUMBER* CENTIMETERS ROBOTINO MOVE LEFT *NUMBER* METERS ROBOTINO MOVE LEFT *NUMBER* *NUMBER* METERS ROBOTINO MOVE LEFT *NUMBER* *NUMBER* *NUMBER* METERS ROBOTINO MOVE LEFT *NUMBER* CENTIMETERS ROBOTINO MOVE LEFT *NUMBER* *NUMBER* CENTIMETERS ROBOTINO MOVE LEFT *NUMBER* *NUMBER* *NUMBER* CENTIMETERS ROBOTINO MOVE RIGHT *NUMBER* METERS ROBOTINO MOVE RIGHT *NUMBER* *NUMBER* METERS ROBOTINO MOVE RIGHT *NUMBER* *NUMBER* *NUMBER* METERS ROBOTINO MOVE RIGHT *NUMBER* CENTIMETERS ROBOTINO MOVE RIGHT *NUMBER* *NUMBER* CENTIMETERS ROBOTINO MOVE RIGHT *NUMBER* *NUMBER* *NUMBER* CENTIMETERS *NUMBER* = ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE
Examples:
ROBOTINO MOVE FORWARD ONE METER
ROBOTINO ROTATE ONE EIGHT ZERO DEGREES
ROBOTINO MOVE BACKWARD FOUR FIVE CENTIMETERS