Como ouvir o correio de voz do Google Voice no Google Home

Este é um tutorial que mostra como fazer com que seu dispositivo Google Home leia seu correio de voz mais recente do Google Voice usando Tasker, AutoWeb e AutoVoice.

Quando o Google Home foi lançado, faltava (e ainda falta) muitos recursos. Você ainda não tem como definir eventos de calendário, ler suas mensagens de texto, criar uma lista de tarefas e muito mais. No entanto, se você tiver coragem, poderá implementar quase todos esses recursos por conta própria, graças ao poder do AutoVoz e Tasker. Em um esforço para demonstrar o quão criativo você pode ser com o Google Home e o AutoVoice, mostrarei como ter seu Google Home leia seu correio de voz mais recente do Google Voice. Pode parecer magia negra agora, mas esperamos que no final deste tutorial tudo faça sentido.

Com o AutoVoice, você pode enviar comandos falados do seu dispositivo Google Home para o seu telefone, que então interpreta esses comandos e executa alguma ação por meio do Tasker. A melhor parte é que você pode enviar comandos em linguagem natural para o seu telefone graças ao poder do

API.ai, desde que você se inscreva em um serviço de assinatura de US$ 0,99/mês do AutoVoice para compensar o custo de hospedagem do servidor API.ai. Isso significa que você não precisa falar de forma tão robótica/precisa ao falar com seu Google Home, e o AutoVoice ainda reconhecerá o comando que você está tentando enviar.

Há algum tempo, a integração do AutoVoice com o Google Home está em versão beta, mas o lançamento do AutoVoice 3.0 permite que todos os usuários do plug-in Tasker aproveitem a integração do Google Home. Agora que o AutoVoice está amplamente disponível para os usuários e a maioria de seus problemas foram resolvidos, começarei a mostrar algumas das coisas que fiz com o AutoVoice e o Tasker. Meu primeiro tutorial do Google Home, lendo seu correio de voz mais recente do Google Voice, é o mais complexo de compartilhar, mas é um bom candidato para mostrar que o que você pode fazer com o Tasker é limitado apenas pelo seu imaginação.

Ouvindo meu último correio de voz no Google Home.

Leitura recomendada: Confira nosso tutoriais anteriores, onde mostramos como resolver problemas comuns que poucos abordaram.


Requisitos

AutoVoice é um requisito básico para que este projeto funcione. Você pode usar o IFTTT para acionar a tarefa, mas isso exigirá que você use uma solução alternativa envolvendo outro aplicativo como Juntar ou Pushbullet para enviar comandos ao Tasker, pois o IFTTT não se integra diretamente ao Tasker. Além disso, e a ressalva mais importante de não usar o AutoVoice, é que os comandos de voz serão inflexíveis se usar o IFTTT. Isso significa que você deve pronunciar seu comando com total precisão, todas as vezes, ou o comando não será acionado. Isso pode ser um problema no futuro se você começar a criar toneladas de integrações Tasker/Google Home (eu tenho 28 atualmente), o que significa que você precisa memorizar e reproduzir exatamente os comandos que deseja todas as vezes.

Você precisará de:

  • AutoVoz ($2.49)
  • Assinatura do AutoVoice Natural Language (US$ 0,99/mês)
  • Tasker ($2.99)
  • AutoWeb Beta
  • AutoCast Beta ($0.99)

Preparação

Antes de entrarmos no cerne dessa integração interessante, temos que fazer alguns preparativos para que funcione corretamente. Abordarei essa configuração em partes.

Parte 1 - Configurando o AutoVoice

Já escrevi longamente sobre como configurar o AutoVoice com o Google Home, então, por favor consulte meu artigo anterior aqui. A única mudança a ser observada é que você não precisa mais do AutoVoice beta, pois a integração agora funciona com a atualização estável do AutoVoice. Também recomendo que você leia o breve tutorial sobre como fazer um perfil Tasker reagir ao comando AutoVoice, pois faremos a mesma coisa aqui. A essência disso é que há quatro coisas principais que você fará neste processo de configuração:

  1. Ative o serviço AutoVoice no app Google Home.
  2. Configure uma conta API.ai e obtenha suas chaves de API
  3. Adicione essas chaves de API à configuração de linguagem natural no AutoVoice
  4. Assine o serviço de assinatura AutoVoice Natural Language

Novamente, essas etapas são descritas com muito mais detalhes em meu artigo anterior, por isso recomendo que você leia-as.

Parte 2 – Configurando o Google Voice

Precisamos de uma maneira de acessar seus correios de voz do Google Voice, para que Tasker possa extrair o conteúdo do correio de voz. A forma como faremos isso é encaminhando todas as nossas mensagens de voz para sua conta vinculada do Gmail. Este é um recurso nativo do Google Voice e tudo que você precisa fazer é alternar um único botão no aplicativo Google Voice.

Depois de fazer isso, você começará a receber todas as novas mensagens de voz em seu e-mail. Como você pode ver, o e-mail contém uma transcrição do correio de voz e também um link para o áudio real do correio de voz. Usaremos este e-mail para nossos propósitos.

Parte 3 - Configurando o AutoWeb

Para extrair o conteúdo deste e-mail, precisamos acessar o conteúdo do e-mail usando o API do Gmail. Faremos isso usando o aplicativo AutoWeb que foi vinculado no início. Abra o AutoWeb e toque em “Navegar nos serviços da Web”. Role para baixo até a API do Gmail e toque nela para importar. Após a importação, o AutoWeb solicitará que você autentique a conta do Gmail que deseja usar com a API. Selecione os mesma conta do Gmail para a qual as mensagens de voz são encaminhadas.

Agora você vinculou seu telefone à sua conta do Gmail por meio da API do Gmail!

Parte 4 - Configurando o AutoCast

Antes de podermos enviar o áudio do correio de voz para o Google Home, precisamos configurar o AutoCast para que ele possa se conectar ao Google Home. Abra o AutoCast e selecione "Gerenciar dispositivos de transmissão". Acerte o "+" na barra superior e selecione seu dispositivo Google Home.

Finalmente, estamos prontos para realmente configurar isso.


Lendo seu correio de voz mais recente do Google Voice no Google Home

AutoVoz

A primeira coisa que precisamos fazer é criar um comando AutoVoice Natural Language. Isso é bastante simples de fazer.

  1. Abra o AutoVoice
  2. Toque em linguagem natural
  3. Toque em Comandos
  4. Toque no + ícone para adicionar um novo comando
  5. Insira uma lista de comandos de voz, separados por vírgulas, contendo tantas variações do comando de voz que você acha que pode falar para acionar esse comando.
  6. Para as respostas, você pode inserir quantas respostas, ou nenhuma, quiser que o Google Home leia para você quando você falar este comando.
  7. Quando terminar, dê um nome a este comando. Qualquer coisa funcionará aqui.

Mesmo que você insira várias variações de comandos e respostas, não precisa se preocupar em lembrar de falar esses comandos exatamente como estão escritos. API.ai analisará automaticamente tudo o que você fala e, usando seus algoritmos de linguagem natural, combinará seu comando falado com um dos comandos listados aqui.

Alternativamente, se você quiser apenas baixar minha própria configuração, você pode fazê-lo no link a seguir. Acredito que por enquanto, para importá-lo, você terá que fazer login no API.ai e importá-lo lá.

Baixe a intenção de linguagem natural do AutoVoice

Para ser honesto, a parte real do AutoVoice desta configuração é bastante simples, pois não estamos lidando com variáveis/parâmetros ou contextos no comando falado. A parte realmente complicada vem da próxima parte, onde Tasker reage a este comando AutoVoice Natural Language.

Tasker

Aqui está um guia passo a passo do que estamos fazendo para criar esse perfil.

  1. Abra o Tasker e pressione o botão + ícone para criar um novo perfil.
  2. Vá para Evento -> Plugin -> AutoVoice -> Linguagem Natural.
  3. Toque no ícone de lápis para abrir a tela de configuração do AutoVoice.
  4. Pressione “Comandos” e selecione o nome do comando que você criou anteriormente.
  5. Pressione o ícone da marca de seleção acima e pressione a tecla Voltar para retornar à tela principal do Tasker.
  6. Tasker solicitará que você crie uma nova tarefa. Você pode dar um nome a ela, se quiser, mas clique no ícone da marca de seleção para criar uma nova tarefa de qualquer maneira.

Quando estiver na tela de edição da Tarefa, criaremos a Tarefa mostrada abaixo. Para criar novas ações, toque no + ícone na parte inferior central. Para qualquer profissional do Tasker aqui, você pode expandir o botão de alternância abaixo para mostrar o perfil e a descrição da tarefa que você pode seguir por si mesmo.

Página inicial - Ler correio de voz

 Profile: Home - Read Voicemail (165)
Event: AutoVoiceNaturalLanguage[ Configuration: Commands: read my last voicemail ]
Enter: Read Voicemail (164)
A1: AutoCastSpeak[ Configuration: Device: Bedroom Home Timeout (Seconds):60 ]
A2: AutoWeb Web Service [ Configuration: API: Gmail
API Action: List messages
Include spam trash: false
User ID: me
Search: from:voice-noreply@google.com
MaxResults: 5 Timeout (Seconds):120 ]
A3: Wait[ MS: 0 Seconds: 1 Minutes: 0 Hours: 0 Days: 0 ]
A4: AutoWeb Web Service [ Configuration: API: Gmail
API Action: Get Message
Format: full
UserID: meTimeout (Seconds):120 ]
A5: For [ Variable:%headers Items:1:%payload_headers_name(#) ]
A6: Variable Set [ Name:%referenceTo:%headers Recurse Variables:OffDo Maths:Off Append:Off ] If [ %payload_headers_name(%headers) ~ Subject ]
A7: EndFor
A8: Java Function [ Return: decodedbody Class Or Object:Base64 Function:decode
{byte[]} (String, int) Param:%bodydata(1) Param:8 Param: Param: Param: Param: Param: ]
A9: Java Function [ Return:%body Class Or Object:StringFunction:new
{String} (byte[], String) Param: decodedbody Param: UTF-8 Param: Param: Param: Param: Param: ]
A10: Variable Split [ Name:%body Splitter: https://www.google.com/voice/fm/ Delete Base:Off ]
A11: VariableSplit[ Name:%body2 Splitter:> Delete Base: Off ]
A12: HTTP Get [ Server: Port: https://www.google.com Path:/voice/fm/%body21 Attributes: Cookies: User Agent: Timeout: 10 Mime Type: audio/* Output File:/sdcard/Tasker/voicemail.mp3 Trust Any Certificate: Off ]
A13: Variable Set [ Name:%voicemail To:%payload_headers_value(%reference) Recurse Variables:OffDo Maths:Off Append:Off ]
A14: Variable Split [ Name:%voicemail Splitter: from Delete Base:Off ]
A15: Variable Split [ Name:%voicemail2 Splitter: at Delete Base:Off ]
A16: Test Phone [ Type: Contact Name Data:%voicemail21 Store Result In:%name Continue Task After Error:On ]
A17: Variable Set [ Name:%voicemail To:%voicemail1 from %nameat %voicemail22 Recurse Variables:OffDo Maths:Off Append:Off ] If [ %nameSet ]
A18: Variable Set [ Name:%voicemail To:%voicemail1 from %voicemail21 at %voicemail22 Recurse Variables:OffDo Maths:Off Append:Off ] If [ %name !Set ]
A19: AutoCast Speak [ Configuration: Device: Bedroom Home
Text: %voicemailTimeout (Seconds):60 ]
A20: Wait[ MS: 0 Seconds: 5 Minutes: 0 Hours: 0 Days: 0 ]
A21: AutoCast [ Configuration:
Starting Casting Screen
Persistent Notification: true
Cast Device: Bedroom Home
Screen: Full Screen Media
Audio: /storage/emulated/0/Tasker/voicemail.mp3
Audio Volume: 100
Audio Position: 0
Audio AutoPlay: true Timeout (Seconds):3000 ]

consulte Mais informação

O guia passo a passo abaixo mostrará como replicar a tarefa, mostrada na captura de tela à direita. A tarefa é a essência desta configuração aqui e é bastante complexa. Como funciona é que, uma vez ativado o Perfil, as primeiras ações (A2-A4) pesquisam e extraem do seu Conta do Gmail para mensagens de [email protected], que é o serviço de e-mail automatizado usado pelo Google Voz. Em seguida, procuramos o cabeçalho do assunto (A5-A7) para obtermos as informações sobre quem enviou a mensagem de voz e quando. Em seguida, extraímos o corpo da mensagem do Gmail, que está codificado na base 64, portanto, temos que usar uma função Java (A8-A9). Depois de recuperar a mensagem decodificada, procuramos o URL que nos liga ao arquivo de áudio do correio de voz (A10-A11) e, finalmente, baixamos o arquivo como mp3 (A12). A13-A18 simplesmente procura as informações de contato, se existirem, do número que saiu do correio de voz. Por fim, A19-A21 lerá de quem o correio de voz foi enviado e a que horas, bem como o áudio gravado do correio de voz.

  1. Plug-in -> AutoCast -> AutoCast Speak. Dispositivo: escolha seu Google Home. (Nenhum texto é necessário aqui, apenas para conectar-se ao Google Home.)
  2. Plug-in -> AutoWeb. API: Gmail. Ação da API: listar mensagens. ID do usuário: eu. Procurar: de: [email protected]. Resultados máximos: 5. Saída: Eu ia.
  3. Tarefa -> Espere. Espere 1 segundo.
  4. Plug-in -> AutoWeb. API: Gmail. Ação da API: obter mensagem. Formato: completo. ID do usuário: eu. ID da mensagem: % ajuda (1). Saída: Dados do corpo, nome dos cabeçalhos da carga útil, Valor dos cabeçalhos de carga útil.
  5. Tarefa -> Para. Variável: % cabeçalhos. Unid: 1:%payload_headers_name(#)
  6. Variáveis ​​--> Conjunto de Variáveis. Nome: %referência. Para: % cabeçalhos. Verifique se e defina-o como If %payload_headers_name(%headers) ~ Assunto.
  7. Tarefa -> Finalizar para.
  8. Código -> Função Java. Para a Classe/Objeto, selecione Base64. Função: decodificar {byte[]} (String, int). Parâmetro (string): % dados corporais (1). Parâmetro (int): 8. Retornar: corpo decodificado.
  9. Código -> Função Java. Para a Classe/Objeto, selecione Corda. Função: novo {String} (byte[], String). Parâmetro (byte[]): corpo decodificado. Parâmetro (string): UTF-8. Retornar: %corpo.
  10. Variáveis ​​--> Divisão de variáveis. Nome: %corpo. Divisor: https://www.google.com/voice/fm/
  11. Variáveis ​​--> Divisão de variáveis. Nome: %corpo2. Divisor: >
  12. Rede -> HTTP Obter. Porta do servidor: https://www.google.com Caminho: /voice/fm/%body21 Tipo Mime: áudio/* Arquivo de saída: /sdcard/Tasker/voicemail.mp3
  13. Variáveis ​​--> Conjunto de Variáveis. Nome: %correio de voz. Para: %payload_headers_value(%referência)
  14. Variáveis ​​--> Divisão de variáveis. Nome: %correio de voz. Divisor: de
  15. Variáveis ​​--> Divisão de variáveis. Nome: %correio de voz2. Divisor: no
  16. Telefone -> Testar telefone. Tipo: Nome de contato. Dados: %correio de voz21. Armazenar resultado em: %nome. Certifique-se de verificar continue a tarefa após o erro.
  17. Variáveis ​​--> Conjunto de Variáveis. Nome: %correio de voz. Para: %correio de voz1 de %nome em %correio de voz22. Verifique se na parte inferior e defina-o como se %nome está definido.
  18. Variáveis ​​--> Conjunto de Variáveis. Nome: %correio de voz. Para: % correio de voz1 de % correio de voz21 em % correio de voz22. Verifique se na parte inferior e defina-o como se %nome não está definido.
  19. Plugin -> AutoCast -> Falar. Dispositivo: escolha seu Google Home. Texto: %correio de voz
  20. Tarefa -> Espere. Espere 5 segundos. Isto é um atraso configurável para garantir que sempre haja tempo suficiente entre o anúncio do novo correio de voz e a reprodução do áudio do correio de voz. Se for muito curto, você pode aumentar esse tempo. Experimente esse valor para ver o que reduz o atraso a um nível aceitável.
  21. Plug-in -> AutoCast -> AutoCast. Dispositivo de transmissão: escolha seu Google Home novamente. Selecione mídia em tela cheia como a tela. Vá para Elementos de mídia em tela cheia, depois Áudio, e para Áudio ("música para tocar") coloque /sdcard/Tasker/voicemail.mp3. Selecione Reprodução automática.

É isso! Agora, tudo que você precisa fazer para acionar esta tarefa é enviar o comando para o seu dispositivo Google Home. Você pode fazer isso dizendo "Ei/OK Google, deixe-me falar com o AutoVoice" e, em seguida, falando uma das variações do seu comando quando o AutoVoice solicitar que você diga o seu comando. Ou você pode dizer seu comando de uma só vez, dizendo "Ei/OK Google, peça ao AutoVoice para [comando]" assim como fiz no vídeo mostrado no início.


Baixar perfil

Você pode baixar o perfil/tarefa do Tasker que criei no link abaixo. Se você decidir fazer isso, certifique-se de modificar as duas ações "AutoCast" para que façam referência ao seu dispositivo Google Home específico. Além disso, verifique se o comando de linguagem natural do AutoVoice nomeado em meu perfil é o mesmo que você criou. Caso contrário, basta alterar o Perfil para apontar para o seu comando. Deve demorar apenas alguns segundos.

Baixe a página inicial - Leia o perfil do Tasker do correio de voz

Depois de baixar o arquivo XML acima, salve-o em qualquer lugar do seu dispositivo. Abra o Tasker e desative o Modo Iniciante nas preferências. Em seguida, volte para a tela principal e mantenha pressionada a guia Perfis, toque até ver uma caixa pop-up com "Importar" como opção. Pressione-o e navegue até onde você salvou o arquivo .prf.xml e selecione-o para importá-lo.

Espero que você tenha achado este tutorial útil. Gostei de mexer na API e no Tasker até conseguir fazer as coisas funcionarem. Eu sei que não é muito elegante, mas é principalmente uma demonstração de quão poderosamente você pode integrar seu Google Home com vários serviços da web e seu telefone. Esperamos que isso inspire você a criar algo que você não achava que era possível antes!