gpt4 book ai didi

python - 我试图从我的 S3 存储桶,从测试选项卡播放 Alexa 技能的音频,**它显示

转载 作者:行者123 更新时间:2023-12-04 23:01:14 26 4
gpt4 key购买 nike

因此,我尝试从我的 S3 存储桶,从测试选项卡 播放有关 Alexa 技能的音频。它显示但实际上我听不到任何声音 .另一个事实是,我尝试使用来自 https://developer.amazon.com/en-US/docs/alexa/custom-skills/ask-soundlibrary.html 和 的示例音频它可以工作,但是为什么当它来自我自己的 S3 存储桶时它不起作用?
笔记:
我也试过用我的手机测试技能。
我尝试使用 FFmpeg 对音频进行编码。
我尝试使用 Jovo 转换音频。 https://v3.jovo.tech/audio-converter
我不知道如何解决这个错误。
云 watch 上没有错误信息。
假设:
由于示例音频正在工作,因此存在与音频资源相关的一些问题,或者有更多设置可以从 S3 Bucket 播放音频。
重现步骤:

Build the interaction model


Encode the audio to make it Alexa skill friendly (fulfill the requirements, like sample rate, etc), I used and tried all of these:


A:
ffmpeg -i <input-file> -ac 2 -codec:a libmp3lame -b:a 48k -ar 16000 -write_xing 0 <output-file>
乙:
ffmpeg -i <input-file> -ac 2 -codec:a libmp3lame -b:a 48k -ar 24000 -write_xing 0 <output-file>
C:
ffmpeg -y -i input.mp3 -ar 16000 -ab 48k -codec:a libmp3lame -ac 1 output.mp3

Upload the audio resources on S3BucketAudio sample on s3 storage but none of them are produce any sounds


Use the link and insert it to APLA.json


{
"type": "APLA",
"version": "0.91",
"description": "Simple document that generates speech",
"mainTemplate": {
"parameters": [
"payload"
],
"type": "Sequencer",
"items": [
{
"type": "Audio",
"source": "https://72578561-d9d8-47b4-811c-cafbcbc5ddb9-us-east-1.s3.amazonaws.com/Media/one-small-step-alexa-24.mp3"
}
]
}
}

笔记:我根据我尝试过的音频更改了链接源。

the intent on lambda_function.py:

def _load_apl_document(file_path):
# type: (str) -> Dict[str, Any]
"""Load the apl json document at the path into a dict object."""
with open(file_path) as f:
return json.load(f)

class LaunchRequestHandler(AbstractRequestHandler):
"""Handler for Skill Launch."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool

return ask_utils.is_request_type("LaunchRequest")(handler_input)

def handle(self, handler_input):
# type: (HandlerInput) -> Response
logger.info("In LaunchRequestHandler")

# type: (HandlerInput) -> Response
speak_output = "Hello World!"
# .ask("add a reprompt if you want to keep the session open for the user to respond")

return (
handler_input.response_builder
#.speak(speak_output)
.add_directive(
RenderDocumentDirective(
token="pagerToken",
document=_load_apl_document("APLA.json"),
datasources={}
)
)
.response
)

Deploy


Test it


The result of the test on my end:The response for testing


JSON响应:
{
"body": {
"version": "1.0",
"response": {
"directives": [
{
"type": "Alexa.Presentation.APLA.RenderDocument",
"token": "pagerToken",
"document": {
"type": "APLA",
"version": "0.91",
"description": "Simple document that generates speech",
"mainTemplate": {
"parameters": [
"payload"
],
"type": "Sequencer",
"items": [
{
"type": "Audio",
"source": "https://72578561-d9d8-47b4-811c-cafbcbc5ddb9-us-east-1.s3.amazonaws.com/Media/one-small-step-alexa-24.mp3"
}
]
}
},
"datasources": {}
}
],
"type": "_DEFAULT_RESPONSE"
},
"sessionAttributes": {},
"userAgent": "ask-python/1.16.1 Python/3.7.12"
}
}

On my cloud Watch:Cloud Watch

最佳答案

不使用 Alexa 进行检查
source url您提供的有 AccessDenied回复。
这就是我要做的:

  • 设置对 s3 存储桶的临时完全公开访问权限,以确认音频正常工作。
  • 如果音频仍然不起作用,请从 Alexa 上传适用于您的 S3 的示例,并尝试使用 S3 对象 URL 播放它。

  • 取消设置临时完全公共(public)访问权限并提供 S3 签名 URL。 Example
  • 关于python - 我试图从我的 S3 存储桶,从测试选项卡播放 Alexa 技能的音频,**它显示 <audio only response> 但事实上,我听不到任何声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71909021/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com