下载地址 https://download.youkuaiyun.com/download/qq_39735878/12447404
1,获取token
appkeyid 和 appkeyscrect 换成自己的
void GetTokenId()
{
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ");
Timestamp = UriEspRepacle(Timestamp);
//Debug.Log("时间:" + Timestamp);
SignatureNonce = System.Guid.NewGuid().ToString("D");
//Debug.Log("UUID:" + SignatureNonce);
string pingjiestr = string.Format("AccessKeyId={0}&Action=CreateToken&Format=JSON&RegionId=cn-shanghai&SignatureMethod=HMAC-SHA1&SignatureNonce={1}&SignatureVersion=1.0&Timestamp={2}&Version=2019-02-28", AccessKeyId, SignatureNonce, Timestamp);
//Debug.Log("请求原始字符串:" + pingjiestr);
string StringToSign = createStringToSign("GET", "/", pingjiestr);
//Debug.Log("编码之后:" + StringToSign);
Signature = UriEspRepacle(HMACSHA1Texts(StringToSign, AccessScrert + "&"));
//Debug.Log("加密之后:" + Signature);
string querysUrl = url + "?Signature=" + Signature + "&" + pingjiestr;
//Debug.Log("请求路径:" + querysUrl);
StartCoroutine(GetToken(querysUrl));
// StartCoroutine(PostToken(url));
}
////服务器返回
//string fuwu = "GET&%2F&AccessKeyId%3DLTAI4FvStuRfQKTVvq8uPR5Z%26Action%3DCreateToken%26Format%3DJSON%26RegionId%3Dcn-shanghai%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3D180485e0-1aec-4dc4-8889-e6d167cf383f%26SignatureVersion%3D1.0%26Timestamp%3D2020-05-19T00%253A46%253A17Z%26Version%3D2019-02-28";
////自己
//string ziji = "GET&%2F&AccessKeyId%3DLTAI4FvStuRfQKTVvq8uPR5Z%26Action%3DCreateToken%26Format%3DJSON%26RegionId%3Dcn-shanghai%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3D180485e0-1aec-4dc4-8889-e6d167cf383f%26SignatureVersion%3D1.0%26Timestamp%3D2020-05-19T00%3A46%3A17Z%26Version%3D2019-02-28";
IEnumerator GetToken(string url)
{
UnityWebRequest WebRequest = UnityWebRequest.Get(url);
yield return WebRequest.SendWebRequest();
if (string.IsNullOrEmpty(WebRequest.error))
{
if (WebRequest.isDone)
{
Debug.Log(WebRequest.downloadHandler.text);
JieXiJsonNode(WebRequest.downloadHandler.text);
}
}
else
{
Debug.Log(WebRequest.error);
}
}
2 语音合成
IEnumerator GetTTS()
{
url = string.Format("https://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/tts?appkey={0}&token={1}&text={2}&format=wav&sample_rate=16000", appkey, usertokenid, content);
Debug.Log(url);
Uri uri = new Uri(url);
audioSource = gameObject.GetComponent<AudioSource>();
audioSource.clip = AudioClip.Create("test", 16000 * 60, 1, 16000, true, OnAudioRead);
audioSource.Play();
audioSource.loop = false;
UnityWebRequest WebRequest = UnityWebRequestMultimedia.GetAudioClip(uri, AudioType.WAV);
WebRequest.SendWebRequest();
do
{
yield return null;
int length = ((int)WebRequest.downloadedBytes - 开始位置);
if (length > 0)
{
byte[] byteArray = GetByte(开始位置, length, WebRequest.downloadHandler.data);
float[] sounddata = new float[byteArray.Length / 2];
for (int i = 0; i < sounddata.Length; i++)
{
sounddata[i] = bytesToFloat(byteArray[i * 2], byteArray[i * 2 + 1]);
//添加数据
播放队列.Enqueue(sounddata[i]);
}
总长度 += sounddata.Length;
}
} while (!WebRequest.isDone);
是否接收结束 = true;
Debug.Log("数据接受结束");
Debug.Log("总长度:" + 总长度);
while (true)
{
yield return null;
if (audioSource.timeSamples > 总长度)
{
Debug.Log("音频播放结束");
audioSource.Stop();
break;
}
}
}
appid 换成自己的
链接地址:https://download.youkuaiyun.com/download/qq_39735878/12447404