获取到的字符串由UDP传输
搜狗语音平台嗷
using System;
using System.Collections;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using LitJson;
//using Google.Protobuf.WellKnownTypes;
using UnityEngine;
using UnityEngine.Networking;
public class MyPostAndGet : MonoBehaviour
{
JsonData token01;
//这俩自己在控制台获得
string APPID;
string APPKEY;
private string token;
public UdpClient _UdpClient;
public UdpServer _UdpServer;
private void Start()
{
Debug.Log("print");
print("debug.log");
StartPost();
}
/// <summary>
/// 用来获得移动令牌的
/// </summary>
public void StartPost()
{
//开局先连接上
byte[] m_token = CreateTokenClient.CreateToken(APPID, APPKEY,"3600s");
StartCoroutine(POST("https://api.zhiyin.sogou.com/apis/auth/v1/create_token",m_token));
}
public IEnumerator POST(string url, byte[] postBytes)
{
UnityWebRequest request = new UnityWebRequest(url, "POST");//method传输方式,默认为Get;
request.uploadHandler = new UploadHandlerRaw(postBytes);//实例化上传缓存器
request.downloadHandler = new DownloadHandlerBuffer();//实例化下载存贮器
request.SetRequestHeader("Content-Type", "application/json");//更改内容类型,
yield return request.SendWebRequest();//发送请求
Debug.Log("Status Code: " + request.responseCode);//获得返回值
if (request.responseCode == 200)//检验是否成功
{
token = request.downloadHandler.text;//打印获得值
JsonData herosJd = JsonMapper.ToObject(token);//最外层
token01 = herosJd["token"];
token01.ToString();
}
else
{
Debug.Log(request.responseCode);
}
}
/// <summary>
/// 用来发送语音的
/// </summary>
/// <param name="m_sample_rate_hertz"></param>
/// <param name="m_language_code"></param>
/// <param name="m_base64Str"></param>
public void StartPost(int m_sample_rate_hertz,string m_language_code,string m_base64Str)
{
byte[] m_a = CreateTokenClient.CreateToken(m_sample_rate_hertz,m_language_code,m_base64Str);
StartCoroutine(POST2("https://api.zhiyin.sogou.com/apis/asr/v1/recognize",m_a));
}
public IEnumerator POST2(string url, byte[] postBytes)
{
UnityWebRequest request = new UnityWebRequest(url, "POST");//method传输方式,默认为Get;
request.uploadHandler = new UploadHandlerRaw(postBytes);//实例化上传缓存器
request.downloadHandler = new DownloadHandlerBuffer();//实例化下载存贮器
request.SetRequestHeader("Content-Type", "application/json");//更改内容类型,
request.SetRequestHeader("Authorization", "Bearer "+token01);//token
request.SetRequestHeader("Appid", APPID);//appid
yield return request.SendWebRequest();//发送请求
Debug.Log("Status Code: " + request.responseCode);//获得返回值
if (request.responseCode == 200)//检验是否成功
{
token = request.downloadHandler.text;//打印获得值
JsonData JsonObject = JsonMapper.ToObject(token);
Debug.Log(JsonObject[0][0][0][0]["transcript"].ToString());
if (_UdpServer.isServer)//如果是服务端连接客户端
{
_UdpServer._theGivenString = JsonObject[0][0][0][0]["transcript"].ToString();
_UdpServer._isGiven = true;
}
else//如果是客户端连接服务端
{
_UdpClient._theGivenString = JsonObject[0][0][0][0]["transcript"].ToString();
_UdpClient._isGiven = true;
}
}
else
{
Debug.Log(request.responseCode);
}
}
}