Web App Bot-.NET文本到语音不起作用

时间:2018-09-26 14:33:08

标签: azure botframework cortana azure-cognitive-services

使用Azure Web App Bot SDK v3。 我尝试同时输出文本和语音。

        messageActivity.Text = information;
        messageActivity.Speak = information;
        messageActivity.Locale = "de-DE";

        await context.PostAsync(messageActivity);

Cortana或Direct Line或Bot仿真器都不会说出来。但是,机器人确实收到了要大声说出来的文字。

enter image description here

此外,甚至

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

1 个答案:

答案 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。尽管您可以使用其他声音和语言环境来做很多很酷的事情,但是有一些怪癖,您可能会遇到问题。