Содержание статьи
- Злодейский искусственный интеллект
- Зачем это нужно тебе
- Зачем это нужно производителям
- Какой ассистент лучше?
- Google Home
- Amazon Echo и Alexa
- Сторонние колонки с Alexa
- Harman Kardon Invoke и Cortana
- Cortana + Alexa = ?
- Apple HomePod и Siri
- Как это работает?
- Извлекаем данные голосовых команд
- Запросы к Google Assistant
- Запросы к Amazon Alexa
- Авторизация на сервере Alexa
- Доступная информация
- Извлечение голосовых сниппетов Alexa
- Заключение
Прогресс в распознавании и синтезе речи, помноженный на быстро развивающийся искусственный интеллект, привел к созданию голосовых помощников. Сперва голосовые помощники появились на телефонах и планшетах. Потом — несколько потеряв в функциональности — перекочевали в телевизоры. Примерно в то же время стали выпускать и отдельные стационарные устройства, в которых «живут» помощники, — умные колонки. В свежем поколении устройств — новинка: умные колонки оборудовали экраном и камерой (что не превращает, впрочем, такое устройство в планшет без батарейки — все-таки начинка там скорее от колонок, чем от планшетов). Недалек тот момент, когда голосовой ассистент будет вещать из каждого утюга: холодильник и микроволновка с Alexa на рынке уже есть, на очереди стиральные машины.
Производители предлагают все более широкий модельный ряд, соревнуясь друг с другом по ключевым характеристикам и постоянно работая над снижением цены устройств. Доходит до того, что качественная колонка с голосовым помощником может стоить раза в два, а то и в три дешевле аналогичной колонки без умного ассистента, а умная микроволновка от Amazon стоит дешевле самых доступных моделей от конкурентов. Зачем это нужно производителям? Почему они так стараются поместить своих умных помощников если не в каждую кухню, то уж в каждую спальню? Попробуем разобраться.
Злодейский искусственный интеллект
Умные колонки известны своим дурным характером и жадностью до пользовательских данных. Злодейский смех Алексы в тихом помещении доставил немало «приятных» минут владельцам, а устроенная ей ночная дискотека стоила хозяину визита полиции и вполне ощутимого штрафа (который, впрочем, оплатил «Амазон» в попытке замять скандал). А помнишь ли ты забавный случай, когда Алекса случайно записала не предназначенный для чужих ушей разговор и отправила его случайному контакту из адресной книги?
Не отстает и Сири: колонка, которую понюхал любопытный кот, до полусмерти испугала животное, а о саморазрушении деревянных поверхностей, на которых стоит HomePod, не писал лишь ленивый. Отличилась и Google: в первой ревизии Google Home Mini устройство подслушивало владельцев 24 часа в сутки, передавая всю информацию в штаб-квартиру.
Разумеется, не могли не отметиться и разработчики Facebook. Буквально на днях был анонсирован очередной умный гаджет для дома — Facebook Portal. Основные фишки устройства — интеграция с Amazon Alexa для выполнения голосовых запросов, большой экран и бесплатные видеозвонки между «порталом» пользователя и другими аналогичными устройствами, а также приложением Facebook Messenger на смартфонах. На фоне недавних скандалов во время презентации устройства представители Facebook особое внимание обратили на защиту приватности. Утверждалось, что в новых устройствах не будет рекламы, а данные, которые станет собирать устройство, компания не намерена использовать для целевой рекламы.
В итоге все вышло с точностью до наоборот. То есть рекламы (пока?) нет, но вот с данными неудобно получилось.
Portal voice calling is built on the Messenger infrastructure, so when you make a video call on Portal, we collect the same types of information (i. e. usage data such as length of calls, frequency of calls) that we collect on other Messenger-enabled devices. We may use this information to inform the ads we show you across our platforms. Other general usage data, such as aggregate usage of apps, etc., may also feed into the information that we use to serve ads
Собственно, комментарии излишни. Процитируем лишь автора alexmak.net: «Пока что оправдание из серии „мои коллеги имели в виду, что мы не собираемся использовать эти данные для рекламы, но мы можем их использовать“. НУ ТАК, КОНЕЧНО, ГОРАЗДО ЛУЧШЕ. Надо быть совершенно упоротым, конечно, чтобы добровольно этот сборщик данных рекламного агентства поставить себе дома».
Зачем это нужно тебе
В чем смысл использовать умную колонку дома? Действительно ли от них больше пользы, чем вреда, и стоит ли игра свеч?
В течение полутора лет мы собрали полную коллекцию голосовых ассистентов и активно пользовались каждым из них. Практика показала, что чаще всего мы использовали следующие виды активности:
- Музыка. Это действительно удобно! Да, по качеству звучания цифровые колонки (за исключением, пожалуй, Sonos и Apple HomePod) звезд с неба не хватают, но для фонового прослушивания они приспособлены просто идеально. «Siri, play rock music», «Alexa, play metal from the 80’s» — и оно играет, причем хорошо играет!
- Управление освещением. «Alexa, turn off the lights» — удобно! Особенно с учетом того, что колонки «знают», в какой комнате находятся, и способны реагировать соответственно.
- Будильник. Приятно просыпаться под музыку, которую сам выбрал, а цифровые ассистенты позволяют это сделать самым простым из возможных способов.
- Развлечение для ребенка. Ты удивишься, какими задачами способны нагружать цифровых ассистентов дети. Звуки животных, ответы на простые и каверзные вопросы, музыка, короткие истории — это даже не начало.
Да, многие вещи можно сделать с помощью костыля в виде смартфона или планшета. Однако для этого телефон нужно как минимум взять в руку (или докричаться до него через всю комнату), и при этом все равно не будет настолько качественного звука и уверенного распознавания (шесть направленных микрофонов, расположенных в свежих версиях умных колонок по кругу, — это действительно хорошо).
Недостатки тоже очевидны. Для нас это в первую очередь отсутствие поддержки русского языка (а в телефонах есть!), отсутствие поддержки местных новостей, информации из русскоязычных источников. У Google и Apple все это, включая русский язык, уже довольно давно реализовано в смартфонах, а в случае с Google Assistant и в телевизорах, но на умных колонках включить поддержку русского языка не судьба. Тем не менее даже в текущем виде пользоваться цифровыми помощниками удобно.
Зачем это нужно производителям
Если умные помощники — благо, то почему умные устройства частенько продают дешевле аналогов, не обремененных излишним интеллектом? Есть ли в них какой-то профит для производителей?
Конечно же, есть! Например, Google собирает о тебе подробнейшую информацию, и цифровые колонки лишь еще один способ это делать. Вот здесь описано подробно.
Вот что Google будет о тебе собирать:
If you have opted to share information with Google, Google uses that information, along with your Google history, to better assist you with customizations like your name and interests. You can delete your history, which will limit the personalized experience for features like the Google Assistant. You can view your history with the Google Assistant in My Activity, which is accessible through the setup app and online at myactivity.google.com. You have control over your data and the power to delete history at any time.
А вот — зачем:
What does Google do with the data it collects?
First and foremost, we use data to make our services faster, smarter, and more useful to you, such as by providing better search results and timely traffic updates. Data also helps protect you from malware, phishing, and other suspicious activity. For example, we warn you when you try to visit dangerous websites. Also, on surfaces where we show ads, we use data to show you ads that are relevant and useful, and to keep our services free for everyone. Google Home learns over time to provide better and more personalized suggestions and answers. For more information, visit Google’s Privacy Policy.
Как видишь, все до банального просто: чем больше ты пользуешься сервисами Google, тем более релевантную рекламу компания сможет тебе показать на всех твоих устройствах и тем больше денег от рекламодателей заработает.
А для чего это все Amazon? Официально — чтобы сделать Алексу еще умнее, лучше и полезнее для тебя, дорогой пользователь.
Xakep #235. Возрождение эксплоит-китов
Неофициальная, но очевидная цель Amazon — продать тебе… что-нибудь. Это может быть как товар из обширного каталога самого магазина или его торговой площадки, так и чисто цифровой контент: подписка на Amazon Prime, покупка фильмов и музыки, электронных книг Kindle, аудиокниг. Наконец — подписка на стриминговый сервис Amazon Music Unlimited, который начинает приносить компании все более существенный доход.
Что насчет Apple? Здесь — очевидно: расширение закрытой экосистемы Apple очередным устройством и продажа подписки на Apple Music. Все равно никакие другие стриминговые сервисы колонка HomePod не поддерживает, а доход от подписки на цифровой контент — один из важнейших для Apple.
А Microsoft с цифровым ассистентом Cortana? Здесь, к сожалению, сложилась ситуация «мы тоже!», очень похожая на то, что происходило с системой Windows Phone, а затем — с Windows 10 Mobile. Да, Microsoft хотелось бы, чтобы Cortana была в доме у каждого пользователя. Но на десктопах и ноутбуках голосовым помощником пользуется исчезающе малый процент, а телефонов с собственной мобильной ОС, в которой Cortana была бы ассистентом по умолчанию, у компании больше нет. Вот и приходится Microsoft скрепя сердце пускаться в эксперименты, стараясь потратить на них как можно меньше денег… с соответствующим результатом.
Какой ассистент лучше?
Уверен, заметная часть читателей открыла эту статью исключительно ради сравнительного обзора цифровых ассистентов. В нашей лаборатории собрался целый парк устройств, на каждом из которых работает тот или иной цифровой ассистент. В этом разделе мы рассмотрим как сами устройства, так и возможности их цифровых ассистентов.
К сожалению, единственный русскоязычный помощник Алиса компании Яндекс к нам на тестирование не попал, так что в обзоре будут участвовать только англоговорящие устройства.
Google Home
В нашей лаборатории есть как средняя колонка Google Home, так и ее мини-версия.
Настройка обоих устройств проста и прозрачна — через приложение для iOS или Android. На колонках можно выбрать несколько языков, но русский в перечень не входит. Учитывая, что Google Assistant давно доступен на русском языке как в смартфонах, так и в телеприставках (например, NVIDIA Shield TV), ограничение выглядит искусственным.
В обоих устройствах отлично реализованы микрофоны; проблем с распознаванием нет даже во время проигрывания музыки. Качество звучания у средней колонки Google Home заметно выше, чем у первого поколения Amazon Echo; удивительно для столь компактных размеров.
С точки зрения поддержки устройств умного дома Google ненамного отстала от Alexa. Все имеющиеся у нас устройства с поддержкой Alexa удалось добавить и в приложение Google Home. А вот встроенный хаб в Google Home отсутствует; «рулить» устройствами можно либо через Wi-Fi, либо при помощи выделенного хаба (например, от Philips).
Google Assistant, пожалуй, самый умный цифровой ассистент. У него есть доступ ко всей информации из твоей учетной записи Google, к твоему почтовому ящику Gmail, календарям, контактам, истории поисковых запросов и истории браузера. С большой вероятностью Google Home ответит на твои вопросы в контексте твоих предыдущих запросов, сделанных на любом устройстве. В Google поддерживается многопользовательский режим: ассистент способен определять пользователя по голосу и выдавать соответствующий ситуации ответ. При этом нужно четко понимать, что все сказанное после активации колонки ключевым словом будет записано, передано на сервер Google и сохранено на нем до тех пор, пока ты лично не зайдешь и не удалишь данные. В наших исследованиях мы находили запросы полутора-двухгодичной давности.
Расширения системы, стереопар — не предусмотрено.
Amazon Echo и Alexa
У Amazon самый широкий ассортимент устройств с умным голосовым ассистентом. Это и несколько поколений разнообразных колонок, и устройства со встроенным хабом умного дома, и приставки Fire TV, и устройства с экранами любой формы, и даже микроволновка. Amazon действительно стремится к тому, чтобы Алекса вещала из каждого утюга, и совершает практические шаги в этом направлении.
В нашей лаборатории побывали устройства Echo Dot 2, Echo первого и второго поколений, Echo Plus первого поколения, несколько поколений Fire TV и также устройство с экраном Echo Spot. Рассмотрим основные особенности.
Первоначально настраивать колонку нужно через приложение Alexa для iOS или Android (настройка Echo Spot и Echo Show — с экрана самого устройства). Настройка проста и обходится без сюрпризов. Каждому устройству можно назначить свою комнату, а для некоторых моделей (Echo 2 Gen, Echo Plus обоих поколений) и роль в стереопаре. Можно дополнительно подключить недорогой беспроводной сабвуфер Echo Sub.
Кстати, «недорогой» — ключевая характеристика всех современных устройств Amazon. Компания идет по пути последовательного удешевления аппаратной начинки, пытаясь при помощи программных наработок сохранить или улучшить качество звучания. Многие ли видели вживую первое поколение Echo Dot, быстро сменившееся вторым? А ведь в них было реализовано управление громкостью, как в «больших» Echo, присутствовали дополнительные порты и элементы управления. Но второе поколение стало дешевле — и побило все мыслимые рекорды продаж. То же произошло и после замены первого поколения Echo на второе, с более дешевой аппаратной начинкой, но программным образом усиленными басами (программное усиление стало очевидным, когда первые партии устройств были доставлены с оригинальной прошивкой и откровенно «жестяным» звуком. Настройки эквалайзера быстро подкрутили в очередном обновлении прошивки).
Тем не менее колонки от Amazon предлагают уверенное распознавание как слова-активатора, так и последующих голосовых команд: набор микрофонов и алгоритмы шумоподавления и вычитания собственного звука реализованы образцово.
Качество звучания самих колонок скорее посредственное, чем хорошее. Первое поколение Echo предлагает сбалансированный звук, но низких частот маловато. Второе поколение Echo я слушать не смог, но после обновления прошивки с усилением низких частот пользователям стало нравиться. Echo Plus первого поколения играет довольно громко, но низких частот слишком много, они подавляют середину; звучание колонки не получается назвать чистым или сбалансированным. Впрочем, для фонового прослушивания хватит любой из этих колонок, а аудиофилам здесь ловить в любом случае нечего. Энтузиасты смогут подключить миниатюрный Echo Dot к стереосистеме или активным колонкам посредством аудиовыхода 3,5 мм; звук в этом случае получается достаточно неплохим.
А что насчет самой Алексы? Алекса — весьма продвинутый голосовой помощник с массой достоинств и небольшим набором недостатков, основной из которых — отсутствие поддержки русского языка и невнятные перспективы его появления. Если у Google и Apple русский язык уже давно поддерживается в телефонных версиях ассистентов и его внедрение в колонки — вопрос времени, то Amazon как магазин на российском рынке не присутствует, колонки не продает, подписок на цифровой контент не предлагает. Как ни грустно это признавать, у Amazon меньше всего стимулов для внедрения русского языка в свои устройства.
Что умеет Алекса? Все, что должен уметь цифровой ассистент. Таймеры, напоминания, ответы на вопросы. Аудиокниги и сказки. Широчайший спектр поддерживаемых устройств умного дома. Разумеется, музыка — если у тебя есть подписка на Amazon Prime или Amazon Music Unlimited (последняя, кстати, доступна за полцены, если активировать подписку с колонки Echo и проигрывать композиции только через колонки).
Так же как и Google, Amazon собирает информацию о том, как ты используешь колонку. Ниже мы рассмотрим, какую именно информацию и как ее извлечь.
Сторонние колонки с Alexa
Из сторонних колонок с Alexa в нашей лаборатории прочно прописалась Sonos One.
Для настройки потребуется установить приложение Sonos; интеграция с Alexa произойдет в самом конце настройки (можно и не интегрировать, собственный набор функций колонки достаточно богат). Вообще, все сторонние колонки с Alexa используют сложную двухэтапную схему настройки: сначала через собственное приложение производителя и только потом — через приложение самой Alexa. Колонки с Google Home в этом смысле настраивать проще: их настройка полностью ведется через единственное приложение Home от Google.
Качество звука у Sonos One отличное; звук гораздо естественнее и богаче, чем у любых колонок производства Amazon. Чистая середина и приятный бас (для любителей низких частот в линейке предусмотрен сабвуфер). Функциональные возможности поражают воображение. Поддерживается множество разнообразных стриминговых музыкальных сервисов, а кроме того, в Sonos можно штатным образом проиндексировать свой NAS-сервер. Приложение самостоятельно найдет и проиндексирует музыку. После этого по голосовым командам станет возможным проигрывать именно ее и именно с NAS, а не из облачного сервиса по подписке. Наконец, систему можно расширять: добавить вторую колонку для стереозвучания, сделать multiroom, добавить сабвуфер.
Наверное, единственное, в чем Sonos One уступает колонкам от Amazon, — качество распознавания голоса во время проигрывания музыки. «Вычитание» собственного звучания реализовано не так хорошо, как у Amazon. Впрочем, если качество распознавания было серьезной проблемой в первые полгода, то сейчас его подтянули до вполне приемлемого уровня. В целом Sonos One, наверное, лучшее решение с Alexa.
Harman Kardon Invoke и Cortana
К сожалению, Кортана не набрала той популярности, которая досталась на долю альтернативных цифровых ассистентов. Кортана предустановлена на все компьютеры с Windows 10, но ограниченный набор поддерживаемых языков и регионов позволяет насладиться всем богатством ее возможностей лишь пользователям из США и Канады. В то же время собственной мобильной ОС у Microsoft больше нет, как нет и собственных моделей смартфонов.
Компания пытается повлиять на положение дел, встроив поддержку Cortana в приложение Outlook для iOS и Android, а также в Microsoft Launcher для Android. Есть и отдельное приложение Cortana. В качестве умных колонок Кортана представлена единственной моделью — Harman Kardon Invoke.
Что представляет собой HK Invoke? Это довольно симпатичная колонка с приятным дизайном и (забегая вперед) хорошим качеством звука. К сожалению, доступна только в США, но Amazon соглашается прислать ее и в другие страны. Блок питания с американской вилкой, но поддерживает диапазон 100–230 В.
Начальная настройка Invoke с Cortana — небольшой ад. Во-первых, для настройки необходимо установить где-нибудь приложение Cortana. Не подумай, что это можно проделать на компьютере с Windows 10: Cortana там есть, но попытка настроить Invoke заканчивается сообщением в типичном для Microsoft стиле: «Something’s not right. Try again in a little bit». Нам пришлось использовать смартфон Lumia 950 с Windows 10 Mobile, без которого настройка не шла.
Активируется ассистент (после всех обновлений) простым словом Cortana. Качество распознавания хорошее, но поддерживается исключительно американский вариант английского языка.
Для проигрывания музыки есть вариант подключения через Bluetooth (циники могут подключить на вход Invoke колонку Amazon Echo Dot и наслаждаться доступом к Amazon Music). Для голосового же управления требуется платная учетная запись Spotify. Поддерживаются сервисы iHeartRadio и TuneIn, но за пределами США/Канады доступ к радиостанциям будет очень ограниченным. Обрати внимание, что для музыки через Spotify нужна платная подписка (в Google Home достаточно бесплатной), iHeartRadio не будет работать за пределами США и Канады из-за ограничений по географии. В результате музыку ты услышишь только через TuneIn; этого достаточно, чтобы оценить качество звука.
Качество звучания колонки сбалансированное. Уровень низких частот где-то посередине между первым поколением Amazon Echo и Echo Plus, а средние и высокие частоты воспроизводятся чище, чем на любой колонке от Amazon.
Микрофоны: отлично. Распознавание, в том числе во время проигрывания, — просто отлично.
Из дополнительных бонусов Microsoft предлагает пожизненную подписку на звонки через Skype на американские телефонные номера. Звонить можно прямо с колонки, номера диктовать голосом. А вот возможности расширения у колонки отсутствуют напрочь.
Что же касается собственно Cortana, то вердикт однозначен: это — только для США. Прогноз погоды выдает в градусах Фаренгейта; слышать, что за окном сейчас 31 градус, — откровенно странно. Переключить на градусы Цельсия нельзя; настройки в приложении игнорируются. Количество поддерживаемых устройств умного дома минимальное.
Стоит ли покупать колонку, если ты не живешь в США или Канаде? Как ни странно, ответ не будет однозначным. Да, за те 199 долларов, которые просили за колонку на старте продаж, покупка лишена всякого смысла (разве что с целью добавить еще одного зверька в зоопарк, как это сделали мы в нашей лаборатории). Ощущения от устройства такие же, как от многих других поделок Microsoft: идея прекрасная, железка отличная, но реализация софта — сыро, недоделано, ограниченно, с массой ошибок и невнятными сообщениями.
Однако сегодня эту колонку можно купить всего за 50 долларов (в США), что существенно дешевле, чем простые колонки с Bluetooth, обладающие заметно худшим звучанием. За 50 баксов покупка имеет смысл. А если ты время от времени звонишь на телефонные номера в США, то пожизненная подписка на неограниченные звонки через Skype на американские телефонные номера окупит невысокую стоимость колонки.
Cortana + Alexa = ?
Самый распространенный цифровой ассистент на выделенных устройствах (колонки, экраны, приставки к телевизору) — Amazon Alexa. В домах пользователей работает более 8 миллионов умных колонок Amazon Echo с Alexa — и это не считая планшетов Kindle Fire, приставок Fire TV и самых разнообразных устройств сторонних производителей (к примеру, Sonos или Lenovo).
В то же время число пользователей, на устройствах которых установлен Google Assistant, исчисляется сотнями миллионов. Но многие ли действительно пользуются голосовым ассистентом на смартфонах с Android? Количество же колонок Google Home и Google Home Mini относительно невелико.
Обратимся к статистике. В статье TechCrunch приводятся следующие цифры. Из тех пользователей, у кого есть хотя бы одна умная колонка, в 71,9% случаев это будет что-то с поддержкой Amazon Alexa, 18,4% приходится на долю Google Home.
На долю Cortana с единственной моделью Harman Kardon Invoke приходится всего 0,6% рынка — и это корректная цифра, отражающая состояние американского рынка.
Очевидно, Microsoft такое положение дел не устраивало. В августе прошлого года Microsoft и Amazon объявили об интеграции двух ассистентов, а спустя год компаниям даже удалось выпустить рабочую бета-версию.
Две огромные компании больше года не покладая рук работали над тем, чтобы Кортана могла вызвать Алексу командой «Cortana, open Alexa», после чего последующие команды обрабатывались бы уже Алексой. В обратную сторону все работает похожим образом: американский владелец колонки Echo может скомандовать «Alexa, open Cortana», после чего получит доступ ко всем способностям цифрового помощника от Microsoft. К сожалению, интеграция, даже когда она появится официально, пока заявлена только для рынка США.
Зачем это нужно обеим компаниям? Для Microsoft — очевидно, это доступ ее пользователей к музыкальному сервису Amazon Music и обширной библиотеке из более 40 тысяч поддерживаемых Алексой «умений» (skills). С точки зрения Amazon выгода менее очевидна; тем не менее Cortana гораздо лучше справляется с типично офисной работой — календарями и почтой Outlook, интеграцией с рабочим Exchange. Получше обстоят дела у Cortana и с собственно «интеллектом»: Алекса умеет больше, но Кортана больше знает.
Apple HomePod и Siri
HomePod — полная противоположность Invoke. Никаких, просто ни малейших проблем с установкой! Если ты его купил, то можешь быть уверен — оно будет работать, и скорее хорошо, чем плохо. Настройка — тапнуть по колонке разблокированным iPhone или iPad, «да», «да», «хм-м? Ну давай» (на вопрос о четырехмесячной бесплатной подписке на Apple Music). Все. Скучно? Зато работает. А вот без iPhone или iPad колонку активировать не удастся.
Микрофоны в HomePod очень хорошие — на уровне Amazon Echo Plus. Звук — отличный; впрочем, про него уже много писали и без меня. Чувствуется работа DSP: даже на низкой громкости (для меня комфортный уровень — порядка 15%) колонка заметно «басит».
Качество звука похоже на Sonos One, но работа DSP ощущается сильнее. Кроме того, у HomePod более глубокие басы. Если добавить второй HomePod, то получим стереопару, а качество звука станет еще немного лучше. Звук в целом сбалансированный (с преобладанием низких частот), слушать приятно.
Если сравнивать с Amazon Echo Plus, то звук HomePod гораздо более сбалансирован, глубже бас. Колонки играют в разных лигах. Если сравнить с Invoke (Cortana) — у HomePod глубже басы, но середина у HK мне нравится больше. В сравнении с Google Home — просто мощнее, глубже бас, лучше звучит.
А что насчет Siri? Если ты пользуешься iPhone и привык к Сири, которая говорит на русском языке, то HomePod сделает тебе отвыкнуть: Siri из HomePod готова общаться на английском, немецком, французском или испанском. С учетом того, что внутри колонки — процессор из iPhone 6 и самая свежая iOS 12, такое ограничение выглядит совершенно искусственным. Впрочем, Сири из Apple TV также не говорит по-русски, а это тем более странно, что Apple TV официально продается в России.
Полезность Siri из HomePod довольно сомнительна. Да, тут есть будильники и музыка (за дополнительные деньги). Управление устройствами умного дома? Только HomeKit, а таких на рынке сравнительно мало, и стоят они сравнительно дорого. База знаний у Siri уступает базе знаний Alexa, а тем более Google Home. Зато, по утверждениям Apple, компания не сохраняет записи твоих голосовых команд на своих серверах.
Как это работает?
Все цифровые ассистенты разные, но принцип работы у них похож. Большую часть времени колонка «спит»; активны лишь микрофоны, информация от которых обрабатывается локально самым экономным DSP. В спящем режиме все, к чему прислушивается DSP, — это кодовое слово активации цифрового помощника. Обрати внимание: на данном этапе вся обработка проходит локально.
Как только DSP распознает кодовое слово, колонка включает запись, которая будет передана на сервер для распознавания и обработки в потоковом режиме. Дальнейшие действия выполняются на сервере: распознается голосовой запрос и определяется, к какому сервису или разным сервисам его нужно отправить.
Например, простейшая команда «turn on the lights» сначала определит, на какое устройство (в какой комнате) поступил запрос, к какой именно группе элементов умного дома относится слово lights, проанализирует саму группу lights и выберет, к каким именно skills нужно адресовать команду (в моем случае это смесь из ламп Xiaomi и выключателей TP-Link, работающих по совершенно разным протоколам). Соответствующие команды будут адресованы к соответствующим сервисам (для устройств, работающих по протоколу Zigbee, колонки линейки Echo Plus могут послужить хабом), при помощи сервера полученный от них результат будет передан на колонку в виде голосового отклика и озвучен пользователю.
Примерно так выглядит обработка запроса к Alexa.
Google Home работает похожим образом, а вот Apple HomePod имеет дело с закрытой экосистемой Apple, что заметно упрощает обработку команд. В частности, устройства, работающие по протоколу Apple HomeKit, используют колонку HomePod в качестве локального хаба; при этом никакие другие устройства умного дома попросту не поддерживаются. Проще и с музыкой: если Alexa или Google Home могут играть музыку как из собственных библиотек, так и из сторонних сервисов (например, Spotify), то HomePod будет адресовать голосовые запросы исключительно к собственному сервису Apple Music.
Извлекаем данные голосовых команд
Итак, мы разобрались с тем, что знает о нас разработчик искусственного интеллекта и зачем ему это нужно. А можно ли как-то добраться до этих данных? Да, можно, причем для нескольких ассистентов мы уже разработали соответствующий софт.
Запросы к Google Assistant
Пожалуй, проще всего извлечь запросы к Google Assistant. В Google серьезно подошли к обеспечению прозрачности приватной информации. В твоей учетной записи Google доступна подробная история всех твоих голосовых запросов. По крайней мере — в теории. Если открыть страницу My activity и выбрать категорию Assistant, можно посмотреть историю голосовых запросов. В отличие от Amazon Google предоставит доступ только к распознанным фразам в текстовом виде. Включение категории Voice & Audio должно, казалось бы, предоставить доступ к оригинальным записям голосовых команд, но этого не происходит. Тем не менее просмотреть содержимое даже распознанных голосовых команд — уже интересно. Прямая ссылка.
Запросы к Amazon Alexa
У Amazon нет такого удобного и подробного портала, как у Google, однако просмотреть историю голосовых запросов все-таки можно. До недавнего времени история запросов к Alexa была доступна исключительно через приложение Alexa для смартфонов и планшетов. Не так давно появился и специальный онлайновый портал. Для того чтобы просмотреть историю своих запросов к Alexa, нужно перейти по этой ссылке.
Откроется страница управления контентом и устройствами.
Если хотя бы на одном из твоих устройств установлено приложение Alexa (и ты настроил вход в учетную запись Amazon), то ты увидишь ссылку на Alexa Privacy. Если такой ссылки нет, то в твоей учетной записи, скорее всего, нет данных Alexa.
Перейди по ссылке Alexa Privacy.
На следующей странице выбери Review Voice History.
Здесь тебе будут доступны все записанные команды и распознанные диалоги с цифровым помощником.
А что, если ты хочешь извлечь все записи, а не прокликивать многочисленные ссылки по одной? Для внутреннего использования мы написали соответствующую утилиту, но никто не мешает тебе самостоятельно оформить скрипт. Рассмотрим, как работает доступ к информации в учетных записях Amazon.
Авторизация на сервере Alexa
Первый шаг скрипта — авторизация на сервере Amazon. Авторизоваться можно одним из трех способов:
- через Web, используя логин и пароль (так работают приложения для iOS и Android);
- при помощи FIRS login;
- при помощи маркера аутентификации (token-based login), который можно извлечь из cookie браузера пользователя.
У каждого способа есть свои достоинства и недостатки.
Авторизация через веб-страницу:
- используется приложениями для iOS/Android;
- протокол OpenId2.0, архитектура REST;
- часть информации передается через cookie;
- для извлечения данных нужно парсить страницы в HTML.
Авторизация Alexa через FIRS Host:
- запросы отправляются на сервер firs-ta-g7g.amazon.com/FirsProxy;
- используется некоторыми опенсорсными утилитами (lolsborn/readsyn).
Через токен:
- токен (маркер аутентификации) можно извлечь из cookie браузера, если пользователь заходил в свою учетную запись Amazon;
- cookie, которые содержат нужные токены, короткоживущие.
Проще всего использовать логин через веб. Первым этапом происходит предварительное получение сессии, извлекаются скрытые поля ввода и все необходимые куки по адресу
https://www.amazon.com/clouddrive/ref=nav_youraccount_clddrv
При переходе выполняется несколько редиректов; итоговая страница перехода будет каждый раз отличаться. В ней содержится несколько скрытых полей ввода (кроме очевидных полей логина и пароля). Эти поля вместе с паролем и логином будут использоваться для авторизации.
Второй этап — генерация скрытого поля metadata1. Это поле содержит информацию об активности пользователя на странице авторизации (что нажал, сколько раз нажал) и прочей информации отслеживания активности пользователя (ОС, браузер, hash логина). Генерируется это поле в JavaScript перед отправкой запроса на авторизацию.
Третий этап — непосредственно авторизация. Скрытые поля, логин, пароль и metadata1 формируют тело запроса, который отправляется по адресу
https://www.amazon.com/ap/signin
Ответ содержит куки, необходимые для получения доступа к данным Alexa.
Доступная информация
Для доступа к данным мы используем официальный Alexa API от Amazon. Через API доступна масса информации, включая:
- историю запросов: распознанные запросы и запись голосовых команд;
- список устройств;
- платежные инструменты (карты, банковские счета и прочее);
- сети и пароли Wi-Fi;
- устройства умного дома;
- именованные списки;
- данные о прилинкованных учетных записях;
- комнаты и группы;
- данные подписки Amazon Music;
- слово-активатор.
Нас интересует самый первый пункт: история запросов, доступная по запросу к серверу
https://alexa.amazon.com/api/activities
Извлечение голосовых сниппетов Alexa
Для начала получим ID активности, для которой хотим получить голосовой сниппет (Recording ID):
https://alexa.amazon.com/api/activities?startTime=&size=50&offset=1
Получаем по 50 записей за запрос. Сниппеты доступны в формате WAV, закодированном Base64. Сопутствующая информация возвращается в формате JSON.
Манипулируя параметром startTime, можно получить всю историю запросов.
"activities": [ {
"activityStatus": "SUCCESS",
"creationTimestamp": 1519211054361
"domainAttributes": "{\"answerText\":\"I'm excellent. I've got dinosaurs on my mind. If I was around back when they roamed the Earth, I wonder what they would have asked me. Maybe, \\\"Alexa, what's that massive fireball streaking across the sky?\\\"\", …,\"questionText\":\"How are you?\" … }",
"sourceDeviceIds": [ {
"deviceType": "A3S5BH2HU6VAYF",
"serialNumber": "G000LF0124270MVH" } ]
"utteranceId":
"A3S5BH2HU6VAYF:1.0/2018/02/21/11/G090LF0964270MVH/04:10::TNIH_2V.3e25613a-c544-4750-ac0d-4fa56fb53d00ZXV"
... } ]
На каждый запрос получим ответ следующего вида.
Кратко расшифруем доступные поля.
Description — распознанный текст голосового запроса и идентификатор сниппета.
activityStatus может принимать ряд значений:
- SUCCESS
- DISCARDED_NON_DEVICE_DIRECTED_INTENT (устройством запрос не распознан)
- SYSTEM_ABANDONED (запрос прерван)
utteranceId — идентификатор для доступа к сниппету.
Для получения непосредственно голосовой команды активности используем значение параметра utteranceId:
https://alexa.amazon.com/api/utterance/audio/data?id=
где id — это utteranceId активности.
В ответ сервер вернет голосовую запись в формате WAV.
Примеры запросов:
https://alexa.amazon.com/api/utterance/audio/data?id=A3S5BH2HU6VAYF:1.0/2018/03/15/10/G090LF0964270MVH/11:26::TNIH_2V.b079cf80-0bca-4f14-bdbe-5fb3d4bac993ZXV
https://alexa.amazon.com/api/utterance/audio/data?id=A3S5BH2HU6VAYF:1.0/2018/03/15/10/G090LF0964270MVH/10:43::TNIH_2V.aa06d885-22e3-4adc-b684-383c2f8613abZXV
https://alexa.amazon.com/api/utterance/audio/data?id=A3S5BH2HU6VAYF:1.0/2018/03/15/10/G090LF0964270MVH/10:27::TNIH_2V.55d51197-970a-4d1c-bcb1-afada4c62421ZXV
Данные приложения Alexa можно извлечь и непосредственно из смартфона.
Особого смысла в этом нет: история команд будет минимальной, основная часть запросов хранится только в облаке.
Для внутреннего использования мы написали скрипт, который позволяет авторизоваться в учетной записи Amazon, определить страну пользователя и извлечь всю доступную информацию.
Отдельной головной болью стали учетные записи с активной двухфакторной аутентификацией. Мы обнаружили, что проходить двухфакторную аутентификацию приходится отдельно для разных категорий запросов (логин и пароль остаются прежними и кешируются между сессиями).
Анализ моей собственной учетной записи вернул 1,6 Гбайт данных, из которых порядка 450 Мбайт составляли WAV-файлы голосовых запросов к Alexa за последние два года.
Заключение
Итак, мы подробно рассмотрели современных цифровых ассистентов и их физические реализации; узнали, какие данные собирают Google и Amazon и как получить к ним доступ. В нашей стране цифровые помощники больше ассоциируются со смартфонами, и производители не спешат нарушать статус-кво: поддержка русского языка ни в одной из описанных колонок не предусмотрена.