更新日：2004/11/04

変更履歴 
------ Beta1からの変更点
* Speak()関数のAPIを変更。AIBOから音声が再生される
* VAIBOTTS.h  エラーコード追加
   // Speak
   E_VAIBOTTS_ERROR_OVER_STRING, 
   E_VAIBOTTS_ERROR_NOT_CONNECTED,
   E_VAIBOTTS_ERROR_BUSY_NETAUDIO,
   E_VAIBOTTS_ERROR_NOT_START_NETAUDIO,
   E_VAIBOTTS_ERROR_NOT_MAKEWAVEFILE,
   E_VAIBOTTS_ERROR_NOT_SNEDWAVEFILE,



// エラーコード一覧 
enum {
    E_VAIBOTTS_NOERROR,
    // All 
    E_VAIBOTTS_ERROR,                                     // 汎用 
    E_VAIBOTTS_ERROR_NOT_START,                           // エンジンが初期化されていない 
    E_VAIBOTTS_ERROR_ILLEGAL_LEXICON,                     // 入力された辞書種別がおかしい  
    // SonyTTS 
    E_VAIBOTTS_ERROR_SONYTTS_INIT,                        // エンジンの初期化に失敗した 
    E_VAIBOTTS_ERROR_SONYTTS_NOT_START,                   // エンジンが初期化されていない 
    E_VAIBOTTS_ERROR_SONYTTS_OPENFILE,                    // Waveファイルのオープンエラー 
    E_VAIBOTTS_ERROR_SONYTTS_CONVERTER,                   // 音声データへの変換エラー 
    E_VAIBOTTS_ERROR_SONYTTS_BUFFER_SIZE_OVER,            // バッファサイズが足らない 
    E_VAIBOTTS_ERROR_SONYTTS_ACM_FORMAT_COMVERTER,        // Waveフォーマットの変換エラー 
    E_VAIBOTTS_ERROR_SONYTTS_LEXICON_INIT,                // 辞書がオープンできない 
    E_VAIBOTTS_ERROR_SONYTTS_LEXICON_ILLEGAL_WORDNO,      // 単語のインデックスがおかしい 
    E_VAIBOTTS_ERROR_SONYTTS_LEXICON_ILLEGAL_WORD,        // 登録する単語がおかしい 
    E_VAIBOTTS_ERROR_SONYTTS_LEXICON_ILLEGAL_PHONE,       // 登録する単語の読みがおかしい 
    E_VAIBOTTS_ERROR_SONYTTS_LEXICON_ILLEGAL_PART,        // 登録する単語の品詞がおかしい 
    E_VAIBOTTS_ERROR_SONYTTS_LEXICON_ENTRY_API,           // 登録するSonyTTS API でエラー 
    // SAPI 
    E_VAIBOTTS_ERROR_SAPI_INIT,                           // エンジンの初期化に失敗した 
    E_VAIBOTTS_ERROR_SAPI_NOT_START,                      // エンジンが初期化されていない 
    E_VAIBOTTS_ERROR_SAPI_OUTPUTSTREAM,                   // 音声の出力でエラー 
    E_VAIBOTTS_ERROR_SAPI_LEXICON_INIT,                   // 辞書の初期化でエラー 
    E_VAIBOTTS_ERROR_SAPI_LEXICON_NOT_START,              // 辞書が初期化されていない 
    E_VAIBOTTS_ERROR_SAPI_LEXICON_ILLEGAL_WORDNO,         // 単語のインデックスがおかしい
    E_VAIBOTTS_ERROR_SAPI_LEXICON_ILLEGAL_LANGUAGE,       // 辞書の言語設定がおかしい 
    E_VAIBOTTS_ERROR_SAPI_LEXICON_ILLEGAL_PART,           // 登録する単語の品詞がおかしい 
    E_VAIBOTTS_ERROR_SAPI_LEXICON_CONVERTER,              // 登録する単語のコンバータでエラー 
    // Speak
    E_VAIBOTTS_ERROR_OVER_STRING,                         // 入力文章が長すぎる
    E_VAIBOTTS_ERROR_NOT_CONNECTED,                       // AIBOに接続できていない
    E_VAIBOTTS_ERROR_BUSY_NETAUDIO,                       // NETAUDIO使用中
    E_VAIBOTTS_ERROR_NOT_START_NETAUDIO,                  // NETAUDIOが開始されていない
    E_VAIBOTTS_ERROR_NOT_MAKEWAVEFILE,                    // WAVEファイルが作成できない
    E_VAIBOTTS_ERROR_NOT_SNEDWAVEFILE,                    // WAVEファイルをAIBOに送れない

    MAX_E_VAIBOTTS_ERROR
};


■Init
【機能】ライブラリの初期化
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】ライブラリを初期化する
【形式】
int     CVAIBOTTS::Init()

■End
【機能】ライブラリの終了
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】ロイブラリを終了する
【形式】
int     CVAIBOTTS::End()


■GetTTSEngineNum
【機能】TTSエンジンの個数の取得
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】TTSエンジンの個数を取得する
【形式】
int     CVAIBOTTS::GetTTSEngineNum(
                            int& nListNum )         // エンジンの個数(出力) 

■GetTTSEngineName
【機能】TTSエンジンの名前の取得
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】TTSエンジンの名前を取得する
【形式】
int     CVAIBOTTS::GetTTSEngineName(
                            int nIdx,               // エンジンのインデックス 
                            char* strEngineName )   // エンジンの名前(出力) 

■GetTTSEngineKind
【機能】TTSエンジンの種別の取得
【戻り値】TTSエンジンの種別(E_VAIBOTTS_ENGINE_SONYTTS,E_VAIBOTTS_ENGINE_SAPI..)
【機能説明】TTSエンジンの種別を取得する
【形式】
E_VAIBOTTS_ENGINE   CVAIBOTTS::GetTTSEngineKind(
                            int nIdx )              // エンジンのインデックス 


■GetVoiceEngine
【機能】カレントのTTSエンジンの取得
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】カレントのTTSエンジンを取得する
【形式】
int     CVAIBOTTS::GetVoiceEngine(
                            int* pIdx )             // エンジンのインデックス(出力) 

■SetVoiceEngine
【機能】カレントのTTSエンジンの設定
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】カレントのTTSエンジンを設定する
【形式】
int     CVAIBOTTS::SetVoiceEngine(
                            int nIdx )              // エンジンのインデックス 


■Speak
【機能】文字列をTTS変換して再生
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】文字列をTTS変換して再生する
    m_vaibo で声を出すAIBOを設定する。NULLを設定するとPCのスピーカで再生する
【形式】
int     CVAIBOTTS::Speak(
                            CVAIBO *m_vaibo,        // 話すAIBO
                            const char* strText )   // 入力文字列 

■MakeWaveFile
【機能】文字列をTTS変換してWAVEファイルを出力
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】文字列をTTS変換してWAVEファイルを出力する
【形式】
int     CVAIBOTTS::MakeWaveFile(
                            const char* strText,      // 入力文字列 
                            const char* strFileName ) // 出力ファイル名 

■MakePcmData
【機能】文字列をTTS変換してPCMデータを出力
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】文字列をTTS変換してPCMデータを出力する
【形式】
int     CVAIBOTTS::MakePcmData(
                            const char* strText,       // 入力文字列 
                            char* pPcmData,            // 出力バッファ 
                            int* pPcmDataSize,         // 出力データサイズ 
                            int nMaxSize )             // 出力バッファサイズ 


■SetVoiceSpeed
【機能】VOICEのスピードの設定
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】VOICEのスピードを設定する
【形式】
int     CVAIBOTTS::SetVoiceSpeed(
                            unsigned int unSpeed )     // スピード(0〜VOICE_PARAM_MAX(100))

■SetVoicePitch
【機能】VOICEのピッチの設定
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】VOICEのピッチを設定する。SAPIのエンジンに対しては無効
          
【形式】
int     CVAIBOTTS::SetVoicePitch(
                            unsigned int unPitch )     // ピッチ(0〜VOICE_PARAM_MAX(100))

■SetVoiceAccent
【機能】VOICEのアクセントの設定
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】VOICEのアクセントを設定する。SAPIのエンジンに対しては無効
【形式】
int     CVAIBOTTS::SetVoiceAccent(
                            unsigned int unAccent )     // アクセント(0〜VOICE_PARAM_MAX(100))

■SetVoiceVolume
【機能】VOICEのボリュームの設定
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】VOICEのボリュームを設定する
【形式】
int     CVAIBOTTS::SetVoiceVolume(
                            unsigned int unVolume )     // ボリューム(0〜VOICE_PARAM_MAX(100))

■SetOutputFormat
【機能】出力PCMデータフォーマットの設定
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】出力PCMデータフォーマットを設定する
【形式】
int     CVAIBOTTS::SetOutputFormat(
                            int nWaveFormat )           // PCMデータフォーマット(E_TTS_WAVE_FORMAT_16K_16BIT,E_TTS_WAVE_FORMAT_8K_8BIT..)


■GetVoiceSpeed
【機能】VOICEのスピードの取得
【戻り値】スピード(0〜VOICE_PARAM_MAX(100))
【機能説明】VOICEのスピードを取得する
【形式】
unsigned int    CVAIBOTTS::GetVoiceSpeed()

■GetVoicePitch
【機能】VOICEのピッチの取得
【戻り値】ピッチ(0〜VOICE_PARAM_MAX(100))
【機能説明】VOICEのピッチを取得する
【形式】
unsigned int    CVAIBOTTS::GetVoicePitch()

■GetVoiceAccent
【機能】VOICEのアクセントの取得
【戻り値】アクセント(0〜VOICE_PARAM_MAX(100))
【機能説明】VOICEのアクセントを取得する
【形式】
unsigned int    CVAIBOTTS::GetVoiceAccent()

■GetVoiceVolume
【機能】VOICEのボリュームの取得
【戻り値】ボリューム(0〜VOICE_PARAM_MAX(100))
【機能説明】VOICEのボリュームを取得する
【形式】
unsigned int    CVAIBOTTS::GetVoiceVolume()

■GetOutputFormat
【機能】出力PCMデータフォーマットの取得
【戻り値】PCMデータフォーマット(E_TTS_WAVE_FORMAT_16K_16BIT,E_TTS_WAVE_FORMAT_8K_8BIT..)
【機能説明】出力PCMデータフォーマットを取得する
【形式】
int         CVAIBOTTS::GetOutputFormat()


■GetWordNumInLexicon
【機能】辞書登録語句数の取得
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】辞書登録語句数を取得する
【形式】
int     CVAIBOTTS::GetWordNumInLexicon(
                                E_VAIBOTTS_LEXICON eLexicon,    // 辞書種別(E_VAIBOTTS_LEXICON_SONYTTS_J,E_VAIBOTTS_LEXICON_SAPI_E..) 
                                int& nWord )                    // 語句数(出力) 

■GetWordInLexicon
【機能】辞書登録語句の取得
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】辞書登録語句を取得する
【形式】
int     CVAIBOTTS::GetWordInLexicon(
                                E_VAIBOTTS_LEXICON eLexicon,    // 辞書種別(E_VAIBOTTS_LEXICON_SONYTTS_J,E_VAIBOTTS_LEXICON_SAPI_E..)
                                int nIdx,                       // 語句のインデックス 
                                char* strWord )                 // 語句(出力) 


■GetPronunciationInLexicon
【機能】辞書登録語句の発音の取得
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】辞書登録語句の発音を取得する
          日本語辞書の場合は読み仮名、英語の場合は発音記号文字列を返す
【形式】
int     CVAIBOTTS::GetPronunciationInLexicon(
                                E_VAIBOTTS_LEXICON eLexicon,    // 辞書種別(E_VAIBOTTS_LEXICON_SONYTTS_J,E_VAIBOTTS_LEXICON_SAPI_E..)
                                int nIdx,                       // 語句のインデックス 
                                char* strPronunciation )        // 発音文字列(出力)

■GetPartInLexicon
【機能】辞書登録語句の品詞の取得
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】辞書登録語句の品詞を取得する
【形式】
int     CVAIBOTTS::GetPartInLexicon(
                                E_VAIBOTTS_LEXICON eLexicon,    // 辞書種別(E_VAIBOTTS_LEXICON_SONYTTS_J,E_VAIBOTTS_LEXICON_SAPI_E..)
                                int nIdx,                       // 語句のインデックス 
                                char* strPart )                 // 品詞文字列(出力) 

■AddWordInLexicon
【機能】辞書に新規語句の登録
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】辞書に新規語句を登録する
          SonyTTSとSAPIでは登録できる品詞に違いがある
【形式】
int     CVAIBOTTS::AddWordInLexicon(
                                E_VAIBOTTS_LEXICON eLexicon,    // 辞書種別(E_VAIBOTTS_LEXICON_SONYTTS_J,E_VAIBOTTS_LEXICON_SAPI_E..)
                                char* strWord,                  // 語句 
                                char* strPhone,                 // 発音文字列 
                                E_VAIBOTTS_PART ePart )         // 品詞(E_VAIBOTTS_PART_SAPI_NOUN,E_VAIBOTTS_PART_SONYTTS_FUTUU_NOUN)

■DeleteWordInLexicon
【機能】辞書登録語句の削除
【戻り値】成功：E_VAIBOTTS_NOERROR  失敗：エラーコード
【機能説明】辞書登録語句を削除する
【形式】
int     CVAIBOTTS::DeleteWordInLexicon(
                                E_VAIBOTTS_LEXICON eLexicon,    // 辞書種別(E_VAIBOTTS_LEXICON_SONYTTS_J,E_VAIBOTTS_LEXICON_SAPI_E..)
                                int nIdx )                      // 語句のインデックス 

