根据您提供的代码,您可以将请求地址参数转换为_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。最后,我解析了响应并将结果传递给回调函数。

请注意,在这个示例中,我使用了您提供的字段名称和默认值。如果这些字段有其他名称或默认值,请根据您的需求进行相应的更改。

如何把api请求地址参数 httpsgenshinvoicetopapispeaker=胡桃&text=$filteredText&format=wav&length=1&noise=05&noisew=09&sdp_ratio=02 改为下面的_msg的消息传递参照下面的请求格式帮我写个完整unity向上面地址发送参数请求的示例。using System;using SystemCollecti

原文地址: https://www.cveoy.top/t/topic/i8rN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录