Dette er et selvstudie, der viser dig, hvordan du får din Google Home-enhed til at læse din seneste voicemail fra Google Voice ved hjælp af Tasker, AutoWeb og AutoVoice.
Da Google Home først blev udgivet, manglede (og mangler stadig) mange funktioner. Du har stadig ingen mulighed for at indstille kalenderbegivenheder, læse dine tekstbeskeder, oprette en huskeliste og meget mere. Men hvis du har mod, kan du implementere næsten alle disse funktioner på egen hånd, takket være kraften i AutoVoice og Tasker. I et forsøg på at demonstrere, hvor kreativ du kan være med Google Home og AutoVoice, vil jeg vise dig, hvordan du har dit Google Home læse din seneste Google Voice voicemail. Det kan virke som sort magi lige nu, men forhåbentlig vil det hele give mening i slutningen af denne tutorial.
Med AutoVoice kan du sende talte kommandoer fra din Google Home-enhed til din telefon, som derefter fortolker disse kommandoer og udfører en handling gennem Tasker. Det bedste er, at du kan sende naturlige sprogkommandoer til din telefon takket være kraften i
I et stykke tid har AutoVoice-integration med Google Home været i beta, men udgivelse af AutoVoice 3.0 giver alle brugere af Tasker-plugin'et mulighed for at nyde Google Home-integration. Nu hvor AutoVoice er bredt tilgængeligt for brugere, og de fleste af dets kinks er blevet løst, vil jeg begynde at fremvise nogle af de ting, jeg har lavet med AutoVoice og Tasker. Mit første selvstudie i Google Home, læsning af din seneste Google Voice-voicemail, er det mest komplekse del, men det er en god kandidat til at vise, at hvad du kan med Tasker kun er begrænset af din fantasi.
Lytter til min seneste telefonsvarer på min Google Home.
Anbefalet læsning: Tjek vores tidligere tutorials, hvor vi viser dig, hvordan du løser almindelige problemer, som få andre har nærmet sig.
Krav
AutoVoice er et blødt krav for at dette projekt kan fungere. Du kan bruge IFTTT til at udløse opgaven, men det kræver, at du bruger en løsning, der involverer en anden applikation som f.eks. Tilslutte eller Pushbullet at sende kommandoer til Tasker, da IFTTT ikke direkte integrerer med Tasker. Desuden, og den vigtigste advarsel ved ikke at bruge AutoVoice, er, at stemmekommandoer vil være ufleksible, hvis du bruger IFTTT. Det betyder, at du skal sige din kommando fuldstændig præcist hver eneste gang, ellers udløses kommandoen ikke. Det kan være et problem i fremtiden, hvis du begynder at skabe tonsvis af Tasker/Google Home-integrationer (jeg har 28 i øjeblikket), hvilket betyder, at du skal huske og gengive præcis de kommandoer, du ønsker, hver eneste gang.
Du får brug for:
- AutoVoice ($2.49)
- AutoVoice Natural Language-abonnement ($0,99/måned)
- Tasker ($2.99)
- AutoWeb Beta
- AutoCast Beta ($0.99)
Forberedelse
Inden vi kommer ind i kødet af denne seje integration, skal vi forberede os på, at dette fungerer korrekt. Jeg vil nærme mig denne opsætning i dele.
Del 1 - Opsætning af AutoVoice
Jeg har allerede skrevet længe om, hvordan man opsætter AutoVoice med Google Home, så tak se min tidligere artikel her. Den eneste ændring, du virkelig skal bemærke, er, at du ikke længere har brug for AutoVoice beta, da integrationen nu fungerer med den stabile AutoVoice-opdatering. Jeg anbefaler også, at du læser den korte vejledning om at få en Tasker-profil til at reagere på AutoVoice-kommandoen, da vi vil gøre det samme her. Essensen af det er, at der er fire hovedting, du vil gøre i denne opsætningsproces:
- Aktiver AutoVoice-tjenesten i Google Home-appen.
- Opret en API.ai-konto og få dine API-nøgler
- Tilføj disse API-nøgler til Natural Language-indstillingen i AutoVoice
- Abonner på abonnementstjenesten AutoVoice Natural Language
Igen er disse trin skitseret langt mere detaljeret i min tidligere artikel, så jeg anbefaler, at du læser den igennem.
Del 2 - Opsætning af Google Voice
Vi har brug for en måde at få adgang til dine Google Voice-voicemails, så Tasker kan udtrække voicemail-indholdet. Den måde, vi vil opnå dette på, er ved at få alle vores voicemails videresendt til din tilknyttede Gmail-konto. Dette er en indbygget funktion i Google Voice, og alt hvad du skal gøre er at skifte til en enkelt knap i Google Voice-appen.
Når du har gjort det, vil du begynde at modtage alle nye voicemails i din e-mail. Som du kan se, indeholder e-mailen både en transskription af voicemailen samt et link til selve lyden af voicemailen. Vi vil bruge denne e-mail til vores formål.
Del 3 - Opsætning af AutoWeb
For at udtrække indholdet af denne e-mail, skal vi have adgang til e-mail-indholdet ved hjælp af Gmail API. Vi vil gøre det ved hjælp af AutoWeb-applikationen, der blev linket nær begyndelsen. Åbn AutoWeb og tryk på "Gennemse webtjenester". Rul ned til Gmail API og tryk på den for at importere. Efter importen vil AutoWeb bede dig om at godkende den Gmail-konto, du vil bruge med API'en. Vælg samme Gmail-konto, som voicemails videresendes til.
Nu har du knyttet din telefon til din Gmail-konto ved at bruge Gmail API!
Del 4 - Opsætning af AutoCast
Før vi kan sende voicemail-lyden til vores Google Home, skal vi konfigurere AutoCast, så den kan oprette forbindelse til Google Home. Åbn AutoCast og vælg "Administrer Cast-enheder". Tryk på "+"-ikonet i den øverste bjælke, og vælg din Google Home-enhed.
Endelig er vi klar til faktisk at sætte dette op.
Læsning af din seneste Google Voice Voicemail på Google Home
AutoVoice
Den første ting, vi skal gøre, er at oprette en AutoVoice Natural Language-kommando. Dette er ret simpelt at gøre.
- Åbn AutoVoice
- Tryk på Naturligt sprog
- Tryk på Kommandoer
- Tryk på + ikonet for at tilføje en ny kommando
- Indtast en liste over stemmekommandoer, adskilt af kommaer, der indeholder så mange variationer af stemmekommandoen, du tror, du kan tale for at udløse denne kommando.
- For svarene kan du indtaste lige så mange svar, eller ingen, som du ønsker, at Google Home skal læse tilbage til dig, når du siger denne kommando.
- Når du er færdig, skal du give denne kommando et navn. Alt vil fungere her.
Selvom du indtaster en masse variationer af kommandoer og svar, behøver du ikke at bekymre dig om at huske at sige disse kommandoer nøjagtigt som skrevet. API.ai vil automatisk analysere, hvad end du taler, og ved at bruge dets naturlige sprogalgoritmer vil din talte kommando matche en af de kommandoer, du angiver her.
Alternativt, hvis du bare gerne vil downloade min egen opsætning, kan du gøre det på følgende link. Jeg tror, at for nu, for at importere det, skal du logge ind på API.ai og importere det der.
Download AutoVoice Natural Language Intent
For at være ærlig er den faktiske AutoVoice-del af denne opsætning ret enkel, da vi ikke har at gøre med variabler/parametre eller kontekster i den talte kommando. Den egentlige komplicerede del kommer fra den næste del, hvor vi får Tasker til at reagere på denne AutoVoice Natural Language-kommando.
Tasker
Her er en trin for trin guide til, hvad vi gør for at lave denne profil.
- Åbn Tasker og tryk på + ikon for at oprette en ny profil.
- Gå til Event --> Plugin --> AutoVoice --> Natural Language.
- Tryk på blyantikonet for at åbne AutoVoices konfigurationsskærm.
- Tryk på "Kommandoer" og vælg navnet på den kommando, du oprettede tidligere.
- Tryk på fluebensikonet ovenfor, og tryk derefter på tilbage-tasten for at vende tilbage til Taskers hovedskærm.
- Tasker vil bede dig om at oprette en ny opgave. Du kan give det et navn, hvis du vil, men tryk på fluebensikonet for at oprette en ny opgave uanset.
Når du er i opgaveredigeringsskærmen, vil vi oprette den opgave, der er vist nedenfor. For at oprette nye handlinger, tryk på + ikon nederst i midten. For alle Tasker-professionelle her, kan du udvide til/fra-knappen nedenfor for at vise profil- og opgavebeskrivelsen, du selv kan følge.
Hjem - Læs Voicemail
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 ]
Læs mere
Nedenstående trin-for-trin guide viser dig, hvordan du replikerer opgaven, vist på skærmbilledet til højre. Opgaven er kødet i denne opsætning her, og den er ret kompleks. Hvordan det virker er, at når profilen er aktiveret, søger og trækker de første par handlinger (A2-A4) fra din Gmail-konto til beskeder fra [email protected], som er den automatiske e-mail-tjeneste, der bruges af Google Stemme. Vi leder derefter efter emneoverskriften (A5-A7), så vi kan få oplysninger om, hvem der har sendt telefonsvareren og hvornår. Dernæst udtrækker vi meddelelsesteksten i Gmail-meddelelsen, som er kodet i base 64, så vi skal bruge en Java-funktion (A8-A9). Efter at vi har hentet den afkodede besked, leder vi efter URL'en, der linker os til voicemail-lydfilen (A10-A11) og downloader til sidst filen som en mp3 (A12). A13-A18 slår blot kontaktoplysningerne op, hvis de findes, for det nummer, der forlod telefonsvareren. Til sidst vil A19-A21 læse op, hvem voicemailen blev sendt fra på hvilket tidspunkt samt den optagede voicemail-lyd.
- Plugin --> AutoCast --> AutoCast Speak. Enhed: vælg dit Google Home. (Ingen tekst er nødvendig her, dette er kun for at oprette forbindelse til Google Home.)
- Plugin --> AutoWeb. API: Gmail. API-handling: Liste meddelelser. Bruger-id: mig. Søg: fra: [email protected]. Max resultater: 5. Produktion: Id.
- Opgave --> Vent. Vent 1 sekund.
- Plugin --> AutoWeb. API: Gmail. API-handling: Få besked. Format: fuld. Bruger-id: mig. Meddelelses-id: %hjælp (1). Produktion: Kropsdata, navn på nyttelastoverskrifter, og Nyttelastheaders værdi.
- Opgave --> For. Variabel: %overskrifter. Varer: 1:%payload_headers_name(#)
- Variabler --> Variablesæt. Navn: %reference. Til: %overskrifter. Tjek If og indstil den til If %payload_headers_name(%headers) ~ Emne.
- Opgave --> Afslut for.
- Kode--> Java-funktion. For klasse/objekt skal du vælge Base 64. Fungere: afkode {byte[]} (streng, int). Param (streng): %bodydata (1). Param (int): 8. Vend tilbage: afkodet krop.
- Kode --> Java-funktion. For klasse/objekt skal du vælge Snor. Fungere: ny {String} (byte[], String). Param (byte[]): afkodet krop. Param (streng): UTF-8. Vend tilbage: %legeme.
- Variable --> Variabel Split. Navn: %legeme. Splitter: https://www.google.com/voice/fm/
- Variable --> Variabel Split. Navn: %krop2. Splitter: >
- Net --> HTTP Hent. Server: Port: https://www.google.com Sti: /voice/fm/%body21 Mime type: lyd/* Output fil: /sdcard/Tasker/voicemail.mp3
- Variabler --> Variablesæt. Navn: %voicemail. Til: %payload_headers_value(%reference)
- Variable --> Variabel Split. Navn: %voicemail. Splitter: fra
- Variable --> Variabel Split. Navn: %voicemail2. Splitter: på
- Telefon --> Test telefon. Type: Kontakt navn. Data: %voicemail21. Butiksresultat i: %navn. Sørg for at tjekke fortsæt opgave efter fejl.
- Variabler --> Variablesæt. Navn: %voicemail. Til: %voicemail1 fra %name på %voicemail22. Tjek hvis nederst og indstil den til if %navn er indstillet.
- Variabler --> Variablesæt. Navn: %voicemail. Til: %voicemail1 fra %voicemail21 på %voicemail22. Tjek hvis nederst og indstil den til if %navn er ikke angivet.
- Plugin --> AutoCast --> Tal. Enhed: vælg dit Google Home. Tekst: %voicemail
- Opgave --> Vent. Vente 5 sekunder. Dette er en konfigurerbar forsinkelse for at sikre, at der altid er nok tid mellem annonceringen af den nye telefonsvarer og lyden til voicemail afspilles. Hvis dette er for kort, kan du øge denne tid. Leg dog med denne værdi for at se, hvad der reducerer forsinkelsen til et acceptabelt niveau.
- Plugin --> AutoCast --> AutoCast. Cast-enhed: vælg din Google Home igen. Vælg medier i fuld skærm som skærmen. Gå til Fuldskærms medieelementer, derefter Lyd, og for lyden ("sang at spille") /sdcard/Tasker/voicemail.mp3. Vælg Automatisk afspilning.
Det er det! Nu er alt, hvad du skal gøre for at udløse denne opgave, at sende kommandoen til din Google Home-enhed. Det kan du gøre ved at sige "Hej/OK Google, lad mig tale med AutoVoice" og derefter tale en af variationerne af din kommando, når AutoVoice fortæller dig, at du skal sige din kommando. Eller du kan sige din kommando på én gang ved at sige "Hey/OK Google, bed AutoVoice om at [kommandere]" ligesom jeg gjorde i videoen vist i begyndelsen.
Download profil
Du kan downloade Tasker-profilen/opgaven jeg lavede på nedenstående link. Hvis du vælger at gøre det, skal du sørge for at gå ind og ændre de to "AutoCast"-handlinger, så de refererer til netop din Google Home-enhed. Kontroller også, at AutoVoice Natural Language-kommandoen, der er navngivet i min profil, er den samme som den, du lavede. Hvis ikke, skal du blot ændre profilen til at pege på din kommando. Det bør kun tage et par sekunder.
Download Home - Læs Voicemail Tasker-profilen
Når du har downloadet ovenstående XML-fil, skal du gemme den hvor som helst på din enhed. Åbn Tasker og deaktiver begyndertilstand i præferencer. Gå derefter tilbage til hovedskærmen, og tryk længe på fanen Profiler, tryk op, indtil du ser en pop-up-boks med "Importer" som en mulighed. Tryk på det, og naviger til det sted, hvor du gemte .prf.xml-filen, og vælg den for at importere den.
Jeg håber, du fandt denne tutorial nyttig. Jeg nød at pille ved API'en og Tasker, indtil jeg var i stand til at få tingene til at fungere. Jeg ved godt, at det ikke er super elegant, men dette er for det meste et udstillingsvindue for, hvor kraftfuldt du kan integrere din Google Home med forskellige webtjenester og din telefon. Forhåbentlig inspirerer dette dig til at skabe noget, du ikke troede var muligt før!