【发布时间】:2017-12-18 20:52:16
【问题描述】:
有谁知道是否有 AWS API 或类似的 API 可以让我发送文本(或 SSML),并取回 Alexa“说话”的音频。
至关重要的是,我想要 Alexa 的“声音”输出
到目前为止我探索的选项是:
-
AWS Polly
这是我的第一个停靠港,听起来很有希望,而且交互简单;但可用的声音不包括 Alexa 的声音(我认为 Alexa 的 GB 声音是“Abbey”)
如果我不需要 Alexa 的声音,我可能会使用这个想法 -
一个简单的 Alexa 技能 lambda 和 API 网关
我的想法类似于一个简单的 Alexa lambda,其意图是有一个插槽,其中SpeechletResponse有一个OutputSpeech包含插槽的值。配置为调用 lambda 并返回结果的 AWS API 网关。
我没有尝试过,但我猜测通过 API 网关返回到我的客户端的结果将是SpeechletResponse的 json 表示,而不是音频流。 -
使用 AVS 的东西
我目前正在研究这个想法,特别是alexa-avs-sample-app的javaclient部分,但我不知道我是不是找错了树
我创建了一个 AVS 产品,并配置了javaclient与它交谈。
目前,它的交互基于从我的麦克风采样音频流到音频流,然后将其发送到 AVS(即,好像我已经和我的 Echo 说话了)
所以我可以说“告诉 mySkill 说 'hello world'”,它会说“hello world”
但这并不是我想要的——我不想和任何东西说话,我想以编程方式调用带有一些文本的 API 来获取语音音频流。
已经问过similar question,但目前没有答案,我想我已经为我的特定问题添加了更多细节/分析。
针对其中一位 cmets,我将尝试描述我想要 Alexa 语音的具体用例:
在开发 Alexa 技能时,您可以在 lambda 函数中的代码中构造和填充 OutputSpeech。在您部署 lambda 并在真实设备上进行测试或使用开发人员门户的“测试”选项卡的“语音模拟器”部分之前,您无法听到语音输出的声音。
我要解决的问题是为 Alexa 技能创建良好的语音响应,而无需上述试错方法。部署和使用真实设备显然是冗长的。使用语音模拟器更好,但它的局限性在于您可以操作的字段非常小(如果您想要说出长句子或段落,那就不好了),并且添加 SSML 来增强口语输出不是出色的用户体验和工作流程。
我正在考虑创建一些东西来改进这个用户体验和工作流程,但它背后的核心要求是听到 Alexa 的声音。是的,我当然可以使用 Polly,但如果这个用例是为了让 Alexa 技能更容易编写,那么听到另一个声音并没有多大用处,并且可以说是误导,因为不同的声音发音不同的单词和标点符号的方式是不同的,所以您可能需要为一种声音的某些单词添加 SSML 语音,而另一种声音则不需要。
【问题讨论】:
-
一个明智的假设是,唯一允许用 Alexa 的声音说话的东西——作为政策问题,而不是技术问题——是 Alexa。您希望以这种特定的声音表达语音的原因是什么?
-
您会发现 Alexa 的声音在世界各地因区域设置而异。没有单一的通用“Alexa”声音。您的要求正是 Amazon Polly 的用例,但声音与 Alexa 不完全匹配(但它使用了许多相同的技术)。
标签: aws-lambda aws-sdk alexa