要将api请求地址参数改为_msg的消息传递,你可以按照以下步骤进行修改:

  1. 首先,将请求地址参数中的speaker、text、format、length、noise、noisew和sdp_ratio参数提取出来。

  2. 在Unity中的SendAudioData方法中,将这些参数作为字符串拼接到_url中,替换原来的请求地址。

  3. 将修改后的_url作为参数传递给UnityWebRequest的构造函数。

下面是修改后的代码示例:

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

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();
        WWWForm form = new WWWForm();
        form.AddBinaryData("file", audioBytes, "sample.wav", "audio/wav");
        form.AddField("model", "whisper-1");

        string speaker = "胡桃";
        string text = "你要发送的文本";
        string format = "wav";
        string length = "1";
        string noise = "0.5";
        string noisew = "0.9";
        string sdp_ratio = "0.2";

        string _url = $"https://genshinvoice.top/api?speaker={speaker}&text={text}&format={format}&length={length}&noise={noise}&noisew={noisew}&sdp_ratio={sdp_ratio}";

        UnityWebRequest www = UnityWebRequest.Post(_url, form);
        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


}

在上面的示例代码中,我假设你需要发送的文本是"你要发送的文本"。你可以根据实际情况修改这个值,并将其他参数改为你需要的值。

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

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

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