Как запустить бот с включенным микрофоном на Botframework V4 и Webchat - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю бота, который должен начать голосовое взаимодействие с пользователем с самого начала.
Другими словами, пользователь должен услышать приветственное сообщение, и он сможет говорить с ботом сразу без необходимость щелкнуть значок mi c.
Я использую платформу бота V4 и последнюю версию веб-чата. js
Фрагмент кода, используемый для запуска бота, следующим образом:

  (async function () {

        const searchParams = new URLSearchParams(window.location.search);

        //Speech Service Token Generation
        const subscriptionKey = 'XXXX';
        const region = 'brazilsouth';
        let webSpeechPonyfillFactory;

        //Speech Service Setting
        webSpeechPonyfillFactory = await window.WebChat.createCognitiveServicesSpeechServicesPonyfillFactory({
            credentials: {
                authorizationToken: speechAuthToken,
                region: region
            }
        });

        //Direct-Line BotToken Generation
        const res = await fetch('https://directline.botframework.com/v3/directline/tokens/generate', { method: 'POST', headers: { Authorization: 'Bearer ' + 'XXXXX' } });
        const { token } = await res.json();
        //***
        //Bot Service Setting
        window.WebChat.renderWebChat({
            directLine: window.WebChat.createDirectLine({ token }),
            store,
            userID: "User",
            styleOptions,
            locale: 'pt-BR',
            selectVoice: (voices, activity) =>
                activity.locale === 'pt-BR'
                    ? voices.find(({ name }) => /Daniel/iu.test(name))
                    : voices.find(({ name }) => /Daniel/iu.test(name)) ||
                    voices.find(({ name }) => /Daniel/iu.test(name)),
            webSpeechPonyfillFactory
        }, document.getElementById('botBody'));
        document.querySelector('#botBody > *').focus();

        var mainTag = chatbot.getElementsByClassName('main')[0];
        mainTag.style.borderTop = chatbot.dataset.cbBorder;
    })().catch(err => console.error(err));

Как мне это сделать? 1010 *? Thx

1 Ответ

1 голос
/ 13 апреля 2020

К сожалению, в настоящее время эта функция не поддерживается в веб-чате. Технически, браузер блокирует любую инициируемую речь без какого-либо пользовательского жеста / голосового ввода, во-первых.

Идет разработка для смягчения этой проблемы в веб-чате (проблема # 2211 ), однако нет никаких конкретных c ETA. Это обновление в настоящее время перенесено в следующий выпуск, R9, но есть признаки того, что он может быть частью R10. Другими словами, рассмотрите возможность развертывания «может быть изменено».

Если это важно для вас, рассмотрите возможность добавления своего интереса в приведенную выше ссылку (и, возможно, в эту проблему ).

Надежда на помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...