Muitos de nós agora temos algum tipo de assistente de voz em casa, seja um eco da Amazon, a Apple HomePod ou um Google Home. Parece que a voz vai ter um impacto enorme na maneira como vamos sobre nossas vidas diárias, e como desenvolvedores da Web, precisamos nos perguntar, quais são as maneiras pelas quais podemos melhorar experiência de usuário implementando voz em nossos sites e aplicativos da web?
Neste tutorial, vamos construir uma simples habilidade Alexa que atualiza o conteúdo da notícia em um site. O tipo de categoria dependerá da entrada de voz pelo usuário. Isso ajudaria se você já tem alguma experiência com a AWS, mas há muita documentação para ajudá-lo se você entrar em uma picleira.
Construindo um novo site? Mantenha as coisas simples com um bom Construtor de sites . Tem arquivos de design para armazenar? Mantenha-os seguros em armazenamento na núvem .
Primeiro, encontre os arquivos para este tutorial no github. .
Você também precisará se inscrever para um Conta do Amazon Developer. e um Conta da AWS. .
A Firebase será usada para armazenar nossa entrada de usuário, portanto, certifique-se de se inscrever para um Conta do Firebase. . Também estaremos usando a API de notícias para obter as últimas notícias, então pegue uma chave de API gratuita newsapi.org. .
Depois de configurar, navegue até desenvolvedor.amazon.com/alexa/console/ask. e clique em criar habilidade. A primeira coisa que precisamos fazer é configurar intenções, enunciados e tipos de slot dentro do console do desenvolvedor Alexa. Uma intenção é o que o usuário da habilidade está tentando alcançar. Os enunciados são frases específicas que os usuários dirão ao falar com Alexa, por exemplo: "Que dia é isso?". Um slot é uma variável que se relaciona com um enunciado, por exemplo: 'Que horas são em {place}?'. Isso faria {place} o slot personalizado.
Selecione intenção do lado esquerdo do painel e clique em Adicionar intenção. Certifique-se de criar intenção personalizada é selecionada e digite Contentupdate. Na caixa de texto: isso agora se tornará nosso nome de função mais tarde.
Agora passamos para enunciados, que é onde vamos precisar tomar o categoria da notícia de que o usuário deseja atualizar. Nós estaremos usando a categoria como nosso nome de slot e, em seguida, configurar os seguintes enunciados:
"Atualizar {Category}"
"{category} histórias"
"Atualizar para {Category}"
"Definir histórias para {Category}"
Finalmente, precisamos criar um tipo de slot, onde vamos escrever um par de insumos que esperamos obter do usuário. Do lado esquerdo do painel, clique em Adicionar ao lado de tipos de slot. Digite "NewStype" e clique no botão 'Criar tipo de slots personalizado'. Em valores de slot, você precisará adicionar algumas categorias de notícias. Vamos usar esporte, negócios, tecnologia e política. Depois de terminar, certifique-se de ter selecionado o NewStype na lista suspensa como o tipo de slot para categoria.
Vamos agora ir para Lambda dentro da AWS. . Selecione Criar função e selecione a caixa de rádio Blueprints. Certifique-se de selecionar o alexa-skill-kit-sdk-factskill da lista e clique em Configurar. Dê sua função um nome e crie uma nova função. Quando terminar, clique em Criar função na parte inferior da página. Você precisará selecionar o Alexa Skills Kit como um gatilho para sua função, poderemos passar na própria função. Não estaremos usando o editor de código integrado para este projeto; Em vez disso, estaremos escrevendo as funções localmente e depois upload de um arquivo zip. Certifique-se de copiar o conteúdo do arquivo index.js dentro do editor lambda, como vamos colar isso dentro do nosso projeto local.
Vamos começar criando um novo projeto de nó localmente. Dentro do nosso próprio arquivo index.js, vamos colar o conteúdo que acabamos de levar de lambda. Precisamos importar o Firebase e o Alexa SDK usando NPM.
NPM instalar Alexa-SDK
NPM instalar firebase
Certifique-se de incluir as referências na parte superior do arquivo index.js.
const alexa = requer ('Alexa-SDK');
Var Firebase = requer ("Firebase");
Você deve ter algum código padrão já, um dos quais é chamado ' LauncherRequest. . Isso é usado para receber o usuário para a habilidade. Tudo que você precisa fazer aqui é alterar a mensagem de boas-vindas para "Bem-vindo à atualização do site".
'Launcrequest': Função () {
este.emit (': perguntar', 'Bem-vindo à atualização do site');
},
Se você usar o :contar O comando então Alexa terminará a habilidade após a mensagem, enquanto se você usar :perguntar Então Alexa ouvirá oito segundos para o próximo prompt. Nós estaremos usando :perguntar , para que Alexa esteja pronto para ouvir nosso prompt de atualização.
Em seguida, precisamos adicionar nossos detalhes de configuração do Firebase na parte superior do arquivo index.js.
var config = {
APIKEY: "& lt; api_key & gt;",
AuthDomain: "& lt; Project_id & gt; .firebasapp.com",
Banco de dados: "https: // & lt; database_name & gt; .firebaseio.com",
ProjectId: "& lt; project_id & gt;",
StorageBucket: "& lt; Bucket & Gt; .appspot.com",
MessagingsenderID: "& lt; sender_id & gt;"
};
Firebase.initializeapp (config);
Mais cedo no tutorial, criamos uma intenção chamada 'contentupdate'. Isso significa que precisamos criar um Contentupdate. função, onde responderemos à entrada do usuário com base nos enunciados que criamos. Então, se o usuário disser "atualizar para o esporte", esta função seria chamada. Começamos criando uma variável chamada CategoryType. , que leva a entrada de voz do usuário. Em seguida, armazenamos o tipo de categoria dentro do banco de dados do Firebase e recebo Alexa para nos dizer o nome da categoria que atualizamos.
'contentupdate': função () {
var categoriaType = this.event.request.intent.slots.category.Value;
if (firebase.apps.length === 0) {
Firebase.initializeapp (config);
}
Firebase.Database (). Ref ('/'). Conjunto ({
Preferência: CategoryType.
}). Então ((dados) = & gt; {
Firebase.app (). Excluir (). Então ()
}). Catch ((err) = & gt; {
console.log (err);
})
este.emit (': pergunte', 'você atualizou para' + categoryype);
},
Depois de salvar seu arquivo index.js, você precisará compactar o projeto. Navegue até a pasta do projeto a partir da linha de comando e digite o seguinte comando.
Zip -r index.zip *
Volte para a sua função dentro do Lambda e vá até a seção de código de função. Na caixa suspensa para o tipo de entrada de código, selecione 'Carregar um arquivo .zip'. Agora você poderá enviar seu arquivo zip.
Antes de testar seu projeto dentro do Alexa Simulator, pegue o ARN no canto superior direito da página lambda e insira isso dentro da seção Endpoint do console Alexa. Para testar sua habilidade, tudo o que você precisa dizer é 'Abrir Web Update' e Alexa responderão com 'Bem-vindo à atualização da web'. Se você agora diz "atualização para o esporte", Alexa deve dizer "você atualizou para o esporte". A palavra 'esporte' também deve aparecer sob preferência dentro do banco de dados do Firebase.
Finalmente, baixe a página de notícias que criei (index.html) no projeto Alexa - Pasta HTML em Github .
Abra o arquivo main.js e insira em seus próprios detalhes de configuração do Firebase nas linhas 1-8, como fizemos anteriormente no tutorial.
Você também precisará inserir sua chave de API de notícias do NewsApi.org na linha 11 do arquivo main.js.
Var myapikey = "& lt; yourapikey" & gt ;;
Se você agora abrir o arquivo index.html, ele deve carregar algumas notícias da categoria escolhida. Toda vez que você contar Alexa para atualizar com uma nova categoria (esporte, tecnologia, negócios ou política), a categoria de notícias na página será alterada.
Este é apenas um pequeno exemplo do que você poderia conseguir com Alexa e espero que lhe dê uma boa base para quaisquer projetos de voz futuros. Você sempre pode adicionar mais valores de slot para obter mais categorias da API ou até mesmo atualizar o projeto para que ele puxa em suas próprias notícias / posts do site. Eu não posso esperar para ver como os desenvolvedores da Web e App incluirão Alexa em seus projetos.
Tem seu site para cima e correndo?Monitore-o totalmente com o melhor hospedagem na web. Serviços.
Este artigo foi originalmente publicado em questão 313 de internet , a revista mais vendida do mundo para web designers e desenvolvedores. Comprar edição 313 aqui ou Inscreva-se aqui .
Artigos relacionados:
O Ecossistema JavaScript tem mudado por mais de uma década, significando que os desenvolvedores frontign tiveram que rastrear no..
Nesta ilustração de gueixa eu queria capturar uma vibração suja, escura e urbana, atirada com elementos japoneses tradicionai..
Otimização da taxa de conversão (CRO) é o processo de maximizar as conversões do tráfego existente. Por exemplo, se você r..
Esta Tutorial de Maya. Vai mostrar como construir plataformas personalizadas. As melhores plataformas são as que ..
Guache é mais perdoante do que a tinta aquarela, mas as decisões que você faz cedo ainda podem afetar o resto do quadr..
Para pintar uma figura que parece acreditavelmente molhada requer que você tome várias fatores em conta - uma chave sendo o tip..
Não importa o seu uso final, a maioria das cenas centradas em uma estrutura feita pelo homem se beneficiará de um toque de folh..
As muitas vantagens do SVG - incluindo imagens vetoriais infinitamente escaláveis, pequenos tamanhos de arquivos e integração ..