让Alexa Skill播放音频

2024-04-19 18:40:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直努力想弄清楚如何让我的Alexa技能播放音频,但我找不到解决办法。我通过电子邮件向amazon开发者支持发送了以下代码。如果有人能给我解释一下这个代码背后的逻辑,我会很高兴的。另外,我如何将这段代码变成一个功能齐全的Alexa技能?多谢各位

import logging
import typing

from ask_sdk_core.skill_builder import SkillBuilder
from ask_sdk_core.dispatch_components import (
   AbstractRequestHandler, AbstractRequestInterceptor, AbstractExceptionHandler)
import ask_sdk_core.utils as ask_utils

from ask_sdk_core.utils import is_intent_name, is_request_type
from ask_sdk_core.api_client import DefaultApiClient
from ask_sdk_core.skill_builder import SkillBuilder, CustomSkillBuilder

from ask_sdk_core.dispatch_components import AbstractRequestInterceptor
from ask_sdk_core.dispatch_components import AbstractResponseInterceptor
from ask_sdk_model.services.service_exception import ServiceException

if typing.TYPE_CHECKING:
   from ask_sdk_core.handler_input import HandlerInput
   from ask_sdk_model import Response

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

WELCOME_MESSAGE = "This is Alexa regular speech, followed by the sound effect named Bear Groan Roar <audio src='soundbank://soundlibrary/animals/amzn_sfx_bear_groan_roar_01'/>"
WHAT_DO_YOU_WANT = "What do you want to ask?"

class LaunchRequestHandler(AbstractRequestHandler):
   """Handler for Skill Launch."""

   def can_handle(self, handler_input):
       # type: (HandlerInput) -> bool

       return is_request_type("LaunchRequest")(handler_input)

   def handle(self, handler_input):
       # type: (HandlerInput) -> Response

       return handler_input.response_builder.speak(WELCOME_MESSAGE).ask(WHAT_DO_YOU_WANT).response

sb = CustomSkillBuilder(api_client=DefaultApiClient())

sb.add_request_handler(LaunchRequestHandler()) 

Tags: 代码fromcoreimportinputisloggingtype