Esempio n. 1
0
    /// <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);
            }
        }
    }
Esempio n. 2
0
 /// <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);
     }));
 }