2005/10/06
AIBO Remote Framework is a Windows PC application development environment which enables you to make software that works on a Windows PC. The software can control an AIBO (ERS-7) via wireless LAN. You can use AIBO Remote Framework with the AIBO MIND 3 "Memory Stick" and ERS-7 robot. An application programmer can make programs using the AIBO Remote Framework API to control AIBO remotely. AIBO Remote Framework (for ERS-7) contains libraries which connect your PC and AIBO (ERS-7) wirelessly allowing you to send and receive data.
This document describes the AIBO Remote Framework API. First, we are going to explain the overview of the AIBO Remote Framework API. After that we will explain each function of the API.
In this chapter, we explain the components of AIBO Remote Framework. The application using AIBO Remote Framework uses the following three modules:
- Application - User application that utilizes AIBO Remote Framework
- AIBO Remote Framework API - AIBO Remote Framework libraries
- VirtualAIBO Server - The server program which connects AIBO and the AIBO Remote Framework application
(Refer Fig. 2.1)
* AIBO Remote Framework is outlined by the red dotted line
Fig 2.1 AIBO Remote Framework Composition
Multiple AIBOs and PC applications can be connected at the same time. However, in this case there is only one server program.
The AIBO Remote Framework has four dynamically linked libraries (DLL);
VAIBOClient.dll | Connect/Disconnect to AIBO. Enable/Disable FTP, Sensor, Image, and Audio services that are internal AIBO functions. Send commands to AIBO to change posture, walk, etc. The VAIBOClient.dll is called VirtualAIBO Client and the server is called VirtualAIBO Server.
AIBO3D.DLL | 3D AIBO model
CPCInfo.DLL | Get AIBO's hardware configuration (Robot design)
VAIBOUPnP.DLL | Search for AIBO in the network using the UPnP feature
VAIBOTTS.dll | TTS(Text to Speech) engine
Figure 2.2 describes the module structure of these DLLs and AIBO Objects.
Fig 2.2 Module structure diagram
AIBO Remote Framework function list
* Connect/Disconnect the network to AIBO
Establish a network connection with a PC and AIBO. An IP address is needed to connect to AIBO.* Lock/Unlock the connection to the VirtualAIBO Server
The client application can lock the connection to the VirtualAIBO Server for exclusive control when there are multiple client applications.* Control services of AIBO
Start/Stop services on AIBO. These services are FTP, Sensor, Image, and Audio transmission. You can get the status of each service. If the service is not started, the API's relation with the service will not work. You should start the service before using the API's relation with it.* Get semantics data
Semantics data can be retrieved. Semantics (SemID) are defined in the SemID.h header file. Some semantics also have SubInfo. SubInfo are described in Semantics.txt* FTP
AIBO Remote Framework has FTP functions. The FTP is Memory Mapped FTP (MMFTP), the data is stored in memory. When you play user made contents (MOTION, AUDIO, LED), you should transfer the ODA files from the PC to AIBO using MMFTP. AIBO Remote Framework doesn't have the capability to write files directly to the Memory Stick Media in AIBO.* Get Sensor data
Sensor data can be retrieved.* Get Camera Image data
You can get camera image data from AIBO. The method is described in 3.2.1 Get Image Data* Setting Camera parameters
The properties of AIBO's camera (Exposure, Shutter speed, AE(Auto Exposure), AWB(Auto White Balance)) can be set.
* Send/Receive Audio Data
You can transfer audio data from the PC to AIBO and play the audio data through AIBO's speaker. The method is described in 3.2.2 Send Audio Data.
You can also transfer audio data from AIBO's microphones to the PC. The method is described in 3.2.3 Receive Audio Data.* Control Motion
You can make AIBO play built-in contents that are categorized by Large/Middle/Small values by sending the LMS command. You can make AIBO play built-in contents that are specified by MWCID(Middle Ware Command ID). Some major motions (walk, change posture, change head angle, kick, and heading) are exclusive API functions.* Internal/External Control
AIBO can be controlled internally or externally. In the internal control mode, AIBO cannot receive control commands (ex. changing the head angle, walking, etc.), but you can get semantics data and sensor data.* Control Autonomous Objects
You can start/stop autonomous object services. Autonomous object services are voice recognition, moving object recognition, face detection, face recognition, visual pattern recognition, target object recognition, cliff detection, and self recharging.* Display 3D AIBO
A 3D AIBO model can be displayed using Direct X* AIBO Search using UPnP
AIBO can be searched for by using UPnP (Universal Plug and Play)* TTS
You can use the TTS (Text to Speech) engine and make AIBO speak by converting text to voice (in the PC). You can also make WAVE data by using TTS. (WAVE data cannot be created when you use the Sony TTS engine)* Other
+ Get remaining battery level
+ Set AIBO's status when the connection is disconnected
+ Stop motion (when it is playing)
+ Get the local IP address
+ Set AIBO's clock
+ Get the MAC address of AIBO
+ Authenticate by User ID/Password
In AIBO Remote Framework, data transmission between VirtualAIBO Client and VirtualAIBO Server uses Windows Messaging. In the Fig 2.2, the thick line between VAIBOClient.DLL and VAIBOServer represents Windows Messages. VirtualAIBO Client (*.dll) creates Windows Messages and sends them to the application window.
The following Windows Messages are sent from the VirtualAIBO Client to the application.
(1) WM_VAIBO_CONNECT
Description : Establish network connection notification
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : 0
(2) WM_VAIBO_DISCONNECT
Description : Finished network disconnection notification
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : 0
(3) WM_VAIBO_REMOTE_NOTIFY
Description : Get changing Internal/External control notification
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : 0 InternalControl 1 ExternalControl
(4) WM_VAIBO_SEMANTICS
Description : Get semantics message notification
wParam : Type of semantics message
+ Upper word is AIBO ID
+ Lower word is
SEM_STATUS // Condition transition notice
SEM_START // Start notice
SEM_DONE // End notice
SEM_ERROR // Error notice
SEM_RESULT // Result notice
SEM_FINISHED // // Finished self charging, or finished picking up its AIBone
lParam : Message Data (Defined in the VAIBODef.h header file)
(Note) Don't call VAIBO class functions that block/wait for a result in functions that process SEM_STATUS, SEM_RESULT, or SEM_FINISHED semantics messages. To send the result and to return from the blocking function, your program must return from the function that is processing the semantics message. But, the blocking function is located in the function that is processing result messages, so the program deadlocks and will not continue. In the following example, the two functions "SendCmd" and "SetRobotObjectMode" block and wait for the result, so this sample will deadlock.
// Dead Lock Sample
// CVAIBO *m_pVAibo
// ON_REGISTERED_MESSAGE(WM_VAIBO_SEMANTICS, OnVAIBOSemantics)
LRESULT CBaseClientDlg::OnVAIBOSemantics( WPARAM wParam, LPARAM lParam )
{
if ( semState == SEM_RESULT )
{
m_pVAibo->SendCmd( APPCMD_IMAGE_PLAY, TRUE);
m_pVAibo->SetRobotObjectMode(eRobotObjectRecognizeObjectPink, eRobotObjectModeStart );
}
}
(5) WM_VAIBO_INPUT_SEMANTICS
Description : Get input semantics notification
This message is needed to call VAIBO::GetInputSemantics() to get the data
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : 0
(6) WM_VAIBO_SENSOR_DATA
Description : Get sensor data notification
wParam : Upper word is AIBO ID. Lower word is number of sensor data
lParam : pointer to SensorRec data
(7) WM_VAIBO_PRODUCTID
Description : Get ProductID notification
This message is needed to call VAIBO::GetProductID() to get the data
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : 0
(8) WM_VAIBO_BATTERY_LVL
Description : Remaining battery level notification
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : remaining battery level
(9) WM_MMFTP_SENDING
Description : FTP file transfer notification
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : Data size that is transferred by the ftp service
(10) WM_IMAGETP_UPDATE
Description : Update image data notification
This message is needed to call VAIBO::ImageGetData() to get the image (JPEG) data
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : Received data size
(11) WM_AUDIOTP_UPDATE
Description : Update audio data notification
This message is needed to call VAIBO::AudioGetData() to get the audio (PCM) data
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : Received data size(12) WM_VAIBO_CLIENT_UPDATE
Description : Add/Remove client connected to the server notification
wParam : Upper word is AIBO ID. Lower word is 1(Add) or 0(Remove)
lParam : Windows handle of client(13) WM_VAIBO_LOCK
Description : Server lock change notification
wParam : Upper word is AIBO ID. Lower word is 0.
lParam : 1(Lock) or 0(Unlock)
The Shared Memory system is used when data is sent and received between the VirtualAIBO Server and the User application. The data can be Image data, Audio data, and server stored information (Windows handle, sensor data, posture data, AIBO's status, battery level, and semantics). Four shared memory areas are used: Image, Audio (Send), Audio (Receive), and server stored information. Image, Audio (Send), and Audio (Receive) shared memory areas are created when the VirtualAIBO Server is started. Sixteen shared memory areas are created for each type, so the maximum number of AIBO that can be connected to the VirtualAIBO Server is 16.
(1) VirtualAIBO Server stores image data to the shared memory (Key:VAIBOImageObject*).
(2) VirtualAIBO Server sends a Windows Message to VirtualAIBO Client.
(3) VirtualAIBO Client can get the image data from the shared memory (Key:VAIBOImageObject*).
(4) After getting the image data, Virtual AIBO Client sends a Windows Message (WM_IMAGETP_UPDATE) to the user application.
(5) When user application receives the Windows Message (WM_IMAGETP_UPDATE) from VirtualAIBO Client, it can retrieve the image data by using the Remote Framework API (VAIBO::ImageGetData). The user application can send the Windows handle to VirtualAIBO Client by using the Remote Framework API (VAIBO::ImageSetWindowHandle). VirtualAIBO Client will automatically draw the image on the window that was sent from the user application.(+) VAIBOImageObject* ; "*" specify AIBO's connection ID that is a number from 1 to 16.
(1) To send audio data from the PC to AIBO, the user application should call the Remote Framework API (VAIBO::AudioSendData).
(2) VirtualAIBO Client stores the audio data to the shared memory (Key:VAIBOAudioSendObject*).
(3) VirtualAIBO Client sends a Windows Message to the VirtualAIBO Server after the audio data has been stored in the shared memory.
(4) VirtualAIBO Server sends the audio data from the shared memory (Key:VAIBOAudioSendObject*) to AIBO.(+) VAIBOAudioSendObject* ; "*" specify AIBO's connection ID that is a number from 1 to 16.
(1) VirtualAIBO Server stores the audio data retrieved from AIBO to the shared memory (Key:VAIBOAudioRecvObject*).
(2) VirtualAIBO Server sends a Windows Message to the VirtualAIBO Client.
(3) VirtualAIBO Client can get the audio data from the shared memory (Key:VAIBOAudioRecvObject*).
(4) VirtualAIBO Client sends a Windows Message (WM_AUDIOTP_UPDATE) to the user application.
(5) When the user application receives the Windows Message (WM_AUDIOTP_UPDATE), it can retrieve the audio data by using the Remote Framework API (VAIBO::AudioGetData), and process the audio data.(+) VAIBOAudioRecvObject* ; "*" specify AIBO's connection ID that is a number from 1 to 16.
The other server stored information (Windows handle, sensor data, posture data, AIBO's status, battery level, and semantics) can be retrieved by using the shared memory system. The process is the same as 3.2.1-3. Data is passed between VirtualAIBO Server and VirtualAIBO Client by using shared memory. The user application can get the data with the same method as getting image and audio data.
API Name Function CVAIBO::CVAIBO Constructor CVAIBO::~CVAIBO Destructor CVAIBO::Connect Connect to AIBO CVAIBO::Disconnect Disconnect from AIBO CVAIBO::SetLock Server Lock/Unlock CVAIBO::GetProductID Get AIBO's product ID CVAIBO::GetRemoteMACAddress Get AIBO's MAC address CVAIBO::GetRobotDesign Get the robot design CVAIBO::RequestNetService Request to start the network service CVAIBO::SendCmd Send a command to AIBO CVAIBO::PlayMotion Play a motion that is categorized with Larger/Middle/Small/Level values CVAIBO::PlayMotionWithAngle Play a motion that is categorized with Larger/Middle/Small/Level values and angle parameters CVAIBO::IsConnect Get the network connection status CVAIBO::IsLock Get the server lock/unlock status CVAIBO::GetStateSensorTP Get the Open/Close status of SensorTP CVAIBO::GetStateImageTP Get the Open/Close status of ImageTP CVAIBO::GetStateAudioTP Get the Open/Close status of AudioTP CVAIBO::GetStateNetAudio Get the Open/Close status of NetAudio CVAIBO::IsFTPOpen Get the Open/Close status of the FTP connection CVAIBO::GetInputSemantics Get ImputSemantics data CVAIBO::GetSemInfo Get Semantics information CVAIBO::SensorTransferStart Start data transmission of SensorTP CVAIBO::SensorTransferStop Stop data transmission of SensorTP CVAIBO::SensorGetData Get SensorTP data CVAIBO::SensorGetSkipRate Get the skip rate of SensorTP CVAIBO::SensorSetSkipRate Set the skip rate of SensorTP CVAIBO::ImageInit Initialize the Image object CVAIBO::ImageOpen Start transmitting Image data CVAIBO::ImageClose Stop transmitting Image data CVAIBO::ImagePause Pause transmitting Image data CVAIBO::ImageResume Resume transmitting Image data CVAIBO::ImageGetData Get Image data CVAIBO::ImageSetWindowHandle Set the Windows handle for displaying Image data CVAIBO::ImageOutputCaptureData Take a Picture CVAIBO::ImageGetFrameRate Get the frame rate of Image data transmission CVAIBO::CameraSetModeDefault Set the camera mode to automatic CVAIBO::CameraSetModeManual Set the camera mode to manual settings CVAIBO::CameraSetParamExposure Set camera parameter (exposure) CVAIBO::CameraSetParamShutterSpeed Set camera parameter (shutter speed) CVAIBO::CameraSetModeAEAWB Set camera settings AE(Auto Exposure) and AWB(Auto White Balance) CVAIBO::AudioInit Initialize the Audio object CVAIBO::AudioGetOpen Start receiving Audio data CVAIBO::AudioSendOpen Open the network port for AudioStream CVAIBO::AudioSendSetMode Set AudioMode CVAIBO::AudioClose Stop receiving Audio data CVAIBO::AudioGetData Get Audio data CVAIBO::AudioSendData Send Audio data by AudioStream CVAIBO::AudioSendWAVFile Send Audio data (File) by AudioStream CVAIBO::AudioSendPlay Start playing AudioStream CVAIBO::AudioSendStop Stop playing AudioStream CVAIBO::FTPMMSendWAVFile Send WAVE file by using MMFTP CVAIBO::FTPMMSendMWCFile Send MWC file by using MMFTP CVAIBO::FTPMMSendMOTIONFile Send MOTION file by using MMTFP CVAIBO::FTPMMSendAUDIOFile Send AUDIO file by using MMFTP CVAIBO::FTPMMSendLEDFile Send LED file by using MMFTP CVAIBO::UpdateContents Update contents CVAIBO::PlayContents Play contents CVAIBO::DoKick Kick CVAIBO::DoHeader Header CVAIBO::DoWalking Walk CVAIBO::DoApproach Walk to a target CVAIBO::DoGetOffStation Get off of the station CVAIBO::SetPosture Set posture CVAIBO::GetPosture Get posture CVAIBO::GetStatus Get current status of AIBO CVAIBO::ChangeHeadAngle Move head CVAIBO::TurnBody Turn body CVAIBO::MotionStop Stop motion CVAIBO::GetBatteryLevel Get remaining battery level CVAIBO::SetBatteryLevelNotify Set remaining battery level notification ON/OFF CVAIBO::ExternalControl Make AIBO remotely controlled CVAIBO::InternalControl Make AIBO internally controlled CVAIBO::ChangeDisconnectMode Set AIBO's mode when it is disconnected CVAIBO::SetRobotObjectMode Start/Stop autonomous services CVAIBO::SetClock Set internal clock CVAIBO::IsControlReady Is AIBO controllable? CVAIBO::IsRemote Is AIBO controlled remotely? CVAIBO::SetObserverWnd Set message observer window CVAIBO::GetLocalIPAddress Get Local IP address CVAIBO::GetLastCmdID Get last CmdID CVAIBO::GetRobotObjectMode Get the status of internal objects in AIBO CVAIBO::GetProtocolVersion Get the protocol version of each service CVAIBO::DoRobotFunction Execute an internal AIBO function CVAIBO::StopRobotFunction Stop executing an internal AIBO function CVAIBO::VPRSetMode Set VPR mode CVAIBO::VPRTrainModel Train VPR model CVAIBO::VPRRemoveModel Remove VPR model CVAIBO::VPRQueryModel Query trained VPR model CVAIBO::VPRGetImage Get the training image of a VPR model CVAIBO::SetVolume Set sound volume CVAIBO::RequestVolume Get sound volume CVAIBO::SetUserIdPwd Set user ID and Password CVAIBO::GetUserIdPwd Get user ID and Password CVAIBO::ImageGetInfo Get image recognition setting information CVAIBO::ImageGetRecogData Get image recognition data CATPDirectSound::CATPDirectSound Constructor CATPDirectSound::~CATPDirectSound Destructor CATPDirectSound::Init Initialize class CATPDirectSound::StartPlay Start playing audio CATPDirectSound::EndPlay Stop playing audio CATPDirectSound::PlayWaveData Play wave data CATPDirectSound::StartCapture Start capturing audio CATPDirectSound::EndCapture Stop capturing audio Header: The CVAIBO class is defined in VAIBO.h. The CATPDirectSound class is defined in ATPDirectSound.h.
Library: VAIBOClient.lib
[+] VAIBOClient uses ijl15.dll
API Name Function CAIBO3D::CAIBO3D Constructor CAIBO3D::~CAIBO3D Destructor CAIBO3D::Create3D Create an AIBO 3D model CAIBO3D::Show Show/Hide the AIBO 3D model CAIBO3D::HomePosition Move the AIBO 3D model to the home position CAIBO3D::RotateBody Rotate the AIBO 3D model CAIBO3D::GetBodyAngle Get the body angle of the AIBO 3D model CAIBO3D::Set3DPosture Set the posture of the AIBO 3D model CAIBO3D::MoveAIBOAnimation Animation of the AIBO 3D model moving CAIBO3D::RotateAIBOAnimation Animation of the AIBO 3D model rotating CAIBO3D::PlayAnimation Play the animation of the AIBO 3D model CAIBO3D::StopAnimation Stop the animation of the AIBO 3D model CAIBO3D::ClearTrack Clear the motion path data CAIBO3D::DrawTrack Draw the motion path CAIBO3D::RotateJoint Rotate each joint of the AIBO 3D model CAIBO3D::SetColor Set the color of the AIBO 3D model CAIBO3D::GetColor Get the color of the AIBO 3D model CAIBO3D::MoveCamera Move camera view CAIBO3D::ZoomCamera Zoom camera CAIBO3D::RotateCamera Rotate camera CAIBO3D::GetCameraPos Get camera position CAIBO3D::GetCameraAngle Get camera angle CAIBO3D::SetLight Set light CAIBO3D::SetFloorTexture Set floor texture CAIBO3D::SetBackTexture Set background texture CAIBO3D::DeleteFloorTexture Delete floor texture CAIBO3D::DeleteBackTexture Delete background texture CAIBO3D::SetLocalRotationX Set the X-axis rotation of the AIBO 3D model in local coordinates CAIBO3D::SetLocalRotationY Set the Y-axis rotation of the AIBO 3D model in local coordinates CAIBO3D::SetLocalRotationZ Set the Z-axis rotation of the AIBO 3D model in local coordinates CAIBO3D::SetLocalRotation Set the rotation of the AIBO 3D model in local coordinates CAIBO3D::SetLocalTransfer Set the parallel translation of the AIBO 3D model in local coordinates CAIBO3D::GetLocalRotation Get the rotation of the AIBO 3D model in local coordinates CAIBO3D::GetLocalTransfer Get the parallel translation of the AIBO 3D model in local coordinates CAIBO3D::ShowCopyModel Show/Hide a duplicate model CAIBO3D::IsShowCopyModel Get the status (shown/hidden) of the duplicate model CAIBO3D::SetCopyModelRotationX Set the X-axis rotation of the duplicate AIBO 3D model in local coordinates CAIBO3D::SetCopyModelRotationY Set the Y-axis rotation of the duplicate AIBO 3D model in local coordinates CAIBO3D::SetCopyModelRotationZ Set the Z-axis rotation of the duplicate AIBO 3D model in local coordinates CAIBO3D::SetCopyModelRotation Set the rotation of the duplicate AIBO 3D model in local coordinates CAIBO3D::SetCopyModelTransfer Set the parallel translation of the duplicate AIBO 3D model in local coordinates CAIBO3D::GetCopyModelRotation Get the rotation of the duplicate AIBO 3D model in local coordinates CAIBO3D::GetCopyModelTransfer Get the parallel translation of the duplicate AIBO 3D model in local coordinates CAIBO3D::IsShowDrawText2D Get the status (shown/hidden) of the 2D text CAIBO3D::ShowDrawText2D Show/Hide the 2D text CAIBO3D::CreateDrawText2DSurface Create the surface for the 2D text CAIBO3D::SetDrawText2DString Set the string of the 2D text CAIBO3D::SetDrawText2DFont Set the font of the 2D text CAIBO3D::SetDrawText2DColor Set the color of the 2D text CAIBO3D::SetDrawText2DBackColor Set the background color of the 2D text CAIBO3D::SetDrawText2DBackTransparent Set the transparency of the 2D text CAIBO3D::SetDrawText2DDrawArea Set the drawing area of the 2D text CAIBO3D::IsShowDrawText3D Get the status (shown/hidden) of the 3D text CAIBO3D::ShowDrawText3D Show/Hide the 3D text CAIBO3D::CreateDrawText3DSurface Create the surface of the 3D text CAIBO3D::SetDrawText3DString Set the string of the 3D text CAIBO3D::SetDrawText3DFont Set the font of the 3D text CAIBO3D::SetDrawText3DColor Set the color of the 3D text CAIBO3D::SetDrawText3DBackColor Set the background color of the 3D text CAIBO3D::SetDrawText3DBackTransparent Set the transparency of the 3D text CAIBO3D::SetDrawText3DBasePoint Set the base point of the 3D text CAIBO3D::SetDrawText3DDrawArea Set the drawing area of the 3D text CAIBO3D::GetVersion Get the version Header: AIBO3D.h.
Library: AIBO3D.lib
API Name Function CCpcInfo::CCpcInfo Constructor CCpcInfo::~CCpcInfo Destructor CCpcInfo::GetJointArray Get the array of joint IDs CCpcInfo::GetSensorArray Get an array of Primitive Locator IDs and sensor data CCpcInfo::GetPrimitiveLocator Get a Primitive Locator Header: CpcInfo.h
Library: CpcInfo.lib
API Name Function DiscoveryAIBOByUPnP Search for AIBO using UPnP Header: VAIBOUPnPClient.h
Library: VAIBOUPnP.lib
API Name Function CVAIBOTTS::Init Initialize library CVAIBOTTS::End End library CVAIBOTTS::GetTTSEngineNum Get the number of TTS engines CVAIBOTTS::GetTTSEngineName Get the name of a TTS engine CVAIBOTTS::GetTTSEngineKind Get the type of TTS engine CVAIBOTTS::GetVoiceEngine Get the current TTS engine CVAIBOTTS::SetVoiceEngine Set the current TTS engine CVAIBOTTS::Speak Generate speech from a string using TTS CVAIBOTTS::MakeWaveFile Generate a WAV file from a string using TTS CVAIBOTTS::MakePcmData Generate PCM data from a string using TTS CVAIBOTTS::SetVoiceSpeed Set VOICE speed CVAIBOTTS::SetVoicePitch Set VOICE pitch CVAIBOTTS::SetVoiceAccent Set VOICE accent CVAIBOTTS::SetVoiceVolume Set VOICE volume CVAIBOTTS::SetOutputFormat Set PCM data output format CVAIBOTTS::GetVoiceSpeed Get VOICE speed CVAIBOTTS::GetVoicePitch Get VOICE pitch CVAIBOTTS::GetVoiceAccent Get VOICE accent CVAIBOTTS::GetVoiceVolume Get VOICE volume CVAIBOTTS::GetOutputFormat Get PCM data output format CVAIBOTTS::GetWordNumInLexicon Get the number of registered words in the lexicon CVAIBOTTS::GetWordInLexicon Get a registered word in the lexicon CVAIBOTTS::GetPronunciationInLexicon Get the pronunciation of a registered word in the lexicon CVAIBOTTS::GetPartInLexicon Get a part of a registered word in the lexicon CVAIBOTTS::AddWordInLexicon Add a word to the lexicon CVAIBOTTS::DeleteWordInLexicon Delete a word from the lexicon Header: VAIBOTTS.h
[+] ssnykp.dll, sony_tts_dll.dll, ssnykp.dll, udlib.dll, posattr.dll, and uwkanjidll.dll are used in CAIBOTTS.
Library: VAIBOTTS.lib