#pragma once #define LX_DLL_CLASS_EXPORTS 1 #include "RecognitionCppDll.h" #include "WWSerialPortApi.h" #include using namespace System; using namespace System::Runtime::InteropServices; using namespace System::Collections::Generic; using namespace System::Collections; using namespace std; using namespace System::Threading; using namespace mobvoi::sds; #pragma comment(lib, "RecognitionCppDll.lib") #pragma managed namespace RecognitionCLRDll { public ref class RecognizerCLR { public: RecognizerCLR(); ~RecognizerCLR(); //1. 设置识别参数的接口,startRecognition前调用 //目前只支持一个参数enablePartial,是否返回识别的中间结果? //enablePartial为true时返回,即会有MOBVOI_SDS_CB_PARTIAL_TRANSCRIPT类型的回调。 //为false时,只返回最终识别结果,即只有MOBVOI_SDS_CB_FINAL_TRANSCRIPT类型的回调。 void setRecognitionParams(bool enablePartial); //2. 启动识别的接口 //callback参数是回调接口。 //code是0代表成功,其他值是失败 //type为MOBVOI_SDS_CB_FINAL_TRANSCRIPT是语音识别结果,MOBVOI_SDS_CB_RESULT是语义理解和搜索的结果 //type和info的值 //SDK_INIT_ERROR info是初始化失败的信息 //MOBVOI_SDS_CB_ERROR info是识别出错的信息 //MOBVOI_SDS_CB_FINAL_TRANSCRIPT info是最终识别结果 //MOBVOI_SDS_CB_PARTIAL_TRANSCRIPT info是中间识别结果 //MOBVOI_SDS_CB_RESULT info是json数据 //出错时,info中会有错误码,含义如下: //MOBVOI_SDS_SUCCESS 成功 //MOBVOI_SDS_ERR_INVALID_PARAM 参数有误,可能是必选参数不存在,或者存在不支持的可选参数 //MOBVOI_SDS_ERR_UNKNOWN_INTENT 不支持的 intent //MOBVOI_SDS_ERR_INTERNAL_ERROR SDS 内部错误 //MOBVOI_SDS_ERR_BAD_STATE 非预期的SDS状态,比如用户未初始化便使用某个service //MOBVOI_SDS_ERR_NETWORK_ERROR 网络错误 //MOBVOI_SDS_ERR_SERVER_ERROR 服务器内部错误 //MOBVOI_SDS_ERR_NO_SPEECH 没有检测到语音,可能用户没有说话 //MOBVOI_SDS_ERR_GARBAGE 无法识别当前语音内容 //MOBVOI_SDS_ERR_BAD_HOTWORD 无效的热词 //MOBVOI_SDS_ERR_BUF_FULL SDS 内部某缓冲区已满 //MOBVOI_SDS_ERR_LICENSE_DENIED SDS 服务被拒绝。对应的 Service 未授权,或者 license 已过期,或已超过当日允许的最大使用次数 // delegate void ResultDelegate(int code, System::String ^ type, System::String ^ info); bool startRecognition(ResultDelegate ^ callback); //bool startRecognition(); //3. 识别效果增强接口 //设置说话人与麦克风的角度(麦克风和摄像头放的比较近,可用人与摄像头的角度来近似替代),以激活dsp算法,进行降噪处理。 //可以不调用,默认增强0度方向 static void setBeamDir(System::String^ serialPortname, int dir); //4. 语音合成接口 //在语义理解和搜索完成之后调用 //ttsContent是要合成语音的文本内容,设置为""时播报默认内容 //language //"Mandarin"; 中文 //"English"; 英文 //"Cantonese"; 粤语 //speaker //cissy 中文女声(成熟) //billy 中文男声 //lucy 中文童声 //tina 台湾女声 //dora 粤语女声 //angela 英文女声 //speed: "1.0"、 "1.2" 、"1.4"等字符串, "1.0"是正常语速,数字越大速度越快 bool playTts(System::String^ ttsContent, System::String^ language, System::String^ speaker, System::String^ speed); //不设置参数时,默认合成MOBVOI_SDS_CB_RESULT返回的json中的displayText的文本,使用默认参数 bool playTts(); //9 测试接口 int AddCli(int a, int b); delegate void MessageDelegate(int number); void testDelegate(int number, MessageDelegate^ messageDelegate); private: bool mEnablePartial; //OnlineRecognizerDemo * m_pRecognizer; //OnlineRecognizerDemo::RecognizerCallBack * m_pCallback; }; }