如何让支持语音的机器人从 Azure 语音服务接收大写和标点符号的文本

问题描述 投票:0回答:1

我有一个使用 Azure 语音服务的机器人和客户端应用程序。当我与客户端应用程序交谈时,语音服务将语音到文本的结果返回给客户端,其中包含完整的标点符号和大写字母。但是,它将相同的文本发送给机器人,没有任何大写或标点符号。

如何让机器人接收与客户端应用程序接收的相同的大写和标点符号文本?

此问题仅在将机器人部署到 Azure 时发生。在本地运行机器人并使用 Bot Framework Emulator 进行测试时,不会发生这种情况。

我不确定这个问题是否是由于我的特定机器人和客户端引起的,所以我尝试使用这个 Tutorial: Voice-enable your bot.

根据教程,我将 EchoBot 部署到 Azure 并使用 Windows 语音助手客户端进行了测试。同样,客户端收到大写和标点符号的文本,而机器人收到的文本没有大写或标点符号。

测试例子:

  1. 我说“你叫什么名字?” 客户端获取并显示“你叫什么名字?” EchoBot 显示:“Echo:你叫什么名字”
  2. 我说“那可能是真的。为什么?谁想知道?” 客户端显示“这可能是真的。为什么?谁想知道?” EchoBot 显示:“Echo:这可能是真的,为什么谁想知道”

我该如何解决这个问题?我怎样才能让机器人在部署到 Azure 时接收到客户端接收到的相同文本,并正确地用标点符号和大写修饰?

是否有我不知道的语音服务设置可以解决这个问题?

我能想到的唯一解决方案是让客户端在收到正确装饰的文本后,将其发回语音服务以传递给机器人。 (语音服务将文本传递给机器人而不去除大写字母或标点符号。)这是一个笨拙的解决方法,需要额外的网络访问。希望有更好的东西。谢谢。

azure botframework speech-to-text azure-cognitive-services speech
1个回答
0
投票

我认为正在发生的事情是,当录制音频时,语音服务会发送音频然后对其进行解释,并且没有任何标点符号(因为它只有有音频。它没有任何标点符号信息并且没有也许不想假设?)。我不确定 Windows 语音助手客户端正在做什么来正确格式化/标点符号。

我不相信除了在机器人端处理它你还能做任何事情。我建议也许使用 Humanizer 库将其恢复为“正确”/适当的东西。

© www.soinside.com 2019 - 2024. All rights reserved.