Ejemplo n.º 1
0
    // Send a GET request used for getting the speech sound
    private IEnumerator RequestSpeechAudio(string textRequest, string filename, GuideController.SelectedLanguage lang)
    {
        string languageId = "";

        switch (lang)
        {
        case GuideController.SelectedLanguage.En:
            languageId = "en";
            break;

        case GuideController.SelectedLanguage.Fr:
            languageId = "fr";
            break;
        }

        string reqQuery = "?text=" + textRequest + "&lang=" + languageId;

        using (var uwr = UnityWebRequestMultimedia.GetAudioClip("localhost:3000" + reqQuery, AudioType.WAV)) {
            yield return(uwr.SendWebRequest());

            if (uwr.isNetworkError || uwr.isHttpError)
            {
                Debug.LogWarning(uwr.error);

                yield break;
            }

            AudioClip clip = DownloadHandlerAudioClip.GetContent(uwr);

            // use audio clip
            SaveAndPlaySound(clip, filename);
        }
    }
Ejemplo n.º 2
0
    // Play the speech (reading of the text parameter)
    // If the text doesn't already exist, a request for it will be sent
    public void Play(string text, GuideController.SelectedLanguage lang)
    {
        // Hash the text to get the filename
        string    filename    = Md5(text);
        AudioClip speechSound = (AudioClip)Resources.Load(filename);

        if (speechSound == null)
        {
            StartCoroutine(RequestSpeechAudio(text, filename, lang));
        }
        else
        {
            PlayLoadedSound(speechSound);
        }
    }