Como Programar Para Alexa

Celso Kendi Kitamura
Bots Brasil
Published in
7 min readSep 2, 2022

--

Faaala App Dev!

Estou aqui para complementar a palestra Como Programar Para Alexa, da Conferência Bots Brasil 2022.

Antes de mais nada, quem vos fala aqui é o Celso Kitamura, sou desenvolvedor de skills para Alexa e trabalho na área de desenvolvimento de software há mais de 20 anos.

Celso Kitamura e parte da sua coleção de Transformers
Eu com parte da minha coleção de Transformers

O Que É Alexa?

Alexa é a assistente virtual da Amazon e chegou no Brasil em outubro de 2019.

Desde então venho estudando mais sobre ela e compartilhando minhas descobertas em um canal no YouTube.

O Que É Uma Skill Alexa?

Como já disse, a Alexa é uma assistente virtual. Mas a Alexa também é uma plataforma de voz, assim como o Android é uma plataforma móvel.

E assim como é possível desenvolver aplicativos móveis para Android, também é possível criar aplicativos de voz para Alexa.

Estes aplicativos de voz, na Alexa, são chamados de skills (habilidades em inglês).

Um nome bem apropriado, não acha? Através das skills ensinamos novas habilidades para Alexa.

O Que Eu Preciso Desenvolver Skills Para Alexa?

Uma grande sacada da Amazon foi abrir a plataforma para que qualquer desenvolvedor possa criar seu próprio aplicativo de voz para Alexa.

E uma informação bombástica! você não precisa desembolsar NADA para começar!!!

Você não precisa instalar nada no seu computador, nada de ficar instalando SDKs.

Basta fazer seu cadastro no site do desenvolvedor da Amazon.

O cadastro é gratuito, nada de taxas cadastrais ou anuais, como outras por aí.

E você não precisa pagar nada para publicar uma skill na loja da Alexa.

Arquitetura De Uma Skill Alexa

Assim como um aplicativo móvel é dividido em front-end e back-end, um aplicativo de voz também segue esta arquitetura.

O back-end de uma skill utiliza tecnologia web, ou seja, utiliza a mesma tecnologia que estamos acostumados a desenvolver desde o surgimento da internet.

A diferença está no front-end, afinal um aplicativo de voz não tem o apoio da tela, como um app móvel. O front-end de uma skill é o modelo de interação.

Sim, alguns dispositivos possuem tela (como o Echo Show), mas ela deve ser utilizada para informações complementares e não para a navegação principal do aplicativo.

O Console Do Desenvolvedor

A skill começa a tomar forma no Console do Desenvolvedor. Um site onde podemos construir nosso aplicativo de voz do zero.

Página inicial do Console do Desenvolvedor
Console do Desenvolvedor

Criando A Skill

Para começar a criação da skill, basta clicar no botão Create Skill.

Você verá a tela Create a new skill.

Tela Create a new skill
Tela Create a new skill

No campo Skill name você informa o nome da skill. Eu escolhi Teste Alô Mundo.

Em Primary locale vai o idioma principal da skill. No nosso caso, Portuguese (BR).

No item Choose a model to add to your skill, escolha Custom. Este modelo é o personalizado, aquele em que você pode codificar o back-end para que a skill faça praticamente qualquer coisa.

Já em Choose a method to host your skill’s backend resources, eu escolhi a opção Alexa-hosted (Node.js). Nesta opção, a Amazon irá provisionar alguns serviços da AWS para sua skill. Entre eles um Lambda em Node.js.

Clique no botão Create skill.

Tela Choose a template
Tela Choose a template

Agora vou selecionar um template para minha skill. Vou escolher Start from Scratch, que é nada mais que um velho conhecido dos programadores: o Hello World.

Clique no botão Continue with template e aguardamos a Amazon provisionar os recursos necessários para a skill lá na AWS.

Provisionando recursos para a skill
Provisionando recursos para a skill

Configurações Iniciais

Depois de esperar pelo provisionamento, veremos a tela inicial do desenvolvimento da nossa skill.

Tela inicial da skill em desenvolvimento
Tela inicial da skill em desenvolvimento

Para começar, precisamos informar por qual nome o usuário irá invocar nossa skill. Isso é feito em Invocations — Skill Invocation Name.

Skill Invocation Name
Skill Invocation Name

Neste campo, vou colocar o mesmo nome (teste alô mundo), mas aqui não é preciso incluir o mesmo nome da skill.

Ah, uma observação: aqui você precisa colocar pelo menos duas palavras, ok?

Modelo De Interação

Nesta aba Build é onde preparamos o front-end, ou seja, o modelo de interação da skill.

Em Interaction Model, precisamos cadastrar as intenções e os enunciados.

Intents e Utterances do Modelo de Interação
Intents e Utterances do Modelo de Interação

Intenção (Intent) é uma representação da ação que atende uma solicitação falada do usuário. Numa analogia bem rasa, podemos dizer que as intenções são como funcionalidades do nosso app.

Só que não temos uma tela para o usuário clicar na opção que ele deseja, então precisamos mapear frases (quanto mais melhor) que ele pode dizer para acionar essa funcionalidade. Estas frases são os Enunciados (Utterances).

Para esta demonstração não iremos alterar nada aqui, vamos deixar como o modelo veio.

Finalizando nosso front-end, vamos gravar todas as alterações feitas em Save Model e compilar nosso modelo de interação em Build Model.

Neste processo o modelo será “compilado”, sofrerá validações e será “treinado” pela Alexa.

Codificando O Back-End

O código da skill fica na aba Code.

É aqui que fica o Lamba provisionado para nós. Repare que a estrutura dele é padrão do Node.js

No arquivo index.js fica nosso código principal.

Em LaunchRequestHandler fica o código que será executado quando o usuário chamar a skill.

Código fonte do Back-End da skill
Código fonte do Back-End da skill

Repare que ao acionar a skill, a Alexa irá dizer apenas uma frase de saudação.

Pois pra esta demonstração, vamos alterá-la para “Seja bem vindo ao bots brasil 2022”.

Agora vamos gravar nossas alterações clicando no botão Save. E vamos compilar nosso back-end clicando no botão Deploy.

Testando A Skill

Chegou a hora de ver se o que fizemos até aqui está funcionando.

E dentro do próprio Console do Desenvolvedor podemos fazer isso. Podemos testar nossa skill no Simulador da Alexa.

Para isso, vamos até a aba Test.

Console de Testes da skill
Console de Testes da skill

Agora, vamos habilitar o teste para nossa skill através do combo na parte superior da tela. Precisamos deixar este combo com o valor Development.

Teste habilitado para nossa skill
Teste habilitado para nossa skill

Repare que existe uma aba chamada Alexa Simulator no canto esquerdo da tela.

É nele que testamos nossa skill.

Na caixa de texto digitamos o comando ou podemos usar nossa voz, pressionando o ícone do microfone.

Vamos digitar o comando para invocar a skill: “abra teste alô mundo”. Repare que para utilizar o simulador não precisamos da palavra de ativação “Alexa”.

Ouça e veja a resposta, que é exatamente a frase que alteramos no LaunchRequestHandler.

Teste efetuado com sucesso
Teste efetuado com sucesso

Publicando A Skill Na Loja Da Alexa

Para que sua skill fique disponível na loja para todos os usuários da Alexa, é necessário que ela passe por um processo de certificação.

E para isso, basta preenchermos os formulários de submissão que ficam na aba Distribution.

Formulário de envio para publicação da skill
Formulário de envio para publicação da skill

Nesta fase do desenvolvimento, vamos informar a Amazon como queremos que nossa skill seja apresentada aos usuários.

Devemos informar o nome público, a descrição da skill, ícones para identificação visual, frases de exemplo para que o usuário consiga utilizar a skill, política de privacidade e termos de uso.

É nesta fase também que fornecemos informações para a equipe de teste da Amazon. Por isso precisamos incluir frases e informações de acesso para serem utilizados nestes testes.

Ainda precisamos dizer para a Amazon em que países queremos que nossa skill seja publicada.

Depois de tudo isso, podemos clicar no botão Submit for review da aba Certification.

Pronto! Agora é só aguardar o retorno da equipe de certificação para ver nossa skill disponível na loja da Alexa.

Loja da Alexa na Amazon.com.br
Loja da Alexa na Amazon.com.br

Para Saber Mais

Claro que neste artigo só foi possível mostrar bem superficialmente como é possível desenvolver aplicativos de voz para Alexa.

Por isso te convido a conhecer meu canal do YouTube, o único canal brasileiro sobre desenvolvimento de skills para Alexa.

Até a próxima e…

Bora criar skills para Alexa! 👊

#ConfBotsBrasil2022

Veja aqui minha palestra na Conferência Bots Brasil 2022: Como Programar Para Alexa

--

--