как интегрировать текст Уотсона в речь с речью в текст в единстве - PullRequest
0 голосов
/ 08 января 2019

Я создаю приложение AR CV в единстве, используя watson SDK. Я полный нуб, но мне удалось посмотреть видео и создать что-то классное.

Идея состоит в том, что это даст кандидату более интересный способ описать себя, чем лист бумаги. Моя проблема заключается в том, что, хотя мне удалось закончить потоковую передачу речи, я не знаю, каковы мои следующие шаги. Это для университетского проекта, но мой репетитор тоже не знает. Также, если TAJ читает это, большое спасибо за видео на YouTube!

мой вопрос: как добавить текст в речь и помощника?

1 Ответ

0 голосов
/ 09 января 2019

Основная идея здесь заключается в том, что вы будете использовать службы Watson Unity SDK для передачи речи через микрофон и преобразования ее в текст. Вы не должны отправлять этот текст обратно в текст в речь, так как это то, что вы просто вводите (если это не то, что вы хотели). Этот текст можно использовать по-разному. Одним из способов будет использование службы Watson Assistant и создание своего рода сценария, который вы можете использовать на естественном языке. Вывод метода message - это текст, который можно передать в Watson Text to Speech, что приведет к воспроизведению аудиофайла. По сути из StreamingExample

private void OnRecognize(SpeechRecognitionEvent result, Dictionary<string, object> customData)
{
    if (result != null && result.results.Length > 0)
    {
        foreach (var res in result.results)
        {
            foreach (var alt in res.alternatives)
            {
                // Is final for the utternace?
                if (res.final)
                {
                    MessageRequest messageRequest = new MessageRequest()
                    {
                        Input = new MessageInput()
                        {
                            Text = alt.transcript
                        }
                    };
                    // Send the text to Assistant
                    assistant.Messsage(OnMessage, OnFail, assistantId, sessionId, messageRequest);
                }
            }
        }
    }
}

private void OnMessage(MessageResponse response, Dictionary<string, object> customData)
{
    // Send Assistant output to TextToSpeech
    textToSpeech.ToSpeech(OnSynthesize, OnFail, response.output.generic[0].text, true)
}

private void OnSynthesize(AudioClip clip, Dictionary<string, object> customData)
{
    // Play the clip from TextToSpeech
    PlayClip(clip);
}

private void PlayClip(AudioClip clip)
{
    if (Application.isPlaying && clip != null)
    {
        GameObject audioObject = new GameObject("AudioObject");
        AudioSource source = audioObject.AddComponent<AudioSource>();
        source.spatialBlend = 0.0f;
        source.loop = false;
        source.clip = clip;
        source.Play();

        Destroy(audioObject, clip.length);
    }
}

Вам потребуется правильно создать и аутентифицировать службы.

...