AiboPet's AiboHack Site
http://aibopet.com, http://aibohack.com


ERS-110, 111


ERS-210[A], 220[A]

Programming AIBO with:

YART, RCodePlus
OpenR SDK



ERS-311[B], 312[B], 31L


ERS7
Home
Movies (all)
PDAs: CLIE ( Panel Zipit )
Lesser Robots: Pleo ( RoboSapien ICybie )
Game Hacks: Nintendo Wii Nintendo DS ( PSP )
Email: aibopet@aibohack.com
[AiboHack] RCodePlus Sound features


RCodePlus Sound features


This page describes the sound related extensions provided in RCodePlus.


Voice Command Vocabularies

There are two different voice command vocabularies you can choose between: "LIFE" The default RCodePlus release includes the LIFE voice commands in English. It is the same as the AiboLife (1) and Hello AIBO voice commands. This vocabulary is used for most RCode Plus personalities (including ObeyCat and DogsLife). OR "RCODE" The default RCODE 1.2 release from Sony includes the RCODE voice commands (and is documented in the Master Studio 1.1 manual). The RCODE vocabulary is recommended for new personalities.

AP_Vocab, AP_VLang

To check for the current vocabulary in your own RCode Plus program, VLOAD and then check the variable "AP_Vocab". It will be 1 to indicate the LIFE vocabulary. The current language is also stored in "AP_VLang" (2=J, 3=E, 4=G, 5=F). NOTE: You must "VLOAD" these variables before testing them


AU_ or AP_

There are two sets of variables for voice and sound detection. The AiboPet RCodePlus extensions start with "AP_". The Sony provided ones start with "AU_" (in RCODE 1.2 and later).
For new programs, you should use the "AU_" voice and sound detection features provided in Master Studio 1.1. You can use the "AP_" variables for backward compatibility with old programs or if you need features not supported by the "AU_" variables.
The "AP_" variables are similar but not identical to the "AU_" variables.


AP_ Voice variables

There are several input variables used for detecting voice commands that can be used together.

AP_Voice_Cmd

To wait for a voice command, clear the "AP_Voice_Cmd" variable then wait for it to be non-zero. When it becomes non-zero, the value is the "Vcmd#" documented in the voice command list.
When AIBO hears the next voice command, these variables will change, so if you wish to use them later, be sure to take them out of the "AP_Voice_*" variables and put them in your own user variables for later use.
NOTE: same as the "AU_Voice_ID" variable.

AP_Voice_Level

The value is from 1 to 5 representing the volume of the voice heard: 1=very quiet, 2=quiet, 3=mid range, 4=loud, 5=stop screaming in my ear. You should not change this value. You should only read this value after the "AP_Voice_Cmd" value is set to non-zero.

AP_Voice_Pitch

The value is from 1 to 5 representing the pitch (frequency) of the voice heard: 1=John "Bowser" Bowman, 2=low, 3=mid range, 4=high, 5=chipmonk. You should not change this value. You should only read this value after the "AP_Voice_Cmd" value is set to non-zero.

AP_Voice_Horz

The value is a bit value from 1 to 128 representing the horizontal location where the voice came from (relative to the dog's nose): 1 = in front
2 = front right
4 = right
8 = rear right
16 = rear (ie. behind his head)
32 = rear left
64 = left
128 = front left
You should not change this value. You should only read this value after the "AP_Voice_Cmd" value is set to non-zero. The front, front right and front left directions appear to work correctly. I'm not sure if the rear directions are ever present for voice commands.


AP_ Loud variables

There are several variables that detect loud sounds that can be used together. This works almost exactly like the "AP_Voice_*" variables. Usually when AIBO can not make out a voice command, it will detect it as a loud sound. If you hear both loud sound and a voice command, you should react to the voice command.
The interpretation of the "Level", "Pitch" and "Horz" values is the same as the similar "AP_Voice_*" values. NOTE: the value of "AP_Load" will be set to non-zero when a loud sound is heard. Be sure to clear the variable like you would "AP_Voice_Cmd". I haven't figured out what the value means.


AP_AiboSound, AP_Tone

These two input variables detect musical tones (AiboSound) or ERS-111 Sound controller tri-tones (AP_Tone).
NOTE: "AP_AiboSound" is the same as the "AU_AiboSound_ID" variable. The interpretation of the numbers is the same as the RCODE 1.2 values.
NOTE: "AP_Tone" is the same as the "AU_AiboTone_ID" variable. The interpretation of the numbers is the same as the old version.

In future will have "_Horz" values that give the position of where the sound/tone came from (version 2.52 and later).


AP_Rhythm, AP_Noise

These last two sound related input variables detect special cases.
These input variables work independently, and should be used like "AP_Voice_Cmd". Set the variable to zero, and wait for it to be non-zero.

AP_Rhythm

When non-zero, this indicates a "rhythm" is heard by AIBO, usually a loud song with a strong beat. When non-zero, the value is a fixed pitch of 3. In future will have a "AP_Rhythm_Horz" value can be used to determine where the sound came from (version 2.52 and later).

AP_Noise

When non-zero, this indicates a AIBO is hearing a lot of noise. When non-zero, the value is the volume (level) of the noise (in range 1 to 5). There is no position information.


Voice Command Dictionary Index

AP_Voice_DicID

This is a special purpose input variable that acts like the "AP_Voice_Cmd" variable. It can be used in conjunction with "AP_Voice_Cmd" or separately. Instead of giving one of 52 high level voice commands, this value is one of several hundred lower level phrases.
If you need to use this feature, please email me.