我正在尝试与我的机器人进行网络聊天(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。避免它。
有没有人知道这是否可行?如果可以,怎么办?
谢谢
李
答案 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'));