DevGang
Авторизоваться

Как с помощью Siri управлять чем угодно - от IFTTT до пользовательских программ и устройств

Голосовое управление является растущей тенденцией и такие продукты, как Alexa и Google Home все больше появляются в домах людей. Разработчики и хакеры могут воспользоваться некоторыми из этих инструментов для создания голосовых приложений. Тем не менее, по-прежнему сложно адаптировать возможности голосового управления, реализованные в Siri под любой вариант пользовательского использования. К счастью, читатель Howchoo по имени Sanjeet показал нам свою разработку инструмента SiriControl, который позволяет использовать Siri в качестве механизма голосового управления для ваших приложений. В этом руководстве вы узнаете процесс настройки и использования SiriControl.

Прежде чем мы начнем, прочитайте краткий обзор работы SiriControl. SiriControl использует возможности Siri для записи заметок. Поэтому мы настроим Siri для записи новых заметок в учетной записи Gmail. Затем SiriControl будет читать новые заметки из этой учетной записи Gmail, анализировать текст и выполнять голосовые команды.

1. Создадим выделенную учетную запись Gmail

Create a dedicated Gmail account

SiriControl использует функцию заметок Gmail. Используем учетную запись Gmail А поскольку нам необходимо отключить несколько механизмов безопасности, чтобы позволить SiriControl доступ к нашим заметкам.

Вы можете создать свою учетную запись Google здесь. Используйте надежный пароль и грамотно его храните.

2. Разрешим доступ к менее защищенным приложениям для Gmail

Enable access for less secure apps for Gmail

Перейдите сюда и нажмите на переключатель - Allow less secure apps.

3. Включим IMAP для Gmail

Enable IMAP for Gmail

В учетной записи Gmail найдите значок «Настройки», затем нажмите «Настройки». Затем нажмите на вкладку Пересылка и увидете POP/IMAP вверху. Теперь нажмите Enable IMAP.

4. Добавьте новую учетную запись Gmail на вашем iOS устройстве

Add your new Gmail account to your iOS device

На устройстве iOS перейдите в «Настройки»> «Примечания»> «Учетные записи»> «Добавить учетную запись».

Нажмите на логотип Gmail и войдите в свою новую учетную запись.

5. Включите заметки и убедитесь, что эта дефолтовая учетная запись подходит для создания заметок с Siri

Enable notes and ensure it is the default account for creating notes with Siri

После создания учетной записи убедитесь, что Notes включены.

Затем вернитесь на страницу настроек Notes и выберите эту учетную запись в качестве учетной записи по умолчанию.

6. Клонируем репозиторий Siri Control

Чтобы клонировать репозиторий Siri Control, вам понадобится установить Git на ваш компьютер.
Затем клонируйте репозиторий the SiriControl repo с помощью команды:

git clone https://github.com/theraspberryguy/SiriControl-System

7. Настроим SiriControl

Перейдите в каталог SiriControl-System. Откройте файл siricontrol.py и добавьте свои учетные данные Gmail.

8. Протестируем модуль по умолчанию

Чтобы увидеть, как это работает, запустим команду:

python siricontrol.py

Затем активируйте Siri на вашем устройстве iOS и скажите:

"Note - What is the meaning of life?"

Затем через секунду или две на экране появится такой вывод:

The word(s) 'what is the meaning of life' have been said
------------------The meaning of life is 42-------------------
The module 'life' has been executed successfully.

9. Напишем собственный модуль

На этом этапе я создам модуль, который буду непосредственно использовать. В прошлом проекте я подключил Raspberry Pi для управления дверью гаража. Поэтому я собираюсь написать модуль SiriControl, который позволит мне открывать и закрывать дверь гаража.
 

Итак, сначала я собираюсь добавить файл с именем garage.py в каталог модулей. modules/garage.py будет выглядеть вот так:

import json
import requests
import sys
moduleName = 'garage'
commandWords = ['garage', 'door']
GARAGE_HOST = 'http://192.168.1.183'
def execute(command):
   try:
       action = command.split(' ')[0]
   except IndexError:
       print('No command passed.')
       return   if not action in ['open', 'close']:
       print('Invalid action.')
       return   response = requests.get('{0}/status'.format(GARAGE_HOST))
   status = json.loads(response.text)   if action == 'open' and status.get('open'):
       print('Door already open.')
       return   if action == 'close' and status.get('close'):
       print('Door already closed.')
       return   requests.get('{0}/relay'.format(GARAGE_HOST))

Если вы знакомы с Python, вы поймете, что здесь происходит. Если нет, я вам объясню.

Во-первых, есть несколько требований для создания модуля SiriControl. Вам нужно указать moduleName, commandWords и создать функцию execute.

Если значения commandWords совпадают, siricontrol.py передаст всю команду (текст заметки) в функцию execute. Так что в моем случае я предполагаю, что в записке будет сказано «откройте дверь гаража» или «закройте дверь гаража». Итак, я извлекаю действие из первого слова команды. Затем я использую API для двери гаража, чтобы увидеть текущее состояние, потому что мой API для открытия и закрытия ворот гаража на самом деле просто переключает команды между собой. Поэтому, если я скажу «закрой дверь гаража», я не хочу, чтобы он случайно открыл дверь гаража. Таким образом, после этой проверки, если мы не вышли из функции, мы переключаем дверь гаража.

Именно так вы можете создать модуль для Siri! Если вам нужна помощь, вы можете взглянуть на modules/templateModule.py.

Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу