Голосовые ассистенты для айфон

Содержание
  1. Разрабатываем своего первого голосового ассистента на iOS
  2. Почему голос и звук?
  3. Технологии синтеза и распознавания речи на iOS
  4. Пишем голосовой Hello World!
  5. Работа с речевым технологиями Apple
  6. Работа с Yandex SpeechKit
  7. Создаём своего голосового ассистента
  8. Резюме
  9. Как заменить Siri ассистентом Google на iPhone
  10. Как заменить Siri на ассистент Google
  11. Как запускать Google Ассистент на iPhone
  12. 15 полезных команд Siri, которыми вы еще не пользуетесь (а зря!)
  13. 1. Создать быстрое напоминание о чем-либо
  14. 2. Создать напоминание по месту
  15. 3. Узнать результат спортивных матчей
  16. 4. Вспомнить пароль от сайта или сервиса
  17. 5. Найти любой свой гаджет в доме
  18. 6. Узнать время поездки куда-либо
  19. 7. Запомнить место парковки автомобиля
  20. 8. Включить или отключить все будильники
  21. 9. Отправить голосовое сообщение
  22. 10. Перевести фразу на другой язык
  23. 11. Просмотреть фотографии за определенную дату или с определенного события
  24. 12. Прослушать пропущенные уведомления
  25. 13. Добавить запись в список покупок или дел
  26. 14. Отключить Face ID или Touch ID
  27. 15. Запустить фишки сторонних приложений

Разрабатываем своего первого голосового ассистента на iOS

За последнее время значимость голосовых функций и звука заметно выросла. Примером тому может служить уже громкая история запуска приложения Clubhouse, голосовых ассистентов Сбера и общего оживления интереса со стороны пользователей, компаний и инвесторов к звуку на мобильных устройствах.

В этой статье я бы хотел рассмотреть пример разработки голосового помощника на платформе iOS, используя язык Swift.

Почему голос и звук?

На мой взгляд, звук как интерфейс между пользователем и приложениями изначально был недооценен, однако с появлением технологий искусственного интеллекта, высокой информационной нагрузки и нехватки времени, польза аудио становится очевиднее.

Например, в этой статье представлены интересные факты об использовании голоса за последние 4 года и вывод:

The key, however, is the device letting the human think and speak like a human. Once we get there, this whole voice thing will become the predominant mode for input. We’re likely five to ten years away from getting there. However, many businesses are seeing great success building their own personal assistant apps (aka Alexa Skills or Actions on Google apps) and developing a great deal of positive attention and visibility for their organizations.

То есть, звук и голос как интерфейс имеют шанс стать преобладающим интерфейсом через 5-10 лет когда голосовые ассистенты будут достаточно умными и способными поддерживать разговор как человек. Исследования и развитие технологий в области ИИ в перспективе открывают перед нами подобные возможности.

Технологии синтеза и распознавания речи на iOS

Сегодня есть достаточно большой выбор среди речевых технологий распознавания и синтеза речи. В качестве примера можно привести доступные речевые библиотеки Apple и Yandex.

В Apple Speech Kit синтез и распознавание речи доступны «из коробки» для iOS 10 и выше, а для его использования необходимо подключить Speech.framework в проект. Распознавание речи на достойном уровне, а вот насчет синтеза не могу этого сказать.

В компании Яндекс есть собственные технологии синтеза и распознавания речи — репозитории для iOS и Android с подробными примерами их использования.

Пишем голосовой Hello World!

Напишем своё первое приложение, в котором используем перечисленные выше библиотеки. Создадим новый XCode проект, и поскольку мы будем пока тестировать различные SDK, то определим два таргета: speechkit_apple и speechkit_yandex.

В качестве системы управления зависимостями будем использовать Cocoapods, поэтому в корне проекта необходимо создать Podfile:

Переходим в корень проекта и выполняем pod install чтобы все зависимости установились:

Pod install output

Оба таргета будут использовать общие ресурсы из папки speechkit_demo_ios и иметь свои реализации SpeechViewController:

Для работы с микрофоном необходимо разрешение NSMicrophoneUsageDescription, а для распознавания речи NSSpeechRecognitionUsageDescription. Эти ключи и текстовые описания к ним нужно сразу добавить в Info.plist проекта:

В итоге, получится примерно следующее:

Работа с речевым технологиями Apple

В случае Apple в проект необходимо подключить библиотеку Speech и использовать SFSpeechRecognizer, SFSpeechRecognitionTask и AVSpeechSynthesizer для распознавания и синтеза голоса. Для каждой новой сессии распознавания необходимо проделать следующие шаги:

Cоздать новый запрос:

Cоздать задачу распознавания:

Cоздать и запустить захват аудио буфера из AVAudioEngine в запрос распознавания:

Для синтеза речи необходимо инициализировать и запустить AVSpeechSynthesizer:

Синтез речи Apple Speech

Готовый пример приложения можно скачать здесь: chapter1_ios, проект speechkit_demo_ios, таргет speechkit_apple.

Работа с Yandex SpeechKit

Если вы используете Swift, то для подключения Yandex SpeechKit потребуется использовать Bridging-header для связи с Objective-C кодом, который использует эта библиотека. Самый простой способ быстро подключить Bridging-header — создать любой *.m файл в нужном таргете, а затем можно удалить этот файл. В нашем случае к проекту добавится speechkit_yandex-Bridging-Header.h, в котором нужно указать ссылку на header от Objective-C библиотеки компании Yandex:

Далее в Swift коде уже не нужно подключать специально эту библиотеку через конструкцию виде import. Основные шаги инициализации:

Читайте также:  Software products from apple

указание API ключа. Ключ необходимо создать в личном кабинете Yandex Cloud. Более подробную информацию можно найти в документации:

активация аудиосессии не в главном потоке приложения (поскольку это может занимать некоторое время и блокировать UI):

создание и инициализация экземпляров синтезатора и менеджера распознавания речи:

синтез или старт распознавания речи:

В нашем случае ViewController (у вас это может быть View Model или VIPER модуль) должен реализовать протоколы YSKVocalizerDelegate и YSKRecognizerDelegate для возможности получения событий от библиотеки: старт записи, конец записи, окончание распознавания, получения ошибок и т.д.

Готовый пример приложения можно найти здесь: chapter1_ios, проект speechkit_demo_ios, таргет speechkit_yandex.

Создаём своего голосового ассистента

Сделаем несложный голосовой ассистент, который умеет управлять светом, воспроизведением музыки, поддерживать приветствие и отвечать на различные запросы пользователя. Например, может рассказать анекдот, прочитать цитату или прогноз погоды.

Чтобы сделать возможным использование любого речевого SDK используем абстракцию и определим протоколы синтеза и распознавания речи, которые должны будут реализовать конкретные речевые SDK:

Протоколы синтеза и распознавания речи

Например, в случае Apple Speech реализация класса синтеза будет следующая:

Apple speech synthesizer

Из первой части статьи мы также знаем, как использовать распознавание речи, используя Apple Speech, поэтому реализуем класс VBAppleSpeechRecognizer в соответствии с протоколом VBSpeechRecognizerProtocol.

Чтобы распознавать окончание записи голоса, сделаем отдельный класс VBVoiceLevelDetector, который реализует протокол VBVoiceLevelDetectorProtocol и будет заниматься отслеживанием начала и окончания записи голосовых фраз. При первом запуске этот класс производит калибровку уровня звука на основе 32 аудио-фреймов.

Для абстракции от музыкального сервиса также опишем протокол:

и сделаем соответствующую его реализацию в VBAppleMusicPlayer.

Реализация через протоколы очень желательна, поскольку в какой-то момент вы можете захотеть использовать, например, SpotifySDK или Mubert API, а в целях совместимости вам не придется ломать жесткие зависимости от Apple Player в приложении и переход будет проще.

Теперь нам понадобится главный класс, который будет обрабатывать текстовые запросы от пользователя и выдавать результат. Создадим такой класс VoiceBoxManager, который реализует протокол VoiceBoxManagerProtocol, а в качестве коммуникации он будет работать с классом-делегатом, который должен реализовывать протокол VoiceBoxManagerDelegate.

В нашем случае таким делегатом будет выступать VoiceViewModel — View модель для UI контроллера VoiceViewController, который отвечает за визуализацию сообщений и интерфейс пользователя:

Итого, VoiceBoxManager — это общий контейнер или конфигуратор для навыков нашего ассистента:

Voice Box Manager

, который реализует протокол:

Voice Box Banager protocol

Массив _assistantProcessors содержит реализации протокола VBProcessingProtocol, то есть навыки нашего голосового ассистента:

Как можно заметить, классы, реализующие навыки через VBProcessingProtocol, должны отвечать словарём, который содержит «type» — тип ответа и «data». Это сделано чтобы унифицировать ответ навыков и иметь возможность запрашивать любые данные через сторонние API.

Таким образом, мы можем добавлять новые навыки нашему ассистенту, просто добавляя в этот массив новую реализацию протокола VBProcessingProtocol.

Обратите внимание, что обработкой обычных фраз пользователя занимается класс VBLocalVoiceProcessing, который для простоты реализации берёт текстовые значения из файла Resources/voiceProcessigPhrases.plist:

Чтобы добавить обычные реплики ассистента достаточно добавить ответы в этом файле. Конечно, это не искусственный интеллект, однако вам ничего не мешает создать свой класс VBAIVoiceProcessing, который реализует протокол VBProcessingProtocol и, например, будет общаться со своим сервером, использующий для обработки фраз русскоязычную модель GPT-3. Тогда ответы ассистента станут намного интереснее и умнее.

Пример получения афоризмов и цитат можно посмотреть в реализации VBQuotaProcessing, а новостей в VBNewsProcessing. Навыки умного дома реализует класс VBHomeKitProcessing, который в свою очередь использует VBHomeKitManager для управления устройствами Apple HomeKit.

Посмотреть видео-демонстрацию работы приложения можно здесь.

Резюме

В этой статье мы создали мобильные приложение на iOS с использование сторонних речевых SDK. На практике, основные проблемы интеграций речевых технологий заключаются в дополнительных разрешениях, предъявляемых к приложению, получении API ключа и работе с аудио-сессиями. Также попробовали создать собственный голосовой ассистент с абстракцией от используемых речевых технологий и возможностью расширять навыки.

В коде примера chapter2_ios добавлены заготовки для навыков получения курсов валют VBCurrencyProcessing и погоды VBWeatherProcessing. В качестве дополнительной тренировки можно реализовать эти навыки самостоятельно, используя любые открытые API сервисов, например, ЦБ, openweather или другие. Вы также можете добавить собственные навыки, которые считаете интересными и поделиться ими. Для этого сделайте форк репозитория, добавьте навыки и отправьте pull запрос, будет любопытно посмотреть.

Надеюсь, данная статья была полезна, и вы теперь сможете создавать голосовые помощники для своих проектов или даже создать цифровой продукт, который изменит мир =)

Жду ваши примеры реализаций навыков и желаю будущих достижений в области голосовых технологий!

Источник

Как заменить Siri ассистентом Google на iPhone

Компания Google давно развивает собственного голосового ассистента, который в некоторых ситуациях оказывается удобнее и полезнее Siri.

Если вы хотите использовать помощника Google, но при этом пользоваться смартфоном Apple, есть один обходной путь.

Читайте также:  Как включить вызовы по wifi айфон

Как заменить Siri на ассистент Google

Разумеется, просто так взять и переключить голосовой ассистент в параметрах iPhone у нас не получится. Однако, есть возможность настроить это максимально комфортно.

1. Установите приложение Google Ассистент из App Store.

2. Запустите приложение и выдайте разрешение на использование Микрофона. Другие разрешения выдавать необязательно.

3. Авторизуйтесь в своей учетной записи Google (или создайте новую), она будет использоваться для персонализации и ведения истории поиска.

4. Запустите приложение Быстрые команды.

5. В разделе Мои команды нажмите “+” для создания новой команды.

6. Нажмите кнопку Добавить действие и выберите пункт “Окей, Google”.

7. Отключите переключатель Показывать при запуске.

8. Нажмите три точки, чтобы отредактировать команду.

9. Введите подходящее имя команды, оно и будет являться ключевым словом для вызова ассистента.

10. Нажмите Готово для сохранения быстрой команды.

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

Как запускать Google Ассистент на iPhone

Активируйте Siri на iPhone любым доступным способом (через фразу, клавишу, часы или гарнитуру) и произнесите название сохраненной команды.

Siri распознает быструю команду и предложит запустить Google Ассистент. Теперь можно задавать свой вопрос Google и получать ответ в приложении.

Так вы можете пользоваться стандартным помощником Siri, а при необходимости – активировать и ассистент Google.

Источник

15 полезных команд Siri, которыми вы еще не пользуетесь (а зря!)

Голосовые ассистенты становятся умнее с каждым годом. Siri, которая “живет” в наших смартфонах, планшетах, компьютерах и даже умных часах уже давно умеет выполнять базовые несложные задачи.

Решением математического примера, конвертированием величин или поиском информации в Википедии уже никого не удивишь.

Мы нашли малоизвестные и реально нужные команды для Siri, которые выводят полезность ассистента на новый уровень.

1. Создать быстрое напоминание о чем-либо

Когда это пригодится: когда нет возможности быстро ответить на звонок, совершить какое-то действие или запомнить текущее приложение. При этом нужно обязательно запомнить важные данные или действие и вернуться к нему через какое-то время.

Что нужно сказать: “напомни мне об этом через 15 минут”.

Siri воспримет активное приложение в качестве важного события и создаст для него напоминание. Сработает уведомление в указанное вами время. Кроме этого будет создана аналогичная запись в стандартном приложении Уведомления, которую можно будет просмотреть или отредактировать.

Можно установить напоминание для просмотра открытой статьи в браузере, для прочтения полученного письма, быстрого ответа на сообщение или для звонка кому-то. При этом кроме текста в уведомлении будет удобная кнопка для совершения нужного действия, перехода в браузер, почту или вызов абонента.

2. Создать напоминание по месту

Когда это пригодится: когда хотите создать напоминание со срабатыванием по местонахождению. Например, сделать что-то, придя на работу или наоборот – вернувшись домой.

Что нужно сказать: “напомни позвонить маме, когда я окажусь дома” или “напомни сдать отчет, когда приеду на работу”.

Ассистент создаст напоминание, которое сработает, когда вы окажетесь в указанном месте. Оно тоже будет продублировано в одноименном стандартном приложении, где вы сможете изменить его параметры или вовсе удалить.

Для работы фишки нужно в карточке своего контакта указать нужные для срабатывания геопозиции (дом, работа). Подробнее о настройках геонапоминаний и причинах их несрабатывания мы уже рассказывали в отельной статье.

3. Узнать результат спортивных матчей

Когда это пригодится: для того, чтобы быстро узнать спортивные новости и не запускать при этом браузер или приложение. Голосовой ассистент отлично ориентируется в международных соревнованиях и знает большинство популярных национальных лиг.

Что нужно сказать: “как вчера сыграла сборная России” или “последний матч Ювентуса”.

Siri выведет карточку события с результатом, а если нажать на нее, получите расширенную статистику и дополнительную информацию.

4. Вспомнить пароль от сайта или сервиса

Когда это пригодится: когда хотите вспомнить хранящийся в связке ключей пароль без окна его ввода или диалога авторизации на экране. Это может быть нужно, если хотите авторизоваться на новом устройстве без связки ключей.

Что нужно сказать: “подскажи пароль от iPhones.ru”

Так голосовой ассистент откроет раздел Настройки – Пароли, iPhone распознает вас при помощи Face ID или попросит приложить палец к Touch ID и автоматически введет в поиске название сайта или сервиса, который вы искали.

5. Найти любой свой гаджет в доме

Когда это пригодится: когда хотите быстро отыскать одно из своих устройств среди домашнего бардака.

Что нужно сказать: “отправь сигнал на мой iPad” или “найди мои Apple Watch”

Будет автоматически включен режим поиска на указанном устройстве и вы услышите голосовой сигнал. Разумеется, это будет возможно только для гаджетов с одной учеткой Apple ID, которые на данный момент имеют подключение к сети.

Аналогичные манипуляции можно сделать вручную в приложении Локатор.

6. Узнать время поездки куда-либо

Когда это пригодится: информация может быть полезна для расчета примерного времени в пути до определённого объекта. Например, жена хочет знать, когда вы будете дома или нужно сообщить друзьям, как скоро вы доберетесь на встречу с ними.

Читайте также:  Как удалить с айфона подписной календарь

Что нужно сказать: “сколько ехать до площади Ленина на общественном транспорте” или “сколько идти пешком до ближайшей аптеки”.

Для работы этой команды необходимо установить стандартное приложение Карты от Apple. Голосовой ассистент предложит подходящие варианты мест и рассчитает ориентировочное время в пути указанным способом (пешком, на машине или на общественном транспорте).

7. Запомнить место парковки автомобиля

Когда это пригодится: во время парковки авто в незнакомом месте или на большой автостоянке.

Что нужно сказать: “запомни место парковки машины”.

Ассистент отметит точку на карте с текущим местоположением и добавит отметку о парковке транспорта. При необходимости найти авто останется сказать: “Сири, где моя машина?”. После этого увидите расположение авто на карте.

Еще можно сказать Siri – “забудь место парковки”, чтобы удалить метку с карты.

8. Включить или отключить все будильники

Когда это пригодится: утром, если чудом проснулся после первого установленного будильника или вечером, чтобы снова включить все настроенные сигналы.

Что нужно сказать: “включи\выключи все будильники”.

Siri после такой простой команды будет отключать или включать хоть сотню установленных будильников разом. Это быстрее и удобнее, чем запускать приложения Часы и вручную переводить все переключатели в нужное положение.

9. Отправить голосовое сообщение

Когда это пригодится: когда нужно быстро ответить кому-то, но при этом не хочется трогать iPhone руками.

Что нужно сказать: “отправь голосовое сообщение кому-то” и продиктовать текст сообщения.

Ассистент запишет голосовое сообщение для iMessage и предложит отправить его указанному абоненту. Останется лишь подтвердить отправку утвердительной командой.

10. Перевести фразу на другой язык

Когда это пригодится: когда нужно узнать перевод какого-либо слова или выражения.

Что нужно сказать: “переведи ‎‎‎‎«где здесь туалет» на английский язык” или “как будет «собака» на испанском”.

Эта фишка доступна начиная с iOS 14, в которой появилось стандартное приложение Перевод. Можно сразу же спрятать его в папку, перенести на самый дальний рабочий стол или вовсе скрыть с домашнего экрана, а все необходимое переводить при помощи голосового ассистента.

11. Просмотреть фотографии за определенную дату или с определенного события

Когда это пригодится: удобный способ быстро найти и показать кому-то определенный снимки из галереи смартфона.

Что нужно сказать: “покажи фотографии за 31 декабря” или “покажи фото из Воронежа”.

Для срабатывания фишки должны быть включены геотеги. После этого голосовой ассистент сможет сделать подборку снимков за указанную дату или из указанного места.

12. Прослушать пропущенные уведомления

Когда это пригодится: когда хочется узнать все пропущенные сообщения на ходу, за рулем или ранним утром. Читать при этом не придется, Siri все произнесет голосом.

Что нужно сказать: “покажи мои уведомления”.

Будьте готовы к тому, что голосовой ассистент начнет зачитывать абонентов или приложения, от которых поступили уведомления и текст сообщений.

13. Добавить запись в список покупок или дел

Когда это пригодится: в любое удобное время можно наполнять список покупок нужными продуктами.

Что нужно сказать: “добавить хлеб в список Купить” или “добавь починить кран в список Дела”.

Если указанный список не был создан ранее, Siri сможет добавить его самостоятельно при первой просьбе, в дальнейшем можно добавлять в него нужные записи. Таким способом можно вести любое количество списков, которые будут сохраняться в приложении Напоминания.

14. Отключить Face ID или Touch ID

Когда это пригодится: команда работает на заблокированном экране и позволяет отключить Touch ID или Face ID до первого ввода пароля разблокировки. Можете проверить, все ли друзья помнят пароль от своего айфона или обезопасить свой гаджет от несанкционированной разблокировки.

Что нужно сказать: “чей это телефон” или “чей это айфон”.

При этом Siri произнесет имя владельца гаджета из контактной информации и выведет его данные из карточки. Эта команда может быть полезна для поиска владельца найденного смартфона.

15. Запустить фишки сторонних приложений

Когда это пригодится: это простой и удобный способ выполнять определенные действия с приложениями голосом.

Что нужно сказать: задать ключевые фразы можно в настройках поддерживаемых приложений. Ищите раздел Быстрые команды Siri в нужной программе и вводите свои фразы для их активации.

Еще список поддерживаемых команд можно посмотреть в отдельном меню. Включите опцию Ввод текста для Siri по пути Настройки – Универсальный доступ – Siri и запустите голосовой ассистент.

Над клавиатурой слева увидите кнопку с вопросительным знаком. Нажмите на нее и прокрутите список доступных команд. К сожалению, здесь отображаются далеко не все команды, которые могут срабатывать при помощи Siri.

Надеюсь, после данной подборки вы будете чаще пользоваться встроенным в iPhone, Mac и Apple Watch голосовой ассистент.

Источник

Оцените статью