簡體   English   中英

如何使用 Unity Web Requests 流式傳輸音頻...我想使用基於雲的 TTS

[英]How do I use Unity Web Requests for streaming audio... I want to use a cloud based TTS

我正在嘗試在我的 Unity 游戲中使用雲 TTS。

對於較新的版本(我使用的是 2019.1),他們已棄用 WWW,轉而支持 API 中的 UnityWebRequest(s)。

我已經嘗試過Unity Documentation ,但這對我不起作用。

我也嘗試過其他線程,他們使用 WWW,這在我的 Unity 版本中已被棄用。

    void Start()
    {
        StartCoroutine(PlayTTS());
    }

    IEnumerator PlayTTS()
    {
        using (UnityWebRequestMultimedia wr = new UnityWebRequestMultimedia.GetAudioClip(
            "https://example.com/tts?text=Sample%20Text&voice=Male",
            AudioType.OGGVORBIS)
        )

        {
            yield return wr.Send();

            if (wr.isNetworkError)
            {
                Debug.LogWarning(wr.error);
            }

            else
            {
                //AudioClip ttsClip = DownloadHandlerAudioClip.GetContent(wr);
            }
        }
    }

瀏覽器(我使用 Firefox)中的 URL 成功加載了音頻剪輯,允許我播放它。

我想要它做的是在游戲中發生某些事情時播放 TTS,它已在“無效開始”中完成以進行測試。

我哪里錯了?

提前致謝

UnityWebRequestMultimedia.GetAudioClip自動添加一個默認的DownloadHandlerAudioClip ,它有一個屬性streamAudio

將此設置為 true 並添加對UnityWebRequest.downloadedBytes的檢查,以便在開始之前延遲播放。

就像是

public AudioSource source;

IEnumerator PlayTTS()
{
    using (var wr = new UnityWebRequestMultimedia.GetAudioClip(
        "https://example.com/tts?text=Sample%20Text&voice=Male",
        AudioType.OGGVORBIS)
    )

    {
        ((DownloadHandlerAudioClip)wr.downloadHandler).streamAudio = true;

        wr.Send();

        while(!wr.isNetworkError && wr.downloadedBytes <= someThreshold)
        {
            yield return null;
        }

        if (wr.isNetworkError)
        {
            Debug.LogWarning(wr.error);
        }

        else
        {
            // Here I'm not sure if you would use
            source.PlayOneShot(DownloadHandlerAudioClip.GetContent(wr)); 
            // or rather
            source.PlayOneShot((DownloadHandlerAudioClip)wr.downloadHandler).audioClip);     
        }
    }
}

在智能手機上打字,所以沒有保修,但我希望你能明白

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM