diff --git a/lib/libmsc/Makefile b/lib/libmsc/Makefile new file mode 100644 index 0000000..3c5f00b --- /dev/null +++ b/lib/libmsc/Makefile @@ -0,0 +1,51 @@ +include $(TOPDIR)/rules.mk + +# Name and release number of this package +PKG_NAME:=libmsc +PKG_VERSION:=1.1.2 + +PKG_BUILD_DIR:=$(COMPILE_DIR)/$(PKG_NAME) + +include $(BUILD_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=libs + CATEGORY:=Netease + SUBMENU:=libs + TITLE:=Xunfei msc library + DEPENDS:=+libstdcpp +endef + +define Package/$(PKG_NAME)/description + This is a cae dynamic library by xunfei added by wzj! +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(CP) -d ./lib/* $(PKG_BUILD_DIR)/ +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_DIR) $(1)/usr/include/msc + $(INSTALL_DATA) $(PKG_BUILD_DIR)/libmsc.so $(1)/usr/lib/ + $(INSTALL_DATA) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include/msc/ +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) -d $(PKG_BUILD_DIR)/libmsc.so $(1)/usr/lib/ + + $(INSTALL_DIR) $(1)/usr/share/netease +# $(INSTALL_DATA) ./res/*.jet $(1)/usr/share/netease/ +# $(INSTALL_DATA) ./res/common.jet $(1)/usr/share/netease/ + +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/lib/libmsc/lib/include/msp_cmn.h b/lib/libmsc/lib/include/msp_cmn.h new file mode 100644 index 0000000..4b111fa --- /dev/null +++ b/lib/libmsc/lib/include/msp_cmn.h @@ -0,0 +1,282 @@ +/** + * @file msp_cmn.h + * @brief Mobile Speech Platform Common Interface Header File + * + * This file contains the quick common programming interface (API) declarations + * of MSP. Developer can include this file in your project to build applications. + * For more information, please read the developer guide. + + * Use of this software is subject to certain restrictions and limitations set + * forth in a license agreement entered into between iFLYTEK, Co,LTD. + * and the licensee of this software. Please refer to the license + * agreement for license use rights and restrictions. + * + * Copyright (C) 1999 - 2012 by ANHUI USTC iFLYTEK, Co,LTD. + * All rights reserved. + * + * @author Speech Dept. iFLYTEK. + * @version 1.0 + * @date 2012/09/01 + * + * @see + * + * History: + * index version date author notes + * 0 1.0 2012/09/01 MSC40 Create this file + */ + +#ifndef __MSP_CMN_H__ +#define __MSP_CMN_H__ + +#include "msp_types.h" + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +//#ifdef MSP_WCHAR_SUPPORT +/** + * @fn Wchar2Mbytes + * @brief wchar to mbytes + * + * User login. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const wchar_t* wcstr - [in] Null-terminated source string(wchar_t *). + * @param char* mbstr - [in] Destination string(char *). + * @param int len - [in] The maximum number of bytes that can be stored in the multibyte output string. + * @see + */ + +char *Wchar2Mbytes(const wchar_t* wcstr); + +/** + * @fn Mbytes2Wchar + * @brief mbytes to wchar + * + * User login. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* mbstr - [in] Null-terminated source string(char *). + * @param wchar_t* wcstr - [in] Destination string(wchar_t *). + * @param int wlen - [in] The maximum number of multibyte characters to convert. + * @see + */ +wchar_t *Mbytes2Wchar(const char *mbstr); + +//#endif /*MSP_WCHAR_SUPPORT*/ + +/** + * @fn MSPLogin + * @brief user login interface + * + * User login. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* usr - [in] user name. + * @param const char* pwd - [in] password. + * @param const char* params - [in] parameters when user login. + * @see + */ +int MSPAPI MSPLogin(const char* usr, const char* pwd, const char* params); +typedef int (MSPAPI *Proc_MSPLogin)(const char* usr, const char* pwd, const char* params); +//#ifdef MSP_WCHAR_SUPPORT +int MSPAPI MSPLoginW(const wchar_t* usr, const wchar_t* pwd, const wchar_t* params); +typedef int (MSPAPI *Proc_MSPLoginW)(const wchar_t* usr, const wchar_t* pwd, const wchar_t* params); +//#endif/*MSP_WCHAR_SUPPORT*/ +/** + * @fn MSPLogout + * @brief user logout interface + * + * User logout + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @see + */ +int MSPAPI MSPLogout(); +typedef int (MSPAPI *Proc_MSPLogout)(); +//#ifdef MSP_WCHAR_SUPPORT +int MSPAPI MSPLogoutW(); +typedef int (MSPAPI *Proc_MSPLogoutW)(); +//#endif/*MSP_WCHAR_SUPPORT*/ +/** + * @fn MSPUpload + * @brief Upload User Specific Data + * + * Upload data such as user config, custom grammar, etc. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* dataName - [in] data name, should be unique to diff other data. + * @param const char* params - [in] parameters about uploading data. + * @param const char* dataID - [in] id of the data to be operated. + * @see + */ +int MSPAPI MSPUpload( const char* dataName, const char* params, const char* dataID); +typedef int (MSPAPI* Proc_MSPUpload)( const char* dataName, const char* params, const char* dataID); + +/** + * @fn MSPDownload + * @brief Download User Specific Data + * + * Download data such as user config, etc. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* params - [in] parameters about data to be downloaded. + * @see + */ +typedef int (*DownloadStatusCB)(int errorCode, long param1, const void *param2, void *userData); +typedef int (*DownloadResultCB)(const void *data, long dataLen, void *userData); +int MSPAPI MSPDownload(const char* dataName, const char* params, DownloadStatusCB statusCb, DownloadResultCB resultCb, void*userData); +typedef int (MSPAPI* Proc_MSPDownload)(const char* dataName, const char* params, DownloadStatusCB statusCb, DownloadResultCB resultCb, void*userData); +int MSPAPI MSPDownloadW(const wchar_t* wdataName, const wchar_t* wparams, DownloadStatusCB statusCb, DownloadResultCB resultCb, void*userData); +typedef int (MSPAPI* Proc_MSPDownloadW) (const wchar_t* wdataName, const wchar_t* wparams, DownloadStatusCB statusCb, DownloadResultCB resultCb, void*userData); + +/** + * @fn MSPAppendData + * @brief Append Data. + * + * Write data to msc, such as data to be uploaded, searching text, etc. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param void* data - [in] the data buffer pointer, data could be binary. + * @param unsigned int dataLen - [in] length of data. + * @param unsigned int dataStatus - [in] data status, 2: first or continuous, 4: last. + * @see + */ +int MSPAPI MSPAppendData(void* data, unsigned int dataLen, unsigned int dataStatus); +typedef int (MSPAPI* Proc_MSPAppendData)(void* data, unsigned int dataLen, unsigned int dataStatus); + +/** + * @fn MSPGetResult + * @brief Get Result + * + * Get result of uploading, downloading or searching, etc. + * + * @return const char* MSPAPI - Return result of uploading, downloading or searching, etc. + * @param int* rsltLen - [out] Length of result returned. + * @param int* rsltStatus - [out] Status of result returned. + * @param int* errorCode - [out] Return 0 in success, otherwise return error code. + * @see + */ +const char* MSPAPI MSPGetResult(unsigned int* rsltLen, int* rsltStatus, int *errorCode); +typedef const char * (MSPAPI *Proc_MSPGetResult)(unsigned int* rsltLen, int* rsltStatus, int *errorCode); + +/** + * @fn MSPSetParam + * @brief set params of msc + * + * set param of msc + * + * @return int - Return 0 if success, otherwise return errcode. + * @param const char* paramName - [in] param name. + * @param const char* paramValue - [in] param value + * @see + */ +int MSPAPI MSPSetParam( const char* paramName, const char* paramValue ); +typedef int (MSPAPI *Proc_MSPSetParam)(const char* paramName, const char* paramValue); + +/** + * @fn MSPGetParam + * @brief get params of msc + * + * get param of msc + * + * @return int - Return 0 if success, otherwise return errcode. + * @param const char* paramName - [in] param name. + * @param const char* paramValue - [out] param value + * @param const char* valueLen - [in/out] param value (buffer) length + * @see + */ +int MSPAPI MSPGetParam( const char *paramName, char *paramValue, unsigned int *valueLen ); +typedef int (MSPAPI *Proc_MSPGetParam)( const char *paramName, char *paramValue, unsigned int *valueLen ); + +/** + * @fn MSPUploadData + * @brief Upload User Specific Data + * + * Upload data such as user config, custom grammar, etc. + * + * @return const char* MSPAPI - data id returned by Server, used for special command. + * @param const char* dataName - [in] data name, should be unique to diff other data. + * @param void* data - [in] the data buffer pointer, data could be binary. + * @param unsigned int dataLen - [in] length of data. + * @param const char* params - [in] parameters about uploading data. + * @param int* errorCode - [out] Return 0 in success, otherwise return error code. + * @see + */ +const char* MSPAPI MSPUploadData(const char* dataName, void* data, unsigned int dataLen, const char* params, int* errorCode); +typedef const char* (MSPAPI* Proc_MSPUploadData)(const char* dataName, void* data, unsigned int dataLen, const char* params, int* errorCode); + +/** + * @fn MSPDownloadData + * @brief Download User Specific Data + * + * Download data such as user config, etc. + * + * @return const void* MSPAPI - received data buffer pointer, data could be binary, NULL if failed or data does not exsit. + * @param const char* params - [in] parameters about data to be downloaded. + * @param unsigned int* dataLen - [out] length of received data. + * @param int* errorCode - [out] Return 0 in success, otherwise return error code. + * @see + */ +const void* MSPAPI MSPDownloadData(const char* params, unsigned int* dataLen, int* errorCode); +typedef const void* (MSPAPI* Proc_MSPDownloadData)(const char* params, unsigned int* dataLen, int* errorCode); +//#ifdef MSP_WCHAR_SUPPORT +const void* MSPAPI MSPDownloadDataW(const wchar_t* params, unsigned int* dataLen, int* errorCode); +typedef const void* (MSPAPI* Proc_MSPDownloadDataW)(const wchar_t* params, unsigned int* dataLen, int* errorCode); +//#endif/*MSP_WCHAR_SUPPORT*/ +/** + * @fn MSPSearch + * @brief Search text for result + * + * Search text content, and got text result + * + * @return const void* MSPAPI - received data buffer pointer, data could be binary, NULL if failed or data does not exsit. + * @param const char* params - [in] parameters about data to be downloaded. + * @param unsigned int* dataLen - [out] length of received data. + * @param int* errorCode - [out] Return 0 in success, otherwise return error code. + * @see + */ +const char* MSPAPI MSPSearch(const char* params, const char* text, unsigned int* dataLen, int* errorCode); +typedef const char* (MSPAPI* Proc_MSPSearch)(const char* params, const char* text, unsigned int* dataLen, int* errorCode); + + + +typedef int (*NLPSearchCB)(const char *sessionID, int errorCode, int status, const void* result, long rsltLen, void *userData); +const char* MSPAPI MSPNlpSearch(const char* params, const char* text, unsigned int textLen, int *errorCode, NLPSearchCB callback, void *userData); +typedef const char* (MSPAPI* Proc_MSPNlpSearch)(const char* params, const char* text, unsigned int textLen, int *errorCode, NLPSearchCB callback, void *userData); +int MSPAPI MSPNlpSchCancel(const char *sessionID, const char *hints); + +/** + * @fn MSPRegisterNotify + * @brief Register a Callback + * + * Register a Callback + * + * @return int - + * @param msp_status_ntf_handler statusCb - [in] notify handler + * @param void *userData - [in] userData + * @see + */ +typedef void ( *msp_status_ntf_handler)( int type, int status, int param1, const void *param2, void *userData ); +int MSPAPI MSPRegisterNotify( msp_status_ntf_handler statusCb, void *userData ); +typedef const char* (MSPAPI* Proc_MSPRegisterNotify)( msp_status_ntf_handler statusCb, void *userData ); + +/** + * @fn MSPGetVersion + * @brief Get version of MSC or Local Engine + * + * Get version of MSC or Local Engine + * + * @return const char * MSPAPI - Return version value if success, NULL if fail. + * @param const char *verName - [in] version name, could be "msc", "aitalk", "aisound", "ivw". + * @param int *errorCode - [out] Return 0 in success, otherwise return error code. + * @see + */ +const char* MSPAPI MSPGetVersion(const char *verName, int *errorCode); +typedef const char* (MSPAPI * Proc_MSPGetVersion)(const char *verName, int *errorCode); + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* C++ */ + +#endif /* __MSP_CMN_H__ */ diff --git a/lib/libmsc/lib/include/msp_errors.h b/lib/libmsc/lib/include/msp_errors.h new file mode 100644 index 0000000..e66fc97 --- /dev/null +++ b/lib/libmsc/lib/include/msp_errors.h @@ -0,0 +1,558 @@ +#ifndef __MSP_ERRORS_H__ +#define __MSP_ERRORS_H__ + +#define MSP_HTTP_ERROR(x) ((x) + MSP_ERROR_HTTP_BASE ) + +enum +{ + MSP_SUCCESS = 0, + MSP_ERROR_FAIL = -1, + MSP_ERROR_EXCEPTION = -2, + + /* General errors 10100(0x2774) */ + MSP_ERROR_GENERAL = 10100, /* 0x2774 */ + MSP_ERROR_OUT_OF_MEMORY = 10101, /* 0x2775 */ + MSP_ERROR_FILE_NOT_FOUND = 10102, /* 0x2776 */ + MSP_ERROR_NOT_SUPPORT = 10103, /* 0x2777 */ + MSP_ERROR_NOT_IMPLEMENT = 10104, /* 0x2778 */ + MSP_ERROR_ACCESS = 10105, /* 0x2779 */ + MSP_ERROR_INVALID_PARA = 10106, /* 0x277A */ /* 缺少参数 */ + MSP_ERROR_INVALID_PARA_VALUE = 10107, /* 0x277B */ /* 无效参数值 */ + MSP_ERROR_INVALID_HANDLE = 10108, /* 0x277C */ + MSP_ERROR_INVALID_DATA = 10109, /* 0x277D */ + MSP_ERROR_NO_LICENSE = 10110, /* 0x277E */ /* 引擎授权不足 */ + MSP_ERROR_NOT_INIT = 10111, /* 0x277F */ /* 引擎未初始化,可能是引擎崩溃 */ + MSP_ERROR_NULL_HANDLE = 10112, /* 0x2780 */ + MSP_ERROR_OVERFLOW = 10113, /* 0x2781 */ /* 单用户下模型数超上限(10个), */ + /* 只出现在测试时对一个用户进行并发注册 */ + MSP_ERROR_TIME_OUT = 10114, /* 0x2782 */ /* 超时 */ + MSP_ERROR_OPEN_FILE = 10115, /* 0x2783 */ + MSP_ERROR_NOT_FOUND = 10116, /* 0x2784 */ /* 数据库中模型不存在 */ + MSP_ERROR_NO_ENOUGH_BUFFER = 10117, /* 0x2785 */ + MSP_ERROR_NO_DATA = 10118, /* 0x2786 */ /* 从客户端读音频或从引擎段获取结果时无数据 */ + MSP_ERROR_NO_MORE_DATA = 10119, /* 0x2787 */ + MSP_ERROR_NO_RESPONSE_DATA = 10120, /* 0x2788 */ + MSP_ERROR_ALREADY_EXIST = 10121, /* 0x2789 */ /* 数据库中模型已存在 */ + MSP_ERROR_LOAD_MODULE = 10122, /* 0x278A */ + MSP_ERROR_BUSY = 10123, /* 0x278B */ + MSP_ERROR_INVALID_CONFIG = 10124, /* 0x278C */ + MSP_ERROR_VERSION_CHECK = 10125, /* 0x278D */ + MSP_ERROR_CANCELED = 10126, /* 0x278E */ + MSP_ERROR_INVALID_MEDIA_TYPE = 10127, /* 0x278F */ + MSP_ERROR_CONFIG_INITIALIZE = 10128, /* 0x2790 */ + MSP_ERROR_CREATE_HANDLE = 10129, /* 0x2791 */ + MSP_ERROR_CODING_LIB_NOT_LOAD = 10130, /* 0x2792 */ + MSP_ERROR_USER_CANCELLED = 10131, /* 0x2793 */ + MSP_ERROR_INVALID_OPERATION = 10132, /* 0x2794 */ + MSP_ERROR_MESSAGE_NOT_COMPLETE = 10133, /* 0x2795 */ /* flash */ + MSP_ERROR_NO_EID = 10134, /* 0x2795 */ + MSP_ERROE_OVER_REQ = 10135, /* 0x2797 */ /* client Redundancy request */ + MSP_ERROR_USER_ACTIVE_ABORT = 10136, /* 0x2798 */ /* user abort */ + MSP_ERROR_BUSY_GRMBUILDING = 10137, /* 0x2799 */ + MSP_ERROR_BUSY_LEXUPDATING = 10138, /* 0x279A */ + MSP_ERROR_SESSION_RESET = 10139, /* 0x279B */ /* msc主动终止会话,准备重传 */ + MSP_ERROR_BOS_TIMEOUT = 10140, /* 0x279C */ /* VAD前端点超时 */ + MSP_ERROR_STREAM_FILTER = 10141, /* 0X279D */ /* AIUI当前Stream被过滤 */ + MSP_ERROR_STREAM_CLEAR = 10142, /* 0X279E */ /* AIUI当前Stream被清理 */ + + /* Error codes of network 10200(0x27D8)*/ + MSP_ERROR_NET_GENERAL = 10200, /* 0x27D8 */ + MSP_ERROR_NET_OPENSOCK = 10201, /* 0x27D9 */ /* Open socket */ + MSP_ERROR_NET_CONNECTSOCK = 10202, /* 0x27DA */ /* Connect socket */ + MSP_ERROR_NET_ACCEPTSOCK = 10203, /* 0x27DB */ /* Accept socket */ + MSP_ERROR_NET_SENDSOCK = 10204, /* 0x27DC */ /* Send socket data */ + MSP_ERROR_NET_RECVSOCK = 10205, /* 0x27DD */ /* Recv socket data */ + MSP_ERROR_NET_INVALIDSOCK = 10206, /* 0x27DE */ /* Invalid socket handle */ + MSP_ERROR_NET_BADADDRESS = 10207, /* 0x27EF */ /* Bad network address */ + MSP_ERROR_NET_BINDSEQUENCE = 10208, /* 0x27E0 */ /* Bind after listen/connect */ + MSP_ERROR_NET_NOTOPENSOCK = 10209, /* 0x27E1 */ /* Socket is not opened */ + MSP_ERROR_NET_NOTBIND = 10210, /* 0x27E2 */ /* Socket is not bind to an address */ + MSP_ERROR_NET_NOTLISTEN = 10211, /* 0x27E3 */ /* Socket is not listening */ + MSP_ERROR_NET_CONNECTCLOSE = 10212, /* 0x27E4 */ /* The other side of connection is closed */ + MSP_ERROR_NET_NOTDGRAMSOCK = 10213, /* 0x27E5 */ /* The socket is not datagram type */ + MSP_ERROR_NET_DNS = 10214, /* 0x27E6 */ /* domain name is invalid or dns server does not function well */ + MSP_ERROR_NET_INIT = 10215, /* 0x27E7 */ /* ssl ctx create failed */ + + /*nfl error*/ + MSP_ERROR_NFL_INNER_ERROR = 10216, /* NFL inner error */ + MSP_ERROR_MSS_TIME_OUT = 10217, /* MSS TIMEOUT */ + MSP_ERROT_CLIENT_TIME_OUT = 10218, /* CLIENT TIMEOUT */ + MSP_ERROR_CLIENT_CLOSE = 10219, /* CLIENT CLOSED CONNECTION */ + + MSP_ERROR_CLIENT_AREA_CHANGE = 10220, + MSP_ERROR_NET_SSL_HANDSHAKE = 10221, + MSP_ERROR_NET_INVALID_ROOT_CERT = 10222, + MSP_ERROR_NET_INVALID_CLIENT_CERT = 10223, + MSP_ERROR_NET_INVALID_SERVER_CERT = 10224, + MSP_ERROR_NET_INVALID_KEY = 10225, + MSP_ERROR_NET_CERT_VERIFY_FAILED = 10226, + MSP_ERROR_NET_WOULDBLOCK = 10227, + MSP_ERROR_NET_NOTBLOCK = 10228, + + /* Error codes of mssp message 10300(0x283C) */ + MSP_ERROR_MSG_GENERAL = 10300, /* 0x283C */ + MSP_ERROR_MSG_PARSE_ERROR = 10301, /* 0x283D */ + MSP_ERROR_MSG_BUILD_ERROR = 10302, /* 0x283E */ + MSP_ERROR_MSG_PARAM_ERROR = 10303, /* 0x283F */ + MSP_ERROR_MSG_CONTENT_EMPTY = 10304, /* 0x2840 */ + MSP_ERROR_MSG_INVALID_CONTENT_TYPE = 10305, /* 0x2841 */ + MSP_ERROR_MSG_INVALID_CONTENT_LENGTH = 10306, /* 0x2842 */ + MSP_ERROR_MSG_INVALID_CONTENT_ENCODE = 10307, /* 0x2843 */ + MSP_ERROR_MSG_INVALID_KEY = 10308, /* 0x2844 */ + MSP_ERROR_MSG_KEY_EMPTY = 10309, /* 0x2845 */ + MSP_ERROR_MSG_SESSION_ID_EMPTY = 10310, /* 0x2846 */ /* 会话ID为空 */ + MSP_ERROR_MSG_LOGIN_ID_EMPTY = 10311, /* 0x2847 */ /* 音频序列ID为空 */ + MSP_ERROR_MSG_SYNC_ID_EMPTY = 10312, /* 0x2848 */ + MSP_ERROR_MSG_APP_ID_EMPTY = 10313, /* 0x2849 */ + MSP_ERROR_MSG_EXTERN_ID_EMPTY = 10314, /* 0x284A */ + MSP_ERROR_MSG_INVALID_CMD = 10315, /* 0x284B */ + MSP_ERROR_MSG_INVALID_SUBJECT = 10316, /* 0x284C */ + MSP_ERROR_MSG_INVALID_VERSION = 10317, /* 0x284D */ + MSP_ERROR_MSG_NO_CMD = 10318, /* 0x284E */ + MSP_ERROR_MSG_NO_SUBJECT = 10319, /* 0x284F */ + MSP_ERROR_MSG_NO_VERSION = 10320, /* 0x2850 */ + MSP_ERROR_MSG_MSSP_EMPTY = 10321, /* 0x2851 */ + MSP_ERROR_MSG_NEW_RESPONSE = 10322, /* 0x2852 */ + MSP_ERROR_MSG_NEW_CONTENT = 10323, /* 0x2853 */ + MSP_ERROR_MSG_INVALID_SESSION_ID = 10324, /* 0x2854 */ /* 无效的会话ID(sid) */ + MSP_ERROR_MSG_INVALID_CONTENT = 10325, /* 0x2855 */ + + /* Error codes of DataBase 10400(0x28A0)*/ + MSP_ERROR_DB_GENERAL = 10400, /* 0x28A0 */ /* 数据库异常 */ + MSP_ERROR_DB_EXCEPTION = 10401, /* 0x28A1 */ + MSP_ERROR_DB_NO_RESULT = 10402, /* 0x28A2 */ /* redis中没有找到会话ID(sid) */ + MSP_ERROR_DB_INVALID_USER = 10403, /* 0x28A3 */ + MSP_ERROR_DB_INVALID_PWD = 10404, /* 0x28A4 */ + MSP_ERROR_DB_CONNECT = 10405, /* 0x28A5 */ + MSP_ERROR_DB_INVALID_SQL = 10406, /* 0x28A6 */ + MSP_ERROR_DB_INVALID_APPID = 10407, /* 0x28A7 */ + MSP_ERROR_DB_NO_UID = 10408, + + /* Error codes of Resource 10500(0x2904)*/ + MSP_ERROR_RES_GENERAL = 10500, /* 0x2904 */ + MSP_ERROR_RES_LOAD = 10501, /* 0x2905 */ /* Load resource */ + MSP_ERROR_RES_FREE = 10502, /* 0x2906 */ /* Free resource */ + MSP_ERROR_RES_MISSING = 10503, /* 0x2907 */ /* Resource File Missing */ + MSP_ERROR_RES_INVALID_NAME = 10504, /* 0x2908 */ /* Invalid resource file name */ + MSP_ERROR_RES_INVALID_ID = 10505, /* 0x2909 */ /* Invalid resource ID */ + MSP_ERROR_RES_INVALID_IMG = 10506, /* 0x290A */ /* Invalid resource image pointer */ + MSP_ERROR_RES_WRITE = 10507, /* 0x290B */ /* Write read-only resource */ + MSP_ERROR_RES_LEAK = 10508, /* 0x290C */ /* Resource leak out */ + MSP_ERROR_RES_HEAD = 10509, /* 0x290D */ /* Resource head currupt */ + MSP_ERROR_RES_DATA = 10510, /* 0x290E */ /* Resource data currupt */ + MSP_ERROR_RES_SKIP = 10511, /* 0x290F */ /* Resource file skipped */ + + /* Error codes of TTS 10600(0x2968)*/ + MSP_ERROR_TTS_GENERAL = 10600, /* 0x2968 */ + MSP_ERROR_TTS_TEXTEND = 10601, /* 0x2969 */ /* Meet text end */ + MSP_ERROR_TTS_TEXT_EMPTY = 10602, /* 0x296A */ /* no synth text */ + MSP_ERROR_TTS_LTTS_ERROR = 10603, /* 0x296B */ + + /* Error codes of Recognizer 10700(0x29CC) */ + MSP_ERROR_REC_GENERAL = 10700, /* 0x29CC */ /* 引擎异常 */ + MSP_ERROR_REC_INACTIVE = 10701, /* 0x29CD */ + MSP_ERROR_REC_GRAMMAR_ERROR = 10702, /* 0x29CE */ + MSP_ERROR_REC_NO_ACTIVE_GRAMMARS = 10703, /* 0x29CF */ + MSP_ERROR_REC_DUPLICATE_GRAMMAR = 10704, /* 0x29D0 */ + MSP_ERROR_REC_INVALID_MEDIA_TYPE = 10705, /* 0x29D1 */ + MSP_ERROR_REC_INVALID_LANGUAGE = 10706, /* 0x29D2 */ + MSP_ERROR_REC_URI_NOT_FOUND = 10707, /* 0x29D3 */ + MSP_ERROR_REC_URI_TIMEOUT = 10708, /* 0x29D4 */ + MSP_ERROR_REC_URI_FETCH_ERROR = 10709, /* 0x29D5 */ + MSP_ERROR_REC_PROC_MOD = 10710, /* 0x29D6 */ + + + /* Error codes of Speech Detector 10800(0x2A30) */ + MSP_ERROR_EP_GENERAL = 10800, /* 0x2A30 */ + MSP_ERROR_EP_NO_SESSION_NAME = 10801, /* 0x2A31 */ + MSP_ERROR_EP_INACTIVE = 10802, /* 0x2A32 */ + MSP_ERROR_EP_INITIALIZED = 10803, /* 0x2A33 */ + + /* Error codes of TUV */ + MSP_ERROR_TUV_GENERAL = 10900, /* 0x2A94 */ + MSP_ERROR_TUV_GETHIDPARAM = 10901, /* 0x2A95 */ /* Get Busin Param huanid*/ + MSP_ERROR_TUV_TOKEN = 10902, /* 0x2A96 */ /* Get Token */ + MSP_ERROR_TUV_CFGFILE = 10903, /* 0x2A97 */ /* Open cfg file */ + MSP_ERROR_TUV_RECV_CONTENT = 10904, /* 0x2A98 */ /* received content is error */ + MSP_ERROR_TUV_VERFAIL = 10905, /* 0x2A99 */ /* Verify failure */ + + /* Error codes of IMTV */ + MSP_ERROR_LOGIN_SUCCESS = 11000, /* 0x2AF8 */ /* 成功 */ + MSP_ERROR_LOGIN_NO_LICENSE = 11001, /* 0x2AF9 */ /* 试用次数结束,用户需要付费 */ + MSP_ERROR_LOGIN_SESSIONID_INVALID = 11002, /* 0x2AFA */ /* SessionId失效,需要重新登录通行证 */ + MSP_ERROR_LOGIN_SESSIONID_ERROR = 11003, /* 0x2AFB */ /* SessionId为空,或者非法 */ + MSP_ERROR_LOGIN_UNLOGIN = 11004, /* 0x2AFC */ /* 未登录通行证 */ + MSP_ERROR_LOGIN_INVALID_USER = 11005, /* 0x2AFD */ /* 用户ID无效 */ + MSP_ERROR_LOGIN_INVALID_PWD = 11006, /* 0x2AFE */ /* 用户密码无效 */ + MSP_ERROR_LOGIN_SYSTEM_ERROR = 11099, /* 0x2B5B */ /* 系统错误 */ + + /* Error codes of HCR */ + MSP_ERROR_HCR_GENERAL = 11100, + MSP_ERROR_HCR_RESOURCE_NOT_EXIST = 11101, + MSP_ERROR_HCR_CREATE = 11102, + MSP_ERROR_HCR_DESTROY = 11103, + MSP_ERROR_HCR_START = 11104, + MSP_ERROR_HCR_APPEND_STROKES = 11105, + MSP_ERROR_HCR_INIT = 11106, + MSP_ERROR_HCR_POINT_DECODE = 11107, + MSP_ERROR_HCR_DISPATCH = 11108, + MSP_ERROR_HCR_GETRESULT = 11109, + MSP_ERROR_HCR_RESOURCE = 11110, + + /* Error Codes using in local engine */ + MSP_ERROR_AUTH_NO_LICENSE = 11200, /* 0x2BC0 */ /* 无授权 */ + MSP_ERROR_AUTH_NO_ENOUGH_LICENSE = 11201, /* 0x2BC1 */ /* 授权不足 */ + MSP_ERROR_AUTH_INVALID_LICENSE = 11202, /* 0x2BC2 */ /* 无效的授权 */ + MSP_ERROR_AUTH_LICENSE_EXPIRED = 11203, /* 0x2BC3 */ /* 授权过期 */ + MSP_ERROR_AUTH_NEED_MORE_DATA = 11204, /* 0x2BC4 */ /* 无设备信息 */ + MSP_ERROR_AUTH_LICENSE_TO_BE_EXPIRED = 11205, /* 0x2BC5 */ /* 授权即将过期,警告性错误码 */ + MSP_ERROR_AUTH_INVALID_MACHINE_ID = 11206, /* 0x2BC6 */ /* 无效的机器码 */ + MSP_ERROR_AUTH_LOCAL_ASR_FORBIDDEN = 11207, /* 0x2BC7 */ /* 禁止使用本地识别引擎 */ + MSP_ERROR_AUTH_LOCAL_TTS_FORBIDDEN = 11208, /* 0x2BC8 */ /* 禁止使用本地合成引擎 */ + MSP_ERROR_AUTH_LOCAL_IVW_FORBIDDEN = 11209, /* 0x2BC9 */ /* 禁止使用本地唤醒引擎 */ + MSP_ERROR_AUTH_APPID_NOT_MATCH = 11210, /* 0x2BCA */ /* 资源appid和应用appid不匹配 */ + MSP_ERROR_AUTH_UID_NOT_MATCH = 11211, /* 0x2BCB */ /* 资源uid和登录用户uid不匹配 */ + MSP_ERROR_AUTH_TRIAL_EXPIRED = 11212, /* 0x2BCC */ /* 试用资源过期 */ + MSP_ERROR_AUTH_LOCAL_IFD_FORBIDDEN = 11213, /* 0x2BC9 */ /* 禁止使用本地人脸引擎 */ + + /*Error Codes of Authorization*/ + MSP_ERROR_AUTH_DVC_NO_LICENSE = 11300, + MSP_ERROR_AUTH_DVC_NO_ENOUGH_LICENSE = 11301, + MSP_ERROR_AUTH_DVC_INVALID_LICENSE = 11302, + MSP_ERROR_AUTH_DVC_LICENSE_EXPIRED = 11303, + MSP_ERROR_AUTH_DVC_NEED_MORE_DATA = 11304, + MSP_ERROR_AUTH_DVC_LICENSE_TO_BE_EXPIRED = 11305, + MSP_ERROR_AUTH_DVC_EXCEED_LICENSE = 11306, + + /* Error codes of Ise */ + + MSP_ERROR_ASE_EXCEP_SILENCE = 11401, + MSP_ERROR_ASE_EXCEP_SNRATIO = 11402, + MSP_ERROR_ASE_EXCEP_PAPERDATA = 11403, + MSP_ERROR_ASE_EXCEP_PAPERCONTENTS = 11404, + MSP_ERROR_ASE_EXCEP_NOTMONO = 11405, + MSP_ERROR_ASE_EXCEP_OTHERS = 11406, + MSP_ERROR_ASE_EXCEP_PAPERFMT = 11407, + MSP_ERROR_ASE_EXCEP_ULISTWORD = 11408, + + /* Error codes of Iot */ + MSP_ERROR_IOT_BASE = 11500, + MSP_ERROR_IOT_PARAM_ERROR = 11501, // param error + MSP_ERROR_IOT_INVALID_SERVICE = 11502, // invalid service for iot ProTranServer + MSP_ERROR_IOT_INVALID_PRODUCTID = 11503, // invalid productid for ProTranServer + MSP_EEROR_IOT_INVALID_ATTR = 11504, // invalid attr value for one product in ProTranServer + MSP_ERROR_IOT_INVALID_PLATFORM = 11505, // invalid platform for ProTranServer + MSP_ERROR_IOT_DID_NOT_FOUND = 11506, // not found device id in semantic + + /* Error codes of IVP */ + MSP_ERROR_IVP_GENERAL = 11600, // 内核异常 + MSP_ERROR_IVP_EXTRA_RGN_SOPPORT = 11601, // 注册时向引擎所写音频条数超过上限(9次) + MSP_ERROR_IVP_TRUNCATED = 11602, // 音频截幅(因信号波形的幅度太大,而超出系统的线性范围),如记录尖叫声的音频 + MSP_ERROR_IVP_MUCH_NOISE = 11603, // 音频信噪比过低 + MSP_ERROR_IVP_TOO_LOW = 11604, // 音频能量过低 + MSP_ERROR_IVP_ZERO_AUDIO = 11605, // 无音频 + MSP_ERROR_IVP_UTTER_TOO_SHORT = 11606, // 音频太短 + MSP_ERROR_IVP_TEXT_NOT_MATCH = 11607, // 1.音频和文本不匹配,常见原因1.抢读(在按下录音键之前读) + // 2.录音机的启动电流被录入表现在音频上是在音频首有冲击电流 3.确实不匹配" + MSP_ERROR_IVP_NO_ENOUGH_AUDIO = 11608, // 音频不够,注册自由说,而写入的音频又不够长时会报,告诉调用者继续传音频 + MSP_ERROR_IVP_MODEL_NOT_FOUND_IN_HBASE = 11610, // 模型在hbase中没找到 + + /* Error codes of Face */ + + MSP_ERROR_IFR_NOT_FACE_IMAGE = 11700, // 【无人脸,对应的引擎错误码是20200 】 + MSP_ERROR_FACE_IMAGE_FULL_LEFT = 11701, // 【人脸向左,对应的引擎错误码是20201】 + MSP_ERROR_FACE_IMAGE_FULL_RIGHT = 11702, // 【人脸向右,对应的引擎错误码是20202】 + MSP_ERROR_IMAGE_CLOCKWISE_WHIRL = 11703, // 【顺时针旋转,对应的引擎错误码是20203】 + MSP_ERROR_IMAGE_COUNTET_CLOCKWISE_WHIRL = 11704, // 【逆时针旋转,对应的引擎错误码是20204】 + MSP_ERROR_VALID_IMAGE_SIZE = 11705, // 【图片大小异常 ,对应的引擎错误码是20205】 + MSP_ERROR_ILLUMINATION = 11706, // 【光照异常,对应的引擎错误码是20206】 + MSP_ERROR_FACE_OCCULTATION = 11707, // 【人脸被遮挡,对应的引擎错误码是20207】 + MSP_ERROR_FACE_INVALID_MODEL = 11708, // 【非法模型数据,对应的引擎错误码是20208】 + MSP_ERROR_FUSION_INVALID_INPUT_TYPE = 11709, // 【输入数据类型非法,对应的引擎错误码是20300】 + MSP_ERROR_FUSION_NO_ENOUGH_DATA = 11710, // 【输入的数据不完整,对应的引擎错误码是20301】 + MSP_ERROR_FUSION_ENOUGH_DATA = 11711, // 【输入的数据过多,对应的引擎错误码是20302】 + + /*Error Codes of AIUI*/ + MSP_ERROR_AIUI_CID_EXPIRED = 11800, + + /* Error codes of http 12000(0x2EE0) */ + MSP_ERROR_HTTP_BASE = 12000, /* 0x2EE0 */ + MSP_ERROR_HTTP_400 = 12400, + MSP_ERROR_HTTP_401 = 12401, + MSP_ERROR_HTTP_402 = 12402, + MSP_ERROR_HTTP_403 = 12403, + MSP_ERROR_HTTP_404 = 12404, + MSP_ERROR_HTTP_405 = 12405, + MSP_ERROR_HTTP_406 = 12406, + MSP_ERROR_HTTP_407 = 12407, + MSP_ERROR_HTTP_408 = 12408, + MSP_ERROR_HTTP_409 = 12409, + MSP_ERROR_HTTP_410 = 12410, + MSP_ERROR_HTTP_411 = 12411, + MSP_ERROR_HTTP_412 = 12412, + MSP_ERROR_HTTP_413 = 12413, + MSP_ERROR_HTTP_414 = 12414, + MSP_ERROR_HTTP_415 = 12415, + MSP_ERROR_HTTP_416 = 12416, + MSP_ERROR_HTTP_417 = 12417, + MSP_ERROR_HTTP_500 = 12500, + MSP_ERROR_HTTP_501 = 12501, + MSP_ERROR_HTTP_502 = 12502, + MSP_ERROR_HTTP_503 = 12503, + MSP_ERROR_HTTP_504 = 12504, + MSP_ERROR_HTTP_505 = 12505, + /*Error codes of ISV */ + MSP_ERROR_ISV_NO_USER = 13000, /* 32C8 */ /* the user doesn't exist */ + + /* Error codes of Lua scripts */ + MSP_ERROR_LUA_BASE = 14000, /* 0x36B0 */ + MSP_ERROR_LUA_YIELD = 14001, /* 0x36B1 */ + MSP_ERROR_LUA_ERRRUN = 14002, /* 0x36B2 */ + MSP_ERROR_LUA_ERRSYNTAX = 14003, /* 0x36B3 */ + MSP_ERROR_LUA_ERRMEM = 14004, /* 0x36B4 */ + MSP_ERROR_LUA_ERRERR = 14005, /* 0x36B5 */ + MSP_ERROR_LUA_INVALID_PARAM = 14006, /* 0x36B6 */ + + /* Error codes of MMP */ + MSP_ERROR_MMP_BASE = 15000, /* 0x3A98 */ + MSP_ERROR_MMP_MYSQL_INITFAIL = 15001, /* 0x3A99 */ + MSP_ERROR_MMP_REDIS_INITFAIL = 15002, /* 0x3A9A */ + MSP_ERROR_MMP_NETDSS_INITFAIL = 15003, /* 0x3A9B */ + MSP_ERROR_MMP_TAIR_INITFAIL = 15004, /* 0x3A9C */ + MSP_ERROR_MMP_MAIL_SESSION_FAIL = 15006, /* 0x3A9E */ /* 邮件登陆服务器时,会话错误。*/ + MSP_ERROR_MMP_MAIL_LOGON_FAIL = 15007, /* 0x3A9F */ /* 邮件登陆服务器时,拒绝登陆。*/ + MSP_ERROR_MMP_MAIL_USER_ILLEGAL = 15008, /* 0x3AA0 */ /* 邮件登陆服务器时,用户名非法。*/ + MSP_ERROR_MMP_MAIL_PWD_ERR = 15009, /* 0x3AA1 */ /* 邮件登陆服务器时,密码错误。*/ + MSP_ERROR_MMP_MAIL_SOCKET_ERR = 15010, /* 0x3AA2 */ /* 邮件发送过程中套接字错误*/ + MSP_ERROR_MMP_MAIL_INIT_FAIL = 15011, /* 0x3AA3 */ /* 邮件初始化错误*/ + MSP_ERROR_MMP_STORE_MNR_NO_INIT = 15012, /* 0x3AA4 */ /* store_manager未初始化,或初始化失败*/ + MSP_ERROR_MMP_STORE_MNR_POOL_FULL = 15013, /* 0x3AA5 */ /* store_manager的连接池满了*/ + MSP_ERROR_MMP_STRATGY_PARAM_ILLEGAL = 15014, /* 0x3AA6 */ /* 报警策略表达式非法*/ + MSP_ERROR_MMP_STRATGY_PARAM_TOOLOOG = 15015, /* 0x3AA7 */ /* 报警策略表达式太长*/ + MSP_ERROR_MMP_PARAM_NULL = 15016, /* 0x3AA8 */ /* 函数参数为空*/ + MSP_ERROR_MMP_ERR_MORE_TOTAL = 15017, /* 0x3AA9 */ /* pms插入数据库中错误汇总表的数据,错误次数 > 总次数。*/ + MSP_ERROR_MMP_PROC_THRESHOLD = 15018, /* 0x3AAA */ /* 进程监控阀值设置错误*/ + MSP_ERROR_MMP_SERVER_THRESHOLD = 15019, /* 0x3AAB */ /* 服务器监控阀值设置错误*/ + MSP_ERROR_MMP_PYTHON_NO_EXIST = 15020, /* 0x3AAC */ /* python脚本文件不存在 */ + MSP_ERROR_MMP_PYTHON_IMPORT_FAILED = 15021, /* 0x3AAD */ /* python脚本导入出错 */ + MSP_ERROR_MMP_PYTHON_BAD_FUNC = 15022, /* 0x3AAE */ /* python脚本函数格式错误 */ + MSP_ERROR_MMP_DB_DATA_ILLEGAL = 15023, /* 0x3AAF */ /* 插入数据库中的数据格式有误 */ + MSP_ERROR_MMP_REDIS_NOT_CONN = 15024, /* 0x3AB0 */ /* redis没有连接到服务端 */ + MSP_ERROR_MMP_PMA_NOT_FOUND_STRATEGY = 15025, /* 0x3AB1 */ /* 没有找到报警策略 */ + MSP_ERROR_MMP_TAIR_CONNECT = 15026, /* 0x3AB2 */ /* 连接tair集群失败 */ + MSP_ERROR_MMP_PMC_SERVINFO_INVALID = 15027, /* Ox3AB3 */ /* 此pmc的服务器信息已经无效 */ + MSP_ERROR_MMP_ALARM_GROUP_NULL = 15028, /* Ox3AB4 */ /* 服务器报警的短信报警组与邮件报警组均为空 */ + MSP_ERROR_MMP_ALARM_CONTXT_NULL = 15029, /* Ox3AB5 */ /* 服务器报警的报警内容为空 */ + + /* Error codes of MSC(lmod loader) */ + MSP_ERROR_LMOD_BASE = 16000, /* 0x3E80 */ + MSP_ERROR_LMOD_NOT_FOUND = 16001, /* 0x3E81 */ /* 没找到lmod文件 */ + MSP_ERROR_LMOD_UNEXPECTED_BIN = 16002, /* 0x3E82 */ /* 无效的lmod */ + MSP_ERROR_LMOD_LOADCODE = 16003, /* 0x3E83 */ /* 加载lmod指令失败 */ + MSP_ERROR_LMOD_PRECALL = 16004, /* 0x3E84 */ /* 初始化lmod失败 */ + MSP_ERROR_LMOD_RUNTIME_EXCEPTION = 16005, /* 0x3E85 */ /* lmod运行时异常 */ + MSP_ERROR_LMOD_ALREADY_LOADED = 16006, /* 0x3E86 */ /* lmod重复加载 */ + + // Error code of Third Business + MSP_ERROR_BIZ_BASE = 17000, /* 0x4268 */ /* 三方业务错误码 */ + + //Error of Nginx errlog file increase exception + MSP_ERROR_NGX_LOG_MORE_TOTEL_SIZE = 18000, /*nginx错误日志大小异常*/ + + //Error of Flash client when network checking + MSP_ERROR_FLASH_NETWORK_CONNECT_FIALED = 19000, /*flash服务端网络连接失败*/ + MSP_ERROR_FLASH_NETWORK_CHECK_FIALED = 19001, /*flash服务端响应了异常消息*/ + MSP_ERROR_FLASH_NETWORK_CHECK_TIMEOUT = 19002, /*flash服务端网络超时*/ + MSP_ERROR_FLASH_NETWORK_CLOSED_EXCEPTION = 19003, /*flash服务端网络异常关闭*/ + + /*Error Code Of Speech plus*/ + + SPEECH_ERROR_NO_NETWORK = 20001, /* 无有效的网络连接*/ + SPEECH_ERROR_NETWORK_TIMEOUT = 20002, /* 网络连接超时*/ + SPEECH_ERROR_NET_EXPECTION = 20003, /* 网络异常*/ + SPEECH_ERROR_INVALID_RESULT = 20004, /* 无有效的结果*/ + SPEECH_ERROR_NO_MATCH = 20005, /* 无匹配结果 */ + SPEECH_ERROR_AUDIO_RECORD = 20006, /* 录音失败 */ + SPEECH_ERROR_NO_SPPECH = 20007, /* 未检测到语音*/ + + SPEECH_ERROR_SPEECH_TIMEOUT = 20008, /* 音频输入超时*/ + SPEECH_ERROR_EMPTY_UTTERANCE = 20009, /* 无效的文本输入 */ + SPEECH_ERROR_FILE_ACCESS = 20010, /* 文件读写失败 */ + SPEECH_ERROR_PLAY_MEDIA = 20011, /* 音频播放失败 */ + + SPEECH_ERROR_INVALID_PARAM = 20012, /* 无效的参数*/ + SPEECH_ERROR_TEXT_OVERFLOW = 20013, /* 文本溢出 */ + SPEECH_ERROR_INVALID_DATA = 20014, /* 无效数据 */ + SPEECH_ERROR_LOGIN = 20015, /* 用户未登陆*/ + SPEECH_ERROR_PERMISSION_DENIED = 20016, /* 无效授权 */ + SPEECH_ERROR_INTERRUPT = 20017, /* 被异常打断 */ + + SPEECH_ERROR_VERSION_LOWER = 20018, /* 版本过低 */ + SPEECH_CLIENT_ERROR_ISUSING = 20019, /* 录音机被占用(iOS平台) */ + SPEECH_ERROR_SYSTEM_PREINSTALL = 20020, /* 系统预置版本 */ + SPEECH_ERROR_UNSATISFIED_LINK = 20021, /* 未实现的Native函数引用 */ + SPEECH_ERROR_UNKNOWN = 20999, /* 未知错误 */ + + + SPEECH_ERROR_COMPONENT_NOT_INSTALLED = 21001, /* 没有安装语音组件 */ + SPEECH_ERROR_ENGINE_NOT_SUPPORTED = 21002, /* 引擎不支持 */ + SPEECH_ERROR_ENGINE_INIT_FAIL = 21003, /* 初始化失败 */ + SPEECH_ERROR_ENGINE_CALL_FAIL = 21004, /* 调用失败 */ + SPEECH_ERROR_ENGINE_BUSY = 21005, /* 引擎繁忙 */ + + SPEECH_ERROR_LOCAL_NO_INIT = 22001, /* 本地引擎未初始化 */ + SPEECH_ERROR_LOCAL_RESOURCE = 22002, /* 本地引擎无资源 */ + SPEECH_ERROR_LOCAL_ENGINE = 22003, /* 本地引擎内部错误 */ + SPEECH_ERROR_IVW_INTERRUPT = 22004, /* 本地唤醒引擎被异常打断 */ + + + /*Error Code Of Local iflytek Engines*/ + + /*Error Code Of AiTalk*/ + + /*Error Code Of AiTalk Operation*/ + SPEECH_SUCCESS = 0 , // ivErr_OK = 0 /*成功状态*/ + + SPEECH_ERROR_ASR_CLIENT = 23000, /*客户端应用程序错误*///????????? + SPEECH_ERROR_ASR_INVALID_PARA = 23001, /*无效的参数*/ + SPEECH_ERROR_ASR_INVALID_PARA_VALUE = 23002, /*无效的参数值*/ + SPEECH_ERROR_ASR_OUT_OF_MEMORY = 23003, /*内存耗尽*/ + SPEECH_ERROR_ASR_CREATE_HANDLE_FAILED = 23004, /*创建句柄失败*/ + SPEECH_ERROR_ASR_ENGINE_INIT_FAILED = 23005, /*引擎初始化失败*/ + SPEECH_ERROR_ASR_ENGINE_STARTED = 23006, /*引擎已经启动*/ + SPEECH_ERROR_ASR_ENGINE_UNINIT = 23007, /*引擎未初始化*/ + SPEECH_ERROR_ASR_SPEECH_TIMEOUT = 23008, /*识别超时(VAD没开启或没有检测到后端点)*/ + SPEECH_ERROR_ASR_NO_RECOGNIZED_RESULT = 23009, /*无识别结果*/ + SPEECH_ERROR_ASR_INVALID_HANDLE = 23010, /*无效的句柄*/ + SPEECH_ERROR_ASR_FILE_ACCESS = 23011, /*打开文件失败*/ + + /*Error Code Of AiTalk Engine*/ + SPEECH_ERROR_AITALK_FALSE = 23100, // ivErr_FALSE = 1 + + /* For license check */ + SPEECH_ERROR_AITALK_PERMISSION_DENIED = 23101, // ivErr_InvSN = 2 + + /* General */ + SPEECH_ERROR_AITALK_INVALID_PARA = 23102, // ivErr_InvArg = 3 + SPEECH_ERROR_AITALK_BUFFER_OVERFLOW = 23103, // ivErr_BufferFull = 4 /*音频数据缓冲区已满*/ + SPEECH_ERROR_AITALK_FAILED = 23104, // ivErr_Failed = 5 + SPEECH_ERROR_AITALK_NOT_SUPPORTED = 23105, // ivErr_NotSupport = 6 /*引擎不支持*/ + SPEECH_ERROR_AITALK_OUT_OF_MEMORY = 23106, // ivErr_OutOfMemory = 7 + SPEECH_ERROR_AITALK_INVALID_RESOURCE = 23107, // ivErr_InvResource = 8 /*资源无效*/ + SPEECH_ERROR_AITALK_NOT_FOUND = 23108, // ivErr_NotFound = 9 /*打开文件失败*/ + SPEECH_ERROR_AITALK_INVALID_GRAMMAR = 23109, // ivErr_InvGrmr = 10 /*识别语法错误*/ + + /* For object status */ + SPEECH_ERROR_AITALK_INVALID_CALL = 23110, // ivErr_InvCall = 11 /*无效调用*/ + + /* For ASR Input */ + SPEECH_ERROR_AITALK_SYNTAX_ERROR = 23111, // ivErr_InvCall = 12 + + /* For Message Call Back */ + SPEECH_ERROR_AITALK_RESET = 23112, // ivErr_Reset = 13 + SPEECH_ERROR_AITALK_ENDED = 23113, // ivErr_Ended = 14 + SPEECH_ERROR_AITALK_IDLE = 23114, // ivErr_Idle = 15 + SPEECH_ERROR_AITALK_CANNOT_SAVE_FILE = 23115, // ivErr_CanNotSaveFile = 16 + + /* For Lexicon name */ + SPEECH_ERROR_AITALK_INVALID_GRAMMAR_NAME = 23116, // ivErr_InvName = 17 /*文法或词典名称非法*/ + + SPEECH_ERROR_AITALK_BUFFER_EMPTY = 23117, // ivErr_BufferEmpty = 18 + + SPEECH_ERROR_AITALK_GET_RESULT = 23118, // ivErr_GetResult = 19 + + SPEECH_ERROR_AITALK_REACT_OUT_TIME = 23119, // ivErr_ReactOutTime = 20 /*反应超时*/ + SPEECH_ERROR_AITALK_SPEECH_OUT_TIME = 23120, // ivErr_SpeechOutTime = 21 /*语音超时*/ + + SPEECH_ERROR_AITALK_AUDIO_CUT = 23121, // ivErr_CUT = 22 /*录音质量过高*/ + SPEECH_ERROR_AITALK_AUDIO_LOWER = 23122, // ivErr_LOWER = 23 /*录音质量过低*/ + + SPEECH_ERROR_AITALK_INSUFFICIENT_PERMISSIONS = 23123, // ivErr_Limitted = 24 /*授权不够*/ + SPEECH_ERROR_AITALK_RESULT_ERROR = 23124, // ivErr_ResultError = 25 /*解码器Wfst输出后,依然有cmd输出*/ + SPEECH_ERROR_AITALK_SHORT_PAUSE = 23125, // ivErr_ShortPause = 26 + SPEECH_ERROR_AITALK_BUSY = 23126, // ivErr_Busy = 27 + SPEECH_ERROR_AITALK_GRM_NOT_UPDATE = 23127, // ivErr_GrmNotUpdate = 28 /*语法未更新*/ + SPEECH_ERROR_AITALK_STARTED = 23128, // ivErr_Started = 29 + SPEECH_ERROR_AITALK_STOPPED = 23129, // ivErr_Stopped = 30 + SPEECH_ERROR_AITALK_ALREADY_STARTED = 23130, // ivErr_AlreadyStarted = 31 + SPEECH_ERROR_AITALK_ALREADY_STOPPED = 23131, // ivErr_AlreadyStopped = 32 + SPEECH_ERROR_AITALK_TOO_MANY_COMMAND = 23132, // ivErr_TooManyCmd = 33 + SPEECH_ERROR_AITALK_WAIT = 23133, // ivErr_Wait = 34 /*程序可能在做一些操作,主线程需要等待*/ + SPEECH_ERROR_AITALK_MAE_RIGHT = 23134, // ivErr_MAERight = 35 + SPEECH_ERROR_AITALK_MAE_WRONG = 23135, // ivErr_MAEWrong = 36 + + SPEECH_ERROR_AITALK_GRM_ERR = 23300, // 语法错误 + + + + /*Error Code Of AiSound*/ + + /*Error Code Of AiSound Operation*/ + SPEECH_ERROR_TTS_INVALID_PARA = 24000, /* 错误参数 */ + SPEECH_ERROR_TTS_INVALID_PARA_VALUE = 24001, /* 无效的参数值*/ + SPEECH_ERROR_TTS_OUT_OF_MEMORY = 24002, /* 内存不足*/ + SPEECH_ERROR_TTS_INVALID_HANDLE = 24003, /* 无效的句柄*/ + SPEECH_ERROR_TTS_CREATE_HANDLE_FAILED = 24004, /* 创建句柄失败*/ + SPEECH_ERROR_TTS_INVALID_RESOURCE = 24005, /* 无效资源 */ + SPEECH_ERROR_TTS_INVALID_VOICE_NAME = 24006, /* 无效发言人*/ + SPEECH_ERROR_TTS_ENGINE_UNINIT = 24007, /* 引擎未初始化 */ + SPEECH_ERROR_TTS_ENGINE_INIT_FAILED = 24008, /* 引擎初始化失败 */ + SPEECH_ERROR_TTS_ENGINE_BUSY = 24009, /* 引擎忙 */ + + + /*Error Code Of AiSound Engine*/ + SPEECH_ERROR_AISOUND_BASE = 24100, + SPEECH_ERROR_AISOUND_UNIMPEMENTED = 24100, /* unimplemented function */ + SPEECH_ERROR_AISOUND_UNSUPPORTED = 24101, /* unsupported on this platform */ + SPEECH_ERROR_AISOUND_INVALID_HANDLE = 24102, /* invalid handle */ + SPEECH_ERROR_AISOUND_INVALID_PARA = 24103, /* invalid parameter(s) */ + SPEECH_ERROR_AISOUND_INSUFFICIENT_HEAP = 24104, /* insufficient heap size */ + SPEECH_ERROR_AISOUND_STATE_REFUSE = 24105, /* refuse to do in current state */ + SPEECH_ERROR_AISOUND_INVALID_PARA_ID = 24106, /* invalid parameter ID */ + SPEECH_ERROR_AISOUND_INVALID_PARA_VALUE = 24107, /* invalid parameter value */ + SPEECH_ERROR_AISOUND_RESOURCE = 24108, /* Resource is error */ + SPEECH_ERROR_AISOUND_RESOURCE_READ = 24109, /* read resource error */ + SPEECH_ERROR_AISOUND_LBENDIAN = 24110, /* the Endian of SDK is error */ + SPEECH_ERROR_AISOUND_HEADFILE = 24111, /* the HeadFile is different of the SDK */ + SPEECH_ERROR_AISOUND_BUFFER_OVERFLOW = 24112, /* get data size exceed the data buffer */ + SPEECH_ERROR_AISOUND_INVALID_ISAMPA = 24113, /* !Invalid iSampa format or input iSampa text contain invalid alphabet*/ + SPEECH_ERROR_AISOUND_INVALID_CSSML = 24114, /* !Invalid cssml format */ + + + /*Error Code Of ivw*/ + + /*Error Code Of ivw Operation*/ + SPEECH_ERROR_IVW_ENGINE_UNINI = 25000, /* 引擎未初始化 */ + SPEECH_ERROR_IVW_RESVER_NOMATCH = 25001, /* 资源版本不匹配 */ + SPEECH_ERROR_IVW_BUFFERED_AUDIOD_LITTLE = 25002, /* 唤醒加识别缓存音频过少 */ + SPEECH_ERROR_IVW_INVALID_RESTYPE = 25003, /* 不合法的资源类型 */ + + /*Error Code Of ivw Engine*/ + SPEECH_ERROR_IVW_INVALID_CALL = 25101, // IvwErr_InvCal = 1 + SPEECH_ERROR_IVW_INVALID_ARG = 25102, // IvwErr_InvArg = 2 + SPEECH_ERROR_IVW_TELL_SIZE = 25103, // IvwErr_TellSize = 3 + SPEECH_ERROR_IVW_OUT_OF_MEMORY = 25104, // IvwErr_OutOfMemory = 4 + SPEECH_ERROR_IVW_OUT_BUFFER_FULL = 25105, // IvwErr_BufferFull = 5 + SPEECH_ERROR_IVW_OUT_BUFFER_EMPTY = 25106, // IvwErr_BufferEmpty = 6 + SPEECH_ERROR_IVW_INVALID_RESOURCE = 25107, // IvwErr_InvRes = 7 + SPEECH_ERROR_IVW_REPETITIOPN_ENTER = 25108, // IvwErr_ReEnter = 8 + SPEECH_ERROR_IVW_NOT_SUPPORT = 25109, // IvwErr_NotSupport = 9 + SPEECH_ERROR_IVW_NOT_FOUND = 25110, // IvwErr_NotFound = 10 + SPEECH_ERROR_IVW_INVALID_SN = 25111, // IvwErr_InvSN = 11 + SPEECH_ERROR_IVW_LIMITTED = 25112, // IvwErr_Limitted = 12 + SPEECH_ERROR_IVW_TIME_OUT = 25113, // IvwErr_TimeOut = 13 + + SPEECH_ERROR_IVW_ENROLL1_SUCESS = 25114, // IvwErr_Enroll1_Success = 14 + SPEECH_ERROR_IVW_ENROLL1_FAILED = 25115, // IvwErr_Enroll1_Failed = 15 + SPEECH_ERROR_IVW_ENROLL2_SUCESS = 25116, // IvwErr_Enroll2_Success = 16 + SPEECH_ERROR_IVW_ENROLL2_FAILED = 25117, // IvwErr_Enroll2_Failed = 17 + SPEECH_ERROR_IVW_ENROLL3_SUCESS = 25118, // IvwErr_Enroll3_Success = 18 + SPEECH_ERROR_IVW_ENROLL3_FAILED = 25119, // IvwErr_Enroll3_Failed = 19 + SPEECH_ERROR_IVW_SPEECH_TOO_SHORT = 25120, // IvwErr_SpeechTooShort = 20 + SPEECH_ERROR_IVW_SPEECH_STOP = 25121, // IvwErr_SpeechStop = 21 + + /* 非实时转写错误码:26000~26999 */ + SPEECH_ERROR_LFASR_BASE = 26000, /* 非实时转写错误码基码 */ +}; + +#endif /* __MSP_ERRORS_H__ */ \ No newline at end of file diff --git a/lib/libmsc/lib/include/msp_types.h b/lib/libmsc/lib/include/msp_types.h new file mode 100644 index 0000000..87ff875 --- /dev/null +++ b/lib/libmsc/lib/include/msp_types.h @@ -0,0 +1,123 @@ +#ifndef __MSP_TYPES_H__ +#define __MSP_TYPES_H__ + +#if !defined(MSPAPI) +#if defined(WIN32) || defined(WINPHONE8) || defined(WIN8) + #define MSPAPI __stdcall +#else + #define MSPAPI +#endif /* WIN32 */ +#endif /* MSPAPI */ + + +/** + * MSPSampleStatus indicates how the sample buffer should be handled + * MSP_AUDIO_SAMPLE_FIRST - The sample buffer is the start of audio + * If recognizer was already recognizing, it will discard + * audio received to date and re-start the recognition + * MSP_AUDIO_SAMPLE_CONTINUE - The sample buffer is continuing audio + * MSP_AUDIO_SAMPLE_LAST - The sample buffer is the end of audio + * The recognizer will cease processing audio and + * return results + * Note that sample statii can be combined; for example, for file-based input + * the entire file can be written with SAMPLE_FIRST | SAMPLE_LAST as the + * status. + * Other flags may be added in future to indicate other special audio + * conditions such as the presence of AGC + */ +enum +{ + MSP_AUDIO_SAMPLE_INIT = 0x00, + MSP_AUDIO_SAMPLE_FIRST = 0x01, + MSP_AUDIO_SAMPLE_CONTINUE = 0x02, + MSP_AUDIO_SAMPLE_LAST = 0x04, +}; + +/* + * The enumeration MSPRecognizerStatus contains the recognition status + * MSP_REC_STATUS_SUCCESS - successful recognition with partial results + * MSP_REC_STATUS_NO_MATCH - recognition rejected + * MSP_REC_STATUS_INCOMPLETE - recognizer needs more time to compute results + * MSP_REC_STATUS_NON_SPEECH_DETECTED - discard status, no more in use + * MSP_REC_STATUS_SPEECH_DETECTED - recognizer has detected audio, this is delayed status + * MSP_REC_STATUS_COMPLETE - recognizer has return all result + * MSP_REC_STATUS_MAX_CPU_TIME - CPU time limit exceeded + * MSP_REC_STATUS_MAX_SPEECH - maximum speech length exceeded, partial results may be returned + * MSP_REC_STATUS_STOPPED - recognition was stopped + * MSP_REC_STATUS_REJECTED - recognizer rejected due to low confidence + * MSP_REC_STATUS_NO_SPEECH_FOUND - recognizer still found no audio, this is delayed status + */ +enum +{ + MSP_REC_STATUS_SUCCESS = 0, + MSP_REC_STATUS_NO_MATCH = 1, + MSP_REC_STATUS_INCOMPLETE = 2, + MSP_REC_STATUS_NON_SPEECH_DETECTED = 3, + MSP_REC_STATUS_SPEECH_DETECTED = 4, + MSP_REC_STATUS_COMPLETE = 5, + MSP_REC_STATUS_MAX_CPU_TIME = 6, + MSP_REC_STATUS_MAX_SPEECH = 7, + MSP_REC_STATUS_STOPPED = 8, + MSP_REC_STATUS_REJECTED = 9, + MSP_REC_STATUS_NO_SPEECH_FOUND = 10, + MSP_REC_STATUS_FAILURE = MSP_REC_STATUS_NO_MATCH, +}; + +/** + * The enumeration MSPepState contains the current endpointer state + * MSP_EP_LOOKING_FOR_SPEECH - Have not yet found the beginning of speech + * MSP_EP_IN_SPEECH - Have found the beginning, but not the end of speech + * MSP_EP_AFTER_SPEECH - Have found the beginning and end of speech + * MSP_EP_TIMEOUT - Have not found any audio till timeout + * MSP_EP_ERROR - The endpointer has encountered a serious error + * MSP_EP_MAX_SPEECH - Have arrive the max size of speech + */ +enum +{ + MSP_EP_LOOKING_FOR_SPEECH = 0, + MSP_EP_IN_SPEECH = 1, + MSP_EP_AFTER_SPEECH = 3, + MSP_EP_TIMEOUT = 4, + MSP_EP_ERROR = 5, + MSP_EP_MAX_SPEECH = 6, + MSP_EP_IDLE = 7 // internal state after stop and before start +}; + +/* Synthesizing process flags */ +enum +{ + MSP_TTS_FLAG_STILL_HAVE_DATA = 1, + MSP_TTS_FLAG_DATA_END = 2, + MSP_TTS_FLAG_CMD_CANCELED = 4, +}; + +/* Handwriting process flags */ +enum +{ + MSP_HCR_DATA_FIRST = 1, + MSP_HCR_DATA_CONTINUE = 2, + MSP_HCR_DATA_END = 4, +}; + +/*ivw message type */ +enum +{ + MSP_IVW_MSG_WAKEUP = 1, + MSP_IVW_MSG_ERROR = 2, + MSP_IVW_MSG_ISR_RESULT = 3, + MSP_IVW_MSG_ISR_EPS = 4, + MSP_IVW_MSG_VOLUME = 5, + MSP_IVW_MSG_ENROLL = 6, + MSP_IVW_MSG_RESET = 7 +}; + +/* Upload data process flags */ +enum +{ + MSP_DATA_SAMPLE_INIT = 0x00, + MSP_DATA_SAMPLE_FIRST = 0x01, + MSP_DATA_SAMPLE_CONTINUE = 0x02, + MSP_DATA_SAMPLE_LAST = 0x04, +}; + +#endif /* __MSP_TYPES_H__ */ diff --git a/lib/libmsc/lib/include/qise.h b/lib/libmsc/lib/include/qise.h new file mode 100644 index 0000000..6d71961 --- /dev/null +++ b/lib/libmsc/lib/include/qise.h @@ -0,0 +1,206 @@ +/** + * @file qise.h + * @brief iFLY Speech Evaluation Header File + * + * This file contains the quick application programming interface (API) declarations + * of evaluation. Developer can include this file in your project to build applications. + * For more information, please read the developer guide. + + * Use of this software is subject to certain restrictions and limitations set + * forth in a license agreement entered into between iFLYTEK, Co,LTD. + * and the licensee of this software. Please refer to the license + * agreement for license use rights and restrictions. + * + * Copyright (C) 1999 - 2012 by ANHUI USTC iFLYTEK, Co,LTD. + * All rights reserved. + * + * @author Speech Dept. iFLYTEK. + * @version 1.0 + * @date 2012/4/16 + * + * @see + * + * History:
+ * + * + * + *
Version Date Author Notes
1.0 2012/4/16 MSP40 Create this file
+ * + */ + +#ifndef __MSP_ISE_H__ +#define __MSP_ISE_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ + +#include "msp_types.h" + +/** + * @fn QISEInit + * @brief Initialize API + * + * Load API module with specified configurations. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* configs - [in] Configurations to initialize. + * @see + */ +/*int MSPAPI QISEInit(const char* configs); +typedef int (MSPAPI *Proc_QISEInit)(const char* configs); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISEInitW(const wchar_t* configs); +typedef int (MSPAPI *Proc_QISEInitW)(const wchar_t* configs); +#endif*/ + +/** + * @fn QISESessionBegin + * @brief Begin a Evaluation Session + * + * Create a evaluation session to evaluate audio data + * + * @return const char* MSPAPI - Return the new session id in success, otherwise return NULL. + * @param const char* params - [in] Parameters to create session. + * @param const char* userModelId - [in] user model id. + * @param int *errorCode - [out] Return 0 in success, otherwise return error code. + * @see + */ +const char* MSPAPI QISESessionBegin(const char* params, const char* userModelId, int* errorCode); +typedef const char* (MSPAPI *Proc_QISESessionBegin)(const char* params, const char* userModelID, int *errorCode); +#ifdef MSP_WCHAR_SUPPORT +const wchar_t* MSPAPI QISESessionBeginW(const wchar_t* params, const wchar_t* userModelID, int *errorCode); +typedef const wchar_t* (MSPAPI *Proc_QISESessionBeginW)(const wchar_t* params, const wchar_t* userModelID, int *errorCode); +#endif + +/** + * @fn QISETextPut + * @brief Put Text + * + * Writing text string to evaluator. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] The session id returned by QISESessionBegin. + * @param const char* textString - [in] Text buffer. + * @param unsigned int textLen - [in] Text length in bytes. + * @param const char* params - [in] Parameters describing the text. + * @see + */ +int MSPAPI QISETextPut(const char* sessionID, const char* textString, unsigned int textLen, const char* params); +typedef int (MSPAPI *Proc_QISETextPut)(const char* sessionID, const char* textString, unsigned int textLen, const char* params); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISETextPutW(const wchar_t* sessionID, const wchar_t* textString, unsigned int textLen, const wchar_t* params); +typedef int (MSPAPI *Proc_QISETextPutW)(const wchar_t* sessionID, const wchar_t* textString, unsigned int textLen, const wchar_t* params); +#endif + +/** + * @fn QISEAudioWrite + * @brief Write Audio + * + * Writing binary audio data to evaluator. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] The session id returned by QISESessionBegin. + * @param const void* waveData - [in] Audio data to write. + * @param unsigned int waveLen - [in] Audio length in bytes. + * @param int audioStatus - [in] Audio status. + * @param int *epStatus - [out] EP or vad status. + * @param int *evlStatus - [out] Status of evaluation result, 0: success, 1: no match, 2: incomplete, 5:speech complete. + * @see + */ +int MSPAPI QISEAudioWrite(const char* sessionID, const void* waveData, unsigned int waveLen, int audioStatus, int *epStatus, int *Status); +typedef int (MSPAPI *Proc_QISEAudioWrite)(const char* sessionID, const void* waveData, unsigned int waveLen, int audioStatus, int *epStatus, int *recogStatus); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISEAudioWriteW(const wchar_t* sessionID, const void* waveData, unsigned int waveLen, int audioStatus, int *epStatus, int *evlStatus); +typedef int (MSPAPI *Proc_QISEAudioWriteW)(const wchar_t* sessionID, const void* waveData, unsigned int waveLen, int audioStatus, int *epStatus, int *evlStatus); +#endif + +/** + * @fn QISEGetResult + * @brief Get Evaluation Result + * + * Get evaluation result. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] The session id returned by QISESessionBegin. + * @param int* rsltLen - [out] Length of result returned. + * @param int* rsltStatus - [out] Status of evaluation result returned. + * @param int* errorCode - [out] Return 0 in success, otherwise return error code. + * @see + */ +const char * MSPAPI QISEGetResult(const char* sessionID, unsigned int* rsltLen, int* rsltStatus, int *errorCode); +typedef const char * (MSPAPI *Proc_QISEGetResult)(const char* sessionID, unsigned int* rsltLen, int* rsltStatus, int *errorCode); +#ifdef MSP_WCHAR_SUPPORT +const wchar_t* MSPAPI QISEGetResultW(const wchar_t* sessionID, int* rsltLen, unsigned int* rsltStatus, int *errorCode); +typedef const wchar_t* (MSPAPI *Proc_QISEGetResultW)(const wchar_t* sessionID, unsigned int* rsltLen, int* rsltStatus, int *errorCode); +#endif + +/** + * @fn QISEResultInfo + * @brief Get Result Info + * + * Get info of evaluation result. + * + * @return const char * - The session id returned by QISESessionBegin. + * @param const char* sessionID - [in] session id returned by QISESessionBegin. + * @see + */ +const char* MSPAPI QISEResultInfo(const char* sessionID, int *errorCode); +typedef const char* (MSPAPI *Proc_QISEResultInfo)(const char* sessionID, int *errorCode); +#ifdef MSP_WCHAR_SUPPORT +const wchar_t* MSPAPI QISEResultInfoW(const wchar_t* sessionID, int *errorCode); +typedef const wchar_t* (MSPAPI *Proc_QISEResultInfoW)(const wchar_t* sessionID, int *errorCode); +#endif + +/** + * @fn QISESessionEnd + * @brief End a ISR Session + * + * End a evaluation session, release all resource. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] The session id returned by QISESessionBegin. + * @param const char* hints - [in] Reason to end current session. + * @see + */ +int MSPAPI QISESessionEnd(const char* sessionID, const char* hints); +typedef int (MSPAPI *Proc_QISESessionEnd)(const char* sessionID, const char* hints); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISESessionEndW(const wchar_t* sessionID, const wchar_t* hints); +typedef int (MSPAPI *Proc_QISESessionEndW)(const wchar_t* sessionID, const wchar_t* hints); +#endif + +/** + * @fn QISEGetParam + * @brief get params related with msc + * + * the params could be local or server param, we only support netflow params "upflow" & "downflow" now + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] session id of related param, set NULL to got global param + * @param const char* paramName - [in] param name,could pass more than one param splited by ',' ';' or '\n'. + * @param const char* paramValue - [in] param value buffer, malloced by user. + * @param int *valueLen - [in, out] in: length of value buffer, out: length of value string. + * @see + */ +int MSPAPI QISEGetParam(const char* sessionID, const char* paramName, char* paramValue, unsigned int* valueLen); +typedef int (MSPAPI *Proc_QISEGetParam)(const char* sessionID, const char* paramName, char* paramValue, unsigned int* valueLen); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISEGetParamW(const wchar_t* sessionID, const wchar_t* paramName, wchar_t* paramValue, unsigned int* valueLen); +typedef int (MSPAPI *Proc_QISEGetParamW)(const wchar_t* sessionID, const wchar_t* paramName, wchar_t* paramValue, unsigned int* valueLen); +#endif + +/* +// +// typedef void ( MSPAPI *recog_result_ntf_handler)( const char *sessionID, const char *result, int resultLen, int resultStatus, void *userData ); +// typedef void ( MSPAPI *status_ntf_handler)( const char *sessionID, int type, int status, const void *param1, const void *param2, void *userData); +// typedef void ( MSPAPI *error_ntf_handler)(const char *sessionID, int errorCode, const char *detail, void *userData); +// int MSPAPI QISRRegisterNotify(const char *sessionID, recog_result_ntf_handler rsltCb, status_ntf_handler statusCb, error_ntf_handler errCb, void *userData); +*/ + + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* C++ */ + +#endif /* __MSP_ISE_H__ */ diff --git a/lib/libmsc/lib/include/qisr.h b/lib/libmsc/lib/include/qisr.h new file mode 100644 index 0000000..082ec73 --- /dev/null +++ b/lib/libmsc/lib/include/qisr.h @@ -0,0 +1,203 @@ +/** + * @file qisr.h + * @brief iFLY Speech Recognizer Header File + * + * This file contains the quick application programming interface (API) declarations + * of ISR. Developer can include this file in your project to build applications. + * For more information, please read the developer guide. + + * Use of this software is subject to certain restrictions and limitations set + * forth in a license agreement entered into between iFLYTEK, Co,LTD. + * and the licensee of this software. Please refer to the license + * agreement for license use rights and restrictions. + * + * Copyright (C) 1999 - 2007 by ANHUI USTC iFLYTEK, Co,LTD. + * All rights reserved. + * + * @author Speech Dept. iFLYTEK. + * @version 1.0 + * @date 2008/12/12 + * + * @see + * + * History: + * index version date author notes + * 0 1.0 2008/12/12 Speech Create this file + */ + +#ifndef __QISR_H__ +#define __QISR_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ + +#include "msp_types.h" + +/** + * @fn QISRSessionBegin + * @brief Begin a Recognizer Session + * + * Create a recognizer session to recognize audio data + * + * @return return sessionID of current session, NULL is failed. + * @param const char* grammarList - [in] grammars list, inline grammar support only one. + * @param const char* params - [in] parameters when the session created. + * @param int *errorCode - [out] return 0 on success, otherwise return error code. + * @see + */ +const char* MSPAPI QISRSessionBegin(const char* grammarList, const char* params, int* errorCode); +typedef const char* (MSPAPI *Proc_QISRSessionBegin)(const char* grammarList, const char* params, int *result); +#ifdef MSP_WCHAR_SUPPORT +const wchar_t* MSPAPI QISRSessionBeginW(const wchar_t* grammarList, const wchar_t* params, int *result); +typedef const wchar_t* (MSPAPI *Proc_QISRSessionBeginW)(const wchar_t* grammarList, const wchar_t* params, int *result); +#endif + + +/** + * @fn QISRAudioWrite + * @brief Write Audio Data to Recognizer Session + * + * Writing binary audio data to recognizer. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] The session id returned by recog_begin + * @param const void* waveData - [in] Binary data of waveform + * @param unsigned int waveLen - [in] Waveform data size in bytes + * @param int audioStatus - [in] Audio status, can be + * @param int *epStatus - [out] ISRepState + * @param int *recogStatus - [out] ISRrecRecognizerStatus, see isr_rec.h + * @see + */ +int MSPAPI QISRAudioWrite(const char* sessionID, const void* waveData, unsigned int waveLen, int audioStatus, int *epStatus, int *recogStatus); +typedef int (MSPAPI *Proc_QISRAudioWrite)(const char* sessionID, const void* waveData, unsigned int waveLen, int audioStatus, int *epStatus, int *recogStatus); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISRAudioWriteW(const wchar_t* sessionID, const void* waveData, unsigned int waveLen, int audioStatus, int *epStatus, int *recogStatus); +typedef int (MSPAPI *Proc_QISRAudioWriteW)(const wchar_t* sessionID, const void* waveData, unsigned int waveLen, int audioStatus, int *epStatus, int *recogStatus); +#endif + +/** + * @fn QISRGetResult + * @brief Get Recognize Result in Specified Format + * + * Get recognize result in Specified format. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] session id returned by session begin + * @param int* rsltStatus - [out] status of recognition result, 0: success, 1: no match, 2: incomplete, 5:speech complete + * @param int *errorCode - [out] return 0 on success, otherwise return error code. + * @see + */ +const char * MSPAPI QISRGetResult(const char* sessionID, int* rsltStatus, int waitTime, int *errorCode); +typedef const char * (MSPAPI *Proc_QISRGetResult)(const char* sessionID, int* rsltStatus, int waitTime, int *errorCode); +#ifdef MSP_WCHAR_SUPPORT +const wchar_t* MSPAPI QISRGetResultW(const wchar_t* sessionID, int* rsltStatus, int waitTime, int *errorCode); +typedef const wchar_t* (MSPAPI *Proc_QISRGetResultW)(const wchar_t* sessionID, int* rsltStatus, int waitTime, int *errorCode); +#endif + +/** + * @fn QISRGetBinaryResult + * @brief Get Recognize Result in Specified Format + * + * Get recognize result in Specified format. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] session id returned by session begin + * @param int* rsltStatus - [out] status of recognition result, 0: success, 1: no match, 2: incomplete, 5:speech complete + * @param int *errorCode - [out] return 0 on success, otherwise return error code. + * @see + */ +const char * MSPAPI QISRGetBinaryResult(const char* sessionID, unsigned int* rsltLen,int* rsltStatus, int waitTime, int *errorCode); +typedef const char * (MSPAPI *Proc_QISRGetBinaryResult)(const char* sessionID, unsigned int* rsltLen, int* rsltStatus, int waitTime, int *errorCode); +#ifdef MSP_WCHAR_SUPPORT +const wchar_t* MSPAPI QISRGetBinaryResultW(const wchar_t* sessionID, unsigned int* rsltLen, int* rsltStatus, int waitTime, int *errorCode); +typedef const wchar_t* (MSPAPI *Proc_QISRGetBinaryResultW)(const wchar_t* sessionID, unsigned int* rsltLen, int* rsltStatus, int waitTime, int *errorCode); +#endif + + +/** + * @fn QISRSessionEnd + * @brief End a Recognizer Session + * + * End the recognizer session, release all resource. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] session id string to end + * @param const char* hints - [in] user hints to end session, hints will be logged to CallLog + * @see + */ +int MSPAPI QISRSessionEnd(const char* sessionID, const char* hints); +typedef int (MSPAPI *Proc_QISRSessionEnd)(const char* sessionID, const char* hints); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISRSessionEndW(const wchar_t* sessionID, const wchar_t* hints); +typedef int (MSPAPI *Proc_QISRSessionEndW)(const wchar_t* sessionID, const wchar_t* hints); +#endif + +/** + * @fn QISRGetParam + * @brief get params related with msc + * + * the params could be local or server param, we only support netflow params "upflow" & "downflow" now + * + * @return int - Return 0 if success, otherwise return errcode. + * @param const char* sessionID - [in] session id of related param, set NULL to got global param + * @param const char* paramName - [in] param name,could pass more than one param split by ','';'or'\n' + * @param const char* paramValue - [in] param value buffer, malloced by user + * @param int *valueLen - [in, out] pass in length of value buffer, and return length of value string + * @see + */ +int MSPAPI QISRGetParam(const char* sessionID, const char* paramName, char* paramValue, unsigned int* valueLen); +typedef int (MSPAPI *Proc_QISRGetParam)(const char* sessionID, const char* paramName, char* paramValue, unsigned int* valueLen); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISRGetParamW(const wchar_t* sessionID, const wchar_t* paramName, wchar_t* paramValue, unsigned int* valueLen); +typedef int (MSPAPI *Proc_QISRGetParamW)(const wchar_t* sessionID, const wchar_t* paramName, wchar_t* paramValue, unsigned int* valueLen); +#endif + +/** + * @fn QISRSetParam + * @brief get params related with msc + * + * the params could be local or server param, we only support netflow params "upflow" & "downflow" now + * + * @return int - Return 0 if success, otherwise return errcode. + * @param const char* sessionID - [in] session id of related param, set NULL to got global param + * @param const char* paramName - [in] param name,could pass more than one param split by ','';'or'\n' + * @param const char* paramValue - [in] param value buffer, malloced by user + * @param int *valueLen - [in, out] pass in length of value buffer, and return length of value string + * @see + */ +int MSPAPI QISRSetParam(const char* sessionID, const char* paramName, const char* paramValue); +typedef int (MSPAPI *Proc_QISRSetParam)(const char* sessionID, const char* paramName, const char* paramValue); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISRSetParamW(const wchar_t* sessionID, const wchar_t* paramName, const wchar_t* paramValue); +typedef int (MSPAPI *Proc_QISRSetParamW)(const wchar_t* sessionID, const wchar_t* paramName, const wchar_t* paramValue); +#endif + + +typedef void ( *recog_result_ntf_handler)( const char *sessionID, const char *result, int resultLen, int resultStatus, void *userData ); +typedef void ( *recog_status_ntf_handler)( const char *sessionID, int type, int status, int param1, const void *param2, void *userData); +typedef void ( *recog_error_ntf_handler)(const char *sessionID, int errorCode, const char *detail, void *userData); +int MSPAPI QISRRegisterNotify(const char *sessionID, recog_result_ntf_handler rsltCb, recog_status_ntf_handler statusCb, recog_error_ntf_handler errCb, void *userData); + +typedef int ( *UserCallBack)( int, const char*, void*); +typedef int ( *GrammarCallBack)( int, const char*, void*); +typedef int ( *LexiconCallBack)( int, const char*, void*); + +int MSPAPI QISRBuildGrammar(const char *grammarType, const char *grammarContent, unsigned int grammarLength, const char *params, GrammarCallBack callback, void *userData); +typedef int (MSPAPI *Proc_QISRBuildGrammar)(const char *grammarType, const char *grammarContent, unsigned int grammarLength, const char *params, GrammarCallBack callback, void *userData); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISRBuildGrammarW(const wchar_t *grmmarType, const wchar_t *grammarContent, unsigned int grammarLength, const wchar_t *params, GrammarCallBack callback, void *userData); +typedef int (MSPAPI *Proc_QISRBuildGrammarW)(const wchar_t *grmmarType, const wchar_t *grammarContent, unsigned int grammarLength, const wchar_t *params, GrammarCallBack callback, void *userData); +#endif + +int MSPAPI QISRUpdateLexicon(const char *lexiconName, const char *lexiconContent, unsigned int lexiconLength, const char *params, LexiconCallBack callback, void *userData); +typedef int (MSPAPI *Proc_QISRUpdataLexicon)(const char *lexiconName, const char *lexiconContent, unsigned int lexiconLength, const char *params, LexiconCallBack callback, void *userData); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QISRUpdateLexiconW(const wchar_t *lexiconName, const wchar_t *lexiconContent, unsigned int lexiconLength, const wchar_t *params, LexiconCallBack callback, void *userData); +typedef int (MSPAPI Proc_QISRUpdateLexiconW)(const wchar_t *lexiconName, const wchar_t *lexiconContent, unsigned int lexiconLength, const wchar_t *params, LexiconCallBack callback, void *userData); +#endif +#ifdef __cplusplus +} /* extern "C" */ +#endif /* C++ */ + +#endif /* __QISR_H__ */ diff --git a/lib/libmsc/lib/include/qtts.h b/lib/libmsc/lib/include/qtts.h new file mode 100644 index 0000000..eee6cda --- /dev/null +++ b/lib/libmsc/lib/include/qtts.h @@ -0,0 +1,187 @@ +/** + * @file qtts.h + * @brief iFLY Speech Synthesizer Header File + * + * This file contains the quick application programming interface (API) declarations + * of TTS. Developer can include this file in your project to build applications. + * For more information, please read the developer guide. + + * Use of this software is subject to certain restrictions and limitations set + * forth in a license agreement entered into between iFLYTEK, Co,LTD. + * and the licensee of this software. Please refer to the license + * agreement for license use rights and restrictions. + * + * Copyright (C) 1999 - 2009 by ANHUI USTC iFLYTEK, Co,LTD. + * All rights reserved. + * + * @author Speech Dept. + * @version 1.0 + * @date 2009/11/26 + * + * @see + * + * History:
+ * + * + * + *
Version Date Author Notes
1.0 2009/11/26 Speech Create this file
+ * + */ +#ifndef __QTTS_H__ +#define __QTTS_H__ + +#if !defined(MSPAPI) +#if defined(WIN32) + #define MSPAPI __stdcall +#else + #define MSPAPI +#endif /* WIN32 */ +#endif /* MSPAPI */ + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ + +#include "msp_types.h" + +/** + * @fn QTTSSessionBegin + * @brief Begin a TTS Session + * + * Create a tts session to synthesize data. + * + * @return const char* - Return the new session id in success, otherwise return NULL, error code. + * @param const char* params - [in] parameters when the session created. + * @param const char** sessionID - [out] return a string to this session. + * @see + */ +const char* MSPAPI QTTSSessionBegin(const char* params, int* errorCode); +typedef const char* (MSPAPI *Proc_QTTSSessionBegin)(const char* params, int* errorCode); +#ifdef MSP_WCHAR_SUPPORT +const wchar_t* MSPAPI QTTSSessionBeginW(const wchar_t* params, int* errorCode); +typedef const wchar_t* (MSPAPI *Proc_QTTSSessionBeginW)(const wchar_t* params, int* errorCode); +#endif + +/** + * @fn QTTSTextPut + * @brief Put Text Buffer to TTS Session + * + * Writing text string to synthesizer. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* sessionID - [in] The session id returned by sesson begin + * @param const char* textString - [in] text buffer + * @param unsigned int textLen - [in] text size in bytes + * @see + */ +int MSPAPI QTTSTextPut(const char* sessionID, const char* textString, unsigned int textLen, const char* params); +typedef int (MSPAPI *Proc_QTTSTextPut)(const char* sessionID, const char* textString, unsigned int textLen, const char* params); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QTTSTextPutW(const wchar_t* sessionID, const wchar_t* textString, unsigned int textLen, const wchar_t* params); +typedef int (MSPAPI *Proc_QTTSTextPutW)(const wchar_t* sessionID, const wchar_t* textString, unsigned int textLen, const wchar_t* params); +#endif + +/** + * @fn QTTSAudioGet + * @brief Synthesize text to audio + * + * Synthesize text to audio, and return audio information. + * + * @return const void* - Return current synthesized audio data buffer, size returned by QTTSTextSynth. + * @param const char* sessionID - [in] session id returned by session begin + * @param unsigned int* audioLen - [out] synthesized audio size in bytes + * @param int* synthStatus - [out] synthesizing status + * @param int* errorCode - [out] error code if failed, 0 to success. + * @see + */ +const void* MSPAPI QTTSAudioGet(const char* sessionID, unsigned int* audioLen, int* synthStatus, int* errorCode); +typedef const void* (MSPAPI *Proc_QTTSAudioGet)(const char* sessionID, unsigned int* audioLen, int* synthStatus, int* errorCode); +#ifdef MSP_WCHAR_SUPPORT +const void* MSPAPI QTTSAudioGetW(const wchar_t* sessionID, unsigned int* audioLen, int* synthStatus, int* errorCode); +typedef const void* (MSPAPI *Proc_QTTSAudioGetW)(const wchar_t* sessionID, unsigned int* audioLen, int* synthStatus, int* errorCode); +#endif + +/** + * @fn QTTSAudioInfo + * @brief Get Synthesized Audio information + * + * Get synthesized audio data information. + * + * @return const char * - Return audio info string. + * @param const char* sessionID - [in] session id returned by session begin + * @see + */ +const char* MSPAPI QTTSAudioInfo(const char* sessionID); +typedef const char* (MSPAPI *Proc_QTTSAudioInfo)(const char* sessionID); +#ifdef MSP_WCHAR_SUPPORT +const wchar_t* MSPAPI QTTSAudioInfoW(const wchar_t* sessionID); +typedef const wchar_t* (MSPAPI *Proc_QTTSAudioInfoW)(const wchar_t* sessionID); +#endif + +/** + * @fn QTTSSessionEnd + * @brief End a Recognizer Session + * + * End the recognizer session, release all resource. + * + * @return int MSPAPI - Return 0 in success, otherwise return error code. + * @param const char* session_id - [in] session id string to end + * @param const char* hints - [in] user hints to end session, hints will be logged to CallLog + * @see + */ +int MSPAPI QTTSSessionEnd(const char* sessionID, const char* hints); +typedef int (MSPAPI *Proc_QTTSSessionEnd)(const char* sessionID, const char* hints); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QTTSSessionEndW(const wchar_t* sessionID, const wchar_t* hints); +typedef int (MSPAPI *Proc_QTTSSessionEndW)(const wchar_t* sessionID, const wchar_t* hints); +#endif + +/** + * @fn QTTSGetParam + * @brief get params related with msc + * + * the params could be local or server param, we only support netflow params "upflow" & "downflow" now + * + * @return int - Return 0 if success, otherwise return errcode. + * @param const char* sessionID - [in] session id of related param, set NULL to got global param + * @param const char* paramName - [in] param name,could pass more than one param split by ','';'or'\n' + * @param const char* paramValue - [in] param value buffer, malloced by user + * @param int *valueLen - [in, out] pass in length of value buffer, and return length of value string + * @see + */ +int MSPAPI QTTSGetParam(const char* sessionID, const char* paramName, char* paramValue, unsigned int* valueLen); +typedef int (MSPAPI *Proc_QTTSGetParam)(const char* sessionID, const char* paramName, char* paramValue, unsigned int* valueLen); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QTTSGetParamW(const wchar_t* sessionID, const wchar_t* paramName, wchar_t* paramValue, unsigned int* valueLen); +typedef int (MSPAPI *Proc_QTTSGetParamW)(const wchar_t* sessionID, const wchar_t* paramName, wchar_t* paramValue, unsigned int* valueLen); +#endif + +/** + * @fn QTTSSetParam + * @brief set params related with msc + * + * the params could be local or server param, we only support netflow params "upflow" & "downflow" now + * + * @return int - Return 0 if success, otherwise return errcode. + * @param const char* sessionID - [in] session id of related param, set NULL to got global param + * @param const char* paramName - [in] param name,could pass more than one param split by ','';'or'\n' + * @param const char* paramValue - [in] param value buffer, malloced by user + * @see + */ +int MSPAPI QTTSSetParam(const char *sessionID, const char *paramName, const char *paramValue); +typedef int (MSPAPI *Proc_QTTSSetParam)(const char* sessionID, const char* paramName, char* paramValue); +#ifdef MSP_WCHAR_SUPPORT +int MSPAPI QTTSSetParamW(const wchar_t* sessionID, const wchar_t* paramName, wchar_t* paramValue); +typedef int (MSPAPI *Proc_QTTSSetParamW)(const wchar_t* sessionID, const wchar_t* paramName, wchar_t* paramValue); +#endif + +typedef void ( *tts_result_ntf_handler)( const char *sessionID, const char *audio, int audioLen, int synthStatus, int ced, const char *audioInfo, int audioInfoLen, void *userData ); +typedef void ( *tts_status_ntf_handler)( const char *sessionID, int type, int status, int param1, const void *param2, void *userData); +typedef void ( *tts_error_ntf_handler)(const char *sessionID, int errorCode, const char *detail, void *userData); +int MSPAPI QTTSRegisterNotify(const char *sessionID, tts_result_ntf_handler rsltCb, tts_status_ntf_handler statusCb, tts_error_ntf_handler errCb, void *userData); + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* C++ */ + +#endif /* __QTTS_H__ */ diff --git a/lib/libmsc/lib/libmsc.so b/lib/libmsc/lib/libmsc.so new file mode 100644 index 0000000..f4caed4 Binary files /dev/null and b/lib/libmsc/lib/libmsc.so differ diff --git a/lib/libmsc/res/common.jet b/lib/libmsc/res/common.jet new file mode 100644 index 0000000..d2f5352 Binary files /dev/null and b/lib/libmsc/res/common.jet differ diff --git a/lib/libmsc/res/ivw_resource.jet b/lib/libmsc/res/ivw_resource.jet new file mode 100644 index 0000000..3db876f Binary files /dev/null and b/lib/libmsc/res/ivw_resource.jet differ diff --git a/lib/libmsc/res/xiaoyan.jet b/lib/libmsc/res/xiaoyan.jet new file mode 100644 index 0000000..6f2d154 Binary files /dev/null and b/lib/libmsc/res/xiaoyan.jet differ