使用Azure Web App Bot SDK v3。 我尝试同时输出文本和语音。
messageActivity.Text = information;
messageActivity.Speak = information;
messageActivity.Locale = "de-DE";
await context.PostAsync(messageActivity);
Cortana或Direct Line或Bot仿真器都不会说出来。但是,机器人确实收到了要大声说出来的文字。
此外,甚至
await context.SayAsync(information, information);
不起作用。我似乎本地化有问题。我没办法了。
直线配置如下
const speechOptions = {
speechRecognizer: new CognitiveServices.SpeechRecognizer({ subscriptionKey: 'SUB_KEY_XXX', locale: 'de-DE' }),
speechSynthesizer: new CognitiveServices.SpeechSynthesizer({
gender: CognitiveServices.SynthesisGender.Male,
subscriptionKey: 'SUB_KEY_AGAIN',
voiceName: 'Microsoft Server Speech Text to Speech Voice (de-DE, Michael)'
})
};
Sidenote:文本语音功能完美无缺。
编辑:直线现在可以正常工作。当我使用iFrame进行演示时,仅当输入也通过语音输入提供时,语音输出才起作用。 However, you can change that behaviour as well。
答案 0 :(得分:0)
如果要让informationText在Cortana中讲,则应尝试使用结构良好的SSML包装器。
msg.speak = "<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" xml:lang=\"de-DE\"> <voice languages=\"de-DE\" gender=\"male\"> Haben Sie Wien schon bei Nacht gesehen? </voice><voice languages=\"de-DE it\" gender=\"female\"> Nein. </voice></speak>
还请注意,Cortana仅在语言环境和第三方技能市场上正式支持en-US。尽管您可以使用其他声音和语言环境来做很多很酷的事情,但是有一些怪癖,您可能会遇到问题。