Bot Framework网络聊天+语音+特定语音

时间:2019-02-06 04:01:37

标签: botframework

我正在尝试与我的机器人进行网络聊天(V4机器人和网络聊天),以便使用特定的语音使用语音认知服务。我已经按照该示例以及其他在同一文件夹(https://github.com/Microsoft/BotFramework-WebChat/blob/master/samples/06.c.cognitive-services-speech-services-js/index.html)中的示例进行操作了

我所缺少的方程式的唯一部分是我是否可以指定声音。我无法在示例和网络聊天源代码中找到如何指定语音的方式。

此页面链接到语音齿轮服务docco(https://docs.microsoft.com/en-gb/azure/cognitive-services/speech-service/speech-synthesis-markup),其中提到在SSML内指定语音,但我不想以某种方式破解并修改由漫游器生成的SSML。避免它。

有没有人知道这是否可行?如果可以,怎么办?

谢谢

1 个答案:

答案 0 :(得分:1)

好吧,我在查看了小马填充代码后就自己回答了。下面的部分代码段。将语音列表更新为语言环境映射,以匹配您要用于指定语言环境的语音。


    const speechServicesPonyfillFactory = await window.WebChat.createCognitiveServicesSpeechServicesPonyfillFactory({ authorizationToken, region });

    return options => {

        const ponyfill = speechServicesPonyfillFactory(options);

        var speechSynthesisUtterance = ponyfill.SpeechSynthesisUtterance;
        var speechSynthesis = ponyfill.speechSynthesis;

        speechSynthesis.getVoices = function () {
            return [
                { lang: 'en-US', gender: 'Male', voiceURI: 'Microsoft Server Speech Text to Speech Voice (en-US, BenjaminRUS)' }
            ];
        }

        return {
            SpeechGrammarList: ponyfill.SpeechGrammarList,
            SpeechRecognition: ponyfill.SpeechRecognition,
            speechSynthesis: speechSynthesis,
            SpeechSynthesisUtterance: speechSynthesisUtterance
        }
    };
};

...

var ponyfillFactory = await createSpeechPonyfillFactory({ authorizationToken, region });

...

// Do the usual stuff from the sample to get auth token and region...

window.WebChat.renderWebChat({
                directLine: directLine,
                webSpeechPonyfillFactory: ponyfillFactory,
                store
            }, document.getElementById('webchat'));