Това е урок, който ви показва как да накарате вашето устройство Google Home да чете последната ви гласова поща от Google Voice с помощта на Tasker, AutoWeb и AutoVoice.
Когато Google Home беше пуснат за първи път, му липсваха (и все още липсват) много функции. Все още нямате начин да задавате събития в календара, да четете текстовите си съобщения, да създавате списък със задачи и други. Въпреки това, ако имате смелостта, можете да внедрите почти всички тези функции сами, благодарение на силата на AutoVoice и Tasker. В опит да покажа колко креативни можете да бъдете с Google Home и AutoVoice, ще ви покажа как да имате своя Google Home прочетете последната си гласова поща в Google Voice. В момента може да изглежда като черна магия, но се надяваме, че до края на този урок всичко ще има смисъл.
С AutoVoice можете да изпращате изговорени команди от вашето устройство Google Home към вашия телефон, който след това интерпретира тези команди и извършва някои действия чрез Tasker. Най-добрата част е, че можете да изпращате команди на естествен език до телефона си благодарение на силата на
API.ai, при условие че се регистрирате за абонаментна услуга за $0,99/месец за AutoVoice, за да компенсирате разходите за хостване на API.ai сървъра. Това означава, че не е нужно да говорите толкова роботизирано/прецизно, когато говорите с вашия Google Home, и AutoVoice пак ще разпознае командата, която се опитвате да изпратите.За известно време интеграцията на AutoVoice с Google Home беше в бета версия, но издание на AutoVoice 3.0 позволява на всички потребители на приставката Tasker да се насладят на интеграцията на Google Home. Сега, след като AutoVoice е широко достъпен за потребителите и повечето му недостатъци са изгладени, ще започна да показвам някои от нещата, които съм направил с AutoVoice и Tasker. Моят първи урок за Google Home, четене на най-новата ви гласова поща в Google Voice, е най-сложният за мен споделяне, но е добър кандидат да покаже, че това, което можете да правите с Tasker, е ограничено само от вашия въображение.
Слушам последната си гласова поща в Google Home.
Препоръчителна литература: Вижте нашия предишни уроци, където ви показваме как да решавате често срещани проблеми, с които малко други са се доближавали.
Изисквания
AutoVoice е меко изискване, за да работи този проект. Можете да използвате IFTTT, за да задействате задачата, но това ще изисква от вас да използвате заобиколно решение, включващо друго приложение като Присъединяване или Pushbullet за изпращане на команди до Tasker, тъй като IFTTT не се интегрира директно с Tasker. Освен това и най-важното предупреждение да не използвате AutoVoice е, че гласовите команди ще бъдат негъвкави, ако използвате IFTTT. Това означава, че трябва да произнасяте командата си напълно точно, всеки път, или командата няма да се задейства. Това може да бъде проблем в бъдеще, ако започнете да създавате тонове интеграции на Tasker/Google Home (имам 28 в момента), което означава, че трябва да запомняте и възпроизвеждате точно командите, които искате всеки път.
Ще имаш нужда:
- AutoVoice ($2.49)
- Абонамент за AutoVoice Natural Language ($0,99/месец)
- Tasker ($2.99)
- AutoWeb Beta
- AutoCast Beta ($0.99)
Подготовка
Преди да навлезем в същината на тази страхотна интеграция, трябва да направим някои приготовления, за да работи правилно. Ще подходя към тази настройка на части.
Част 1 - Настройка на AutoVoice
Вече писах надълго относно това как да настроя AutoVoice с Google Home, така че моля вижте предишната ми статия тук. Единствената промяна, която наистина трябва да се отбележи, е, че вече не се нуждаете от бета версия на AutoVoice, тъй като интеграцията вече работи със стабилната актуализация на AutoVoice. Също така ви препоръчвам да прочетете краткия урок за това как профилът на Tasker да реагира на командата AutoVoice, тъй като тук ще правим същото. Същността на това е, че има четири основни неща, които ще правите в този процес на настройка:
- Активирайте услугата AutoVoice в приложението Google Home.
- Настройте акаунт в API.ai и получете своите API ключове
- Добавете тези API ключове към настройката за естествен език в AutoVoice
- Абонирайте се за абонаментната услуга AutoVoice Natural Language
Отново, тези стъпки са описани много по-подробно в предишната ми статия, така че ви препоръчвам да я прочетете.
Част 2 - Настройка на Google Voice
Имаме нужда от начин за достъп до вашата гласова поща в Google Voice, така че Tasker да може да извлече съдържанието на гласовата поща. Начинът, по който ще постигнем това, е като всички наши гласови съобщения бъдат препратени към вашия свързан акаунт в Gmail. Това е вградена функция на Google Voice и всичко, което трябва да направите, е да превключите един бутон в приложението Google Voice.
След като направите това, ще започнете да получавате всички нови гласови съобщения във вашата електронна поща. Както можете да видите, имейлът съдържа както транскрипция на гласовата поща, така и връзка към действителното аудио на гласовата поща. Ние ще използваме този имейл за нашите цели.
Част 3 - Настройка на AutoWeb
За да извлечем съдържанието на този имейл, трябва да имаме достъп до съдържанието на имейла, като използваме API на Gmail. Ще направим това с помощта на приложението AutoWeb, което беше свързано в началото. Отворете AutoWeb и натиснете „Преглед на уеб услуги“. Превъртете надолу до API на Gmail и го докоснете, за да импортирате. След импортирането AutoWeb ще ви помоли да удостоверите акаунта в Gmail, който искате да използвате с API. Изберете същия акаунт в Gmail, към който се препращат гласовите съобщения.
Вече сте свързали телефона си с акаунта си в Gmail чрез използването на API на Gmail!
Част 4 - Настройка на AutoCast
Преди да можем да изпратим звука на гласовата поща до нашия Google Home, трябва да настроим AutoCast, за да може да се свърже с Google Home. Отворете AutoCast и изберете „Manage Cast Devices“. Удари "+" в горната лента и изберете вашето устройство Google Home.
Най-накрая сме готови действително да настроим това.
Четене на най-новата ви гласова поща в Google Voice в Google Home
AutoVoice
Първото нещо, което ще трябва да направим, е да създадем команда AutoVoice Natural Language. Това е доста лесно да се направи.
- Отворете AutoVoice
- Докоснете Естествен език
- Докоснете Команди
- Докоснете + икона за добавяне на нова команда
- Въведете списък с гласови команди, разделени със запетаи, съдържащ толкова много варианти на гласовата команда, които смятате, че можете да изречете, за да задействате тази команда.
- За отговорите можете да въведете толкова отговори или нито един, които искате Google Home да ви прочете, когато произнесете тази команда.
- След като сте готови, дайте име на тази команда. Всичко ще работи тук.
Въпреки че въвеждате куп вариации на команди и отговори, не е нужно да се притеснявате да запомните да изговаряте тези команди точно както са написани. API.ai автоматично ще анализира всичко, което говорите, и с помощта на своите алгоритми на естествения език ще съпостави вашата устна команда с една от командите, които изброявате тук.
Като алтернатива, ако просто искате да изтеглите моята собствена настройка, можете да го направите на следната връзка. Вярвам, че засега, за да го импортирате, ще трябва да влезете в API.ai и да го импортирате там.
Изтеглете AutoVoice Natural Language Intent
Честно казано, действителната част от AutoVoice на тази настройка е доста проста, тъй като не се занимаваме с променливи/параметри или контексти в изговорената команда. Действителната сложна част идва от следващата част, където Tasker реагира на тази команда на AutoVoice Natural Language.
Tasker
Ето стъпка по стъпка ръководство за това, което правим, за да направим този профил.
- Отворете Tasker и натиснете + икона за създаване на нов профил.
- Отидете на Event --> Plugin --> AutoVoice --> Natural Language.
- Докоснете иконата на молив, за да отворите екрана за конфигурация на AutoVoice.
- Натиснете "Команди" и изберете името на командата, която сте създали по-рано.
- Натиснете иконата на отметка по-горе, след това натиснете клавиша за връщане назад, за да се върнете към главния екран на Tasker.
- Tasker ще ви помоли да създадете нова задача. Можете да му дадете име, ако искате, но натиснете иконата на отметка, за да създадете нова задача независимо от това.
След като сте в екрана за редактиране на задача, ние ще създадем задачата, която е показана по-долу. За да създадете нови действия, докоснете + икона в долната среда. За всички професионалисти на Tasker тук можете да разширите превключвателя по-долу, за да покажете описанието на профила и задачата, които можете да следвате сами.
Начало - Прочетете гласовата поща
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 ]
Прочетете още
Ръководството стъпка по стъпка по-долу ще ви покаже как да възпроизведете задачата, показана на екранната снимка вдясно. Задачата е основата на тази настройка тук и е доста сложна. Как работи е, че след като профилът е активиран, първите няколко действия (A2-A4) търсят и изтеглят от вашия Gmail акаунт за съобщения от [email protected], която е автоматизираната услуга за електронна поща, използвана от Google глас. След това търсим заглавката на темата (A5-A7), за да можем да получим информация за това кой е изпратил гласовата поща и кога. След това извличаме тялото на съобщението в Gmail, което е кодирано в база 64, така че трябва да използваме Java функция (A8-A9). След като извлечем декодираното съобщение, търсим URL адреса, който ни свързва с аудио файла на гласовата поща (A10-A11) и накрая изтегляме файла като mp3 (A12). A13-A18 просто търси информацията за контакт, ако съществува, за номера, оставил гласовата поща. Накрая A19-A21 ще прочете от кого по кое време е изпратена гласовата поща, както и записания звук на гласовата поща.
- Добавка --> AutoCast --> AutoCast Speak. Устройство: изберете вашия Google Home. (Тук не е необходим текст, това е само за свързване с началната страница на Google.)
- Добавка --> AutoWeb. API: Gmail. Действие на API: списък на съобщенията. Потребителско име: аз. Търсене: от: [email protected]. Максимум резултати: 5. Изход: Документ за самоличност.
- Задача --> Изчакайте. Изчакайте 1 секунда.
- Добавка --> AutoWeb. API: Gmail. Действие на API: Получете съобщение. Формат: пълен. Потребителско име: аз. ID на съобщението: % помощ (1). Изход: Данни за тялото, име на хедъри на полезен товар, и Стойност на заглавките на полезния товар.
- Задача --> За. Променлива: % заглавки. артикули: 1:%payload_headers_name(#)
- Променливи --> Набор от променливи. Име: % справка. Да се: % заглавки. Проверете If и го задайте на If %payload_headers_name(%headers) ~ Тема.
- Задача --> Край за.
- Код--> Java функция. За клас/обект изберете Base64. функция: декодиране {byte[]} (низ, int). Параметр (низ): %телесни данни (1). Параметър (int): 8. Връщане: декодирано тяло.
- Код --> Java функция. За клас/обект изберете низ. функция: нов {String} (byte[], String). Параметър (байт []): декодирано тяло. Параметр (низ): UTF-8. Връщане: % тяло.
- Променливи --> Разделяне на променливи. Име: % тяло. Сплитер: https://www.google.com/voice/fm/
- Променливи --> Разделяне на променливи. Име: %тяло2. Сплитер: >
- Net --> HTTP Get. Сървър: Порт: https://www.google.com Път: /voice/fm/%body21 Mime тип: аудио/* Изходния файл: /sdcard/Tasker/voicemail.mp3
- Променливи --> Набор от променливи. Име: %гласова поща. Да се: %payload_headers_value(%референция)
- Променливи --> Разделяне на променливи. Име: %гласова поща. Сплитер: от
- Променливи --> Разделяне на променливи. Име: %гласова поща2. Сплитер: при
- Телефон --> Тест на телефона. Тип: Име за контакт. Данни: %гласова поща21. Съхраняване на резултата в: %име. Не забравяйте да проверите продължаване на задачата след грешка.
- Променливи --> Набор от променливи. Име: %гласова поща. Да се: %voicemail1 от %name на %voicemail22. Проверете if в долната част и го задайте на if %name е зададено.
- Променливи --> Набор от променливи. Име: %гласова поща. Да се: %voicemail1 от %voicemail21 на %voicemail22. Проверете if в долната част и го задайте на if %name не е зададено.
- Добавка --> AutoCast --> Говорете. Устройство: изберете вашия Google Home. Текст: %гласова поща
- Задача --> Изчакайте. изчакайте 5 секунди. Това е конфигурируемо забавяне за да се гарантира, че винаги има достатъчно време между обявяването на новата гласова поща и възпроизвеждания звук на гласовата поща. Ако това е твърде кратко, можете да увеличите това време. Поиграйте си с тази стойност, за да видите какво намалява забавянето до приемливо ниво.
- Добавка --> AutoCast --> AutoCast. Cast устройство: изберете своя Google Home отново. Изберете мултимедия на цял екран като екран. Отидете на Full Screen Media elements, след това Audio и за Audio („песен за възпроизвеждане“) поставете /sdcard/Tasker/voicemail.mp3. Изберете Автоматично изпълнение.
Това е! Сега всичко, което трябва да направите, за да задействате тази задача, е да изпратите командата до вашето устройство Google Home. Можете да го направите, като кажете "Хей/OK Google, позволете ми да говоря с AutoVoice" и след това изговаряне на една от вариациите на вашата команда, когато AutoVoice ви каже да произнесете вашата команда. Или можете да кажете командата си наведнъж, като кажете "Хей/OK Google, помоли AutoVoice да [команда]" точно както направих във видеото, показано в началото.
Изтегляне на профил
Можете да изтеглите профила/задачата на Tasker, която направих, на връзката по-долу. Ако решите да го направите, уверете се, че влизате и променяте двете действия „AutoCast“, така че да препращат към вашето конкретно устройство Google Home. Също така проверете дали командата на естествения език на AutoVoice, посочена в моя профил, е същата като тази, която сте направили. Ако не, просто променете профила, за да сочи към вашата команда. Трябва да отнеме само няколко секунди.
Изтеглете профила на Home - Read Voicemail Tasker
След като изтеглите горния XML файл, запазете го навсякъде на вашето устройство. Отворете Tasker и деактивирайте режима за начинаещи в предпочитанията. След това се върнете на главния екран и натиснете продължително върху раздела Профили, докато видите изскачащ прозорец с опция „Импортиране“. Натиснете това и отидете до мястото, където сте запазили файла .prf.xml и го изберете, за да го импортирате.
Надявам се, че сте намерили този урок за полезен. Харесваше ми да бърникам с API и Tasker, докато не успях да накарам нещата да работят. Знам, че не е супер елегантно, но това е най-вече демонстрация на това колко мощно можете да интегрирате своя Google Home с различни уеб услуги и телефона си. Надяваме се, че това ви вдъхновява да създадете нещо, което не сте предполагали, че е възможно преди!