如何把api请求地址参数 httpsgenshinvoicetopapispeaker=胡桃&text=$filteredText&format=wav&length=1&noise=05&noisew=09&sdp_ratio=02 改为下面的_msg的消息传递参照下面的请求格式帮我写个完整unity向上面地址发送参数请求的示例。using System;using SystemCollecti
根据您提供的代码,您可以将请求地址参数转换为_msg的消息传递,并使用您提供的Unity代码发送请求。以下是示例代码:
using System;
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.NetworkSystem;
public class OpenAISpeechToText : STT
{
/// <summary>
/// openai的api key
/// </summary>
[SerializeField] private string api_key;
private void Awake()
{
m_SpeechRecognizeURL = "https://api.openai.com/v1/audio/transcriptions";
}
/// <summary>
/// openai语音识别
/// </summary>
/// <param name="_clip"></param>
/// <param name="_callback"></param>
public override void SpeechToText(AudioClip _clip, Action<string> _callback)
{
byte[] _audioData = WavUtility.FromAudioClip(_clip);
StartCoroutine(SendAudioData(_audioData, _callback));
}
/// <summary>
/// 发送数据到api
/// </summary>
/// <param name="audioBytes"></param>
/// <param name="_callback"></param>
/// <returns></returns>
private IEnumerator SendAudioData(byte[] audioBytes, Action<string> _callback)
{
stopwatch.Restart();
string speaker = "胡桃";
string text = filteredText;
float length = 1f;
float noise = 0.5f;
float noisew = 0.9f;
float sdp_ratio = 0.2f;
string url = $"https://genshinvoice.top/api?speaker={speaker}&text={text}&format=wav&length={length}&noise={noise}&noisew={noisew}&sdp_ratio={sdp_ratio}";
UnityWebRequest www = UnityWebRequest.Get(url);
www.SetRequestHeader("Authorization", "Bearer " + api_key);
yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success)
{
Debug.LogError("Error sending audio file: " + www.error);
}
else
{
Response _response = JsonUtility.FromJson<Response>(www.downloadHandler.text);
_callback(_response.text);
}
stopwatch.Stop();
Debug.Log("OpenAI语音识别耗时:" + stopwatch.Elapsed.TotalSeconds);
}
#region 数据定义
[Serializable]
public class Response
{
[SerializeField]
public string text = string.Empty;
}
#endregion
}
在上述代码中,我添加了请求地址参数的各个字段(speaker、text、format、length、noise、noisew、sdp_ratio)并将它们拼接到了请求地址中。然后,我使用UnityWebRequest.Get发送了HTTP GET请求,将Authorization头设置为您提供的api_key。最后,我解析了响应并将结果传递给回调函数。
请注意,在这个示例中,我使用了您提供的字段名称和默认值。如果这些字段有其他名称或默认值,请根据您的需求进行相应的更改。
原文地址: https://www.cveoy.top/t/topic/i8rN 著作权归作者所有。请勿转载和采集!