【问题标题】:How to use neural voices in Azure Direct Line Speech bot如何在 Azure Direct Line Speech 机器人中使用神经语音
【发布时间】:2020-02-19 09:26:27
【问题描述】:

我正在尝试更新实验性DirectLineSpeech Echo Bot sampleSpeak() 方法以使用神经声音,但它似乎不起作用。

这是我试图让它工作的代码 -

public IActivity Speak(string message)
{
    var activity = MessageFactory.Text(message);
    string body = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'>
        <voice name='Microsoft Server Speech Text to Speech Voice (en-US, JessaNeural)'>
        <mstts:express-as type='chat'>" + $"{message}" + "</mstts:express-as></voice></speak>";
    activity.Speak = body;
    return activity;
}

这是基于SSML Guide中提供的建议

以下是标准 T2S 供参考:

public IActivity Speak(string message)
{
    var activity = MessageFactory.Text(message);
    string body = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'>
        <voice name='Microsoft Server Speech Text to Speech Voice (en-US, JessaRUS)'>" +
        $"{message}" + "</voice></speak>";
    activity.Speak = body;
    return activity;
}

有人可以帮助我了解它是如何工作的或者我做错了什么吗?

如果它有助于找到任何限制,我已将机器人部署为 westus2 地区的 F1 免费层中的应用服务。

编辑:更新代码以使用全名,即。 Microsoft Server Speech Text to Speech Voice (en-US, JessaNeural) 而不是 Nicholas 建议的短名称 en-US-JessaNeural。但这似乎也无济于事。

【问题讨论】:

    标签: text-to-speech microsoft-cognitive azure-cognitive-services direct-line-botframework


    【解决方案1】:

    神经语音的确切名称是Microsoft Server Speech Text to Speech Voice (en-US, JessaNeural)。但主要是你想使用说话风格,使用mstts:express-as

    问题是您忘记在 xml (xmlns:mstts='https://www.w3.org/2001/mstts') 中添加声明 mstts 命名空间的块:

    "<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'>
        <voice name='en-US-JessaNeural'>
            <mstts:express-as type='chat'>" + $"{message}" + "</mstts:express-as>
        </voice>
    </speak>";
    

    应该是:

    "<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xmlns:mstts='https://www.w3.org/2001/mstts' xml:lang='en-US'>
        <voice name='en-US-JessaNeural'>
            <mstts:express-as type='chat'>" + $"{message}" + "</mstts:express-as>
        </voice>
    </speak>";
    

    【讨论】:

    • 我也试过了,还是不行。我使用的语音名称是短名称,应该也可以。
    • 如果有帮助,我的机器人将部署为免费套餐中的应用服务,并且位于 westus2 区域。
    • DLS 客户端示例应用程序在语音被识别后从未收到 Connector_ActivityReceived 事件,我收到此 Connector_Recognized 事件。
    • 我将尝试详细了解您提到的示例应用程序
    • 好的,我明白了!!得到这种行为后,我直接使用mstts:express-as 测试了神经语音,这指出了错误。您忘记在声明 mstts 命名空间的请求中添加 xmlns:mstts="https://www.w3.org/2001/mstts"。回复编辑,玩得开心
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2021-08-03
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多