首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Alexa技能中使用AWS api网关创建的mp3

在Alexa技能中使用AWS api网关创建的mp3
EN

Stack Overflow用户
提问于 2020-07-21 00:39:42
回答 2查看 151关注 0票数 1

我有一个由AWS api网关调用的AWS lambda函数。该函数从亚马逊网络服务S3上托管的多个mp3文件中获取URL,并将它们连接到单个mp3文件中。当我从浏览器调用api时,一切正常(浏览器打开一个媒体播放器,并播放组合后的音频mp3 )。

URL请求如下所示:

代码语言:javascript
复制
https://0xxxxxxxx.execute-api.eu-west-1.amazonaws.com/alpha/files?file=https://xxx.s3-eu-west-1.amazonaws.com/file1.mp3&file=https://xxx.s3-eu-west-1.amazonaws.com/file2.mp3&file=https://xxx.s3-eu-west-1.amazonaws.com/file3.mp3

HTTP响应是audio/mpeg类型的,大约10秒长,并且是base64编码的。

我试着用我的技巧将其封装到SSML中,但失败了。从Alexa skills kit语音和音调模拟器中,我得到错误消息“检索文本到语音时出错;输入不兼容”。

在模拟器中,我是这样写的:

代码语言:javascript
复制
<speak> 
    <audio src='https://0xxxxxxxx.execute-api.eu-west-1.amazonaws.com/alpha/files?file=https://xxx.s3-eu-west-1.amazonaws.com/file1.mp3&file=https://xxx.s3-eu-west-1.amazonaws.com/file2.mp3&file=https://xxx.s3-eu-west-1.amazonaws.com/file3.mp3'/>
</speak>

我用这个来确认S3访问在模拟器中是有效的:

代码语言:javascript
复制
<speak> 
    <audio src='https://s3.amazonaws.com/ask-soundlibrary/human/amzn_sfx_crowd_applause_05.mp3'/>
</speak>

你知道出什么问题了吗?是我的lambda技能的http响应有问题,还是需要在api网关中启用某些功能?从我的api网关日志来看,该技能似乎从未尝试过访问网关。

我是否应该使用不同的方法来获取用于回放的mp3?注意,我想使用SSML,因为我的音频是一种效果,因此不应该使用audioplayer (这是Amazon的要求)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-22 20:12:56

我可以帮你解决这个问题。同样的问题也发生在我身上。经过研究,我解决了这个问题。这里的问题是您在SSML中提供的链接中的"&“。您提供的解决方案有效,因为您的链接中现在没有"&“。参数过多不是问题所在。

我建议您将"&“替换为"&amp;"

在python中-

代码语言:javascript
复制
url = 'https://0xxxxxxxx.execute-api.eu-west-1.amazonaws.com/alpha/files?file=https://xxx.s3-eu-west-1.amazonaws.com/file1.mp3&file=https://xxx.s3-eu-west-1.amazonaws.com/file2.mp3&file=https://xxx.s3-eu-west-1.amazonaws.com/file3.mp3'
url = url.replace("&","&amp;")


<speak> 
    "<audio src='" +  url + "'/>"
</speak>

我希望这对你有帮助。如果不起作用,请告诉我。

票数 1
EN

Stack Overflow用户

发布于 2020-07-22 19:26:23

好了,我自己算出来了。

看起来SSML音频源不喜欢URL调用中太多的参数。现在,我只需在URL中传递一个参数,并使用我的lambda函数从该参数中剔除多个文件名。

代码语言:javascript
复制
https://0xxxxxxxx.execute-api.eu-west-1.amazonaws.com/alpha/files?file=/file1.mp3file=file2.mp3file=file3.mp3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63000001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档