Ejemplo n.º 1
0
        public static string CloudRecogFreeTalk(byte[] data, int data_len)
        {
            byte[] data1 = new byte[data_len];
            Array.Copy((Array)data, (Array)data1, data_len);
            string str = "";
            AsrVoiceCheckResult check_result = new AsrVoiceCheckResult();
            string config1 = "vadhead=10000,vadtail=500,audioFormat=pcm16k16bit";

            ASR_Recog.VoiceCheck(ASR_Recog.session_id_novad, data1, data_len, ref check_result, config1);
            if (check_result.eStatus != AsrVoiceCheckStatus.VAD_VOICE_END)
            {
                return(str);
            }
            byte[] voice_data1 = new byte[ASR_Recog.cur_len];
            Array.Copy((Array)ASR_Recog.vad_check_audiodata, (Array)voice_data1, ASR_Recog.cur_len);
            ASR_Recog.cur_len = 0;
            string         config2       = "addPunc=yes,realtime=yes,vadhead=20000,vadtail=600,";
            AsrRecogResult result        = new AsrRecogResult();
            HciErrorCode   hciErrorCode1 = HciCloudAsr.HciAsrRecog(ASR_Recog.session_id_novad, ref voice_data1, config2, (string)null, ref result);

            if (hciErrorCode1 == HciErrorCode.HCI_ERR_NONE)
            {
                Console.WriteLine("HciCloudAsr HciAsrRecog Success");
                Console.WriteLine("psResultItemList count " + (object)result.psResultItemList.Count);
                foreach (AsrRecogResultItem asrRecogResultItem in (IEnumerable <AsrRecogResultItem>)result.psResultItemList)
                {
                    Console.WriteLine("pszResult: " + asrRecogResultItem.pszResult);
                    str = str + asrRecogResultItem.pszResult;
                }
            }
            else
            {
                Console.WriteLine("HciCloudAsr HciAsrRecog 出错: " + (object)hciErrorCode1);
            }
            byte[]       voice_data2   = (byte[])null;
            HciErrorCode hciErrorCode2 = HciCloudAsr.HciAsrRecog(ASR_Recog.session_id_novad, ref voice_data2, config2, (string)null, ref result);

            if (hciErrorCode2 == HciErrorCode.HCI_ERR_NONE)
            {
                Console.WriteLine("HciCloudAsr HciAsrRecog Success");
                Console.WriteLine("psResultItemList count " + (object)result.psResultItemList.Count);
                foreach (AsrRecogResultItem asrRecogResultItem in (IEnumerable <AsrRecogResultItem>)result.psResultItemList)
                {
                    Console.WriteLine("pszResult: " + asrRecogResultItem.pszResult);
                    str = str + asrRecogResultItem.pszResult;
                }
                return(str);
            }
            else
            {
                Console.WriteLine("HciCloudAsr HciAsrRecog 出错: " + (object)hciErrorCode2);
                return(str);
            }
        }
Ejemplo n.º 2
0
        public static int Init()
        {
            string str1           = "conf/AccountInfo.txt";
            string capkeyFromFile = AccountInfo.GetCapkeyFromFile(str1);

            if (capkeyFromFile == null || capkeyFromFile.Length == 0)
            {
                Console.WriteLine("是不是忘记了在" + str1 + "中填写capkey了?");
                return(-1);
            }
            else
            {
                string config1 = ASR_Recog.GetConfig(str1);
                if (config1 == null || config1.Length == 0)
                {
                    Console.WriteLine("获取配置失败");
                    return(-1);
                }
                else
                {
                    HciErrorCode hciErrorCode1 = HciCloudSys.HciInit(config1);
                    if (hciErrorCode1 == HciErrorCode.HCI_ERR_NONE)
                    {
                        Console.WriteLine("HciCloudSys HciInit Success");
                        if (!ASR_Recog.CheckAndUpdataAuth())
                        {
                            int num = (int)HciCloudSys.HciRelease();
                            return(-1);
                        }
                        else if (!ASR_Recog.IsCapkeyEnable(capkeyFromFile))
                        {
                            Console.WriteLine("capkey " + capkeyFromFile + " is not enable\n");
                            int num = (int)HciCloudSys.HciRelease();
                            return(-1);
                        }
                        else
                        {
                            HciErrorCode hciErrorCode2 = HciCloudAsr.HciAsrInit("dataPath=data" + ",initCapkeys=" + capkeyFromFile);
                            if ((uint)hciErrorCode2 > 0U)
                            {
                                Console.WriteLine("HciAsrInit failed return " + (object)hciErrorCode2);
                                int num = (int)HciCloudSys.HciRelease();
                                return(-1);
                            }
                            else
                            {
                                Console.WriteLine("HciAsrInit success");
                                ASR_Recog.addpunc_ = AccountInfo.GetkAddPuncFromFile(str1);
                                ASR_Recog.capkey_  = capkeyFromFile;
                                string str2 = "capkey=" + capkeyFromFile + ",realtime=";
                                ASR_Recog.realtime_ = AccountInfo.GetRealTimeFromFile(str1);
                                if (ASR_Recog.realtime_ != "no")
                                {
                                    string config2 = str2 + ASR_Recog.realtime_ + ",audioformat=pcm16k16bit,vadThreshold=10";
                                    if (ASR_Recog.realtime_ == "yes")
                                    {
                                        config2 = config2 + ",encode=speex,vadHead=0,vadTail=500,vadSeg=500";
                                    }
                                    HciErrorCode hciErrorCode3 = HciCloudAsr.HciAsrSessionStart(config2, ref ASR_Recog.session_id_);
                                    if (hciErrorCode3 == HciErrorCode.HCI_ERR_NONE)
                                    {
                                        Console.WriteLine("HciCloudAsr HciAsrSessionStart Success");
                                    }
                                    else
                                    {
                                        Console.WriteLine("HciCloudAsr HciAsrSessionStart 出错: " + (object)hciErrorCode3);
                                        return(-1);
                                    }
                                }
                                return(0);
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("HciCloudSys HciInit 出错: " + (object)hciErrorCode1);
                        return(-1);
                    }
                }
            }
        }