#ifndef _IKDDIDSR_H_
#define _IKDDIDSR_H_
/*======================================================================
FILE:	IKDDIDSR.h

SERVICES:
	This file provides the interfaze specification for
	the KDDI DSRSYSTEM Interface

CLASS IDs:

NOTES:

DISTRIBUTION:

Correction history:
11/29/2004:KDDI_DSR_CMDへKDDI_DSR_CMD_INITIALIZEを追加（奈須）
11/29/2004:KDDI_DSR_STATUSのKDDI_DSR_STATUS_ERRORを削除し
				　KDDI_DSR_STATUS_REPORT、KDDI_DSR_STATUS_BADSTATEを追加（奈須）
11/29/2004:KDDI_DSR_MASKよりKDDI_DSR_MASK_STARTTOBEGIN,KDDI_DSR_MASK_RESULT
                  KDDI_DSR_MASK_ERROR,KDDI_DSR_MASK_ABORTを削除（奈須）
12/28/2004:KDDIDSRServerにpServerPathの追加(奈須)
01/12/2005:KDDI_DSR_STATUSにKDDI_DSR_STATUS_RECORDNOISEを追加(奈須)
06/07/2005:新DSR用BREWインタフェースに対応(奈須)
07/12/2005:IKDDIDSR_SetRecognitionErrorMaskの追記(奈須)
09/15/2005:KDDI Error Codeの追記(奈須)
09/30/2005:KDDIDSRNetInfo、IKDDIDSR_SelectNetworkの追記(奈須)
10/20/2005:KDDI Error Codeへ「KDDI_DSR_EUNSUPPORTED」の追記（奈須）
11/09/2005:「#define  KDDI_DSR_RESULT_LENGTH	128」を追記（奈須）
11/09/2005:KDDIDSRResult char* pWord を char cWord[128]と変更（奈須）
======================================================================*/

/*---------------------------------------------------------------------
		Include Files
---------------------------------------------------------------------*/
#include "AEE.h"
#include "KDDI_DSR.BID"


//-------------------------------------------------------------------
// Interface Definitions
//-------------------------------------------------------------------

typedef struct IKDDIDSR IKDDIDSR;

//---------------------------------------------------------------------
// KDDI DSR Error Code
//---------------------------------------------------------------------
#define  KDDI_DSR_SUCCESS			0x00000000				// 成功
#define  KDDI_DSR_EFAILED			0xFFFFFFFF				// 失敗
#define  KDDI_DSR_EBADPARM			0xFFFFFFFE				// 不正なパラメータ
#define  KDDI_DSR_EBADSTATE			0xFFFFFFFD				// 状態不一致
#define  KDDI_DSR_ENORESULT			0xFFFFFFFC				// 指定したElementが結果内にない
#define  KDDI_DSR_EUNSUPPORTED		0xFFFFFFFB				// 未対応のAPIの使用

//---------------------------------------------------------------------
//KDDI_DSR_XXX_LENGTH
//	DSR制御パラメータで入力する文字列の長さ。
//---------------------------------------------------------------------
#define  KDDI_DSR_NAME_LENGTH			256			//コンテンツプロバイダを表す名前の長さ
#define  KDDI_DSR_ADDRESS_LENGTH		16			//音声認識サーバのアドレスの長さ
#define  KDDI_DSR_PATH_LENGTH			256			//音声認識サーバのパスの長さ
#define  KDDI_DSR_APPLICATION_LENGTH	1024		//アプリケーション情報の長さ060705
#define  KDDI_DSR_RESULT_LENGTH			128			//認識結果の単語文字列の長さ

//---------------------------------------------------------------------
//KDDI_DSR_ERRORMASK
//	誤認識原因推定機能によるエラー種別。
//071205
//---------------------------------------------------------------------
#define  KDDI_DSR_ERRORMASK_NOISE			0x00000001		//過大背景雑音
#define  KDDI_DSR_ERRORMASK_OVERFLOW		0x00000002		//オーバーフロー
#define  KDDI_DSR_ERRORMASK_BEGINNINGBREAK	0x00000004		//話頭切断
#define  KDDI_DSR_ERRORMASK_DEFAULT			0x00000003		//デフォルト設定　過大背景雑音＋オーバーフロー

/*PTX805	TRK1424	start	*/
//---------------------------------------------------------------------
//KDDI_DSR_DBPOWER_INTERVAL_XXX
//	音声パワー（DBPower）値通知間隔の設定値（ミリ秒）
//---------------------------------------------------------------------
#define  KDDI_DSR_DBPOWER_INTERVAL_DEFAULT	(0)				//DBPower通知間隔　デフォルト
#define  KDDI_DSR_DBPOWER_INTERVAL_MIN		(100)			//DBPower通知間隔　最小値
#define  KDDI_DSR_DBPOWER_INTERVAL_MAX		(20000)			//DBPower通知間隔　最大値
/*PTX805	TRK1424		end	*/

//---------------------------------------------------------------------
//コマンドコード
//	コマンドコードは、イベントタイプを示すためとクライアントにデータを返すために、
//	登録済みコールバック関数を介して返される。
//
//---------------------------------------------------------------------
typedef enum _KDDI_DSR_CMD
{
	KDDI_DSR_CMD_INITIALIZE,					//IKDDIDSR_Initialize()からのコマンド112904
	KDDI_DSR_CMD_INITIALIZECAPTURE,				//IKDDIDSR_InitializeCapture()からのコマンド060705
	KDDI_DSR_CMD_STARTCAPTURE,					//IKDDIDSR_StartCapture()からのコマンド
	KDDI_DSR_CMD_STOPCAPTURE,					//IKDDIDSR_StopCapture()からのコマンド
	KDDI_DSR_CMD_CANCELCAPTURE					//IKDDIDSR_CancelCapture()からのコマンド
}KDDI_DSR_CMD;

//---------------------------------------------------------------------
//ステータスコード
//	IKDDIDSR_RegisterNotify()で登録されたコールバック関数に対して、DSR制御
//	機能から通知される、状態を表す。
//
//---------------------------------------------------------------------
typedef enum  _KDDI_DSR_STATUS
{
	KDDI_DSR_STATUS_RECNOISE_START,				//雑音データの収集開始060705
	KDDI_DSR_STATUS_RECNOISE_END,				//雑音データの収集終了060705
	KDDI_DSR_STATUS_STARTTOBEGIN,				//音声取込開始された
	KDDI_DSR_STATUS_BEGINCAPTURE,				//発話が検出された
	KDDI_DSR_STATUS_DBPOWER,					//検出中のdB値を返す
	KDDI_DSR_STATUS_ENDCAPTURE,					//終話が検出された
	KDDI_DSR_STATUS_SENDDATA,					//データが送信された
	KDDI_DSR_STATUS_REPORT,						//エラー、ステータスを示す112904
	KDDI_DSR_STATUS_STOPCAPTURE,				//強制終話
	KDDI_DSR_STATUS_CANCELCAPTURE,				//音声認識処理の取り消し112904
	KDDI_DSR_STATUS_ABORT,						//異常終了
	KDDI_DSR_STATUS_BADSTATE					//IKDDIDR_StartCapture(),_StopCapture(),_CancelCapture()
}KDDI_DSR_STATUS;								//において動作できない状態112904

//---------------------------------------------------------------------
//音響分析方式コード
//	IKDDIDSR_SetAnalysisKind()にて、音響分析方式を変更する。
//	
//060705
//---------------------------------------------------------------------
typedef enum _KDDI_DSR_ANALYSIS_KIND
{
	KDDI_DSR_ANALYSIS_AUTO,						//自動分析方式
	KDDI_DSR_ANALYSIS_KIND_ES201108,			//ETSI ES 201 108方式
	KDDI_DSR_ANALYSIS_KIND_ES202050				//ETSI ES 202 050方式
}KDDI_DSR_ANALYSIS_KIND;


//---------------------------------------------------------------------
//KDDIDSRBusiness
//	音声認識のためのコンテンツ識別情報を保持する。
//
//---------------------------------------------------------------------
typedef struct  _KDDIDSRBusiness
{
	uint32  iBusinessID;								//コンテンツプロバイダを表す識別情報
	char  	cBusinessName[KDDI_DSR_NAME_LENGTH];		//コンテンツプロバイダを表す名前情報
	uint32  iBusinessServiceID;							//コンテンツプロバイダのサービスを表す識別情報
	char  	cBusinessServiceName[KDDI_DSR_NAME_LENGTH]; //コンテンツプロバイダのサービスを表す識別情報
}KDDIDSRBusiness;


//---------------------------------------------------------------------
//KDDIDSRServer
//	音声認識サーバのサーバ情報を保持する。
//
//---------------------------------------------------------------------
typedef struct  _KDDIDSRServer
{
	char  	cServerAddress[KDDI_DSR_ADDRESS_LENGTH];	//音声認識サーバのアドレス
	uint16  iServerPort;								//音声認識サーバのポート
	char	cServerPath[KDDI_DSR_PATH_LENGTH];			//音声認識サーバのパス
} KDDIDSRServer;

//---------------------------------------------------------------------
//KDDIDSRApplication
//	コンテンツプロバイダ固有の情報を保持する。
//
//---------------------------------------------------------------------
typedef struct  _KDDIDSRApplication 
{
	char  cApplication[KDDI_DSR_APPLICATION_LENGTH];	//コンテンツプロバイダ固有の情報
} KDDIDSRApplication;

//---------------------------------------------------------------------
//KDDIDSRParm
//	この構造体は、DSRの各種パラメータ情報を格納する。
//	
//---------------------------------------------------------------------
typedef  struct  _KDDIDSRParm
{
	uint16		kddidsrAnalysisKind;			//音響分析方式060705
	uint16		iScore;							//認識スコア。設定した値以上の単語を返す
	uint16		iNBest;							//NBest(取得できる認識結果の個数)の値
	uint32		iResultMask;					//誤認識推定機能の利用状態060705
	uint16		iStartTime;						//音声取込開始から発話(始端)までのタイムアウト秒数
	uint16		iCaptureTime;					//発話(始端)開始から終話までのタイムアウト秒数
	uint16		iInterval;						//DBPower値の通知間隔060705
}KDDIDSRParm;


//---------------------------------------------------------------------
//KDDIDSRResult
//	認識結果の情報を保持する。
//
//---------------------------------------------------------------------
typedef struct  _KDDIDSRResult 
{
	uint16	iScore;							//認識結果のスコアが格納される
	char    cWord[KDDI_DSR_RESULT_LENGTH];	//認識結果が格納される
	uint32	iDataSize;						//cWordのサイズが格納される
} KDDIDSRResult;

//---------------------------------------------------------------------
//KDDIDSRNotifyData
//	この構造体は、DSRによってされたイベントのステータスに応じて
//  オプショナルデータが格納される情報を格納する。
//060705
//---------------------------------------------------------------------
typedef  struct  _KDDIDSRNotifyData
{
	int32 iData1;						//オプショナルデータ１
	int32 iData2;						//オプショナルデータ２
} KDDIDSRNotifyData;


//---------------------------------------------------------------------
//KDDIDSRNotify
//	この構造体は、DSRによってされたイベントの情報を格納する。
//	これは、登録されたコールバック通知関数へ送られる。
//
//---------------------------------------------------------------------
typedef  struct  _KDDIDSRNotify
{
	IKDDIDSR *pIKDDIDSR;						//IKDDIDSRへのポインタ
	uint32  kddidsrCmd;							//コマンドコード
	uint32  kddidsrStatus;						//ステータスコード
	KDDIDSRNotifyData  kddidsrNotifyData;		//ステータスに応じてオプショナルデータが格納される060705
} KDDIDSRNotify;


//---------------------------------------------------------------------
//KDDIDSRNetInfo
//	PPP接続ネットワーク(ドメイン)情報
//0930  
//---------------------------------------------------------------------
typedef struct  _KDDIDSRNetInfo 
{
	int  nNetwork;						//ネットワークID(INETMGR_SelectNetwork()で設定するネットワークID)
} KDDIDSRNetInfo;


//---------------------------------------------------------------------
//コールバック関数の型定義
//---------------------------------------------------------------------
typedef  void (*PFNKDDIDSRNOTIFY)(void  * pUser,KDDIDSRNotify  * pNotify);


//---------------------------------------------------------------------
//
//	IKDDIDSR	Interface Definition
//
//---------------------------------------------------------------------

AEEINTERFACE(IKDDIDSR){
   INHERIT_IQueryInterface(IKDDIDSR);
	int		(*SetBusiness)		(IKDDIDSR *po, KDDIDSRBusiness  kddidsrBusiness);
	int		(*SetServer)		(IKDDIDSR *po, KDDIDSRServer	kddidsrServer);
	int		(*SetAnalysisKind)	(IKDDIDSR *po, uint16	kddidsrAnalysisKind);
	int		(*SetRejectedScore) (IKDDIDSR *po, uint16	iScore);
	int		(*SetNBest)			(IKDDIDSR *po, uint16	iNBest);
	int		(*SetRecognitionErrorMask)	(IKDDIDSR *po, uint32	iResultMask);
	int		(*SetUtteranceTime) (IKDDIDSR *po, uint16	iStartTime,	uint16	iCaptureTime);
	int		(*SetDBPowerInterval) (IKDDIDSR *po, uint16	iInterval);
	int		(*SetApplication)	(IKDDIDSR *po, KDDIDSRApplication	kddidsrApplication);
	int     (*SelectNetwork)	(IKDDIDSR *po, KDDIDSRNetInfo   kddidsrNetInfo);//0930
	int		(*RegisterNotify)	(IKDDIDSR *po, PFNKDDIDSRNOTIFY pfnNotify, void *pUser);
	int		(*Initialize)		(IKDDIDSR *po);
	int		(*InitializeCapture)	(IKDDIDSR *po);
	int		(*StartCapture)		(IKDDIDSR *po);
	int		(*StopCapture)		(IKDDIDSR *po);
	int		(*CancelCapture)	(IKDDIDSR *po);
	int		(*GetResult)		(IKDDIDSR *po, char *pData, uint32* pDataSize);
	int		(*GetElemResult)	(IKDDIDSR *po, char *pElem, KDDIDSRResult* (pKDDIDSRResult[]));
	int		(*GetBusiness)		(IKDDIDSR *po, KDDIDSRBusiness*	pKddiDsrBusiness);
	int		(*GetServer)		(IKDDIDSR *po, KDDIDSRServer*	pKddiDsrServer);
	int		(*GetApplication)	(IKDDIDSR *po, KDDIDSRApplication*	pKddiDsrApplication);
	int		(*GetParm)			(IKDDIDSR *po, KDDIDSRParm *pKddiDsrParm);
#ifdef	OEMDSR_DEBUG
	int		(*HttpCb)			(IKDDIDSR *po, int status, char *pData, int iLen);
#endif	//OEMDSR_DEBUG
};

#define		IKDDIDSR_AddRef(po)						AEEGETPVTBL(po,IKDDIDSR)->AddRef(po)
#define		IKDDIDSR_Release(po)					AEEGETPVTBL(po,IKDDIDSR)->Release(po)
#define     IKDDIDSR_QueryInterface(po,c,i)         AEEGETPVTBL(po,IKDDIDSR)->QueryInterface(po,c,i)
#define     IKDDIDSR_SetBusiness(po, dsrB)          AEEGETPVTBL(po,IKDDIDSR)->SetBusiness(po, dsrB)
#define		IKDDIDSR_SetServer(po, dsrS)			AEEGETPVTBL(po,IKDDIDSR)->SetServer(po, dsrS)
#define		IKDDIDSR_SetAnalysisKind(po, dsrAK)		AEEGETPVTBL(po,IKDDIDSR)->SetAnalysisKind(po, dsrAK)
#define		IKDDIDSR_SetRejectedScore(po, iScore)	AEEGETPVTBL(po,IKDDIDSR)->SetRejectedScore(po, iScore)
#define		IKDDIDSR_SetNBest(po, iNBest)			AEEGETPVTBL(po,IKDDIDSR)->SetNBest(po, iNBest)
#define		IKDDIDSR_SetRecognitionErrorMask(po, iResultMask)	AEEGETPVTBL(po,IKDDIDSR)->SetRecognitionErrorMask(po, iResultMask)
#define		IKDDIDSR_SetUtteranceTime(po, iStartTime, iCaptureTime)	AEEGETPVTBL(po,IKDDIDSR)->SetUtteranceTime(po,iStartTime, iCaptureTime)
#define		IKDDIDSR_SetDBPowerInterval(po, iInterval)	AEEGETPVTBL(po,IKDDIDSR)->SetDBPowerInterval(po, iInterval)
#define		IKDDIDSR_SetApplication(po, dsrA)		AEEGETPVTBL(po,IKDDIDSR)->SetApplication(po, dsrA)
#define		IKDDIDSR_SelectNetwork(po, dsrNetInfo)	AEEGETPVTBL(po,IKDDIDSR)->SelectNetwork(po, dsrNetInfo)//0930
#define		IKDDIDSR_RegisterNotify(po, pfNt, pUsr)	AEEGETPVTBL(po,IKDDIDSR)->RegisterNotify(po, pfNt, pUsr)
#define		IKDDIDSR_Initialize(po)					AEEGETPVTBL(po,IKDDIDSR)->Initialize(po)
#define		IKDDIDSR_InitializeCapture(po)			AEEGETPVTBL(po,IKDDIDSR)->InitializeCapture(po)
#define		IKDDIDSR_StartCapture(po)				AEEGETPVTBL(po,IKDDIDSR)->StartCapture(po)
#define		IKDDIDSR_StopCapture(po)				AEEGETPVTBL(po,IKDDIDSR)->StopCapture(po)
#define		IKDDIDSR_CancelCapture(po)				AEEGETPVTBL(po,IKDDIDSR)->CancelCapture(po)
#define		IKDDIDSR_GetResult(po, pDt, pDtSz)		AEEGETPVTBL(po,IKDDIDSR)->GetResult(po, pDt, pDtSz)
#define		IKDDIDSR_GetElemResult(po, pEl, pRs)	AEEGETPVTBL(po,IKDDIDSR)->GetElemResult(po, pEl, pRs)
#define		IKDDIDSR_GetBusiness(po, pKDB)			AEEGETPVTBL(po,IKDDIDSR)->GetBusiness(po,	pKDB)
#define		IKDDIDSR_GetServer(po, pKDS)			AEEGETPVTBL(po,IKDDIDSR)->GetServer(po,	pKDS)
#define		IKDDIDSR_GetApplication(po, pKDA)		AEEGETPVTBL(po,IKDDIDSR)->GetApplication(po,pKDA)
#define		IKDDIDSR_GetParm(po, pKDP)			AEEGETPVTBL(po,IKDDIDSR)->GetParm(po,	pKDP)
#ifdef	OEMDSR_DEBUG
#define		IKDDIDSR_HttpCb(po, iSt, pData, iLen)	AEEGETPVTBL(po,IKDDIDSR)->HttpCb(po,	iSt, pData, iLen)
#endif	//OEMDSR_DEBUG

#endif //_IKDDIDSR_H_

/*
※以下はパラメータの表に入出力の型が混在している場合のみ、パラメータリストに[in]、[in/out]、及び[out]を示す。
パラメータが全て入力パラメータの場合、[in]は省略する。

1.1.　IKDDIDSR_SetBusiness()
説明：
	DSR制御パラメータの一つである音声認識のためのアプリケーション/コンテンツ識
	別情報を設定する。設定する情報は、音声認識システムの有する音声認識辞書とマッ
	ピングされ、アプリケーションに適した音声認識処理が選択される。
	アプリケーションの初回起動時には必ず設定する必要がある。
プロトタイプ：
	int IKDDIDSR_SetBusiness
		(
		IKDDIDSR * pIKDDIDSR,
		KDDIDSRBusiness  kddidsrBusiness
		)
パラメータ：
	pIKDDIDSR	IKDDIDSRインタフェースオブジェクトへのポインタ。
	kddidsrBusiness	音声認識のためのアプリケーション/コンテンツ識別情報。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
コメント：
アプリケーション/コンテンツ識別情報は、KDDIが割り当てと管理を行う。アプリケーション/コンテンツ識別情報の詳細は、KDDI担当者へ照会のこと。
参照：
	KDDIDSRBusiness
 
1.2.　IKDDIDSR_SetServer()
説明：
	DSR制御パラメータの一つである音声認識サーバのサーバ情報を設定する。
	このステップを省略すると、KDDIの指定する音声認識サーバのサーバ情報が
設定される
プロトタイプ：
	int IKDDIDSR_SetServer
		(
		IKDDIDSR * pIKDDIDSR,
		KDDIDSRServer　kddidsrServer
		)
パラメータ：
	pIKDDIDSR	IKDDIDSRインタフェースオブジェクトへのポインタ。
	kddidsrServer	音声認識サーバのサーバ情報。
					デフォルトはKDDIの保持するサーバのアドレス、ポート、パス
情報。

戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
KDDI_DSR_EFAILED	失敗。
コメント：
音声認識システムのIPアドレス情報、ポート番号、パス情報の詳細は、KDDIを含む
音声認識システムの提供事業者へ照会のこと。
参照：
	KDDIDSRServer

 
1.3.　IKDDIDSR_SetAnalysisKind()
説明：
	DSRクライアントによる音響分析方式を設定する。分析方式には、以下の3つ
	の方式がある。
	 	KDDI_DSR_ANALYSIS_AUTO	　音響分析方式を状況に応じて切り替える。
	 	KDDI_DSR_ANALYSIS_KIND_ES201108　処理速度が速い。雑音対策なし。
	 	KDDI_DSR_ANALYSIS_KIND_ES202050　処理速度が遅い。雑音対策あり。
	このステップを省略すると" KDDI_DSR_ANALYSIS_KIND_ES201108"が設定される。
プロトタイプ：
	int IKDDIDSR_SetAnalysisKind
		(
		IKDDIDSR * pIKDDIDSR,
		uint16  kddidsrAnalysisKind
		)
パラメータ：
	pIKDDIDSR		IKDDIDSRインタフェースオブジェクトへのポインタ。
	kddidsrAnalysisKind	DSRクライアントの音響分析方式。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
コメント：
音声認識処理を行う環境やアプリケーションに合わせて音響分析方式を設定することができる。
参照：
	KDDI_DSR_ANALYSIS_KIND
 
1.4.　IKDDIDSR_SetRejectedScore()
説明：
	DSR制御パラメータである音声認識結果のスコア(尤度)の閾値を設定する。
	iScoreで設定した値以下の音声認識結果は、アプリケーションに戻される結果に含まれない。
	このステップを省略すると、デフォルト値としてiScore	には "30"が設定される。
プロトタイプ：
	int IKDDIDSR_SetRejectedScore
		(
		IKDDIDSR * pIKDDIDSR,
		uint16 	iScore,
		)
パラメータ：
	pIKDDIDSR	IKDDIDSRインタフェースオブジェクトへのポインタ。
	iScore		スコアの閾値。設定した値以下のスコアである単語を破棄する。
				デフォルト値は30。設定範囲は0〜100。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
 
1.5.　IKDDIDSR_SetNBest()
説明：
	DSR制御パラメータであるNBest(取得できる認識結果の個数)を設定する。
	音声認識エンジンで複数の結果がある場合、認識スコアの高いものから順にiNBestで設定した値を最大として結果を返す。
	このステップを省略すると、デフォルト値としてiNBestには"5" が設定される。
プロトタイプ：
	int IKDDIDSR_SetNBest
		(
		IKDDIDSR * pIKDDIDSR,
		uint16	iNBest
		)
パラメータ：
	pIKDDIDSR	IKDDIDSRインタフェースオブジェクトへのポインタ。
	iNBest		NBestの値。設定した値が認識結果を返す最大数。
			デフォルト値は5。設定範囲は1〜10。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
 
1.6.　IKDDIDSR_SetRecognitionErrorMask()　
説明：
	誤認識原因推定機能によるエラーが検知された場合に、この機能を利用して音声認識処理を終了するか、
	音声認識処理を継続してサーバへアクセスして認識結果を取得するかをマスクにより指定する。
	誤認識原因は以下の通り。
	 	周辺雑音が大きい（過大背景雑音）
	 	声が大きい（オーバーフロー）
	 	話し始めが早く先頭が切れている（話頭切断）
	このエラーを検知したことをKDDI_DSR_STATUS_REPORTで通知する。（通知のタイミングについて下記コメント参照）
	iResultMask に"0"を指定すると、エラーが検知された後に音声認識処理が終了され、サーバへアクセスすることは無い。
	このステップを省略すると、デフォルト（過大背景雑音＋オーバーフロー）が設定される。
プロトタイプ：
	int IKDDIDSR_SetRecognitionErrorMask
		(
		IKDDIDSR * pIKDDIDSR,
		uint32  iResultMask
		)
パラメータ：
	pIKDDIDSR 	IKDDIDSRインタフェースオブジェクトへのポインタ。
	iResultMask	誤認識原因推定によるエラーを示すマスク。
				KDDI_DSR_ERRORMASK_NOISE：過大背景雑音
				KDDI_DSR_ERRORMASK_OVERFLOW：オーバーフロー
				KDDI_DSR_ERRORMASK_BEGINNINGBREAK：話頭切断
				KDDI_DSR_ERRORMASK_DEFAULT：デフォルト
							（過大背景雑音＋オーバーフロー）
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
コメント：
・エラー情報はKDDI_DSR_STATUS_REPORTのkddidsrNotifyDataのiData1に
格納される。
・音声認識処理を継続する場合と、終了する場合によってエラー通知のタイミングが異なる。
	【音声認識処理を継続】
		音声認識結果取得後、認識結果数とともにKDDI_DSR_STATUS_REPORTでエラーを通知する。（すべてのエラー種別）
	【音声認識処理を終了】
		音声認識処理を中止し、KDDI_DSR_STATUS_REPORTにより下記のタイミングでエラーを通知する。
		KDDI_DSR_STATUS_RECNOISE_END通知後（過大背景雑音のみ）
		KDDI_DSR_STATUS_ENDCAPTURE通知後（すべてのエラー種別）
		KDDI_DSR_STATUS_STOPCAPTURE通知後（すべてのエラー種別）

 
1.7.　IKDDIDSR_SetUtteranceTime()
説明：
	DSR制御パラメータである音声取込開始から発話(始端)までと、発話(始端)開始から
	終話までのそれぞれの音声区間の入力可能時間（秒）を設定する。
	このステップを省略すると、デフォルト値としてiStartTimeには "20"、
	iCaptureTimeには"20" が設定される。
プロトタイプ：
	int IKDDIDSR_SetUtteranceTime
		(
		IKDDIDSR * pIKDDIDSR,
		uint16 	iStartTime,
		uint16	iCaptureTime
		)
パラメータ：
	pIKDDIDSR	IKDDIDSRインタフェースオブジェクトへのポインタ。
	iStartTime	音声取込開始から発話(始端)までの入力可能時間。
				デフォルト値は20。設定範囲は1〜20。単位は秒。
				(0指定でタイムアウト無効）
	iCaptureTime	発話(始端)開始から終話までの入力可能時間。
					デフォルト値は20。設定範囲は1〜20。単位は秒。
					(0指定でタイムアウト無効）
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
コメント：
発話タイムアウトすると、音声取込待機状態からDSR初期化状態となる。
終話タイムアウトすると、音声取込を終了し、音声認識処理を継続する。
 
1.8.　IKDDIDSR_SetDBPowerInterval()
説明：
	DSRクライアントから通知される、入力された音声の音声パワー値（DBPower値：
	KDDI_DSR_STATUS_DBPOWER）の通知間隔(ミリ秒)を設定する。
	iIntervalに"０"を指定すると、KDDI_DSR_STATUS_DBPOWERは通知されない。
	このステップを省略すると、デフォルト値 "０" が設定される。
プロトタイプ：
	int IKDDIDSR_SetDBPowerInterval
		(
		IKDDIDSR * pIKDDIDSR,
		uint16  iInterval
		)
パラメータ：
	pIKDDIDSR	IKDDIDSRインタフェースオブジェクトへのポインタ。
	iInterval	DBPower値の通知間隔。
				デフォルト値は0。設定範囲は100〜20000。単位はミリ秒。
				(0指定でコールバック無効）

戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
参照：
KDDIDSRNotify
 
1.9.　IKDDIDSR_SetApplication()
説明：
	DSR制御パラメータに、必要に応じてコンテンツプロバイダ固有の情報を設定
	する。
	設定する情報はXML形式で表記し、設定可能な情報は、2バイト文字を含まない英数字と半角記号文字とする。
プロトタイプ：
	int IKDDIDSR_SetApplication
		(
		IKDDIDSR * pIKDDIDSR,
		KDDIDSRApplication　kddidsrApplication
		)
パラメータ：
	pIKDDIDSR	　　　　IKDDIDSRインタフェースオブジェクトへのポインタ。
	kddidsrApplication　　　 コンテンツプロバイダ固有の情報。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
コメント：
パラメータで示されたXML形式のコンテンツ固有情報に対して、シンタックスのチェックは行わない。この情報を指定する際には、XML記述は、シンタックス上、正しく記述されていることを前提とする。
	表記内容に特殊文字（>、<、"、'、&）を使用する場合は下記のように記述すること。

特殊文字	XML内での特別な意味	エンコーディング
＞	タグの終了	&gt;
＜	タグの開始	&lt;
"	引用符	&quot;
'	アポストロフィ	&apos;
&	アンパサンド	&amp;
コンテンツ固有の情報(xml)の記述例
		<user id="dsr_user" password="xxxxxx" />
		<server cgi="http://xxx.yyy/cgi?request=post&amp;date=today" />
参照：
	KDDIDSRApplication

1.10.　IKDDIDSR_SelectNetwork()
制限事項：
	本APIは、BREW3.1ならびにそれ以降のバージョンにのみ適用する。
	BREW2.1では、PPP接続ネットワークの選択は実施できない。
説明：
	BREWアプリケーションが使用するPPP接続ネットワーク(ドメイン)情報を設定する。
	設定するネットワーク情報は、INETMGR_SelectNetwork()で設定するネットワークIDとする。
	このステップでPPP接続ネットワーク(ドメイン)情報を設定する場合、
	IKDDIDSR_Initialize()を呼び出す前に設定する必要がある。
	このステップを省略した場合、すなわち、使用するPPP接続ネットワーク(ドメイン)を
	指定しない場合、一般用BREW.NETネットワーク(デフォルトネットワーク)が選択される。
プロトタイプ：
	int IKDDIDSR_SelectNetwork
		(
		IKDDIDSR * pIKDDIDSR,
	KDDIDSRNetInfo kddidsrNetInfo
	)
パラメータ：
	pIKDDIDSR	IKDDIDSRインタフェースオブジェクトへのポインタ。
	kddidsrNetInfo	使用するPPP接続ネットワーク(ドメイン)情報。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
	KDDI_DSR_EBADSTATE	状態不一致
コメント：
ネイティブに実装されているDSR機能は、音声認識システムと通信を行う際、
BREWアプリケーション側で確立されたPPP接続を利用することを前提とする。
しかし、DSR機能が音声認識システムと通信を行う際、PPP接続が確立していない場合
(例えば、規定の無通信期間を超えてPPP接続が開放された場合など)、
DSR機能にてPPP接続の再確立を実施する。
DSR機能がPPP接続の再確立を行う場合、BREWアプリケーションが使用する
ネットワーク(ドメイン)に対してPPP接続の確立を行う必要があるため、
このステップにより、BREWアプリケーション自身が使用している
PPP接続ネットワーク(ドメイン)の情報を設定する。ただし、BREWアプリケーションが
一般用BREW.NETネットワークを使用している場合は、このステップによる
ネットワーク(ドメイン)情報の設定を行う必要はない。一般用BREW.NETネットワークとは
異なるネットワーク(例えば、法人ネットワークなど)を利用する場合に限り、
このステップにより、PPP接続ネットワーク(ドメイン)情報を設定する必要がある。
BREWアプリケーションが使用するPPP接続ネットワーク(ドメイン)情報と
異なるネットワーク(ドメイン)が指定された場合、通信(動作)は保証しない

1.11.　IKDDIDSR_RegisterNotify()
説明：
	IKDDIDSRオブジェクトでのコールバック関数を登録する。
	IKDDIDSRは、このコールバックを使って非同期イベントを報告する。
	第2、第3引数をNULL指定でコールバックの登録を解除する。
プロトタイプ：
	int  IKDDIDSR_RegisterNotify
		(
		IKDDIDSR  * pIKDDIDSR,
		PFNKDDIDSRNOTIFY  pfnNotify,
		void  * pUser,
		)
パラメータ：
	pIKDDIDSR　	IKDDIDSRインタフェースオブジェクトへのポインタ。
	pfnNotify	ユーザコールバック関数のポインタ。
	pUser		pfnNotify()をコールするときに使用するユーザデータ。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EFAILED	失敗。
参照：
	PFNKDDIDSRNOTIFY
	KDDIDSRNotify
 
1.12.　IKDDIDSR_Initialize()
説明：
	各DSR制御パラメータを設定後、DSRクライアントの初期化を行い、起動待ち状態
	にする。アプリケーション初回起動時には必ず実行する必要がある。
	その後、音声認識処理を実行する際、各DSR制御パラメータを再設定した場合は、実行する必要がある。
	実行の際に、PPP接続の状態を確認し、接続されていなければ接続を確立する。
プロトタイプ：
	int  IKDDIDSR_Initialize
		(
		IKDDIDSR  * pIKDDIDSR
		)
パラメータ：
	pIKDDIDSR　IKDDIDSRインタフェースオブジェクトへのポインタ。
戻り値：
	KDDI_DSR_SUCCESS	コマンドが受け入れられた。
	KDDI_DSR_EBADSTATE	現在の状態では初期化できない。
				（Ex. IKDDIDSR_SetBusiness()が設定されていない場合）
	KDDI_DSR_EFAILED	失敗。
コメント：
	音声認識を行う場合にサーバとのPPP接続環境が必要。
　	PPP接続を確立する処理は、音声取込処理など他の処理と並行して行う。
 
1.13.　IKDDIDSR_InitializeCapture()
説明：
	DSRクライアントの初期化終了後、誤認識原因推定機能の判定のために1秒程度の周辺雑音を
	収録する。これは、IKDDIDSR_StartCapture()前に必ず実行する必要がある。
	実行の際、PPP接続の状態を確認し、接続されていなければ接続を確立する。
プロトタイプ：
	int  IKDDIDSR_InitializeCapture()
		(
		IKDDIDSR  * pIKDDIDSR
		)
パラメータ：
	pIKDDIDSR　IKDDIDSRインタフェースオブジェクトへのポインタ。
戻り値：
	KDDI_DSR_SUCCESS	コマンドが受け入れられた。
	KDDI_DSR_EBADSTATE	現在の状態では周辺雑音収録ができない。
				（Ex. アプリケーション初回起動時にIKDDIDSR_Initialize()が設定されていない場合）
	KDDI_DSR_EFAILED	失敗。
コメント：
	音声認識を行う場合にサーバとのPPP接続環境が必要。
　	PPP接続を確立する処理は、音声取込処理など他の処理と並行して行う。
 
1.14.　IKDDIDSR_StartCapture()
説明：
	IKDDIDSR_RegisterNotify()で登録したコールバックを呼び出し、音声認識処理を開始する。
	これは、IKDDIDSR_InitializeCapture()が実行された後のみ、実行可能となる。
	実行の際、PPP接続の状態を確認し、接続されていなければ接続を確立する。
プロトタイプ：
	int  IKDDIDSR_StartCapture
		(
		IKDDIDSR  * pIKDDIDSR
		)
パラメータ：
	pIKDDIDSR　IKDDIDSRインタフェースオブジェクトへのポインタ。
戻り値：
	KDDI_DSR_SUCCESS	コマンドが受け入れられた。
	KDDI_DSR_EBADSTATE	現在の状態では周辺雑音収録ができない。
				（Ex. アプリケーション初回起動時にIKDDIDSR_Initialize()が設定されていない、
				IKDDIDSR_InitializeCapture()が実行されていない場合）
	KDDI_DSR_EFAILED	失敗。
コメント：
	音声認識を行う場合にサーバとのPPP接続環境が必要。
　	PPP接続を確立する処理は、音声取込処理など他の処理と並行して行う。
 
1.15.　IKDDIDSR_StopCapture ()
説明：
	音声取込を中断(終話)する。DSRクライアントによる認識処理は継続し、PPP接続は確立した状態を保つ。
プロトタイプ：
	int  IKDDIDSR_StopCapture
		(
		IKDDIDSR  * pIKDDIDSR
		)
パラメータ：
	pIKDDIDSR　IKDDIDSRインタフェースオブジェクトへのポインタ。
戻り値：
	KDDI_DSR_SUCCESS	コマンドが受け入れられた。
	KDDI_DSR_EFAILED	失敗。
 
1.16.　IKDDIDSR_CancelCapture ()
説明：
	音声認識処理を中止して、DSRクライアントを起動待ち状態にする。PPP接続は確立した状態を保つ。
プロトタイプ：
	int  IKDDIDSR_CancelCapture
		(
		IKDDIDSR  * pIKDDIDSR
		)
パラメータ：
	pIKDDIDSR　IKDDIDSRインタフェースオブジェクトへのポインタ。
戻り値：
	KDDI_DSR_SUCCESS	コマンドが受け入れられた。
	KDDI_DSR_EFAILED	失敗。
 
1.17.　IKDDIDSR_GetResult()
説明：
	DSRクライアントが音声認識エンジンから得た認識結果を取得する。これは、
	コールバックによる認識結果の状態の通知(KDDI_DSR_STATUS_REPORT)を受け取った後から使用できる。
	その後、IKDDIDSR_Initialize()やIKDDIDSR_InitializeCapture()、またはIKDDIDSR_StartCapture()の
	処理が実行され、再び認識結果の状態の通知(KDDI_DSR_STATUS_REPORT)を受けるまでの間は使用できない。
	取得される結果の形式はアプリケーションに依存する。（Ex.XML、HTML、URL…）
プロトタイプ：
	int  IKDDIDSR_GetResult
		(
		IKDDIDSR  * pIKDDIDSR,
		char  * pData,
		uint32 * pDataSize
		)
パラメータ：
	pIKDDIDSR　[in]   IKDDIDSRインタフェースオブジェクトへのポインタ。
	pData	　    [out] 音声認識の結果を取得するデータへのポインタ。
					   データの形式はアプリケーションに依存。
	pDataSize    [in/out]  pDataのサイズを格納するポインタ。リターン時は、
　　　						結果のサイズが格納される。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADSTATE	現在の状態では結果を取得できない。
	KDDI_DSR_EFAILED	失敗。
 
1.18.　IKDDIDSR_GetElemResult()
説明：
	DSRクライアントが認識エンジンから得たXML形式の認識結果から要素を指定して、
	認識スコアと単語を取得する。認識スコアと単語を取得できる認識結果の形式はXML形式に限り、
	pElemで要素（Element）を指定して、認識結果のorder順でpKDDIDSRResultに格納される。
	これは、コールバックによる認識結果の状態の通知(KDDI_DSR_STATUS_REPORT)を受け取った後から使用でき、
	その後、IKDDIDSR_Initialize()やIKDDIDSR_InitializeCapture()、またはIKDDIDSR_StartCapture()の
	処理が実行され、再び認識結果の状態の通知(KDDI_DSR_STATUS_REPORT)を受けるまでの間は使用できない。
プロトタイプ：
	int IKDDIDSR_GetElemResult
		(
		IKDDIDSR  * pIKDDIDSR,
		char	* pElem,
		KDDIDSRResult	* （pKDDIDSRResult[]） 
		)
パラメータ：
	pIKDDIDSR　[in]　　 IKDDIDSRインタフェースオブジェクトへのポインタ。
	pElem	　　  [in]　  音声認識の結果の取得する要素の名前を指定する。
	pKDDIDSRResult   [out]  音声認識の結果の取得する構造体へのポインタ。
　リターン時は、結果は構造体の配列に格納される。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_ENORESULT	pElemで指定したElementが取得した結果内にない。
	KDDI_DSR_EBADSTATE	現在の状態では結果を取得できない。
	KDDI_DSR_EFAILED	失敗。
参照：
	KDDIDSRResult
 
1.19.　IKDDIDSR_GetBusiness()
説明：
	DSR制御パラメータの一つである音声認識のためのアプリケーション/コンテンツ識
	別情報の現在の値を取得する。
プロトタイプ：
	int IKDDIDSR_GetBusiness
		(
		IKDDIDSR * pIKDDIDSR,
		KDDIDSRBusiness  * pKddiDsrBusiness
		)
パラメータ：
	pIKDDIDSR  [in]  IKDDIDSRインタフェースオブジェクトへのポインタ。
	pKddiDsrBusiness  [out]  DSR制御パラメータのアプリケーション/コンテンツ識
							別情報のポインタ。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
参照：
	KDDIDSRBusiness
 
1.20.　IKDDIDSR_GetServer()
説明：
	DSR制御パラメータの一つである音声認識サーバのサーバ情報を取得する。
プロトタイプ：
	int IKDDIDSR_GetServer
		(
		IKDDIDSR * pIKDDIDSR,
		KDDIDSRServer  * pKddiDsrServer
)
パラメータ：
	pIKDDIDSR  [in]  IKDDIDSRインタフェースオブジェクトへのポインタ。
	pKddiDsrServer [out]  DSR制御パラメータの音声認識サーバのサーバ情報への
ポインタ。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
参照：
	KDDIDSRServer
 
1.21.　IKDDIDSR_GetApplication()
説明：
	DSR制御パラメータに設定されたコンテンツプロバイダ固有の情報を取得する。
プロトタイプ：
	int IKDDIDSR_GetApplication
		(
		IKDDIDSR * pIKDDIDSR,
		KDDIDSRApplication  * pKddiDsrApplication
	)
パラメータ：
	pIKDDIDSR  [in]  IKDDIDSRインタフェースオブジェクトへのポインタ。
	pKddiDsrApplication [out]  DSR制御パラメータに設定されたコンテンツプロバイ
								ダ固有の情報へのポインタ。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
参照：
	KDDIDSRApplication
 
1.22.　IKDDIDSR_GetParm()
説明：
	DSR制御パラメータの現在の値を取得する。
プロトタイプ：
	int IKDDIDSR_GetParm
		(
		IKDDIDSR * pIKDDIDSR,
		KDDIDSRParm  * pKddiDsrParm
		)
パラメータ：
	pIKDDIDSR  [in]  IKDDIDSRインタフェースオブジェクトへのポインタ。
	pKddiDsrParm [out]  DSR制御パラメータ情報へのポインタ。
			  			  取得できるパラメータは
						・	音響分析方式
						・	認識スコア閾値
						・	NBest
						・	誤認識原因推定機能の使用（マスクの値）
						・	音声取込開始から発話までのタイムアウト秒数(秒)
						・	発話から終話までのタイムアウト秒数(秒)
						・	DBPower値通知間隔(ミリ秒)
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	KDDI_DSR_EBADPARM	不正なパラメータ。
	KDDI_DSR_EFAILED	失敗。
参照：
	KDDIDSRParm
 
1.23.　IKDDIDSR_AddRef()
説明：
	IKDDIDSRインタフェースオブジェクトの参照カウントをインクリメントする。これにより、
	複数のコール側でオブジェクトを共有できる。参照カウントが０になると、オブジェクトは開放される。
プロトタイプ：
	uint32  IKDDIDSR_AddRef
		(
		IKDDIDSR * pIKDDIDSR
		)
パラメータ：
	pIKDDIDSR  IKDDIDSRインタフェースオブジェクトへのポインタ。
戻り値：
	オブジェクトのインクリメントされた参照カウント。
コメント：
	オブジェクトが有効であれば、正の値が返る。
 
1.24.　IKDDIDSR_Release()
説明：
	オブジェクトの参照カウントをデクリメントする。参照カウントが0になると、
	オブジェクトはメモリから解放され無効になる。
プロトタイプ：
	uint32  IKDDIDSR_Release
		(
		IKDDIDSR  * pIKDDIDSR
		)
パラメータ：
	pIKDDIDSR　IKDDIDSRインタフェースオブジェクトへのポインタ。
戻り値：
	オブジェクトのデクリメントされた参照カウント。0が返された場合は、オブジェクトが
	メモリから解放されて無効になる。
 
1.25.　IKDDIDSR_QueryInterface()
説明：
	この関数は、次の操作を行う。
(1)	入力ClassIDに基づき、インタフェースまたはデータへのポインタを取得する。
(2)	IKDDIDSR派生クラスの拡張バージョンを問い合わせる。
(3)	バージョン互換性をサポートする。
プロトタイプ：
	int  IKDDIDSR_QueryInterface
		(
		IKDDIDSR  * pIKDDIDSR,
		AEECLSID  clsReq,
		void  ** ppo
		)
パラメータ：
	pIKDDIDSR　[in]  IKDDIDSRインタフェースオブジェクトへのポインタ。
	clsReq	      [in]  問い合わせるエンティティ(インタフェースまたはデータ)を
　 識別する、グローバルに一意のID。
ppo	     [out]  取得するインタフェースまたはデータへのポインタ。戻され
　 た値がNULLの場合は、問い合わせたインタフェースまた
　 はデータが使用不可。
戻り値：
	KDDI_DSR_SUCCESS	正常終了。操作が完了した。
	エラーコード	失敗した場合。
コメント：
	ppoがNULLの場合は、問い合わせたインタフェースまたはデータが使用不可。
副作用：
	インタフェースが取得された場合、この関数はその参照カウントをインクリメン
トする。データ構造体が取得された場合は、内部構造体へのポインタが返され、	ユーザーはこれを解放してはいけない。
 
2.DSRデータリスト
2.1.　KDDIDSRBusiness
説明：
	音声認識のためのアプリケーション/コンテンツ識別情報を保持する。
定義：
	typedef struct　_KDDIDSRBusiness
		{
		uint32  iBusinessID;
		char  cBusinessName[KDDI_DSR_NAME_LENGTH];
		uint32  iBusinessServiceID;
		char  cBusinessServiceName[KDDI_DSR_NAME_LENGTH];
		}KDDIDSRBusiness;
メンバ：
	iBusinessID	       アプリケーション/コンテンツを表す識別情報。
	cBusinessName	       アプリケーション/コンテンツを表す名前情報。
	iBusinessServiceID 	アプリケーション/コンテンツのサービスを表す識別情報。
	cBusinessServiceName   アプリケーション/コンテンツのサービスを表す名前情報。
コメント：
アプリケーション識別情報を構成する各識別情報、名前情報は、KDDIが割り当てと管理を行う。
アプリケーション識別情報の詳細は、KDDI担当者へ照会のこと。
参照：
	IKDDIDSR_SetBusiness()
	IKDDIDSR_GetBusiness()
 
2.2.　KDDIDSRServer
説明：
	音声認識サーバのサーバ情報を保持する。
定義：
	typedef struct  _KDDIDSRServer
		{
		char  cServerAddress[KDDI_DSR_ADDRESS_LENGTH];
		uint16  iServerPort;
		char　cServerPath[KDDI_DSR_PATH_LENGTH];
		} KDDIDSRServer;
メンバ：
	cServerAddress		音声認識サーバのアドレス。
	iServerPort		音声認識サーバのポート。
	cServerPath		音声認識サーバのパス。
コメント：
アプリケーション識別情報を構成する各識別情報、名前情報は、KDDIが割り当てと管理を行う。アプリケーション識別情報の詳細は、KDDI担当者へ照会のこと。
参照：
	IKDDIDSR_SetServer()
	IKDDIDSR_GetServer()
 
2.3.　KDDIDSRParm
説明：
	この構造体は、DSR制御パラメータ情報を格納する。
定義：
	typedef  struct　_KDDIDSRParm
		{
		uint16		kddidsrAnalysisKind;
		uint16		iScore;
		uint16		iNBest;
		uint32		iResultMask;
		uint16		iStartTime;
		uint16		iCaptureTime;
		uint16		iInterval;
		} KDDIDSRParm;
メンバ：
	kddidsrAnalysisKind	音響分析方式。
						デフォルト値はKDDI_DSR_ANALYSIS_KIND_ES201108
	iScore				認識スコア。設定した値以上の単語を返す。
						デフォルト値は30。設定範囲は0〜100。
	iNBest				NBest(取得できる認識結果の個数)の値。
						複数の結果を得たいとき、認識スコアの高いものから順に
						結果を返す。設定した値が認識結果を返す最大の数。
						デフォルト値は５。設定範囲は１〜10。
	iResultMask			誤認識原因推定機能の利用状態（マスクによる指定）。
						デフォルト値はKDDI_DSR_ERRORMASK_DEFAULT
						（過大背景雑音＋オーバーフロー）。
	iStartTime			音声取込開始から発話(始端)までのタイムアウト秒数。
						デフォルト値は20。設定範囲は1〜20。単位は秒。
						（0指定でタイムアウト無効）
	iCaptureTime		発話(始端)開始から終話までのタイムアウト秒数。
						デフォルト値は20。設定範囲は1〜20。単位は秒。
						（0指定でタイムアウト無効）
	iInterval			DBPowerの通知間隔。
						デフォルト値は0。設定範囲は100〜20000。
						単位はミリ秒。
						(0指定でコールバック無効）
参照：
	IKDDIDSR_SetAnalysisKind()
	IKDDIDSR_SetRejectedScore()
	IKDDIDSR_SetNBest()
	IKDDIDSR_SetRecognitionErrorMask()
	IKDDIDSR_SetUtteranceTime()
	IKDDIDSR_SetDBPowerInterval()
	IKDDIDR_GetParm()
 
2.4.　KDDIDSRApplication
説明：
	コンテンツプロバイダ固有の情報を保持する。
定義：
	typedef struct  _KDDIDSRApplication 
		{
		char  cApplication[KDDI_DSR_APPLICATION_LENGTH];
		} KDDIDSRApplication;
メンバ：
	cApplication	コンテンツプロバイダ固有の情報。
参照：
	IKDDIDSR_SetApplication()
	IKDDIDSR_GetApplication()
 
2.5.　PFNKDDIDSRNOTIFY
説明：
	PFNKDDIDSRNOTIFYは、ユーザがIKDDIDSRオブジェクトで登録する必要
	のあるコールバック関数の型定義である。IKDDIDSRでは、登録されたコールバ
	ック関数を介して全てのイベントとデータがユーザに送られる。
定義：
	typedef  void (*PFNKDDIDSRNOTIFY)
		(
		void  * pUser,
		KDDIDSRNotify  * pNotify
		)
メンバ：
	pUser	ユーザが指定するデータポインタ。
	pNotify	コールバックイベント特定の情報。
参照：
	IKDDIDSR_RegisterNotify()
 
2.6.　KDDIDSRNotify
説明：
	この構造体は、DSRクライアントによって通知されるイベントの情報を格納する。
	これは、登録されたコールバック通知関数へ送られる。
定義：
	typedef  struct　 _KDDIDSRNotify
		{
		IKDDIDSR  *  pIKDDIDSR;
		int  kddidsrCmd;
		int  kddidsrStatus;
		KDDIDSRNotifyData  kddidsrNotifyData;
		} KDDIDSRNotify;
メンバ：
	pIKDDIDSR	IKDDIDSRへのポインタ。
	kddidsrCmd	コマンドコード。
	kddidsrStatus	ステータスコード。
	kddidsrNotifyData	ステータスに応じてオプショナルデータが格納される。

参照：
	IKDDIDSR_RegisterNotify()
	PFNKDDIDSRNOTIFY
 
2.7.　KDDIDSRNotifyData
説明：
	コールバックイベント情報のステータスに応じたオプショナルデータを格納する。
定義：
	typedef struct  _KDDIDSRNotifyData
		{
		int32	iData1;
		int32	iData2;
		} KDDIDSRNotifyData;
メンバ：
	iData1		コールバックイベントで通知される情報。
	iData2  		コールバックイベントで通知される情報。
参照：
	IKDDIDSR_RegisterNotify()
	PFNKDDIDSRNOTIFY
	KDDIDSRNotify
 
2.8.　KDDIDSRResult
説明：
	認識結果の情報を保持する。
定義：
	typedef struct  _KDDIDSRResult 
		{
		uint16	iScore;
		char    cWord[KDDI_DSR_RESULT_LENGTH];
		uint32	iDataSize;
		} KDDIDSRResult;
メンバ：
	iScore		認識結果のスコアが格納される。
	cWord		認識結果が格納される。
	iDataSize  	cWordのサイズが格納される。
参照：
	IKDDIDSR_GetElemResult()

2.9.　KDDIDSRNetInfo
説明：
	PPP接続ネットワーク(ドメイン)情報
定義：
	typedef struct  _KDDIDSRNetInfo 
		{
		int  nNetwork;
		} KDDIDSRNetInfo;
メンバ：
	nNetwork	ネットワークID(INETMGR_SelectNetwork()で設定するネットワークID)
参照：
	IKDDIDSR_SelectNetwork()
 
3.DSRコード
3.1.　KDDI_DSR_CMD
説明：
	コマンドコードは、イベントタイプを示すためとクライアントにデータを返すために、
	登録済みコールバック関数を介して返される。
定義：
	typedef  enum　_KDDI_DSR_CMD
		{
		KDDI_DSR_CMD_INITIALIZE,
		KDDI_DSR_CMD_INITIALIZECAPTURE,
			KDDI_DSR_CMD_STARTCAPTURE,
			KDDI_DSR_CMD_STOPCAPTURE,
			KDDI_DSR_CMD_CANCELCAPTURE
		}KDDI_DSR_CMD;
メンバ：
	KDDI_DSR_CMD_INITIALIZE		IKDDIDSR_Initialize()のコマンド
	KDDI_DSR_CMD_INITIALIZECAPTURE	IKDDIDSR_InitializeCapture()のコマンド
	KDDI_DSR_CMD_STARTCAPTURE  	IKDDIDSR_StartCapture()のコマンド
	KDDI_DSR_CMD_STOPCAPTURE	IKDDIDSR_StopCapture()のコマンド
	KDDI_DSR_CMD_CANCELCAPTURE	IKDDIDSR_CancelCapture()のコマンド
 
3.2.　KDDI_DSR_STATUS
説明：
	IKDDIDSR_RegisterNotify()で登録されたコールバック関数に対して、DSR制御
	機能から通知される、状態を表す。
定義：
	typedef  enum  _KDDI_DSR_STATUS
		{
		KDDI_DSR_STATUS_RECNOISE_START,
		KDDI_DSR_STATUS_RECNOISE_END,
		KDDI_DSR_STATUS_STARTTOBEGIN,
		KDDI_DSR_STATUS_BEGINCAPTURE,
		KDDI_DSR_STATUS_DBPOWER,
		KDDI_DSR_STATUS_ENDCAPTURE,
		KDDI_DSR_STATUS_SENDDATA,
		KDDI_DSR_STATUS_REPORT,
		KDDI_DSR_STATUS_STOPCAPTURE,
		KDDI_DSR_STATUS_CANCELCAPTURE
		KDDI_DSR_STATUS_ABORT,
		KDDI_DSR_STATUS_BADSTATE
		}KDDI_DSR_STATUS;
メンバ：
	KDDI_DSR_STATUS_RECORDNOISE	周辺雑音データの収集開始
	KDDI_DSR_STATUS_STARTTOBEGIN	音声取込開始
	KDDI_DSR_STATUS_BEGINCAPTURE	発話検出
	KDDI_DSR_STATUS_DBPOWER		検出中のdB値を返す
	KDDI_DSR_STATUS_ENDCAPTURE	終話検出
	KDDI_DSR_STATUS_SENDDATA		データ送信開始
	KDDI_DSR_STATUS_REPORT		エラー、認識結果の状態の情報
	KDDI_DSR_STATUS_STOPCAPTURE	強制終話(音声取込終了)
	KDDI_DSR_STATUS_CANCELCAPTURE	音声認識処理の取り消し
	KDDI_DSR_STATUS_ABORT		異常終了
	KDDI_DSR_STATUS_BADSTATE	IKDDIDSR_StartCapture(),IKDDIDSR_StopCapture(),
								IKDDIDSR_CancelCapture()において動作できない状態
 
3.3.　KDDI_DSR_ANALYSIS_KIND
説明：
	入力された音声の分析方式。
定義：
	typedef  enum  _KDDI_DSR_ANALYSIS_KIND
		{
		KDDI_DSR_ANALYSIS_AUTO,
		KDDI_DSR_ANALYSIS_KIND_ES201108,
		KDDI_DSR_ANALYSIS_KIND_ES202050
		} KDDI_DSR_ANALYSIS_KIND;
メンバ：
KDDI_DSR_ANALYSIS_AUTO		自動選択方式
KDDI_DSR_ANALYSIS_KIND_ES201108	ETSI ES 201 108方式
KDDI_DSR_ANALYSIS_KIND_ES202050 	ETSI ES 202 050方式

参照：
	IKDDIDSR_SetAnalysisKind()
 
4.DSR制御パラメータ　デフォルト値
4.1.　KDDI_DSR_XXX_LENGTH
説明：
	DSR制御パラメータで入力する文字列の長さ。
定義：
#define  KDDI_DSR_NAME_LENGTH		 256
#define  KDDI_DSR_ADDRESS_LENGTH		16
#define  KDDI_DSR_PATH_LENGTH		 256
#define	KDDI_DSR_APPLICATION_LENGTH	1024
#define  KDDI_DSR_RESULT_LENGTH		 128

4.2　KDDI_DSR_ERRORMASK
説明：
	誤認識原因推定機能によるエラーの種別
定義：
#define	KDDI_DSR_ERRORMASK_NOISE			0x00000001
#define	KDDI_DSR_ERRORMASK_OVERFLOW			0x00000002
#define	KDDI_DSR_ERRORMASK_BEGINNINGBREAK	0x00000004
#define	KDDI_DSR_ERRORMASK_DEFAULT			0x00000003

*/

