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); }