Комментарии 45
Любопытный метод, я только не уловил один момент: каким образом вы анализируете «похожесть» двух сэмплов, если два устройства могут записать звук с неким рассинхроном по времени? Одно устройство может начать запись в момент N, а второе (в силу разных причин — поздно нажали кнопку, или устройство подвисло, или еще что, и получается момент N + k). Как их засинхронить для сравнения? Также, правильно ли я понимаю, что понять дистанцию друг от друга при таком методе позиционирования — довольно проблематичная задача?
автор поправит, но как я понимаю, постоянно делается отпечаток куска времени и отправляется на сервер(тогда будет работать история про «пользователи молча ждут обнаружения секунд 10, после чего один из них говорит что-то вроде “Это не работает!”. Эта фраза работает как заклинание и через секунду устройства обнаруживают друг-друга. » )
по моему не решаемая «дистанцию друг от друга», но это и логично, цель сего: нужно с высокой долей вероятности доказать что устройства находятся в одном помещении\пространстве
по моему не решаемая «дистанцию друг от друга», но это и логично, цель сего: нужно с высокой долей вероятности доказать что устройства находятся в одном помещении\пространстве
Верно. В начале работы мы синхронизируем локальное время с серверным. Отпечатки генерируются в реальном времени и отправляются на сервер вместе с точным временем записи исходного звука.
Понять расстояние таким образом не получится, да.
Понять расстояние таким образом не получится, да.
Наверное, я немного не так выразился по поводу синхронизации. Я понимаю, что каждый сэмпл маркируется некой меткой времени, я о другом: как часто пишутся сэмплы, чтобы достичь хорошего качества позиционирования, но при этом не разрядить в ноль батарею и не забить до отказа свободное пространство на «диске»? Каждую секунду, каждые 10 секунд? И насколько длинными вы решили делать сэмплы, чтобы получалось с высокой точностью выполнять позиционирование, не расходуя тонну мегабайт свободного места? Допустим, если я от пользователя получаю 100 сэмплов с метками времени, и от другого ту же сотню, то потом я отброшу все сэмплы, не совпадающие по серверному времени, и проанализирую только те, что засинхронены. Верно же? А вот интервал какой между записью?
SDK позволяет запустить и остановить поиск когда угодно. Когда поиск запущен — звук пишется постоянно, хэшируется и отправляется на сервер в реальном времени, не занимает место на «диске» устройства.
В нашем приложении поиск запускает сам пользователь, и он автоматически прекращается при сворачивании/закрытии приложения. По потреблению аккумулятора точных замеров нет. Алгоритм нагружает CPU Snapdragon 430 примерно на 3-4%.
В нашем приложении поиск запускает сам пользователь, и он автоматически прекращается при сворачивании/закрытии приложения. По потреблению аккумулятора точных замеров нет. Алгоритм нагружает CPU Snapdragon 430 примерно на 3-4%.
Я так понимаю запись происходит не в течении какого-то фиксированного времени, а пока не найдутся совпадения. То есть первый может начать записывать, второй начнет через какой-то промежуток времени и найдут они друг друга только при записи чего-то общего. Соответственно у первого побольше времени уйдет.
Что касается дистанции, то если я правильно понял, то вычисление дистанции не нужно и поиск направлен на людей которые уже знакомы и находятся в непосредственной близости. Главная задача просто понять, что другой человек находится в зоне совпадения звуков.
Что касается дистанции, то если я правильно понял, то вычисление дистанции не нужно и поиск направлен на людей которые уже знакомы и находятся в непосредственной близости. Главная задача просто понять, что другой человек находится в зоне совпадения звуков.
iOS сканирует только BLE для обнаружения iOS, т.к. сканирование Bluetooth-устройств невозможно с помощью публичного API.
Насколько актуальна эта информация? Есть какое-то подтверждение из внешних источников?
Информация актуальна для iOS 11. Есть два способа работать с BT: Core Bluetooth framework, который позволяет работать только с BLE и External Accessory framework, который позволяет обнаруживать только MFI устройства
попробовал написать программу, которая светит 32 байтной строкой по BLE в peripherial mode на андроиде. IOs при сканировании видит эту строку без проблем.
Использовалась библиотека github.com/omergul/Discovery
Тесть нет проблемы идентифицировать 2 девайса iOS/android, android/android, iOS/iOS по этой строке. Выглядит гораздо менее енергозатратно. Да и проще в разработке.
Использовалась библиотека github.com/omergul/Discovery
Тесть нет проблемы идентифицировать 2 девайса iOS/android, android/android, iOS/iOS по этой строке. Выглядит гораздо менее енергозатратно. Да и проще в разработке.
К сожалению, очень многие Android-устройства не поддерживают BLE peripherial mode. Здесь можно посмотреть статистику на эту тему.
В ОС поддержка добавлена начиная с Android 5 (уже теряем около 15% пользователей), в железе/firmware эта возможность тоже реализована не везде.
Именно поэтому в Google Nearby используется обычный Bluetooth для поиска Android-Android.
В ОС поддержка добавлена начиная с Android 5 (уже теряем около 15% пользователей), в железе/firmware эта возможность тоже реализована не везде.
Именно поэтому в Google Nearby используется обычный Bluetooth для поиска Android-Android.
Еще бы совместили свой вариант со звуковым методом — если детектируется тишина в течение пары секунд — одно (или даже оба) из устройств генерирует какой-нибудь звук.
Вот-вот, у меня вопрос — а почему просто не проиграть что-то уникальное на одном устройстве и найти это на других?
По крайней мере это будет вызывать меньше параноидальных подозрений… не люблю, когда на моем телефоне вдруг зажигается иконка доступа к звуку-видео просто так.
По крайней мере это будет вызывать меньше параноидальных подозрений… не люблю, когда на моем телефоне вдруг зажигается иконка доступа к звуку-видео просто так.
А как же QR-код? Вряд ли сейчас есть телефоны без камеры.
Для нашего приложения важно уметь быстро объединять множество людей. Причем, эти люди не всегда находятся на расстоянии для сканирования QR, например, слушатели доклада на конференции. QR-код позволяет объединять устройства попарно, чем больше людей — тем больше времени будет потрачено.
Для сценариев, где нужно объединить только 1 пару пользователей, QR-код может быть удобен.
Для сценариев, где нужно объединить только 1 пару пользователей, QR-код может быть удобен.
А если, допустим, мы с другом на расстоянии, скажем, 10 км, смотрим одну и ту-же телепередачу?
Да, сценарий средней реалистичности, но всё-же. Время одно и то-же, звук одинаковый.
Да, сценарий средней реалистичности, но всё-же. Время одно и то-же, звук одинаковый.
В очень редких случаях. Дело в том, что каждый провайдер и оборудование даже в рамках города вносит различные задержки в вещании, по нашему опыту от 5 до 30 секунд.
Это возможно, если вы оба смотрите радиовещение (без задержек), а посторонних звуков мало.
Способ решить эту проблему у нас уже есть, но пока пользователей не так много — он не имеет смысла.
Это возможно, если вы оба смотрите радиовещение (без задержек), а посторонних звуков мало.
Способ решить эту проблему у нас уже есть, но пока пользователей не так много — он не имеет смысла.
Простая и классная идея, супер! Вы берёте хэш от спектрограммы или от исходного сигнала?
Если в МакДональдсе несколько пар решили только попарно соединиться и пересеклись во времени включения, все соединятся?
Зависит от. Если громко играет фоновая музыка, то пользователи соеднятся. Но естественный шум в людном месте обычно очень изменчив. На расстоянии 5 метров может быть уже другой.
Более яркий пример — концерт или выступление. Когда один источник звука гораздо громче остальных — все пользователи будут соединены.
Мы пробовали использовать приложение на конференции — голос спикера очень быстро соединяет всех в зале и это было то, чего ожидали пользователи.
С точки зрения UX мы считаем, что нужно дать пользователю выбор или подтвердить действие «соединения».
Более яркий пример — концерт или выступление. Когда один источник звука гораздо громче остальных — все пользователи будут соединены.
Мы пробовали использовать приложение на конференции — голос спикера очень быстро соединяет всех в зале и это было то, чего ожидали пользователи.
С точки зрения UX мы считаем, что нужно дать пользователю выбор или подтвердить действие «соединения».
Реализацию алгоритма (и данные нейросетей или коэффицентов в формулах, которые используются) ожиается закрытой? не собираетесь открывать ее на публику?
Такие вещи, по мне, так должны быть в операционных системах по умолчанию желательно без завязки на сервер (кроме как ради точного времени).
Такие вещи, по мне, так должны быть в операционных системах по умолчанию желательно без завязки на сервер (кроме как ради точного времени).
Не уверен, что тут можно постить ссылки, но вот ссылка на технологию Resonance www.getresonance.net и приложение DROP, которое ее использует www.getdrop.net
Хабр мотивирует!)
− работает на слишком малых расстояниях
А это минус?
Почему вы этот минус у бампа не написали? Там то вообще надо стукнуть телефоны друг о друга.
По сути это бамп только для кучи устройств сразу и без необходимости долбить телефоны друг о друга.
Гениально, правда. Всяческих успехов и обязательно защититесь патентами со всех сторон.
Обнаружен смартфон Apple Iphone X. Примерное расположение- левый карман куртки справа стоящего человека.
А если серьезно, то я бы подождал пока nfc пойдет в массы и уже с этой технологией организовывал чаты.
А если серьезно, то я бы подождал пока nfc пойдет в массы и уже с этой технологией организовывал чаты.
Триангуляция оперирует углами, коих по понятным причинам нет в случае определения координат по базовым станциям и Wi-Fi.
На самом деле в таких случаях используется трилатерация.
На самом деле в таких случаях используется трилатерация.
Что на счет штрихкода?
Вася нажимает кнопку показать штрихкод.
Петя, Таня, Оля, делают фотку дивайса с штрихкодом и с отправлением на сервер,
5- 10 сек и все в группе.
ps
Юзайте на здоровье.
Вася нажимает кнопку показать штрихкод.
Петя, Таня, Оля, делают фотку дивайса с штрихкодом и с отправлением на сервер,
5- 10 сек и все в группе.
ps
Юзайте на здоровье.
Очень круто, жаль что вы вероятно нарушаете патенты www.getresonance.net, хотя очень бы хотелось бы увидеть вашу реализацию в опенсоурс.
Мы и есть www.getresonance.net :-)
<del/>
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как мы разработали технологию обнаружения устройств поблизости