Exemplo n.º 1
0
        private string Recognition(IList <byte[]> data)
        {
            string result = "";
            int    ret    = 0;

            for (int i = 0; i < data.Count; i++)
            {
                ret = USCDLL.usc_feed_buffer(handle, data[i], data[i].Length);
                if ((int)StatusUsc.USC_RECOGNIZER_PARTIAL_RESULT == ret || (int)StatusUsc.USC_RECOGNIZER_SPEAK_END == ret)
                {
                    // TODO
                    Log(String.Format("中间结果:{0}", USCDLL.usc_get_result(handle)));
                }
                else if (0 > ret)
                {
                    break;
                }

                Thread.Sleep(20);
            }

            // 停止语音输入
            ret = USCDLL.usc_stop_recognizer(handle);
            if (ret == 0)
            {
                // 获取剩余识别结果
                string leftResult = USCDLL.usc_get_result(handle);
                result = leftResult;
            }
            byte[] bl = Encoding.Default.GetBytes(result);
            result = Encoding.UTF8.GetString(bl);

            return(result);
        }