/// <summary> /// 将转换后符合格式要求的音频数据以字节形式发送百度语音服务器 /// </summary> /// <param name="data"></param> /// <returns></returns> public IEnumerator Recognize(byte[] data, RecognizeComplete callback) { if (!string.IsNullOrEmpty(Token)) { var uri = "http://vop.baidu.com/server_api?lan=zh&cuid={SystemInfo.deviceUniqueIdentifier}&token=" + Token; var headers = new Dictionary <string, string> { { "Content-Type", "audio/pcm;rate=16000" } }; var www = new WWW(uri, data, headers); yield return(www); Debug.Log(www.text); if (string.IsNullOrEmpty(www.error)) { Debug.Log("text:" + www.text); var wwwResult = JsonUtility.FromJson <STTResult>(www.text); string resultContent; if (wwwResult.err_msg != "success.") { resultContent = null; } else { resultContent = "您说的是:" + wwwResult.result[0]; } callback(resultContent); Debug.Log("result:" + resultContent); } else { Debug.LogError("error:" + www.error); } } }
/// <summary> /// 停止录音,将语音保存成文件 /// </summary> public void StopRecord(RecognizeComplete callback) { isRecording = false; if (Microphone.IsRecording(deviceName)) { Microphone.End(deviceName); } StartCoroutine(Recognize(ClipToByteArray(clipRecord), delegate(string result) { callback(result); })); }