Desenvolvimento de Skills para Alexa
O Alexa Skill Kit (ASK) é um SDK para a construção de aplicações para Alexa. Skills são, em suma, os aplicativos que rodam na Alexa.
Os aplicativos de voz da alexa funcionam a partir de três componentes principais:
1. O dispositivo Alexa
2. O sistema de reconhecimento de fala da alexa
3. O Backend Cloud-based desenvolvido para o sistema
Serviço da Alexa
Quando o usuário invoca a Alexa, ou seja, quando é dita a Wake Word ("Alexa..."), o aparelho começa a streamar o que você diz para o sistema de reconhecimento de voz.
Uma vez que o usuário termina de falar, o serviço da alexa determina o que o usuário deseja, e de acordo com essa resolução ele envia uma request para o backend da skill adequada.
Interação da Skill com o usuário
No backend de toda skill é definido um interaction model. Nesse modelo são definidas as palavras e frases que o usuário pode dizer para que o sistema realize determinada ação.
Essas frases e palavras que o cliente fala com o dispositivo, são interpretadas para a Alexa, e enviadas em formato de Request para a skill que irá lidar com essa requisição e enviar uma response de acordo.
user > Alexa, leia as notícias
Abre-se a skill de notícias.
Dentro da skill é localizada a ação para leitura de notícias
A skill retorna as notícias para leitura
Alexa > Na data de ontem a recém coroada rainha de Westeros,Daenerys Targaryen foi assassinada após queimar Kingslanding com seu dragão assustador...
No exemplo acima, nota-se que o usuário faz uma request de leitura das notícias para uma skill. Skill essa que como resposta retorna uma fala da alexa contendo notícias.
O ASK da Alexa disponibiliza algumas frases e comandos pré-definidos para os desenvolvedores, como por exemplo "Ligar as luzes", "Ler notícias", "Sim", "Não" e etc. Essas utterances padrão podem ser ativadas na skill, contudo, para maioria dos casos é necessário o desenvolvimento de modelos customizados para a interação com a aplicação.
Nesses interaction models, são necessárias as descrições detalhadas de todas as possiveis utterances do usuário para a Alexa.
Intents e backend
No backend do sistema, o código está quebrado em Intents. Que funcionam similarmente á funções. Cada intent é composta por dois componentes principais. Um identificador se ela deve ou não ser executada de acordo com a request, e o bloco de código que será executado caso ela seja sim a Intent solicitada.
Esse backend cloud-based é, geralmente, construído na AWS, tendo inclusive uma melhor integração. Por vezes é necessário para o funcionamento de determinadas funcionalidades default do ASK.
Publicação de Skills
Uma vez construída a Skill, o processo de públicação é bem simples. Através do console de desenvolvimento da alexa, onde você fez o deploy de sua skill, você à envia para análise pela Amazon, que por sua vez irá ou não liberar a públicação dela.