СПОСОБ И СИСТЕМА ОБМЕНА ИНФОРМАЦИЕЙ МЕЖДУ УСТРОЙСТВАМИ
METHOD AND SYSTEM FOR INFORMATION EXCHANGE BETWEEN DEVICES

ОБЛАСТЬ ТЕХНИКИ
[001] Настоящее техническое решение в общем относится к вычислительной технике и, более конкретно, к системам и способам реализации обмена информацией между двумя или более мобильными вычислительными устройствами и/или другими вычислительными системами.
УРОВЕНЬ ТЕХНИКИ
[002] В современном взаимосвязанном мире мобильные приложения переживают взрывной рост, а связь между мобильными устройствами пользователей приобретает все большее значение. Для различных мобильных приложений необходимо максимально увеличить скорость и эффективность обмена информацией между мобильными устройствами, терминалами и другими гаджетами, поскольку мир становится все более взаимосвязанным. Обмениваемая информация может быть разной, начиная от контактных данных пользователей, их фото, видео, файлов, заканчивая финансовыми транзакциями и другими коммерческими данными. С другой стороны, все еще сохраняются многие препятствия и нерешенные проблемы при таком обмене информацией, особенно когда взаимодействующие мобильные устройства используют разные операционные системы.
[003] Любому специалисту в данной области техники понятно, ввиду вышеуказанных и других недостатков традиционной технологии, что новые и усовершенствованные системы и способы для реализации обмена информацией между двумя или более мобильными вычислительными устройствами и/или другими вычислительными системами будут быть весьма востребованными на рынке.
[004] Существующие способы обмена финансовой информацией можно разделить по используемым технологиям: NFC, динамический QR, ультразвук и ручной ввод данных. Настоящее техническое имеет значительные преимущества по сравнению с каждым из них. Технология NFC в качестве платежного инструмента ограничена территориально производителями устройств и разработчиками операционных систем, а также требует наличия специализированного модуля, который отсутствует во многих смартфонах, для работы технологии. Для данного изобретения необходимы только стандартные модули смартфона, что дает возможность ее использования на абсолютно любом смартфоне и без территориальных ограничений. Технология обмена информацией с использованием динамического QR требует наличия специального дисплея на терминале приема платежей или кассе, для технологии. Данному изобретению достаточно наличие микрофона, который зачастую встроен в современные терминалы приема платежей, а также, его стоимость значительно дешевле, чем дисплея. Главный недостаток ультразвукового способа обмена информации заключается в нестабильности его работы, т.к. на качество передачи данных влияет множество факторов, таких как: расположение устройств относительно друг друга, наличие отражающих звук предметов, модель смартфона и настройки ОС. Ручной ввод данных значительно уступает данному техническому решению в удобстве использования и времени обмена данными.
СУЩНОСТЬ
[005] Технической проблемой или технической задачей, решаемой в данном техническом решении, является осуществление системы и способа обеспечения обмена информацией между устройствами.
[006] Технический результат - повышение эффективности оперативного обмена финансовой информацией между мобильными устройствами, терминалами и другими гаджетами. Без использования данного технического решения при таком обмене в уровне техники сохраняется множество препятствий и проблем, особенно, если указанные устройства используют разные операционные платформы (операционные системы).
[007] Данный технический результат достигается за счет следующих факторов:
• успешная работа технологии не требует дополнительного оборудования (модуля Bluetooth, NFC, геолокации и пр.), кроме микрофона и доступа в сеть Интернет;
• запись звука и опечатки производятся на устройстве, в облако попадает исключительно хэш, который невозможно обратно конвертировать в воспроизводимое аудио, гарантируя приватность.
• сравнение отпечатков проводится между хэшами, генерированными в коротких промежутках времени (от 1 до 10 секунд), что позволяет безопасно сопрягать мобильные устройства с терминалами и кассами, и сделать невозможным подмену аудио среды через удаленный доступ.
[008] Указанный технический результат достигается за счет осуществления компьютерно-реализуемого способа, который выполняется на компьютеризированной системе, содержащей мобильное устройство аудиозахвата, центральный процессор, устройство отображения и память, причем реализуемый компьютером способ включает осуществление захвата аудиосигнала на основании заданного заранее критерия с использованием мобильного устройства аудиозахвата пользователя, при этом аудиосигнал содержит образец окружающего звука в окружающем звуковом пространстве мобильного устройства; использование центрального процессора для генерации хэш-функции захваченного аудиосигнала; передача хэша захваченного аудиосигнала на сервер; осуществление посредством сервера сравнения хэша захваченного сигнала и по меньшей мере одного хэша, хранящегося в облачной базе данных, причем создают первую длинную аудиосигнатуру; осуществляют проверку аудиотрека-кандидата с помощью побитного сравнения хэша длинной аудиосигнатуры захваченного аудиосигнала с хэшем длинной аудиосигнатуры, сохраненной в облачной базе данных и доступной серверу, с использованием индекса проверки; прием результата сравнения от сервера, идентифицирующего второе устройство пользователя, причем второе устройство связано с аналогичным хэшем аудиосигнала, аналогичным хэшу аудио, полученным из выборки окружающего звука в окружающем звуковом пространстве второго устройства; а также санкционирование передачи финансовых данных между мобильным устройством аудиозахвата и вторым устройством, связанным с аналогичным хэшем аудиосигнала, на основании результата сравнения.
[009] В некоторых вариантах реализации заданным критерием является наличие звукового сигнала.
[0010] В некоторых вариантах реализации заданным критерием является громкость захваченного аудиосигнала, превышающая заданный порог.
[0011] В некоторых вариантах реализации, когда звуковой сигнал не удовлетворяет заданному критерию, осуществляется генерирование случайного звука с использованием устройства генерации звука.
[0012] В некоторых вариантах реализации дополнительно включает передачу захваченного аудиосигнала на удаленный сервер, при этом хэш генерируется на удаленном сервере.
[0013] В некоторых вариантах реализации удаленный сервер является облачным сервером.
[0014] В некоторых вариантах реализации окружающее звуковое пространство второго устройства расположено в другом географическом местоположении, чем окружающее звуковое пространство устройства аудиозахвата.
[0015] В некоторых вариантах реализации сервер содержит базу данных, в которой хранится множество хэшей аудиосигнала.
[0016] Способ по п. 1, характеризующийся тем, что дополнительно включает выполнение передачи данных со вторым устройством на основе идентификатора второго устройства.
[0017] В некоторых вариантах реализации хэш захваченного аудиосигнала и аналогичный хэш аудиосигнала содержат перцептивные хэши.
ПОДРОБНОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0018] Прилагаемые чертежи, которые включены в настоящее описание и составляют его часть, иллюстрируют варианты осуществления настоящего изобретения и вместе с описанием служат для объяснения и иллюстрации принципов работы технического решения.
[0019] Фиг. 1 иллюстрирует примерный вариант осуществления компьютеризированной системы для обмена информацией между мобильными вычислительными устройствами.
[0020] Фиг. 2 иллюстрирует другой альтернативный вариант осуществления компьютеризированной системы для обмена информацией между мобильными вычислительными устройствами.
[0021] Фиг. 3 иллюстрирует примерную блок-схему варианта осуществления способа, выполняемого посредством компьютеризированной системой согласно изобретению для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2.
[0022] Фиг. 4 иллюстрирует примерный вариант осуществления компьютеризированной мобильной системы, которая может использоваться в качестве мобильного вычислительного устройства пользователя в сочетании с компьютеризированной системой для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2.
[0023] Фиг. 5 иллюстрирует примерный вариант компьютеризированной серверной системы, которую можно использовать, например, в качестве сервера компьютеризированной системы согласно изобретению для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0024] В контексте настоящего описания «сервер» представляет собой компьютерную программу, которая работает на соответствующем аппаратном обеспечении и способна принимать запросы (например, от устройств) по сети и выполнять эти запросы или вызывать выполнение этих запросов. Аппаратное обеспечение может быть одним физическим компьютером или одной физической компьютерной системой, но ни то, ни другое не является обязательным для настоящей технологии. В настоящем контексте использование выражения "сервер" не предполагает, что каждая задача (например, принятые инструкции или запросы) или какая-либо конкретная задача будут приняты, выполнены или вызваны для выполнения одним и тем же сервером (т.е. тем же самым программным обеспечением и/или аппаратным обеспечением); данное выражение предполагает, что любое количество программных элементов или аппаратных устройств может быть задействовано в приеме/отправке, выполнении или вызове для выполнения любой задачи или запроса, или последствий любой задачи или запроса; и все это программное обеспечение и аппаратное обеспечение может быть одним сервером или многочисленными серверами, причем оба данных случая включены в выражение "по меньшей мере один сервер".
[0025] В контексте настоящего описания "устройство" представляет собой любое компьютерное оборудование, которое способно выполнять программное обеспечение, которое является надлежащим для релевантной поставленной задачи. Таким образом, некоторые (неограничивающие) примеры устройств включают в себя персональные компьютеры (настольные ПК, ноутбуки, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что устройство, выступающее в качестве устройства в настоящем контексте, не исключается из возможности выступать в качестве сервера для других устройств. Использование термина "устройство" не исключает использования многочисленных устройств при приеме/отправке, выполнении или вызове выполнения какой-либо задачи или запроса, или последствий любой задачи или запроса, или этапов любого описанного в данном документе способа.
[0026] В контексте настоящего описания "база данных" представляет собой любую структурированную совокупность данных, независимо от ее конкретной структуры, программное обеспечение для администрирования базы данных, или компьютерное оборудование, на котором данные хранятся, реализуются или их делают доступными для использования иным образом. База данных может находиться на том же аппаратном обеспечении, что и процесс, который хранит или использует информацию, хранящуюся в базе данных, или она может находиться на отдельном аппаратном обеспечении, например, на выделенном сервере или множестве серверов.
[0027] В контексте настоящего описания термин "информация" включает в себя информацию любого характера или вида, которая может быть сохранена в базе данных любым образом. Таким образом, информация включает в себя, но без ограничения, аудиовизуальные произведения (изображения, фильмы, звуковые записи, презентации и т.д.), данные (данные о местоположении, численные данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы, списки слов и т.д.
[0028] В контексте настоящего описания, если специально не указано иное, подразумевается, что термин «компонент» включает в себя программное обеспечение (соответствующее конкретному аппаратному контексту), которое является как необходимым, так и достаточным для реализации конкретной функции (функций), на которую ссылаются.
[0029] В контексте настоящего описания предполагается, что выражение "используемый компьютером носитель информации" включает в себя носители любого характера и вида, в том числе RAM, ROM, диски (CD-ROM, DVD, дискеты, накопители на жестких дисках и т.д.), USB-ключи, твердотельные накопители, ленточные накопители и т.д.
[0030] В контексте настоящего описания слова "первый", "второй", "третий" и т.д. используются в качестве прилагательных только для того, чтобы позволить отличать существительные, которые они модифицируют, друг от друга, а не для описания какой-либо особой взаимосвязи между такими существительными. Таким образом, например, следует понимать, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо конкретного порядка, типа, хронологии, иерархии или ранжирования (например) таких серверов, равно как и их использование (само по себе) не означает, что какой-либо "второй сервер" должен обязательно существовать в любой определенной ситуации. Кроме того, как обсуждается в других контекстах данного документа, ссылка на "первый" элемент и "второй" элемент не исключает того, что эти два элемента фактически являются одним и тем же элементом реального мира. Таким образом, например, в некоторых случаях "первый" сервер и "второй" сервер могут быть одним и тем же программным обеспечением и/или аппаратным обеспечением, в других случаях они могут представлять собой разное программное обеспечение и/или аппаратное обеспечение.
[0031] В нижеследующем подробном описании будет сделана ссылка на прилагаемые чертежи, на которых одинаковые функциональные элементы обозначены одинаковыми цифрами. Вышеупомянутые сопровождающие чертежи приведены в качестве иллюстрации, а не в качестве ограничения, то есть конкретные варианты осуществления, соответствующие принципам настоящего изобретения. Эти реализации описаны достаточно подробно, чтобы специалисты в данной области техники могли применять изобретение на практике. Следует понимать, что могут быть использованы другие реализации и что могут быть сделаны структурные изменения и/или замены различных элементов, не выходя за рамки объема и смысл настоящего изобретения. Следовательно, нижеследующее подробное описание не следует толковать в ограниченном смысле. Кроме того, различные описанные варианты осуществления изобретения могут быть реализованы в виде программного обеспечения, работающего на компьютере общего назначения, в виде специализированного аппаратного обеспечения или комбинации программного и аппаратного обеспечения.
[0032] Для решения вышеуказанных и других проблем, связанных с традиционной технологией, в одном или нескольких вариантах осуществления, описанных в настоящем документе, реализованы различные примерные системы и способы для реализации обмена информацией между двумя или более мобильными вычислительными устройствами и/или другими вычислительными системами. Один из аспектов концепций изобретения, описанных в настоящем документе, обеспечивает способ обмена информацией, которая позволяет двум или более вычислительным устройствам, таким как смартфоны или другие гаджеты, точно определять местоположение друг друга, используя их встроенный микрофон и их центральный процессор для захвата и анализа небольших выборок информации, окружающее звуковое пространство. В одном или нескольких вариантах осуществления на основе захваченного звукового образца создается хэш. Этот созданный хэш отправляется обратно в облачную базу данных, где он сравнивается и сопоставляется с другими хранящимися в нем хэшами. Если совпадение найдено, устройства могут немедленно обмениваться любой необходимой информацией. В различных вариантах осуществления вышеупомянутый хэш может быть сгенерирован на самом мобильном устройстве или на удаленном (например, облачном) сервере.
[0033] Средство идентификации хэшей в том виде, в котором оно описано в данном описании, функционирует таким образом, чтобы решить вышеописанные проблемы, обеспечивая индивидуальным клиентам осуществляемую в реальном масштабе времени на стороне сервера идентификацию объектов аудиовизуальной информации, включенных в вещание потоковой аудиовизуальной информации. Эти объекты аудиовизуальной информации включают в себя, например, песни, рекламные ролики, музыкальные заставки, позывные станций и т.д. Вообще, средство идентификации аудиовизуальной информации функционирует, предоставляя, по меньшей мере, один сервер, который обеспечивает осуществляемую в реальном масштабе времени идентификацию объектов аудиовизуальной информации в потоке вещаемой аудиовизуальной информации, для индивидуальных клиентов, посредством сравнения хэшей, вычисляемых каждым клиентом на основе частей потока аудиовизуальной информации, взятых в качестве образцов, с базой данных известных хэшей. Вообще, вычисленные хэши посылаются каждым клиентом на сервер и сравниваются либо напрямую, либо через имеющийся на стороне сервера кэш хэшей, с большой базой данных хранящихся заранее вычисленных хэшей, идентификационные данные которых известны.
[0034] На Фиг. 1 показан примерный вариант осуществления компьютеризированной системы 100 для обмена финансовой информацией между мобильными устройствами 101 и 102, которые пространственно расположены рядом друг с другом, например, может применяться для оплаты услуг или товаров. Как показано на Фиг. 1, мобильное устройство аудиозахвата 101 включает в себя микрофон 103, который захватывает звуковой образец окружающего пространства, который включает в себя звук, издаваемый вторым устройством пользователя 102, которым в примере реализации, например, может быть POS-терминалом. Захваченный необработанный звуковой сигнал 104 затем отправляется в процессор 105 мобильного устройства аудиозахвата 101, который создает его хешированную версию с использованием любого известного сейчас или разработанного позже алгоритма хеширования. Хэш захваченного аудиосигнала 106 затем отправляется на сервер 107, где он сравнивается процессором сервера (см. элемент 108 на Фиг. 1) с множеством сохраненных хэшей 109. Перцептивные хэш-алгоритмы описывают класс функций для генерации сравнимых хэшей. Они используют различные свойства изображения для построения индивидуального хэша. В дальнейшем эти хэши можно сравнивать друг с другом. Если хэши отличаются, значит, данные разные. Если хэши совпадают, то данные, скорее всего, одинаковые (поскольку существует вероятность коллизий, то одинаковые хэши не гарантируют совпадения данных). В различных вариантах осуществления сервер 107 может быть развернут в облаке. Результат 110 сравнения хэша возвращается на мобильное устройство аудиозахвата 101, и результат идентификации отображается пользователю с использованием пользовательского интерфейса 111, который генерируется на соответствующем устройстве отображения. В различных вариантах осуществления результат 110 сравнения хеш-функции указывает пользователю идентификатор второго устройства пользователя 102. Таким образом, мобильное устройство аудиозахвата 101 может точно идентифицировать второе устройство пользователя 102 как находящееся поблизости. Таким образом, мобильное устройство аудиозахвата 101 в примере реализации даже не обязательно прикладывать к POS-терминалу 102 для обмена финансовой информацией и осуществления финансовой транзакции. Эта идентификация может использоваться для авторизации и/или инициирования передачи данных между мобильными устройствами 101 и 102.
[0035] В течение первого этапа процедуры сравнения, быстрого выбора кандидата в облаке, сервер 107 находит аудиосигнал-кандидат, используя первую короткую аудиосигнатуру (короткую аудиосигнатуру входящего аудиосигнала или хэш) в прюнинг-индексе. Аудиосигнал-кандидат может также являться аудиотреком, который содержит по меньшей мере одно хромаслово, полностью совпадающее с хромасловом, идентифицированным во входящем аудиосигнале.
[0036] В течение второго этапа процедуры сравнения, этапа проверки, сервер 107 создает первую длинную аудиосигнатуру. Первая длинная аудиосигнатура может описать часть аудиосигнала длительностью до 120 первых секунд входящего аудиосигнала.
[0037] После этого сервер 107 осуществляет проверку хэща аудиотрека-кандидата с помощью побитного сравнения длинной аудиосигнатуры входящего аудиосигнала с хэшем длинной аудиосигнатуы, сохраненной в облачной базе данных и доступной серверу 107, с использованием индекса проверки. На этом этапе сервер 107 может учесть разное качество сравниваемых аудиосигналов, а также сдвиг по времени между сравниваемыми аудиосигналами.
[0038] На этом этапе сервер 107 исключает из списка кандидатов те проиндексированные аудиосигналы, чья длина отличается от длины входящего аудиосигнала на предварительно определенное время, например, на 10 секунд, 30 секунд, минуту и так далее. Совпадение аудиосигналов устанавливается при совпадении их аудиосигнатур на предварительно определенном уровне. Например, в некоторых вариантах осуществления совпадение битов в длинных аудиосигнатурах входящего аудиосигнала и аудиосигнала-кандидата не обязательно должно быть стопроцентным. В таких случаях байты длинной аудиосигнатуры аудиосигналов совпадают на 90%, 80%, 70% и так далее.
[0039] Следует отметить, что конкретные варианты осуществления аудиосигнатур никак не ограничены и, в таком случае, могут быть использованы различные подходы известного уровня техники к созданию аудиосигнатур. Пример такого подхода, который может быть использован для создания аудиосигнатуры, предложен в патенте США US 7013301 «Аудиосигнатурная система и способ».
[0040] Другой подход к созданию аудиосигнатуры описан в статье "Как функционирует хромапринт?" за авторством Lukas Lalinsky, опубликованной на веб-странице https://oxyqene.sk/2011/01/how-does-chromaprint-work/. "Хромапринт" является клиентской библиотекой, которая осуществляет пользовательский алгоритм для извлечения аудиосигнатур из источника аудио. Гиперссылки на исходный код опубликованы на https://acoustid.org/chromaprint. Исходный код доступен для авторизации по лицензии LGPL2.1+ (стандартная общественная лицензия ограниченного применения).
[0041] Технология "Хромапринт" позволяет представить аудиосигнал как спектрограмму, которая показывает, как на конкретных частотах меняется с течением времени интенсивность. Для создания спектрограммы аудиосигнал делится на множество перекрывающихся интервалов, которые обрабатываются с помощью функции преобразования Фурье.
[0042] В случае хромапринта входящий аудиосигнал может быть преобразован с частотой 11025 Гц и размером интервалов 4096 (0,371 с) с перекрытием 2/3. Хромапринт далее обрабатывает информацию, преобразуя частоты в ноты, и в итоге получается 12 ячеек, каждая из которых содержит соответствующую ноту. В результате создается представление аудио, которое устойчиво к изменениям.
[0043] Соответственно, на каждую из них применяется предварительно определенный набор из 16 фильтров, причем эти фильтры улавливают различия в интенсивности в нотах по времени.
[0044] Как будет понятно специалистам в данной области, могут быть использованы другие способы создания аудиосигнатур. Кроме того, могут быть использованы описанные способы с модификациями.
[0045] Однако, следует понимать, что в некоторых вариантах осуществления после того, как конкретный способ создания аудиосигнатур был выбран, он применяется для создания и коротких, и длинных аудиосигнатур. В других вариантах осуществления могут быть применены различные подходы для создания коротких и длинных аудиосигнатур.
[0046] В качестве неограничивающего примера, поиск может быть выполнен с использованием прюнинг-индекса. Прюнинг-индекс используется для быстрого выбора аудиосигналов-кандидатов в базе данных. В некоторых вариантах осуществления короткая аудиосигнатура хранится в прюнинг-индексе, который сформирован для множества коротких аудиосигнатур.
[0047] Поиск может быть осуществлен следующим образом: сначала сервер 107 извлекает первую многобайтовую последовательность соответствующего хромаслова первой короткой аудиосигнатуры и находит индекс ключа, соответствующий первой многобайтовой последовательности. Если хромаслово первой короткой аудиосигнатуры выглядит как 5214-5255-5008-5047, соответствующим индексом ключа является индекс ключа 5214-5255-5008.
[0048] Набор списков словопозиций соответствует ключу индекса. Сервер 107 извлекает этот набор списков словопозиций. Затем сервер 107 извлекает последующий байт соответствующего хромаслова первой короткой аудиосигнатуры и находит ключ сортировки, соответствующий последующему байту хромаслова первой короткой аудиосигнатуры.
[0049] Например, если хромаслово первой короткой аудиосигнатуры выглядит как 5214-5255-5008-5047, соответствующий ключ сортировки будет являться ключом сортировки (5047). Используя этот ключ сортировки, сервер 107 извлекает список словопозиций для хромаслова 5214-5255-5008-5047.
[0050] Затем на следующем этапе с уже извлеченным списком словопозиций сервер 107 может находить и выбирать аудиосигналы, в которых появляется хромаслово 5214-5255-5008-5047. В качестве неограничивающего примера, аудиосигнал-кандидат может быть найден с помощью использования идентификатора аудиосигнала, содержащегося в списке словопозиций соответствующего проиндексированного хромаслова. Поскольку одно и то же хромаслово может быть найдено в нескольких различных индексированных аудиосигналах, несколько соответствующих индексированных аудиосигналов с несколькими соответствующими идентификаторами трека могут быть выбраны как аудиосигналы-кандидаты. Таким образом, для одного хромаслова первой короткой аудиосигнатуры могут быть выбраны несколько аудиосигналов-кандидатов.
[0051] На этапе сервер 107 повторяет предыдущие этапы для каждого хромаслова первой короткой аудиосигнатуры. Когда определен дополнительный аудиосигнал-кандидат в ответ на поиск, осуществленный с учетом каждого следующего хромаслова первой короткой аудиосигнатуры, эти дополнительные аудиосигналы должны быть добавлены ко множеству аудиосигналов-кандидатов. Таким образом, множество аудиотреков-кандидатов может содержать все аудиосигналы, причем каждый аудиосигнал имеет по меньшей мере одно хромаслово, которое соответствует любому из множества хромаслов первой короткой аудиосигнатуры. Существует возможность того, что некоторые аудиосигналы-кандидаты содержат более высокое или более низкое число хромаслов, соответствующих хромаслову первой короткой аудиосигнатуры.
[0052] Второе устройство пользователя 102 работает, по существу, аналогичным образом. Его микрофон 112 улавливает окружающий звуковой сигнал и преобразует его в электронную форму. Необработанный аудиосигнал 113 отправляется в процессор 114, который создает хэш аудиосигнала 115, который впоследствии отправляется в процессор 108 сервера 107. Процессор сравнивает полученный хэш аудиосигнала 115 со звуковыми хэшами, хранящимися в хранилище 109 хэшей, и возвращает результат 116 сравнения на второе устройство пользователя 102. Результат сравнения отображается пользователю в пользовательском интерфейсе 117, например, в виде зеленой галочки, после чего осуществляется непосредственно финансовая транзакция.
[0053] В одном или нескольких вариантах осуществления для выборки и сопоставления хэшей могут использоваться многочисленные в настоящее время известные, коммерчески доступные или разработанные позже алгоритмы перцепционного хэширования, включая, помимо прочего, FDMF; MusicURI; jHears; Schmidt (часть Tuneprint); AudioScout; OpenFP; Echoprint, libFoolD; Freetantrum; advert; Last.fm; AudiolD; Shazam; RoviMediaRecognitionService (часть AMGLASSO); Gracenote MusicID; Philips; (JSC и The Song Tapper.
[0054] He ограничиваясь, могут использоваться в более широком смысле следующие фреймворки.
[0055] Open Source
• нахождение хэшей в FDMF Курта Розенфельда.
• MusicURI, часть проекта Mpeg-7 Audio DB.
• jHears - это акустическая среда создания хэшей, основанная на дизайне FutureProofFingerPrint Джеффа Шмидта (ранее работавшего в Tuneprint). jHears разработан Юхой Хельджоранта.
• AudioScout. Основан на библиотеке хэшей pHash, разработанной теми же авторами. Использует алгоритм Philips Robust Hashing.
• OpenFP.
• Echoprint. Решение для получения хэшей аудио, разработанное Echo Nest.
• libFoolD. Библиотека звуковых хэшей, используемая и разработанная для foosic.
[0056] Частично Open-Source
• Last.fm. Библиотека звуковых хэшей на стороне клиента (fplib) имеет открытый исходный код. Использует алгоритм «Компьютерное зрение для идентификации музыки».
[0057] Коммерческое ПО.
• Audible Magic.
• AudiolD. Разработан в Институте интегральных схем Фраунгофера IIS и Институте цифровых медиатехнологий Фраунгофера IDMT, в настоящее время предоставляется mufin GmbH.
• Shazam. Запатентованная система снятия музыкальных хэшей, в настоящее время предлагаемая непосредственно пользователям по телефону.
• Служба распознавания носителей Rovi (ранее AMG LASSO).
• Gracenote MusicID.
• Philips. Один из первых масштабируемых алгоритмов звуковых звуковых хэшей.
• USC.
[0058] Следует отметить, что в примерном варианте осуществления системы, показанном на Фиг. 1, пользователю не нужно вводить какие-либо идентификаторы (например, номер телефона, псевдоним и т.д.) в мобильное устройство, чтобы идентифицировать его для другого мобильного устройства. Соответствующие мобильные устройства должны быть идентифицированы как находящиеся рядом друг с другом на основе их звуковой среды, после чего финансовая информация может быть безопасно отправлена между мобильными устройствами через облако и осуществлена финансовая транзакция как с аналогом ApplePay, где технология работает на беспроводной передаче данных NFC. В данном же решении действует принцип обмена звуковой информацией для синхронизации. В различных вариантах осуществления любое устройство со встроенным микрофоном может быть использовано в связи с системой 100, включая, помимо прочего, мобильные телефоны и смартфоны, банковские терминалы, терминалы самообслуживания и т.п.
[0059] Фиг. 2 иллюстрирует другой примерный вариант компьютеризированной системы 200 для обмена информацией между мобильными вычислительными устройствами 101 и 102, которые пространственно расположены рядом друг с другом. В этом варианте осуществления мобильное устройство аудиозахвата 101 работает так же, как мобильное устройство аудиозахвата 101, показанное на Фиг. 1. С другой стороны, в этом варианте осуществления 200 второе устройство пользователя 102 не имеет возможности обработки для создания хэш-функции захваченного аудиосигнала, как это может быть в случае со старыми мобильными телефонами. Следовательно, вместо локального создания хэша второе устройство пользователя 102 отправляет захваченный необработанный аудиосигнал 201 на сервер 107, который использует свой более мощный процессор для создания хэша звука 202 и выполнения сравнения созданного звукового хэша с сохраненным звуковым хэшем. Результаты 116 сравнения снова возвращаются на второе устройство пользователя 102, где они отображаются пользователю с помощью пользовательского интерфейса 117 и/или используются для авторизации или инициирования обмена данными между мобильными устройствами 101 и 102.
[0060] В различных вариантах осуществления хэш-хранилище 109 может быть развернуто как база данных. В различных вариантах осуществления эта база данных может быть реализована на основе любого известного в настоящее время или разработанного позже типа системы управления базой данных, такой как система управления реляционной базой данных, включая, помимо прочего, MySQL, Oracle, SQL Server, DB2, SQL Anywhere, PostgreSQL, SQLite, Firebird, Redis, MongoDB, Hadoop и/или MaxDB, которые хорошо известны специалистам в данной области. В альтернативном варианте осуществления вместо хэш-хранилища 109 также может использоваться облачная распределенная база данных, такая как Amazon Relational Database Service (Amazon RDS), хорошо известная специалистам в данной области техники. База 109 данных может хранить большое количество цифровых аудиосигналов, например, 10000, 100000, 1000000 и т.п. Множество цифровых аудиосигналов может быть собрано и сохранено в базе 109 данных многими различными способами. Однако, лишь в качестве примеров, множество цифровых аудиосигналов может быть записано ответственными за оценку людьми и/или получено с помощью краудсорсинга.
[0061] Фиг. 3 иллюстрирует примерную блок-схему варианта осуществления способа реализации, выполняемого на компьютеризированной системе согласно изобретению для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2. Сначала, на этапе 301, выполняемом на мобильном устройстве аудиозахвата 101 или втором устройстве пользователя 102 пользователя, окружающий звук захватывается с использованием микрофона 103 или 112 соответствующего мобильного устройства аудиозахвата 101 или 102. Захваченный звуковой сигнал анализируется на шаг 302, и создается соответствующий хэш. Это можно сделать локально на соответствующем мобильном устройстве аудиозахвата 101 или 102 или удаленно на сервере 107, который имеет повышенную производительность обработки данных.
[0062] Если обнаружена тишина или звуки низкой громкости, начинается этап 303, выполняемый на мобильном устройстве или сервере, операция процесса переходит к этапу 308, на котором генерируется случайный звук, и процесс впоследствии возвращается к вышеупомянутому этапу 301. В противном случае процесс переходит к этапу 304, после чего создается хэш захваченного аудиообразца (на мобильном вычислительном устройстве или сервере) с использованием одного из вышеупомянутых алгоритмов хеширования. Впоследствии, на этапе 305, созданный хэш отправляется на облачный сервер 107. Этот этап выполняется только в том случае, если предыдущие этапы выполняются на мобильном вычислительном устройстве. На этапе 305, выполняемом на серверном сервере 107, созданный хэш используется пользователем для поиска в хэш-хранилище 109 аналогичного хэша. Если совпадающий хэш найден в хэш-хранилище 109, соответствующий идентификатор устройства (DeviceID) получается из хэш-хранилища, см. этап 307, который может выполняться либо на сервере 107, либо на соответствующем мобильном вычислительном устройстве.
[0063] В другом варианте осуществления изобретения поиски в базе данных ускорены за счет использования битового векторного индексирования, что описано в заявке на патент США «Multidimensional Data Object Searching Using Bit Vector Indices» («Поиск объектов многомерных данных с использованием битовых векторных индексов»), которая имеет дату подачи 23 июня 2003 года и присвоенный ей порядковый номер 10/602,438, и содержание которой включено в настоящее описание посредством этой ссылки. Этот подход, заключающийся в битовом векторном индексировании, также описан в публикации, которая озаглавлена «Indexing High Dimensional Rectangles for Fast Multimedia Identifications («Индексирование многомерных прямоугольников для быстрой идентификации мультимедиа»), имеет своими авторами Джона К. Платта (John С. Piatt) и Кристофера Дж. К. Берджеса (Christopher J. С.Burges), опубликована в Microsoft Technical Report (Технический отчет компании «Microsoft») MSR-TR-2003-38, датированном 28 октября 2003 г., и содержание которой включено в настоящее описание посредством этой ссылки.
[0064] Вообще, способы битового векторного индексирования, описанные в вышеупомянутых заявке на патент США и соответствующем техническом отчете компании «Microsoft», рассматривают проблему быстрого осуществления точечных запросов в отношении многомерных областей. Такие запросы полезны при решении становящихся все более важными задач идентификации и поиска мультимедиа, в которых различные элементы базы данных имеют различные показатели сходства. В противоположность обычному индексированию в базе данных, которое сосредоточено на индексировании для многомерных запросов о ближайшем соседнем элементе и эпсилон-интервале, индексирование для точечных запросов в отношении многомерных областей, предоставляет эффективный способ индексирования, в котором для достижения значительных выигрышей в производительности сделана ставка на сочетание избыточности и битового векторного индексирования. Было отмечено, что такие способы обеспечивают значительное повышение производительности по сравнению с характерными для реального мира способами линейного перебора.
[0065] Отрицательные результаты поиска в базе данных, то есть данные об отсутствии совпадения «следа» с хэшами в базе данных, не посылаются назад клиенту. Положительные результаты поиска в базе данных, то есть данные о совпадении «следа» и хэша, посылаются назад клиенту, чтобы идентифицировать объект аудиовизуальной информации, на основе которого был вычислен этот «след». Как отмечалось выше, поиск в кэше с целью идентифицировать совпадающие «следы» осуществляется перед поиском в базе данных хэшей. Следовательно, если обнаружено совпадение со «следами», хранящимися в кэше, то не требуется никакого последующего поиска в базе данных, поскольку «след», хранящийся в кэше, будет либо содержать идентификационные данные связанного с ним объекта аудиовизуальной информации, либо будет просто указывать, что совпадающий хэш отсутствует. В случае, когда «след» совпадает с хэшем в базе данных, назад клиенту будет послана любая идентификационная информация, связанная с этим совпадающим хэшем.
[0066] Одно из преимуществ расположенного на стороне сервера кэша, предусмотренного средством идентификации аудиовизуальной информации, заключается в том, что размер кэша относительно мал, что делает поиски в кэше чрезвычайно быстрыми. В частности, размер кэша является функцией максимальной ожидаемой задержки между приемом клиентами некоторой точки в потоке аудиовизуальной информации и количества уникальных потоков аудиовизуальной информации, для которых предоставляются услуги по идентификации. Кроме того, следует отметить, что размер кэша не является функцией количества пользователей.
[0067] В частности, каждый конкретный поток вещания аудиовизуальной информации приблизительно синхронизирован по каждому клиенту, который принимает этот конкретный поток аудиовизуальной информации.
[0068] По этой причине нет необходимости держать «следы» в кэше аудиовизуальной информации в течение промежутка времени, превышающего некоторое малое кратное максимального ожидаемого времени задержки (причем, время задержки также включает в себя максимальную ожидаемую задержку по каждому клиенту на вычисление и передачу «следа» на сервер). Иначе говоря, эта задержка представляет собой просто максимальное значение времени между приемом сервером первого «следа» для данной части конкретного объекта аудиовизуальной информации и приемом сервером последнего «следа» (от самого медленного устройства) для этой части того же самого объекта аудиовизуальной информации. Следовательно, следы необходимо держать в кэше только в течение короткого промежутка времени длительностью примерно несколько секунд. В результате отсутствует необходимость в большом кэше для хранения всех уникальных поступающих на сервер «следов».
[0069] В родственном варианте осуществления изобретения, вместо попыток определить или оценить максимальные значения времени задержки для установления сроков жизни «следов» в кэше, предлагается более простое решение, которое заключается в том, чтобы просто удалять «следы» из кэша после того, как они не совпали ни с какими поступающими «следами» в течение некоторого короткого промежутка времени длительностью примерно в одну секунду или около того. В дополнительных альтернативных вариантах осуществления изобретения также могут быть использованы другие схемы кэширования, включая, например, использование фиксированного размера кэша, который удаляет «следы» основываясь на традиционной логике удаления элементов с наиболее давним использованием.
[0070] Ввиду вышеописанной сущности изобретения, должно быть ясно, что средство идентификации аудиовизуальной информации, описанное в данном документе, предоставляет уникальные систему и способ для обеспечения идентификации аудиовизуальной информации в реальном масштабе времени для большого количества одновременно поступающих клиентских запросов по синхронным потокам вещания аудиовизуальной информации. В дополнение к только что описанным выгодам, другие преимущества системы станут очевидны из подробного описания, которое следует ниже, при рассмотрении его совместно с прилагаемыми чертежами.
[0071] Как должно быть понятно специалистам в данной области техники, в настоящее время существует несколько способов, позволяющих определить, что два или более устройства расположены рядом друг с другом. Все эти методы используют службы определения местоположения (геолокацию), WiFi, Bluetooth, NFC и т.д., и все они имеют свои ограничения. С другой стороны, описанная здесь технология может работать даже в тишине. Если звука недостаточно для создания отличительной звуковой среды, описанное устройство может воспроизвести мелодию или мелодию звонка, чтобы создать звуковые помехи и найти соответствие. Также может использоваться произнесение пользователем нескольких слов в микрофон с двумя или более устройствами, находящимися поблизости друг от друга.
[0072] В одном или нескольких вариантах реализации инициация записи хэшей, как описано выше, может варьироваться: описанная технология может быть инициирована гироскопом устройства (встряхиванием или наклоном устройства), нажатием кнопки в специально разработанном приложении, работающим в фоновом режиме, и любым другим подходящим способом. В одном или нескольких вариантах реализации включение служб определения местоположения, а также Geo IP и Mac-адреса значительно сужает радиус поиска и ускоряет процесс определения географической близости устройств.
[0073] Ниже будет представлено описание в реализации с алгоритмом искусственного интеллекта, то есть нейронной сети.
[0074] Вообще говоря, определенная нейронная сеть (далее - NN) состоит из взаимосвязанной группы искусственных «нейронов», которые обрабатывают информацию, используя коннекционистский подход к вычислению. NN используются для моделирования сложных взаимосвязей между входными и выходными данными (без фактического знания этих взаимосвязей) или для поиска закономерностей в данных. NN сначала подготавливаются во время фазы обучения, во время которой им предоставляется некоторый известный набор «входных данных» и информации для адаптации NN к генерированию надлежащих выходных данных (для некоторой определенной ситуации, которую пытаются смоделировать). Во время этой фазы обучения эта NN адаптируется к изучаемой ситуации и меняет свою структуру так, чтобы данная NN могла обеспечивать разумные прогнозные выходные данные для определенных входных данных во время некоторой новой ситуации (на основе того, что было изучено). Таким образом, вместо того, чтобы пытаться определить сложные статистические схемы или математические алгоритмы для некоторой определенной ситуации, определенная NN пытается дать «интуитивный» ответ, основанный на «восприятии» ситуации. Таким образом, определенная NN является своего рода обученным «черным ящиком», который может быть использован в ситуации, когда то, что находится в этом «ящике», важным не является; важно лишь, что «ящик» дает разумные ответы на определенные входные данные.
[0075] NN обычно используются во многих таких ситуациях, в которых важно знать лишь выходные данные, основанные на некоторых определенных входных данных, но то, как именно эти выходные данные были получены, имеет меньшее значение или значения не имеет. Например, NN обычно используются для оптимизации распределения веб-трафика между серверами и при обработке данных, в том числе фильтрации, кластеризации, разделении сигналов, сжатии, генерировании вектора, распознавании речи и тому подобном.
[0076] Следует понимать, что NN могут быть классифицированы на различные классы NN. Один из этих классов содержит рекуррентные нейронные сети (RNN). Эти конкретные NN приспособлены использовать свои «внутренние состояния» (хранимую память) для обработки последовательностей входных данных. Это делает RNN хорошо подходящими для таких задач, как, например, распознавание несегментированного рукописного ввода и распознавание речи. Этими внутренними состояниями RNN можно управлять, и они именуются «управляемыми» (gated) состояниями или «управляемыми» воспоминаниями.
[0077] Также следует отметить, что сами RNN также могут быть классифицированы на различные подклассы RNN. Например, RNN могут быть реализованы в виде сетей с долгой краткосрочной памятью (LSTM), управляемых рекуррентных блоков (GRU), двунаправленных RNN (BRNN) и т.п.
[0078] Сети с LSTM представляют собой системы глубокого обучения, которые могут обучаться задачам, требующим, в некотором смысле, «воспоминаний» о событиях, которые произошли ранее в течение очень коротких и дискретных временных интервалов. Топологии сетей с LSTM могут меняться в зависимости от конкретных задач, которые их "обучают" выполнять. Например, сети с LSTM могут обучаться выполнять задачи, при которых относительно длительные задержки происходят между событиями или когда события происходят вместе с низкой и высокой частотой.
[0079] В некоторых вариантах осуществления настоящей технологии предполагается, что NN 400 может быть реализована как данная сеть с LSTM. Можно сказать, что NN 400 может быть реализована в некоторых вариантах осуществления с некоторой топологией сети, которая позволяет хранить «воспоминания» о событиях, которые произошли ранее.
[0080] Подводя итог, можно сказать, что реализация NN системой обмена информацией между устройствами может быть в общем разделена на две фазы: фаза обучения и фаза использования.
[0081] Сначала, NN обучают во время фазы обучения. Во время фазы обучения сервер 107 может выполнять большое количество итераций обучения в отношении NN. Вообще говоря, во время определенной итерации обучения в NN вводят наборы признаков, связанных с общим цифровым аудиосигналом, и она, в некотором смысле, «обучается» тому, какой из этих наборов признаков соответствует сегменту этого цифрового аудиосигнала, во время которого пользовательское высказывание или аудиозапись в этом цифровом аудиосигнале завершилась (используя скорректированный момент времени завершения высказывания, соответствующий временной отметке в качестве его представительной переменной).
[0082] Затем, во время фазы использования, когда NN знает, какие данные следует ожидать в качестве входных данных (например, наборы признаков) и какие данные следует предоставлять в качестве выходных данных (например, прогнозы для наборов признаков), NN фактически работает, используя данные в процессе использования (in-use data). Вообще говоря, во время использования, в NN вводят наборы признаков, связанных с цифровым аудиосигналом в процессе использования (например, таким как цифровой аудиосигнал), и используют ее для определения вероятности соответствующего сегмента цифрового аудиосигнала в процессе использования, во время которого пользовательское высказывание завершилось.
[0083] Далее будет описано то, как сервер 107 может выполнять итерацию обучения NN. Предположим, что данная итерация обучения NN выполняется на основе данных, связанных с цифровым аудиосигналом. Однако следует отметить, что в отношении NN во время фазы ее обучения выполняется большее количество итераций обучения, как упомянуто выше, используя данные, связанные с другими аудиосигналами из множества цифровых аудиосигналов, аналогично выполнению данной итерации обучения.
[0084] Для данной итерации обучения NN, сервер 107 может извлечь обучающие данные из базы данных. Обучающие данные содержат (i) множество наборов признаков для цифрового аудиосигнала и (ii) соответствующие связанные метки. Как упомянуто выше, в некоторых вариантах осуществления настоящей технологии обучающие данные могут быть предопределены сервером 107, то есть сервер 107 мог определить и сохранить эти обучающие данные до фазы обучения NN.
[0085] Сервер 107 сконфигурирован с возможностью ввода множества наборов признаков в NN в той же последовательности, что и последовательность, в которой соответствующие сегменты из множества сегментов встречаются в цифровом аудиосигнале. Другими словами, во время данной итерации обучения сервер 107 сконфигурирован с возможностью ввода множества наборов признаков в следующем порядке: первый набор признаков, второй набор признаков, третий набор признаков, четвертый набор признаков. [0086] Когда сервер 107 вводит первый набор признаков в NN, NN сконфигурирована с возможностью вывода первого выходного значения, указывающего вероятность того, что хэш в цифровом аудиосигнале завершился во время первого сегмента цифрового аудиосигнала. Предположим, что первое выходное значение равно «0,1» (или 10%, например). Можно сказать, что NN определяет первое выходное значение «0,1» для первого сегмента на основе первого набора признаков.
[0087] Сервер 107 затем вводит второй набор признаков в NN. NN сконфигурирована с возможностью вывода второго выходного значения, указывающего вероятность того, что хэш в цифровом аудиосигнале завершился во время второго сегмента цифрового аудиосигнала. Предположим, что второе выходное значение равно «0,3».
[0088] Как упоминалось ранее, NN может иметь топологию сети, которая позволяет NN хранить «воспоминания» о событиях, которые произошли ранее. Другими словами, NN может быть сконфигурирована с возможностью вывода второго выходного значения «0,3» на основе (i) второго набора признаков, а также на основе «памяти», что ранее введенным набором признаков является (ii) первый набор признаков. Это означает, что NN может определять второе выходное значение «0,3» для второго сегмента на основе обоих (i) второго набора признаков и (ii) первого набора признаков.
[0089] Сервер 107 затем вводит третий набор признаков в NN, а NN выводит третье выходное значение «0,1». NN может определять третье выходное значение «0,1» для третьего сегмента на основе (i) третьего набора признаков, (ii) второго набора признаков и (iii) первого набора признаков.
[0090] Сервер 107 затем вводит четвертый набор признаков в NN, а NN выводит четвертое выходное значение «0,4». NN может определять четвертое выходное значение «0,4» для четвертого сегмента на основе (i) четвертого набора признаков, (ii) третьего набора признаков, (iii) второго набора признаков и (iv) первого набора признаков.
[0091] Таким образом, как поясняется выше, во время данной итерации обучения NN прогнозирует, что:
[0092] существует вероятность «0,1», что пользовательское высказывание завершилось во время первого сегмента цифрового аудиосигнала;
[0093] существует вероятность «0,3», что пользовательское высказывание завершилось во время второго сегмента цифрового аудиосигнала;
[0094] существует вероятность «0,1», что пользовательское высказывание завершилось во время третьего сегмента цифрового аудиосигнала;
[0095] существует вероятность «0,4», что пользовательское высказывание завершилось во время четвертого сегмента цифрового аудиосигнала.
[0096] Затем, во время данной итерации обучения, сервер 107 может быть сконфигурирован с возможностью выполнения сравнительного анализа между выходными значениями, выданными посредством NN, и метками, связанными с соответствующими наборами признаков из множества наборов признаков. На основе этого сравнения сервер 107 может быть сконфигурирован с возможностью определения множества отдельных штрафных значений.
[0097] Следовательно, сервер 107 сконфигурирован с возможностью подготовки NN таким образом, что NN выводит выходные значения в ответ на наборы признаков, так что различия между значениями соответствующих меток и соответствующими выходными значениями сводятся к минимуму. Чем больше различия между значениями соответствующих меток и соответствующими выходными значениями, тем выше будет объединенное штрафное значение и, следовательно, тем большей может быть корректировка связей между искусственными «нейронами» NN. Точно так же, чем меньше различия между значениями соответствующих меток и соответствующими выходными значениями, тем ниже будет объединенное штрафное значение и, следовательно, тем меньшей может быть корректировка связей между искусственными «нейронами» NN.
[0098] При «ложноположительном» прогнозе NN определяет, что существует высокая вероятность того, что некоторый сегмент, который возникает до завершения (конца) пользовательского высказывания или аудиосигнал в цифровом аудиосигнале, содержит это завершение упомянутого пользовательского высказывания. Сокращение количества ложноположительных прогнозов может быть полезным во время использования, поскольку ложноположительный прогноз может привести к тому, что система ошибочно определит, что пользовательское высказывание завершилось во время самой последней полученной части цифрового аудиосигнала, когда, в действительности, пользователь еще не прекратил говорить.
[0099] Например, ложноположительные прогнозы могут с большей вероятностью происходить для сегментов, во время которых возникает пауза в пользовательском высказывании. Другими словами, ложноположительный прогноз более вероятно происходит во время сегментов, в которых пользователь приостанавливает пользовательское высказывание (например, во время паузы между двумя произносимыми пользователем словами).
[00100] Количество ложноположительных прогнозов NN может быть сокращено путем назначения весов отдельным штрафным значениям, связанным с сегментами цифрового аудиосигнала, которые возникают до скорректированного момента времени завершения высказывания, чтобы увеличить их вклад в объединенное штрафное значение.
[00101] Далее будет описан вариант реализации технологической платформы.
[00102] Фиг. 4 иллюстрирует примерный вариант осуществления компьютеризированной мобильной системы, которая может использоваться в качестве мобильного вычислительного устройства пользователя в сочетании с компьютеризированной системой для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2. В одном или нескольких вариантах осуществления компьютеризированная мобильная система 400 может быть реализована в форм-факторе мобильного вычислительного устройства, такого как смартфон, iPAD, планшетный компьютер или смарт-часы, которые широко доступны в продаже и хорошо известны специалистам в данной области.
[00103] Компьютеризированная система 400 может включать в себя шину 404 данных или другой способ передачи данных или механизм связи для передачи информации между различными аппаратными компонентами мобильной компьютеризированной системы 400 и между ними, а также центральный процессор (ЦП или просто процессор) 401, соединенный с шиной 404 данных, для обработки информации и выполнения других вычислительных и управляющих задач. Компьютеризированная система 400 также включает в себя память 412, такую как оперативное запоминающее устройство (ОЗУ) или другое динамическое запоминающее устройство, соединенное с шиной 404 данных для хранения различной информации, а также инструкций, которые должны выполняться процессором 401. Память 412 может также включать постоянные запоминающие устройства, такие как магнитный диск, оптический диск, твердотельное устройство флэш-памяти или другие энергонезависимые твердотельные запоминающие устройства.
[00104] В одном или нескольких вариантах осуществления память 412 может также использоваться для хранения временных переменных или другой промежуточной информации во время выполнения команд процессором 401. Дополнительно компьютеризированная система 400 может дополнительно включать в себя постоянное запоминающее устройство (ПЗУ или СППЗУ) 402 или другое статическое запоминающее устройство, соединенное с шиной данных 404 для хранения статической информации и инструкций для процессора 401, таких как микропрограммы, необходимые для работы компьютеризированной системы 400, базовой системы ввода-вывода (BIOS), а также различные параметры конфигурации компьютеризированной системы 400.
[00105] В одном или нескольких вариантах осуществления компьютеризированная система 400 может включать в себя устройство 409 отображения, которое также может быть подключено к шине 404 данных для отображения различной информации пользователю компьютеризированной системы 400, такой как экраны пользовательского интерфейса, показанные на Фиг. 4 и 5. В альтернативном варианте устройство 409 отображения может быть связано с графическим контроллером и/или графическим процессором (не показаны). Устройство 409 отображения может быть реализовано в виде жидкокристаллического дисплея (ЖКД), изготовленного, например, с использованием технологии тонкопленочных транзисторов (ТПТ) или технологии органических светоизлучающих диодов (ОСИД), которые хорошо известны специалистам в данной области. В различных вариантах осуществления устройство 409 отображения может быть встроено в тот же общий корпус, что и остальные компоненты компьютеризированной системы 400. В альтернативном варианте осуществления устройство 409 отображения может быть расположено вне такого корпуса.
[00106] В одном или нескольких вариантах осуществления компьютеризированная система 400 может дополнительно включать в себя микрофон 425, подключенный к шине 404 данных и сконфигурированный для захвата окружающего звука и преобразования его в электронную форму.
[00107] В одном или нескольких вариантах осуществления компьютеризированная система 400 может включать в себя одно или несколько устройств ввода, таких как интерфейс 410 с сенсорным экраном для приема тактильных команд, камеру 411 для получения неподвижных изображений и видео различных объектов, а также клавиатуру 406, которые могут быть подключены к вышеупомянутой шине 404 данных для передачи информации, включая, помимо прочего, изображения и видео, а также выбор пользовательских команд на процессор 401. В альтернативном варианте осуществления устройства ввода могут включать в себя систему отслеживания движений глаз пользователя (не показан), которая может использоваться для указания компьютеризированной системы 400 выбора команды пользователем.
[00108] В одном или нескольких вариантах осуществления компьютеризированная система 400 может дополнительно включать в себя приемник 403 сигнала местоположения, сконфигурированный для выполнения сканирования сигнала или маяков GPS и передачи данных сканирования, описанных выше, в процессор 401 через шину 404 данных.
[00109] В одном или нескольких вариантах осуществления компьютеризированная система 400 может дополнительно включать в себя коммуникационный интерфейс, такой как сетевой интерфейс 405, соединенный с шиной 404 данных. Сетевой интерфейс 405 может быть сконфигурирован для установления соединения между компьютеризированной системой 400 и Интернетом 424 с использованием по меньшей мере одного из интерфейсов 407 WIFI и адаптера 408 сотовой сети (GSM или CDMA). Сетевой интерфейс 405 может быть сконфигурирован для обеспечения двусторонней передачи данных между компьютеризированной системой 400 и Интернетом 424. Интерфейс 407 WIFI может работать в соответствии с протоколами 802.11а, 802.11b, 802.11 g и/или 802.11n, а также с протоколом Bluetooth, хорошо известным специалистам в данной области техники. В примерной реализации интерфейс 407 WIFI и адаптер 408 сотовой сети (GSM или CDMA) отправляют и принимают электрические или электромагнитные сигналы, которые несут потоки цифровых данных, представляющие различные типы информации.
[00110] В одном или нескольких вариантах осуществления Интернет 424 обычно обеспечивает передачу данных через одну или несколько подсетей к другим сетевым ресурсам. Таким образом, компьютеризированная система 400 способна осуществлять доступ к различным сетевым ресурсам, расположенным где угодно в Интернете 424, таким как веб-серверы, другие серверы контента, а также другие сетевые ресурсы хранения данных. В одном или нескольких вариантах осуществления компьютеризированная система 400 сконфигурирована для отправки и приема сообщений, мультимедиа и других данных, включая код прикладной программы, через различные сети, включая Интернет 424, посредством сетевого интерфейса 405. В примере с Интернетом, когда компьютеризированная система 400 действует как сетевой клиент, она может запрашивать код или данные для прикладной программы, выполняемой в компьютеризированной системе 400. Подобным образом она может отправлять различные данные или компьютерный код другим сетевым ресурсам.
[00111] В одном или нескольких вариантах осуществления компьютеризированная система 400 использует сетевой интерфейс 405 для отправки запроса(ов) через Интернет 424, такого как HTTP-запросы, на серверы и получения различной информации, включая, помимо прочего, вышеупомянутую отображаемую информацию пользователю, использующему пользовательский интерфейс, показанный на Фиг. 4 и 5.
[00112] В одном или нескольких вариантах осуществления описанные здесь функциональные возможности реализуются компьютеризированной системой 400 в ответ на выполнение процессором 401 одной или нескольких последовательностей одной или нескольких инструкций, содержащихся в памяти 412. Такие инструкции могут быть считаны в память 412 с другого компьютера. Выполнение последовательностей инструкций, содержащихся в памяти 412, заставляет процессор 401 выполнять различные шаги способа, описанные здесь. В альтернативных вариантах осуществления вместо команд программного обеспечения или в сочетании с программными инструкциями для реализации вариантов осуществления изобретения может использоваться аппаратная схема. Таким образом, варианты осуществления изобретения не ограничиваются какой-либо конкретной комбинацией аппаратных схем и программного обеспечения.
[00113] Термин «машиночитаемый носитель», используемый здесь, относится к любому носителю, который участвует в предоставлении инструкций процессору 401 для выполнения. Машиночитаемый носитель является лишь одним примером машиночитаемого носителя, который может содержать инструкции для реализации любого из описанных здесь способов и/или приемов. Такая среда может принимать различные формы, включая, помимо прочего, энергонезависимую среду и летучую среду.
[00114] Обычные формы постоянных машиночитаемых носителей включают, например, дискету, гибкий диск, жесткий диск, магнитную ленту или любой другой магнитный носитель, компакт-диск, любой другой оптический носитель, перфокарты, бумажную ленту, любые другой физический носитель с набором отверстий, RAM, PROM, EPROM, FLASH-EPROM, флэш-диск, карта памяти, любая другая микросхема памяти или картридж или любой другой носитель, с которого компьютер может считывать. Различные формы машиночитаемых носителей могут использоваться для переноса одной или нескольких последовательностей одной или нескольких инструкций в процессор 901 для выполнения. Например, инструкции могут быть изначально перенесены на магнитный диск с удаленного компьютера. Альтернативно, удаленный компьютер может загрузить инструкции в свою динамическую память и отправить инструкции через Интернет 424. В частности, компьютерные инструкции могут быть загружены в память 412 компьютеризированной системы 400 с вышеупомянутого удаленного компьютера через Интернет 424 с использованием множества сетевых протоколов передачи данных, хорошо известных в данной области техники.
[00115] В одном или нескольких вариантах осуществления в памяти 412 компьютеризированной системы 400 могут храниться любые из следующих программ, приложений или модулей:
[00116] 1. Операционная система (ОС) 413, которая может быть мобильной операционной системой для реализации основных системных служб и управления различными аппаратными компонентами компьютеризированной системы 400. Типовые варианты осуществления операционной системы 413 хорошо известны специалистам в данной области техники, и может включать iOS, Android, Windows Mobile или любую другую известную или разработанную в будущем мобильную операционную систему (системы).
[00117] 2. Мобильные приложения 414 могут включать в себя, например, набор программных приложений, выполняемых процессором 401 компьютеризированной системы 400, которые заставляют компьютеризированную мобильную систему 400 выполнять определенные заранее определенные функции, такие как захват аудиосигнала, создание хэша из него и передавать его на сервер 107 для приема информации для отображения пользователю и для отображения этой информации пользователю с использованием графического пользовательского интерфейса, отображаемого на устройстве отображения, как описано выше. В одном или нескольких вариантах осуществления мобильные приложения 414 могут включать в себя, например, приложение 415 захвата звука для захвата аудиосигнала с использованием микрофона 425, приложение 416 хеширования для создания хэша захваченного аудиосигнала с использованием алгоритма хеширования и генерацию пользовательского интерфейса.
[00118] 3. Хранилище 418 данных может использоваться, например, для хранения хэш-сигнала аудиосигнала, а также другой подходящей статистической информации.
[00119] Фиг. 5 иллюстрирует примерный вариант компьютеризированной серверной системы, которую можно использовать, например, в качестве сервера компьютеризированной системы согласно изобретению для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2. Следует отметить, что другие компоненты описываемой системы, такие как ядро базы данных, также могут быть развернуты на компьютеризированной серверной системе 500.
[00120] В одном или нескольких вариантах осуществления компьютеризированная серверная система 500 может включать в себя шину 504 данных, которая может быть по существу аналогична и может выполнять по существу аналогичные функции, что и шина 504 данных компьютеризированной системы 400, показанной на Фиг. 4. В различных вариантах осуществления шина 504 данных может использовать тот же или другой протокол соединения и/или связи, что и шина 404 данных. Устройство 509 отображения и клавиатура 506 компьютеризированной серверной системы 500 также могут быть по существу аналогичны соответствующему процессору 401, сетевому интерфейсу 405, запоминающему устройству 402 СППЗУ/прошивки, устройству 409 отображения и клавиатуре 406 компьютеризированной системы 400, за исключением того, что первые компоненты развернуты в конфигурации серверной платформы. В различных реализациях один или несколько процессоров 501 могут иметь существенно повышенную вычислительную мощность по сравнению с процессором 401.
[00121] В дополнение к устройству 506 ввода (клавиатуре) компьютеризированная серверная система 500 может дополнительно включать в себя устройство 510 управления курсором, такое как мышь, шаровой манипулятор или клавиши направления курсора, для передачи информации о направлении и выбора команд процессору 501 и для управления перемещения курсора на устройстве 509 отображения. Это устройство ввода обычно имеет две степени свободы по двум осям, первой оси (например, х) и второй оси (например, у), что позволяет устройству задавать положения на плоскости.
[00122] Адаптер 507 LAN/ISDN компьютеризированной серверной системы 500 может быть реализован, например, с использованием карты цифровой сети с интеграцией служб (ISDN) или модема для обеспечения соединения для передачи данных с телефонной линией соответствующего типа, которая сопряжена с Интернетом 424 с использованием аппаратного обеспечения интернет-провайдера (не показано). В качестве другого примера адаптер LAN/ISDN 507 может быть картой интерфейса локальной сети (LAN NIC) для обеспечения соединения для передачи данных с совместимой LAN и Интернетом 424. Для хранения различных файлов данных компьютеризированная серверная система 500 может быть снабжена хранилищем 508 данных для хранения различных статистических данных, которые должны отображаться пользователю посредством контроллера 503 хранения. Камера 511 может использоваться для получения изображений и/или видео различных объектов.
[00123] В одном или нескольких вариантах осуществления в памяти 512 компьютеризированной серверной системы 500 могут храниться любые из следующих программ, приложений, модулей и/или данных:
[00124] 1. Серверная операционная система (ОС) 513, которая может быть операционной системой для реализации основных системных служб и управления различными аппаратными компонентами компьютеризированной серверной системы 500. Примерные варианты осуществления серверной операционной системы 513 хорошо известны специалистам в данной области техники и может включать Windows Server, Mac OS, Unix, AIX, FreeBSD, Linux, a также любые известные в настоящее время или разработанные позже операционные системы.
[00125] 2. Модуль 514 сетевой связи может включать в себя, например, один или несколько стеков сетевых протоколов, которые используются для установления сетевого соединения между компьютеризированной серверной системой 500 и различными сетевыми объектами Интернета 424, такими как компьютеризированная мобильная система 400, используя сетевой адаптер 505, работающий совместно с адаптером LAN/ISDN 507.
[00126] 3. Серверные приложения 515 могут включать в себя, например, набор программных приложений, выполняемых одним или несколькими процессорами 501 компьютеризированной серверной системы 500, которые заставляют компьютеризированную серверную систему 500 выполнять определенные заранее определенные функции или задачи, такие как создание хэша захваченного аудиосигнала и сравнить этот хэш с содержимым хранилища хэшей. В одном или нескольких вариантах осуществления серверные приложения 515 могут включать в себя приложение 516 хэширования для генерирования хеширования аудиосигнала, функциональные возможности которого были подробно описаны выше. Дополнительно может быть предусмотрена система 517 управления базой данных для хранения и управления доступом к различной информации, как подробно описано выше, такой как данные хранения хэшей. Приложение 518 для сравнения хэшей может быть предусмотрено для вычисления расстояния (например, разницы) между двумя хэшами и для нахождения совпадающих хэшей.
[00127] 4. Хранилище 519 данных может использоваться, например, для хранения хэш-данных или сравнения с сгенерированным хэшем, который может храниться в виде одной или нескольких таблиц базы данных, содержащих записи базы данных.
[00128] Ниже будет подробно раскрыт способ обнаружения и обмена финансовой информацией между расположенными рядом устройствами при помощи данной технологии.
[00129] Устройствами, подходящими для использования технологии являются ноутбуки, смартфоны, носимые устройства (например, часы, очки, кольца), кассы (в том числе мобильные), персональные компьютеры, устройства типа "Система на чипе" (SOC), одноплатные компьютеры (SBC) и так далее.
[00130] Устройство должно быть оснащено микрофоном любого типа, аналого-цифровым преобразователем (АЦП) с частотой дискретизации не менее 8 kHz, процессором и модулем связи, работающим по протоколу Wi-Fi, Bluetooth, Ethernet, EDGE, 3G, LTE, 4G, 5G или другому, позволяющему осуществлять двусторонний обмен данными на скорости 16 кбит/сек или выше.
[00131] При запуске режима обнаружения устройство устанавливает подключение к серверу, например, по протоколу обмена данными WebSockets, но не ограничиваясь им, и выполняет инициализацию подключения, которая состоит из авторизации и синхронизации времени с сервером. Алгоритм синхронизации времени определяет среднее время доставки пакета путем выполнения 5 или более сетевых запросов и корректирует время, полученное с сервера на среднее время доставки пакета. В случае успешной инициализации устройство отправляет на сервер сообщение с публичными данными транзакции, позволяющее идентифицировать устройство и инициализировать проведение платежа, такие как: идентификатор кассы, название кассы, id пользователя, ФИО пользователя, сумма платежа, идентификатор платежа, а также любые другие данные, на усмотрение компании, использующей технологию.
[00132] Окружающий звук захватывается при помощи микрофона, преобразуется в цифровой аудиосигнал при помощи АЦП и далее поступает на обработку в процессор, при этом устройство должно обладать следующими характеристиками:
• частота дискретизации не менее 8kHz;
• разрядность сигнала не менее 8 бит;
• суммарная задержка при захвате аудиопотока не более 1 сек.
[00133] Аудиосигнал по мере накопления преобразуется в амплитудный спектр при помощи оконного преобразования Фурье (STFT), где в качестве оконной функции используется окно Хэмминга (Hamming window), а в качестве функции Фурье - быстрое преобразование Фурье (FFT). Результатом преобразования является амплитудный спектр, который разделяется на 32 равных частотных интервала. Усредненная амплитуда каждого частотного интервала проверяется на превышение порогового значения, где результат проверки представляет собой 1 или 0 в двоичном представлении. Таким образом, результат каждой итерации оконной функции представлен в виде 32-битного числа (элемент хэша), а хэш аудио среды состоит из 100 или более таких элементов.
[00134] Устройство отправляет новые хэши аудио среды на сервер в реальном времени используя двунаправленный протокол обмена данными WebSockets, но не ограничивается им. В случае потери соединения, хэши накапливаются в ОЗУ устройства и отправляются при возобновлении подключения.
[00135] Пакет данных представлен в формате JSON, но не ограничен им. В пакете содержится точное время записи исходного аудиосигнала и хэш аудио среды, состоящий из массива элементов хэша, длиной от 100 до 1000 элементов.
[00136] При получении пакета данных с хэшем, сервер создает индекс хэша и реплицирует индекс и исходный хэш на все сервера в кластере (ноды), где они хранятся в течение 1 минуты. Таким образом, каждая нода имеет полный набор хэшей всех устройств за последнюю минуту. Сервер отправляет на случайную ноду задание на поиск совпадений с новым хэшем. Таким образом, сервер равномерно распределяет нагрузку в кластере.
[00137] Горизонтальное масштабирование сервера выполняется в автоматическом режиме в зависимости от средней нагрузки на ноды в кластере. При достижении 60%, в кластер добавляется дополнительная нода, при падении нагрузки менее 40%, нода удаляется из кластера.
[00138] Индекс хэша представляет собой полный инвертированный индекс поиска, где каждый ключ ссылается на место в совпадающем хэше. Ключи в индексе построены с использованием алгоритма расширения выборки: каждый элемент хэша перемножается на 8 различных битовых масок, получившиеся 8 ключей добавляются в индекс с указанием используемой маски.
[00139] Поиск совпадающих хэшей происходит в несколько этапов. 1) при помощи индекса выбираются хэши с наибольшим количеством совпадающих ключей. 2) определяется сдвиг в хэшах относительно искомого хэша и определяется область пересечения хэшей. 3) Для каждого кандидата вычисляется error rate, как отношение количества битовых отличий между хэшем и искомым хэшем к длине области пересечения хэшей. 4) Кандидаты, чей error rate ниже порогового значения, считаются совпадающими.
[00140] Стоит отметить, что пороговое значение может быть настроено для различных сценариев использования, например, для изменения радиуса обнаружения устройств, уменьшения времени обнаружения.
[00141] При совпадении хэшей сервер отправляет на соответствующие устройства, публичные данные транзакции, позволяющее идентифицировать устройство и инициализировать проведение платежа, такие как: идентификатор кассы, название кассы, id пользователя, ФИО пользователя, сумма платежа, идентификатор платежа, а также любые другие данные, на усмотрение компании, использующей технологию.
[00142] Устройство выполняет проведение платежа, используя технологию данного патента. Технология не получает доступа к данным транзакции и не влияет на безопасность проведения транзакции.
[00143] Наконец, следует понимать, что процессы и методы, описанные в настоящем документе, по своей сути не связаны с каким-либо конкретным устройством и могут быть реализованы с помощью любой подходящей комбинации компонентов. Кроме того, в соответствии с идеями, описанными в данном документе, могут использоваться различные типы устройств общего назначения. Также может оказаться выгодным сконструировать специализированное устройство для выполнения описанных здесь этапов способа. Настоящее изобретение описано на конкретных примерах, которые во всех отношениях предназначены для иллюстрации, а не для ограничения. Специалистам в данной области техники будет понятно, что для практического применения настоящего изобретения подходят многие различные комбинации аппаратных средств, программного обеспечения и программно-аппаратных средств. Например, описываемое программное обеспечение может быть реализовано на самых разных языках программирования или сценариев, таких как ассемблер, C/C++, Objective-C, perl, shell, PHP, Java, а также на любом известном в настоящее время или разработанном позже языке программирования или скриптовом языке.
[00144] В настоящее время, для реализации бесшовного опыта бесконтактной оплаты (обмена финансовой информацией) используются проприетарные технологии, ограниченные своей экосистемой (GooglePay, ApplePay и так далее). Для реализации кроссплатформенного решения используются динамические QR коды, что повышает требования к устройствам (наличие экрана на принимающем устройстве и камеры на платежном) либо используются системы генерации и ввода одноразовых кодов, что ухудшает пользовательский опыт.
[00145] В случае с данным техническим решением в подавляющем большинстве случаев идентификация пары устройств, участвующей в процессе обмена финансовой информацией происходит автоматически, без участия человека и не предъявляет высоких требований к устройствам, участвующим в обмене.
[00146] Кроме того, специалистам в данной области техники будут очевидны другие реализации изобретения из рассмотрения описанного здесь описания и практического применения изобретения. Различные аспекты и/или компоненты описанных вариантов осуществления могут использоваться по отдельности или в любой комбинации в системах и способах для реализации обмена информацией между двумя или более мобильными вычислительными устройствами и/или другими вычислительными системами. Предполагается, что описание и примеры рассматриваются только как иллюстративные, а истинный объем и сущность изобретения указаны в следующей формуле изобретения.