Dit is een tutorial die laat zien hoe u uw Google Home-apparaat uw nieuwste voicemail van Google Voice kunt laten voorlezen met Tasker, AutoWeb en AutoVoice.
Toen Google Home voor het eerst werd uitgebracht, ontbrak (en ontbreekt het nog steeds) veel functies. U kunt nog steeds geen agenda-afspraken instellen, uw sms-berichten lezen, een takenlijst maken en meer. Als u echter het lef heeft, kunt u bijna al deze functies zelf implementeren, dankzij de kracht van AutoVoice En Tasker. In een poging te laten zien hoe creatief u kunt zijn met Google Home en AutoVoice, laat ik u zien hoe u uw Google Home lees uw nieuwste Google Voice-voicemail. Het lijkt nu misschien zwarte magie, maar hopelijk zal het aan het einde van deze tutorial allemaal logisch zijn.
Met AutoVoice kunt u gesproken opdrachten vanaf uw Google Home-apparaat naar uw telefoon sturen, die deze opdrachten vervolgens interpreteert en een actie uitvoert via Tasker. Het beste is dat je dankzij de kracht van natuurlijke taalopdrachten naar je telefoon kunt sturen
De AutoVoice-integratie met Google Home bevindt zich al een tijdje in de bètafase, maar de release van AutoVoice 3.0 Hiermee kunnen alle gebruikers van de Tasker-plug-in genieten van Google Home-integratie. Nu AutoVoice algemeen beschikbaar is voor gebruikers en de meeste problemen zijn opgelost, zal ik beginnen met het presenteren van enkele dingen die ik met AutoVoice en Tasker heb gemaakt. Mijn eerste Google Home-tutorial, het lezen van je nieuwste Google Voice-voicemail, is mijn meest complexe deel, maar het is een goede kandidaat om te laten zien dat wat u met Tasker kunt doen alleen wordt beperkt door uw verbeelding.
Luister naar mijn nieuwste voicemail op mijn Google Home.
Aanbevolen leesmateriaal: Bekijk onze eerdere bijlessen, waar we u laten zien hoe u veelvoorkomende problemen kunt oplossen die maar weinig anderen hebben benaderd.
Vereisten
AutoVoice is een zachte vereiste om dit project te laten werken. U kunt IFTTT gebruiken om de taak te activeren, maar daarvoor moet u een oplossing gebruiken waarbij een andere toepassing betrokken is, zoals Meedoen of Duwkogel om opdrachten naar Tasker te sturen, omdat IFTTT niet rechtstreeks met Tasker integreert. Bovendien, en het belangrijkste voorbehoud bij het niet gebruiken van AutoVoice, is dat spraakopdrachten inflexibel zullen zijn bij gebruik van IFTTT. Dit betekent dat u uw commando elke keer volledig nauwkeurig moet uitspreken, anders wordt het commando niet geactiveerd. Dat kan in de toekomst een probleem zijn als je talloze Tasker/Google Home-integraties gaat maken (ik heb 28 momenteel), wat betekent dat u elke keer precies de gewenste opdrachten moet onthouden en reproduceren.
Je zal nodig hebben:
- AutoVoice ($2.49)
- AutoVoice-abonnement in natuurlijke taal ($ 0,99/maand)
- Tasker ($2.99)
- AutoWeb Bèta
- AutoCast Bèta ($0.99)
Voorbereiding
Voordat we ingaan op deze coole integratie, moeten we enkele voorbereidingen treffen om dit goed te laten werken. Ik zal deze opzet in delen benaderen.
Deel 1 - AutoVoice instellen
Ik heb al uitgebreid geschreven over het instellen van AutoVoice met Google Home, dus alstublieft zie hier mijn vorige artikel. De enige verandering die echt opvalt, is dat je de AutoVoice-bèta niet langer nodig hebt, omdat de integratie nu werkt met de stabiele AutoVoice-update. Ik raad u ook aan de korte tutorial door te lezen over het laten reageren van een Tasker-profiel op de AutoVoice-opdracht, aangezien we hier hetzelfde zullen doen. De essentie is dat er vier belangrijke dingen zijn die u tijdens dit installatieproces gaat doen:
- Schakel de AutoVoice-service in de Google Home-app in.
- Maak een API.ai-account aan en ontvang uw API-sleutels
- Voeg deze API-sleutels toe aan de instelling Natuurlijke taal in AutoVoice
- Abonneer u op de AutoVoice Natural Language-abonnementsservice
Nogmaals, deze stappen worden veel gedetailleerder beschreven in mijn vorige artikel, dus ik raad je aan dit door te lezen.
Deel 2 - Google Voice instellen
We hebben een manier nodig om toegang te krijgen tot uw Google Voice-voicemails, zodat Tasker de voicemailinhoud kan extraheren. De manier waarop we dit bereiken is door al onze voicemails door te laten sturen naar uw gekoppelde Gmail-account. Dit is een eigen functie van Google Voice en het enige dat u hoeft te doen is één knop in de Google Voice-app omschakelen.
Zodra u dat heeft gedaan, ontvangt u alle nieuwe voicemails in uw e-mail. Zoals u ziet bevat de e-mail zowel een transcriptie van de voicemail als een link naar de daadwerkelijke audio van de voicemail. Wij zullen deze e-mail voor onze doeleinden gebruiken.
Deel 3 - AutoWeb instellen
Om de inhoud van deze e-mail te extraheren, moeten we toegang krijgen tot de e-mailinhoud met behulp van de Gmail-API. We zullen dit doen met behulp van de AutoWeb-applicatie die aan het begin was gekoppeld. Open AutoWeb en tik op ‘Bladeren door webservices’. Scrol omlaag naar de Gmail API en tik erop om te importeren. Na het importeren zal AutoWeb u vragen om het Gmail-account dat u wilt gebruiken te authenticeren met de API. Selecteer de hetzelfde Gmail-account waarnaar voicemails worden doorgestuurd.
Nu heb je je telefoon aan je Gmail-account gekoppeld via het gebruik van de Gmail API!
Deel 4 - AutoCast instellen
Voordat we de voicemailaudio naar onze Google Home kunnen sturen, moeten we AutoCast instellen zodat deze verbinding kan maken met Google Home. Open AutoCast en selecteer 'Cast-apparaten beheren'. Druk op de "+'-pictogram in de bovenste balk en selecteer uw Google Home-apparaat.
Eindelijk zijn we klaar om deze installatie daadwerkelijk op te zetten.
Je nieuwste Google Voice Voicemail lezen op Google Home
AutoVoice
Het eerste dat we moeten doen is een AutoVoice Natural Language-opdracht maken. Dit is vrij eenvoudig te doen.
- Open AutoVoice
- Tik op Natuurlijke taal
- Tik op Commando's
- Tik op de + pictogram om een nieuwe opdracht toe te voegen
- Voer een lijst met spraakopdrachten in, gescheiden door komma's, met daarin zoveel variaties van de spraakopdrachten die u denkt te kunnen uitspreken om deze opdracht te activeren.
- Voor de reacties kunt u zoveel of geen reacties invoeren die u wilt dat Google Home u voorleest wanneer u deze opdracht uitspreekt.
- Als u klaar bent, geeft u dit commando een naam. Alles zal hier werken.
Ook al voert u een aantal variaties van commando's en antwoorden in, u hoeft zich geen zorgen te maken dat u deze commando's precies zo uitspreekt als geschreven. API.ai parseert automatisch wat u spreekt en gebruikt de natuurlijke taalalgoritmen om uw gesproken commando af te stemmen op een van de commando's die u hier vermeldt.
Als alternatief, als u gewoon mijn eigen installatie wilt downloaden, kunt u dat doen via de volgende link. Ik geloof dat je, om het te importeren, voorlopig moet inloggen op API.ai en het daar moet importeren.
Download de AutoVoice natuurlijke taalintentie
Om eerlijk te zijn is het eigenlijke AutoVoice-gedeelte van deze opstelling vrij eenvoudig, omdat we niet te maken hebben met variabelen/parameters of contexten in de gesproken opdracht. Het eigenlijk ingewikkelde deel komt uit het volgende deel, waar we Tasker laten reageren op dit AutoVoice Natural Language-commando.
Tasker
Hier vindt u een stapsgewijze handleiding van wat we doen om dit profiel te maken.
- Open Tasker en druk op de + pictogram om een nieuw profiel aan te maken.
- Ga naar Gebeurtenis --> Plug-in --> AutoVoice --> Natuurlijke taal.
- Tik op het potloodpictogram om het configuratiescherm van AutoVoice te openen.
- Druk op "Opdrachten" en selecteer de naam van de opdracht die u eerder hebt gemaakt.
- Druk op het vinkje hierboven en druk vervolgens op de Terug-toets om terug te keren naar het hoofdscherm van Tasker.
- Tasker zal u vragen een nieuwe taak te maken. Je kunt het een naam geven als je wilt, maar klik op het vinkje om toch een nieuwe taak te maken.
Zodra u zich in het taakbewerkingsscherm bevindt, maken we de taak aan die hieronder wordt weergegeven. Om nieuwe acties te maken, tikt u op de + pictogram middenonder. Voor alle Tasker-professionals hier kunt u de onderstaande schakelaar uitvouwen om de profiel- en taakbeschrijving weer te geven die u zelf kunt volgen.
Home - Voicemail lezen
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 ]
Lees verder
De onderstaande stapsgewijze handleiding laat zien hoe u de taak kunt repliceren, weergegeven in de schermafbeelding aan de rechterkant. De taak is hier de kern van deze opzet, en het is behoorlijk complex. Hoe het werkt, is dat zodra het profiel is geactiveerd, de eerste paar acties (A2-A4) zoeken en ophalen uit uw Gmail-account voor berichten van [email protected], de geautomatiseerde e-mailservice die door Google wordt gebruikt Stem. Vervolgens zoeken we naar de onderwerpkop (A5-A7), zodat we informatie kunnen krijgen over wie de voicemail heeft verzonden en wanneer. Vervolgens extraheren we de berichttekst van het Gmail-bericht, die is gecodeerd in base 64, dus we moeten een Java-functie gebruiken (A8-A9). Nadat we het gedecodeerde bericht hebben opgehaald, zoeken we naar de URL die ons naar het voicemail-audiobestand (A10-A11) linkt en downloaden we het bestand uiteindelijk als mp3 (A12). A13-A18 zoekt eenvoudigweg de contactgegevens op, als deze bestaan, van het nummer dat de voicemail heeft achtergelaten. Ten slotte leest A19-A21 voor van wie de voicemail op welk tijdstip is verzonden en het opgenomen voicemailgeluid.
- Plug-in --> AutoCast --> AutoCast Speak. Apparaat: kies je Google Home. (Hier is geen tekst nodig, dit is alleen om verbinding te maken met de Google Home.)
- Plug-in --> AutoWeb. API: Gmail. API-actie: Lijst met berichten. Gebruikers-ID: ik. Zoekopdracht: van: [email protected]. Maximale resultaten: 5. Uitgang: ID kaart.
- Taak --> Wacht. Wacht 1 seconde.
- Plug-in --> AutoWeb. API: Gmail. API-actie: bericht ophalen. Formaat: vol. Gebruikers-ID: ik. Bericht-ID: %steun (1). Uitgang: Lichaamsgegevens, naam van payloadheaders, En Waarde van payloadheaders.
- Taak --> Voor. Variabel: % kopteksten. Artikelen: 1:%payload_headers_name(#)
- Variabelen --> Variabelen ingesteld. Naam: %referentie. Naar: % kopteksten. Vink If aan en stel dit in op If %payload_headers_name(%headers) ~ Onderwerp.
- Taak --> Einde voor.
- Code--> Java-functie. Selecteer voor de Klasse/Object Basis64. Functie: decoderen {byte[]} (String, int). Param (tekenreeks): %lichaamsgegevens (1). Param (int): 8. Opbrengst: gedecodeerd lichaam.
- Code --> Java-functie. Selecteer voor de Klasse/Object Snaar. Functie: nieuwe {String} (byte[], String). Param (byte[]): gedecodeerd lichaam. Param (tekenreeks): UTF-8. Opbrengst: %lichaam.
- Variabelen --> Variabelensplitsing. Naam: %lichaam. Splitser: https://www.google.com/voice/fm/
- Variabelen --> Variabelensplitsing. Naam: %lichaam2. Splitser: >
- Netto --> HTTP ophalen. Server poort: https://www.google.com Pad: /voice/fm/%body21 Mime type: audio/* Uitvoerbestand: /sdcard/Tasker/voicemail.mp3
- Variabelen --> Variabelenset. Naam: % voicemail. Naar: %payload_headers_value(%referentie)
- Variabelen --> Variabelensplitsing. Naam: % voicemail. Splitser: van
- Variabelen --> Variabelensplitsing. Naam: %voicemail2. Splitser: bij
- Telefoon --> Testtelefoon. Type: Contactnaam. Gegevens: %voicemail21. Resultaat opslaan in: %naam. Zorg ervoor dat u dit controleert ga door met taak na fout.
- Variabelen --> Variabelenset. Naam: % voicemail. Naar: %voicemail1 van %name op %voicemail22. Controleer onderaan of en stel deze in op if %naam is ingesteld.
- Variabelen --> Variabelenset. Naam: % voicemail. Naar: %voicemail1 van %voicemail21 op %voicemail22. Controleer onderaan of en stel deze in op if %naam is niet ingesteld.
- Plug-in --> AutoCast --> Spreken. Apparaat: kies je Google Home. Tekst: % voicemail
- Taak --> Wacht. Wachten 5 seconden. Dit is een configureerbare vertraging om ervoor te zorgen dat er altijd voldoende tijd zit tussen de aankondiging van de nieuwe voicemail en het afspelen van de voicemailaudio. Als dit te kort is, kunt u deze tijd verlengen. Speel echter met deze waarde om te zien wat de vertraging tot een acceptabel niveau reduceert.
- Plug-in --> AutoCast --> AutoCast. Cast-apparaat: kies je Google Home opnieuw. Selecteer media op volledig scherm als het scherm. Ga naar Media-elementen op volledig scherm en vervolgens naar Audio en zet voor Audio ("nummer om af te spelen") /sdcard/Tasker/voicemail.mp3. Selecteer Automatisch afspelen.
Dat is het! Het enige dat u nu hoeft te doen om deze taak te activeren, is door de opdracht naar uw Google Home-apparaat te sturen. Dat kun je doen door te zeggen: "Hé/OK Google, laat me met AutoVoice praten" en vervolgens een van de varianten van uw commando uitspreken wanneer AutoVoice u vertelt uw commando uit te spreken. Of u kunt uw opdracht in één keer uitspreken door te zeggen: "Hey/OK Google, vraag AutoVoice om [opdracht]"Net zoals ik deed in de video die in het begin werd getoond.
Profiel downloaden
Je kunt het Tasker-profiel/de taak die ik heb gemaakt downloaden via de onderstaande link. Als u ervoor kiest dit te doen, zorg er dan voor dat u naar binnen gaat en de twee 'AutoCast'-acties aanpast, zodat ze verwijzen naar uw specifieke Google Home-apparaat. Controleer ook of het AutoVoice Natural Language-commando dat in mijn profiel wordt genoemd, hetzelfde is als het commando dat u hebt gemaakt. Als dit niet het geval is, wijzigt u gewoon het profiel zodat het naar uw opdracht verwijst. Het zou maar een paar seconden moeten duren.
Download het Home - Voicemail Tasker-profiel lezen
Nadat u het bovenstaande XML-bestand heeft gedownload, slaat u het ergens op uw apparaat op. Open Tasker en schakel de Beginnersmodus uit in de voorkeuren. Ga vervolgens terug naar het hoofdscherm en druk lang op het tabblad Profielen en tik totdat u een pop-upvenster ziet met "Importeren" als optie. Druk hierop en navigeer naar de locatie waar u het .prf.xml-bestand hebt opgeslagen en selecteer het om het te importeren.
Ik hoop dat je deze tutorial nuttig vond. Ik vond het leuk om aan de API en Tasker te sleutelen totdat ik alles werkend kon krijgen. Ik weet dat het niet super elegant is, maar dit is vooral een voorbeeld van hoe krachtig je je Google Home kunt integreren met verschillende webservices en je telefoon. Hopelijk inspireert dit je om iets te creëren waarvan je voorheen niet dacht dat het mogelijk was!