Watson Conversation+TTS

Я пытаюсь разработать веб-приложение, используя службу Watson Conversation и службу Watson TTS. Выходные данные разговора отправляются в службу TTS для преобразования. Я делаю это в NodeRED, а также поместил функциональный узел между узлом разговора и узлом TTS, который назначает полезную нагрузку. После развертывания я получаю только разговорный диалоговый чат-бот, но не речь, как я полагаю. Пожалуйста, помогите мне понять, что я упускаю?

* PS: для этого я использую HTTP post и HTTP get.


person Daisy_s    schedule 14.10.2016    source источник


Ответы (3)


Я создал рабочий поток, и вам нужно будет установить узел, который может воспроизводить звук. Узел преобразования текста в речь на самом деле не воспроизводит звук. Он создает аудиофайл.

  1. Перейдите к гамбургеру в правом верхнем углу редактора красного узла. Найдите Диспетчер палитр. найдите node-red-contrib-play-audio и установите его. Я предполагаю, что у вас уже есть node-red-bluemix-nodes.

  2. вам понадобится узел для получения ввода, я использовал узел ввода для теста.

  3. подключите его к вашему узлу разговора. Дважды щелкните по нему и введите идентификатор рабочей области. (она находится в рабочей области под тремя точками в правом верхнем углу каждой из них. Скопируйте эту длинную строку в свой узел. Я использовал учебник по автомобилям по умолчанию.

  4. подключите это к функциональному узлу. Затем мне нужно переместить ответ из беседы из msg.payload.output.text[0] в msg.payload следующим образом:

msg.payload = msg.payload.output.text[0]; return msg;

  1. соедините это с узлом текста в речь. Введите любые учетные данные, выберите голос и щелкните вывод в msg.payload. Если вы забудете это сделать, аудиоузел будет фактически читать текст, а не использовать текст для речи узла. Голос аудиоузла невелик.

  2. подключите узел воспроизведения аудио.

Вот и все. У вас должен быть рабочий голос.

Хороший способ увидеть, что происходит, — использовать узел отладки. Это позволяет вам видеть, куда перетекает контент, и добавлять функции для перенаправления вывода соответствующим образом для каждого узла.

Скопируйте приведенный ниже код, перейдите в гамбургер и выполните импорт из буфера обмена в новый поток. Вам нужно будет ввести соответствующие пароли и идентификаторы рабочей области, но это показывает, как это работает.

[{
    "id": "b7b6d9fc.1997f8",
    "type": "tab",
    "label": "Flow 2"
}, {
    "id": "d0ed4492.045c18",
    "type": "inject",
    "z": "b7b6d9fc.1997f8",
    "name": "",
    "topic": "",
    "payload": "play the radio",
    "payloadType": "str",
    "repeat": "",
    "crontab": "",
    "once": false,
    "x": 159.5,
    "y": 122,
    "wires": [
        ["dc33249.3227bd8"]
    ]
}, {
    "id": "dc33249.3227bd8",
    "type": "watson-conversation-v1",
    "z": "b7b6d9fc.1997f8",
    "name": "",
    "workspaceid": "",
    "multiuser": false,
    "context": true,
    "default-endpoint": true,
    "service-endpoint": "https://gateway.watsonplatform.net/conversation/api",
    "x": 383.5,
    "y": 121,
    "wires": [
        ["d3c07b87.22f9c8"]
    ]
}, {
    "id": "711b8067.a1c7",
    "type": "debug",
    "z": "b7b6d9fc.1997f8",
    "name": "",
    "active": true,
    "console": "false",
    "complete": "true",
    "x": 751.5,
    "y": 200,
    "wires": []
}, {
    "id": "9826b891.eb02b8",
    "type": "watson-text-to-speech",
    "z": "b7b6d9fc.1997f8",
    "name": "",
    "lang": "en-US",
    "langhidden": "en-US",
    "langcustom": "NoCustomisationSetting",
    "langcustomhidden": "",
    "voice": "en-US_MichaelVoice",
    "voicehidden": "",
    "format": "audio/wav",
    "password": "",
    "payload-response": true,
    "default-endpoint": true,
    "service-endpoint": "https://stream.watsonplatform.net/text-to-speech/api",
    "x": 757.5,
    "y": 64,
    "wires": [
        ["ccf6f5a7.700508"]
    ]
}, {
    "id": "d3c07b87.22f9c8",
    "type": "function",
    "z": "b7b6d9fc.1997f8",
    "name": "",
    "func": "msg.payload = msg.payload.output.text[0];\nreturn msg;",
    "outputs": 1,
    "noerr": 0,
    "x": 561.5,
    "y": 120,
    "wires": [
        ["9826b891.eb02b8", "711b8067.a1c7"]
    ]
}, {
    "id": "ccf6f5a7.700508",
    "type": "play audio",
    "z": "b7b6d9fc.1997f8",
    "name": "",
    "voice": "0",
    "x": 963.5,
    "y": 64,
    "wires": []
}]
person chaiboy    schedule 11.07.2017
comment
Это было полезно. Спасибо. - person Daisy_s; 02.08.2017

Вот ссылка на пример потока, использующего преобразование текста в речь на HTML-странице. Возьмите это за основу и добавьте в разговор.

https://github.com/watson-developer-cloud/node-red-labs/tree/master/basic_examples/text_to_speech

person chughts    schedule 14.10.2016
comment
Привет спасибо. Я уже взял его ссылку. Но в каждом образце пользователь вводит текст, который преобразуется в речь. Хотя я бы хотел, чтобы ответ получателя от службы разговоров был преобразован в речь с использованием TTS. Это возможно? - person Daisy_s; 15.10.2016
comment
Существует два основных потока примеров на основе HTML, которые вы можете использовать. Один для общения (github.com/watson- developer-cloud/node-red-labs/tree/master/), который позволяет вводить текст и получать ответ от службы бесед. Один для преобразования текста в речь (github.com/ watson-developer-cloud/node-red-labs/tree/master/), который позволяет вам прослушать введенный вами текст. Не так уж сложно использовать концепции обоих для создания комбинированного потока, который вы ищете. - person chughts; 15.10.2016
comment
Да, это довольно просто. Я отправил вывод из узла диалога в узел TTS в NodeRED. Но я не могу сделать правильный дизайн шаблона html для ввода ввода для TTS из ответа получателя службы разговора. Т.е. связать вывод разговора с вводом TTS в html. Я впервые использую HTML для любого внешнего интерфейса, поэтому немного борюсь. - person Daisy_s; 15.10.2016

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

во всяком случае, одна вещь, которую я заметил, это то, что преобразование текста в речь генерирует аудиофайл 44 кГц. Например, если вы запускаете его локально в RPI с помощью USB-ключа, он может не воспроизводиться, поскольку по умолчанию он поддерживает звук 22 кГц. Таким образом, возможность воспроизводить его локально также зависит от оборудования и от того, как в нем настроен звук.

person Leo    schedule 01.11.2017