как интегрировать текст Watson в речь с речью в текст в единстве

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

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

у меня вопрос, как добавить текст к речи и помощнику?


person Mhairi Louise Joyce    schedule 08.01.2019    source источник
comment
Добро пожаловать в Stackoverflow. Чтобы получить полезный ответ, ограничьте вопрос одной конкретной проблемой. Как бы то ни было, это слишком общий вопрос и не подходит для формата вопросов и ответов на сайте. Ознакомьтесь с этой страницей, чтобы узнать, какие темы имеют отношение к переполнению стека - stackoverflow.com/help/on-topic   -  person Sashi    schedule 08.01.2019
comment
пожалуйста :)   -  person taj    schedule 09.01.2019


Ответы (1)


Основная идея здесь заключается в том, что вы будете использовать службы 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);
    }
}

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

person taj    schedule 09.01.2019
comment
developer.ibm.com/recipes/tutorials/ - person Mhairi Louise Joyce; 14.01.2019
comment
Спасибо, это то, что я хочу, чтобы Ватсон сделал, но с полной моделью тела. - person Mhairi Louise Joyce; 14.01.2019