Det här är en handledning som visar hur du låter din Google Home-enhet läsa din senaste röstmeddelanden från Google Voice med Tasker, AutoWeb och AutoVoice.
När Google Home först släpptes saknades (och är fortfarande) många funktioner. Du har fortfarande inget sätt att ställa in kalenderhändelser, läsa dina textmeddelanden, skapa en att göra-lista och mer. Men om du har mod, kan du implementera nästan alla dessa funktioner på egen hand, tack vare kraften i AutoVoice och Tasker. I ett försök att visa hur kreativ du kan vara med Google Home och AutoVoice, kommer jag att visa dig hur du har din Google Home läs din senaste röstbrevlåda från Google Voice. Det kan verka som svart magi just nu, men förhoppningsvis i slutet av denna handledning kommer allt att vara vettigt.
Med AutoVoice kan du skicka talade kommandon från din Google Home-enhet till din telefon som sedan tolkar dessa kommandon och utför någon åtgärd genom Tasker. Det bästa är att du kan skicka naturliga språkkommandon till din telefon tack vare kraften i
API.ai, förutsatt att du registrerar dig för en prenumerationstjänst på 0,99 USD/månad på AutoVoice för att kompensera för kostnaden för att vara värd för API.ai-servern. Det betyder att du inte behöver prata så robotiskt/exakt när du pratar med din Google Home, och AutoVoice kommer fortfarande att känna igen kommandot du försöker skicka.Ett tag har AutoVoice-integration med Google Home varit i beta, men utgåvan av AutoVoice 3.0 låter alla användare av plugin-programmet Tasker njuta av Google Home-integration. Nu när AutoVoice är allmänt tillgängligt för användare och de flesta av dess kinks har strukits ut, kommer jag att börja visa upp några av de saker jag har gjort med AutoVoice och Tasker. Min första Google Home-handledning, att läsa din senaste röstbrevlåda från Google Voice, är min mest komplicerade dela, men det är en bra kandidat för att visa att vad du kan göra med Tasker endast begränsas av din fantasi.
Lyssnar på mitt senaste röstmeddelande på min Google Home.
Rekommenderad läsning: Kolla in vår tidigare tutorials, där vi visar dig hur du löser vanliga problem som få andra har närmat sig.
Krav
AutoVoice är ett mjukt krav för att det här projektet ska fungera. Du kan använda IFTTT för att utlösa uppgiften, men det kräver att du använder en lösning som involverar en annan applikation som Ansluta sig eller Pushbullet att skicka kommandon till Tasker, eftersom IFTTT inte direkt integreras med Tasker. Dessutom, och den viktigaste varningen för att inte använda AutoVoice, är att röstkommandon kommer att vara oflexibla om du använder IFTTT. Det betyder att du måste säga ditt kommando helt exakt, varje gång, annars kommer kommandot inte att utlösas. Det kan bli ett problem i framtiden om du börjar skapa massor av Tasker/Google Home-integrationer (jag har 28 för närvarande), vilket innebär att du måste memorera och återskapa exakt de kommandon du vill ha varje gång.
Du kommer behöva:
- AutoVoice ($2.49)
- AutoVoice Natural Language Prenumeration ($0,99/månad)
- Tasker ($2.99)
- AutoWeb Beta
- AutoCast Beta ($0.99)
Förberedelse
Innan vi kommer in på köttet av denna coola integration måste vi göra några förberedelser för att detta ska fungera ordentligt. Jag kommer att närma mig denna uppställning i delar.
Del 1 - Konfigurera AutoVoice
Jag har redan skrivit länge om hur man ställer in AutoVoice med Google Home, så snälla hänvisa till min tidigare artikel här. Den enda förändringen att verkligen notera är att du inte längre behöver AutoVoice beta, eftersom integrationen nu fungerar med AutoVoice stabila uppdatering. Jag rekommenderar också att du läser igenom den korta handledningen om hur du får en Tasker-profil att reagera på AutoVoice-kommandot, eftersom vi kommer att göra samma sak här. Kontentan av det är att det finns fyra huvudsakliga saker som du kommer att göra i den här installationsprocessen:
- Aktivera AutoVoice-tjänsten i Google Home-appen.
- Skapa ett API.ai-konto och få dina API-nycklar
- Lägg till dessa API-nycklar till Natural Language-inställningen i AutoVoice
- Prenumerera på prenumerationstjänsten AutoVoice Natural Language
Återigen, dessa steg beskrivs mycket mer detaljerat i min tidigare artikel, så jag rekommenderar att du läser igenom den.
Del 2 - Konfigurera Google Voice
Vi behöver ett sätt att komma åt dina röstmeddelanden från Google Voice, så att Tasker kan extrahera röstmeddelandeinnehållet. Vi kommer att åstadkomma detta genom att låta alla våra röstmeddelanden vidarebefordras till ditt länkade Gmail-konto. Detta är en inbyggd funktion i Google Voice, och allt du behöver göra är att växla en enda knapp i Google Voice-appen.
När du har gjort det kommer du att börja ta emot alla nya röstmeddelanden i din e-post. Som du kan se innehåller e-postmeddelandet både en transkription av röstbrevlådan samt en länk till själva röstmeddelandets ljud. Vi kommer att använda detta e-postmeddelande för våra ändamål.
Del 3 - Konfigurera AutoWeb
För att extrahera innehållet i detta e-postmeddelande måste vi komma åt e-postinnehållet med hjälp av Gmail API. Vi kommer att göra det med hjälp av AutoWeb-applikationen som länkades nära början. Öppna AutoWeb och tryck på "Bläddra i webbtjänster." Rulla ned till Gmail API och tryck på det för att importera. Efter importen kommer AutoWeb att be dig autentisera Gmail-kontot som du vill använda med API: et. Välj samma Gmail-konto som röstmeddelanden vidarebefordras till.
Nu har du länkat din telefon till ditt Gmail-konto genom att använda Gmail API!
Del 4 - Konfigurera AutoCast
Innan vi kan skicka röstmeddelandeljudet till vår Google Home måste vi ställa in AutoCast så att den kan ansluta till Google Home. Öppna AutoCast och välj "Hantera Cast-enheter". Slå "+" i det övre fältet och välj din Google Home-enhet.
Äntligen är vi redo att faktiskt få den här inställningen.
Läser din senaste röstbrevlåda från Google Voice på Google Home
AutoVoice
Det första vi behöver göra är att skapa ett AutoVoice Natural Language-kommando. Detta är ganska enkelt att göra.
- Öppna AutoVoice
- Tryck på Naturligt språk
- Tryck på Kommandon
- Tryck på + ikon för att lägga till ett nytt kommando
- Ange en lista med röstkommandon, separerade med kommatecken, som innehåller så många varianter av röstkommandot du tror att du kan tala för att utlösa detta kommando.
- För svaren kan du ange så många svar, eller inga, som du vill att Google Home ska läsa tillbaka till dig när du säger det här kommandot.
- När du är klar, ge kommandot ett namn. Allt kommer att fungera här.
Även om du skriver in ett gäng variationer av kommandon och svar, behöver du inte oroa dig för att komma ihåg att tala dessa kommandon exakt som skrivna. API.ai kommer automatiskt att analysera vad du än talar och med hjälp av dess naturliga språkalgoritmer matchar ditt talade kommando med ett av kommandona du listar här.
Alternativt, om du bara vill ladda ner min egen installation, kan du göra det på följande länk. Jag tror att för nu, för att importera det, måste du logga in på API.ai och importera det dit.
Ladda ner AutoVoice Natural Language Intent
För att vara ärlig är den faktiska AutoVoice-delen av den här installationen ganska enkel, eftersom vi inte har att göra med variabler/parametrar eller sammanhang i det talade kommandot. Den faktiska komplicerade delen kommer från nästa del, där vi får Tasker att reagera på detta AutoVoice Natural Language-kommando.
Tasker
Här är en steg-för-steg-guide för vad vi gör för att skapa denna profil.
- Öppna Tasker och tryck på + ikonen för att skapa en ny profil.
- Gå till Event --> Plugin --> AutoVoice --> Natural Language.
- Tryck på pennikonen för att öppna AutoVoices konfigurationsskärm.
- Tryck på "Kommandon" och välj namnet på kommandot du skapade tidigare.
- Tryck på bockikonen ovan och tryck sedan på bakåtknappen för att återgå till Taskers huvudskärm.
- Tasker kommer att be dig skapa en ny uppgift. Du kan ge den ett namn om du vill, men tryck på bockikonen för att skapa en ny uppgift oavsett.
När du är på skärmen för uppgiftsredigering kommer vi att skapa uppgiften som visas nedan. För att skapa nya åtgärder, tryck på + ikonen i nedre mitten. För alla Tasker-proffs här, kan du utöka växlingen nedan för att visa profilen och uppgiftsbeskrivningen som du kan följa själv.
Hem - Läs röstbrevlådan
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 mer
Nedanstående steg-för-steg-guide visar dig hur du replikerar uppgiften, som visas i skärmdumpen till höger. Uppgiften är köttet i denna installation här, och den är ganska komplex. Hur det fungerar är att när profilen är aktiverad söker och hämtar de första åtgärderna (A2-A4) från din Gmail-konto för meddelanden från [email protected], som är den automatiska e-posttjänst som används av Google Röst. Vi letar sedan efter ämnesrubriken (A5-A7) så att vi kan få information om vem som skickade röstmeddelandet och när. Därefter extraherar vi meddelandetexten i Gmail-meddelandet, som är kodat i bas 64 så vi måste använda en Java-funktion (A8-A9). Efter att vi har hämtat det avkodade meddelandet letar vi efter URL: en som länkar oss till röstbrevlådans ljudfil (A10-A11) och laddar slutligen ned filen som en mp3 (A12). A13-A18 letar helt enkelt upp kontaktinformationen, om den finns, för numret som lämnade röstbrevlådan. Slutligen kommer A19-A21 att läsa upp vem röstmeddelandet skickades från vid vilken tidpunkt samt det inspelade röstmeddelandet.
- Plugin --> AutoCast --> AutoCast Speak. Enhet: välj din Google Home. (Ingen text behövs här, detta är bara för att ansluta till Google Home.)
- Plugin --> AutoWeb. API: Gmail. API-åtgärd: Lista meddelanden. Användar-ID: jag. Sök: från: [email protected]. Max resultat: 5. Produktion: Id.
- Uppgift --> Vänta. Vänta 1 sekund.
- Plugin --> AutoWeb. API: Gmail. API-åtgärd: Få meddelande. Format: full. Användar-ID: jag. Meddelande-ID: %hjälp (1). Produktion: Kroppsdata, namn på nyttolastrubriker, och Nyttolasthuvudens värde.
- Uppgift --> För. Variabel: %rubriker. Objekt: 1:%payload_headers_name(#)
- Variables --> Variables Set. Namn: %referens. Till: %rubriker. Kontrollera If och ställ in den på If %payload_headers_name(%headers) ~ Ämne.
- Uppgift --> Avsluta för.
- Kod --> Java-funktion. För klass/objekt, välj Bas 64. Fungera: avkoda {byte[]} (sträng, int). Param (sträng): %bodydata (1). Param (int): 8. Lämna tillbaka: avkodad kropp.
- Kod --> Java-funktion. För klass/objekt, välj Sträng. Fungera: ny {String} (byte[], String). Param (byte[]): avkodad kropp. Param (sträng): UTF-8. Lämna tillbaka: %kropp.
- Variables --> Variable Split. Namn: %kropp. Splitter: https://www.google.com/voice/fm/
- Variables --> Variable Split. Namn: %kropp2. Splitter: >
- Net --> HTTP Get. Server Port: https://www.google.com Väg: /voice/fm/%body21 Mime typ: audio/* Utdatafil: /sdcard/Tasker/voicemail.mp3
- Variabler --> Variabeluppsättning. Namn: % röstbrevlåda. Till: %payload_headers_value(%referens)
- Variables --> Variable Split. Namn: % röstbrevlåda. Splitter: från
- Variables --> Variable Split. Namn: % röstbrevlåda2. Splitter: på
- Telefon --> Testa telefon. Typ: Kontaktnamn. Data: %röstbrevlåda21. Butiksresultat i: %namn. Se till att kontrollera fortsätt uppgift efter fel.
- Variabler --> Variabeluppsättning. Namn: % röstbrevlåda. Till: %voicemail1 från %name på %voicemail22. Kontrollera om längst ner och ställ in den på if %name är inställt.
- Variabler --> Variabeluppsättning. Namn: % röstbrevlåda. Till: %voicemail1 från %voicemail21 på %voicemail22. Kontrollera om längst ner och ställ in den på if %name är inte angivet.
- Plugin --> AutoCast --> Tala. Enhet: välj din Google Home. Text: % röstbrevlåda
- Uppgift --> Vänta. Vänta 5 sekunder. Det här är en konfigurerbar fördröjning för att säkerställa att det alltid finns tillräckligt med tid mellan tillkännagivandet av den nya röstbrevlådan och röstbrevlådans ljud som spelas upp. Om detta är för kort kan du öka denna tid. Lek dock med detta värde för att se vad som minskar fördröjningen till en acceptabel nivå.
- Plugin --> AutoCast --> AutoCast. Cast-enhet: välj din Google Home igen. Välj helskärmsmedia som skärmen. Gå till helskärmsmediaelement, sedan Ljud och för ljudet ("låt att spela") /sdcard/Tasker/voicemail.mp3. Välj Autospela.
Det är allt! Allt du behöver göra för att utlösa denna uppgift är att skicka kommandot till din Google Home-enhet. Du kan göra det genom att säga "Hej/OK Google, låt mig prata med AutoVoice" och sedan tala en av varianterna av ditt kommando när AutoVoice säger åt dig att säga ditt kommando. Eller så kan du säga ditt kommando allt på en gång genom att säga "Hej/OK Google, be AutoVoice att [kommandera]" precis som jag gjorde i videon som visades i början.
Ladda ner profil
Du kan ladda ner Tasker-profilen/uppgiften jag gjorde på länken nedan. Om du väljer att göra det, se till att du går in och ändrar de två "AutoCast"-åtgärderna så att de refererar till just din Google Home-enhet. Kontrollera också att AutoVoice Natural Language-kommandot i min profil är detsamma som du gjorde. Om inte, ändra bara profilen så att den pekar på ditt kommando. Bör ta bara några sekunder.
Ladda ner Home - Read Voicemail Tasker-profilen
När du har laddat ner ovanstående XML-fil sparar du den var som helst på din enhet. Öppna Tasker och inaktivera nybörjarläge i inställningarna. Gå sedan tillbaka till huvudskärmen och tryck länge på fliken Profiler upp tryck tills du ser en popup-ruta med "Importera" som ett alternativ. Tryck på den och navigera till där du sparade .prf.xml-filen och välj den för att importera den.
Jag hoppas att du tyckte att den här handledningen var användbar. Jag tyckte om att mixtra med API: et och Tasker tills jag kunde få saker att fungera. Jag vet att det inte är superelegant, men det här är mest en visning av hur kraftfullt du kan integrera din Google Home med olika webbtjänster och din telefon. Förhoppningsvis inspirerar detta dig att skapa något du inte trodde var möjligt innan!