У цьому посібнику показано, як налаштувати пристрій Google Home для читання останньої голосової пошти з Google Voice за допомогою Tasker, AutoWeb і AutoVoice.
Коли Google Home було випущено вперше, у ньому (і досі є) бракувало багатьох функцій. Ви все ще не можете встановлювати події в календарі, читати текстові повідомлення, створювати список справ тощо. Однак, якщо у вас є кмітливість, ви можете реалізувати майже всі ці функції самостійно завдяки потужності AutoVoice і Tasker. Щоб продемонструвати, наскільки креативними ви можете бути з Google Home і AutoVoice, я покажу вам, як мати свій Google Home прочитати останню голосову пошту Google Voice. Зараз це може здатися чорною магією, але, сподіваюся, до кінця цього підручника все матиме сенс.
За допомогою AutoVoice ви можете надсилати голосові команди зі свого пристрою Google Home на свій телефон, який потім інтерпретує ці команди та виконує певні дії через Tasker. Найкраще те, що ви можете надсилати команди природною мовою на свій телефон завдяки потужності
API.ai, за умови, що ви підпишетеся на послугу передплати на AutoVoice за 0,99 доларів США на місяць, щоб компенсувати вартість розміщення сервера 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
- 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 і виберіть «Керувати пристроями Cast». Натисніть "+" на верхній панелі та виберіть свій пристрій 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 і натисніть + щоб створити новий профіль.
- Перейдіть до Подія --> Плагін --> 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 Home.)
- Плагін --> AutoWeb. API: Gmail. Дія API: список повідомлень. ID користувача: я. пошук: від: [email protected]. Максимальна кількість результатів: 5. Вихід: ID.
- Завдання --> Зачекайте. Зачекайте 1 секунду.
- Плагін --> AutoWeb. API: Gmail. Дія API: отримати повідомлення. Формат: повний. ID користувача: я. ID повідомлення: %допомога (1). Вихід: Дані тіла, назва заголовків корисного навантаження, і Значення заголовків корисного навантаження.
- Завдання --> Для. змінна: %заголовки. Предмети: 1:%payload_headers_name(#)
- Змінні --> Набір змінних. Ім'я: % посилання. до: %заголовки. Перевірте If і встановіть його на If %payload_headers_name(%headers) ~ Тема.
- Завдання --> Кінець для.
- Код--> Функція Java. Для класу/об’єкта виберіть База64. функція: декодувати {byte[]} (рядок, int). Параметр (рядок): %bodydata (1). Параметр (ціле): 8. Повернення: decodedbody.
- Код --> функція Java. Для класу/об’єкта виберіть Рядок. функція: новий {String} (byte[], String). Параметр (байт []): decodedbody. Параметр (рядок): UTF-8. Повернення: %тіло.
- Змінні --> Поділ змінних. Ім'я: %тіло. Спліттер: https://www.google.com/voice/fm/
- Змінні --> Поділ змінних. Ім'я: %body2. Спліттер: >
- Net --> HTTP Get. Сервер: Порт: https://www.google.com Шлях: /voice/fm/%body21 Тип Mime: аудіо/* Вихідний файл: /sdcard/Tasker/voicemail.mp3
- Змінні --> Набір змінних. Ім'я: % голосова пошта. до: %payload_headers_value(%посилання)
- Змінні --> Поділ змінних. Ім'я: % голосова пошта. Спліттер: від
- Змінні --> Поділ змінних. Ім'я: %голосова пошта2. Спліттер: в
- Телефон --> Тестовий телефон. тип: Контактна Особа. дані: %голосова пошта21. Зберігати результат у: %name. Обов'язково перевірте продовжити завдання після помилки.
- Змінні --> Набір змінних. Ім'я: % голосова пошта. до: %voicemail1 від %name на %voicemail22. Перевірте, чи знаходиться внизу, і встановіть значення якщо %name встановлено.
- Змінні --> Набір змінних. Ім'я: % голосова пошта. до: %voicemail1 від %voicemail21 на %voicemail22. Перевірте, чи знаходиться внизу, і встановіть значення якщо %name не встановлено.
- Плагін --> AutoCast --> Speak. пристрій: виберіть свій Google Home. Текст: % голосова пошта
- Завдання --> Зачекайте. Зачекайте 5 секунд. Це настроювана затримка щоб переконатися, що між оголошенням про нову голосову пошту та відтворенням звуку голосової пошти завжди достатньо часу. Якщо це занадто мало, ви можете збільшити цей час. Пограйте з цим значенням, щоб побачити, що зменшує затримку до прийнятного рівня.
- Плагін --> AutoCast --> AutoCast. Пристрій трансляції: знову виберіть Google Home. Виберіть повноекранний медіафайл як екран. Перейдіть до елементів «Повноекранний мультимедійний файл», потім «Аудіо», а для «Аудіо» («пісня для відтворення») поставте /sdcard/Tasker/voicemail.mp3. Виберіть Автоматичне відтворення.
Це воно! Тепер усе, що вам потрібно зробити, щоб запустити це завдання, — це надіслати команду на свій пристрій Google Home. Ви можете зробити це, сказавши "Привіт/OK Google, дозволь мені поговорити з AutoVoice", а потім промовте один із варіантів вашої команди, коли AutoVoice скаже вам сказати свою команду. Або ви можете вимовити свою команду відразу, сказавши "Hey/OK Google, попроси AutoVoice [command]" так само, як я зробив у відео, показаному на початку.
Завантажити профіль
Ви можете завантажити створений мною профіль/завдання Tasker за посиланням нижче. Якщо ви вирішите це зробити, переконайтеся, що ви зайшли та змінили дві дії «AutoCast», щоб вони посилалися на ваш конкретний пристрій Google Home. Також переконайтеся, що команда природної мови AutoVoice, названа в моєму профілі, збігається з тією, яку ви створили. Якщо ні, просто змініть профіль, щоб він вказував на вашу команду. Має зайняти кілька секунд.
Завантажте профіль Home - Read Voicemail Tasker
Завантаживши наведений вище XML-файл, збережіть його будь-де на своєму пристрої. Відкрийте Tasker і вимкніть режим для початківців у налаштуваннях. Потім поверніться на головний екран і натисніть і утримуйте вкладку «Профілі», доки не побачите спливаюче вікно з опцією «Імпортувати». Натисніть її та перейдіть до місця збереження файлу .prf.xml і виберіть його, щоб імпортувати.
Сподіваюся, цей посібник був для вас корисним. Мені подобалося возитися з API і Tasker, поки я не зміг змусити все працювати. Я знаю, що це не надто елегантно, але це здебільшого демонстрація того, наскільки потужно ви можете інтегрувати свій Google Home із різними веб-службами та телефоном. Сподіваюся, це надихне вас створити те, про що ви раніше не думали!