Как разделить длинную речь в Alexa Amazon - PullRequest
0 голосов
/ 07 апреля 2020

Я разрабатываю простое «умение» в Alexa, где я задаю ей вопросы, а ответы в коде - «жесткий код», поскольку они являются фиксированными ответами.

Одна из интентов активируется фразой « Скажи мне 9 правил ... ». Проблема в том, что эти правила очень длинные, и пользователю может быстро наскучить.

Я хочу, чтобы Алекса рассказала мне правила 1, 2 и 3 и спросила: «Вы хотите продолжить слушать?» Если вы скажете:

  • да, она скажет мне следующие три правила и так далее.
  • нет, она возвращается в исходное меню, «Вызов навыка».

Можно это сделать ?.

Вот код того намерения, которое у меня сейчас есть:

class TheNineRulesIntentHandler(AbstractRequestHandler):
"""Handler for TheNineRulesIntent."""
def can_handle(self, handler_input):
    # type: (HandlerInput) -> bool
    return ask_utils.is_intent_name("TheNineRulesIntent")(handler_input)

def handle(self, handler_input):
    # type: (HandlerInput) -> Response
    speak_output = 
      "The Nine Rules are:\
    1. Long Text...\
    2. Long Text...\
    3. Long Text...\
    4. Long Text...\
    5. Long Text...\
    6. Long Text...\
    7. Long Text...\
    8. Long Text...\
    9. Long Text... "

    return (
        handler_input.response_builder
            .speak(speak_output)
            .ask(speak_output)
            .response
    )

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Да, это возможно. Все, что вам нужно сделать, это просто вспомнить, сколько правил Алекса уже произнесла (используя Session Attriubutes . Просто каждый раз, когда пользователь спрашивает о правилах, строите ответ, используя не слишком много правил и вопросов. о дальнейшем прослушивании.

0 голосов
/ 07 апреля 2020

вы можете играть с SSML, где вы можете легко определить, как текст произносится в Alexa.

https://developer.amazon.com/en-US/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html

...