RU2783261C1 - Method and system for information exchange between devices - Google Patents

Method and system for information exchange between devices Download PDF

Info

Publication number
RU2783261C1
RU2783261C1 RU2022127558A RU2022127558A RU2783261C1 RU 2783261 C1 RU2783261 C1 RU 2783261C1 RU 2022127558 A RU2022127558 A RU 2022127558A RU 2022127558 A RU2022127558 A RU 2022127558A RU 2783261 C1 RU2783261 C1 RU 2783261C1
Authority
RU
Russia
Prior art keywords
hash
server
audio signal
audio
mobile
Prior art date
Application number
RU2022127558A
Other languages
Russian (ru)
Inventor
Денис Александрович Марков
Андрей Борисович Цаплин
Майкл Карлов
Original Assignee
Общество с ограниченной ответственностью "Эй Ви Эс ФЕРТ"
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Эй Ви Эс ФЕРТ" filed Critical Общество с ограниченной ответственностью "Эй Ви Эс ФЕРТ"
Application granted granted Critical
Publication of RU2783261C1 publication Critical patent/RU2783261C1/en

Links

Images

Abstract

FIELD: computer technology.
SUBSTANCE: technical solution generally relates to computing and, more specifically, to systems and methods for implementing the exchange of information between two or more mobile computing devices and/or other computing systems. This communication method allows two or more devices to pinpoint each other's location using the built-in microphone to analyze small samples of the surrounding sound space and generate a hash. These hashes are sent back to the cloud database where they are compared and matched against other hashes, and if there is a match, the devices can immediately exchange whatever information they wish. The hash can be done both on the device and on the server. Numerous open source and commercial perceptual hashing algorithms can be used to sample and match audio hashes.
EFFECT: technical result is an increase in the efficiency of the rapid exchange of financial information between mobile devices, terminals and other gadgets.
8 cl, 5 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[001] Настоящее техническое решение в общем относится к вычислительной технике и, более конкретно, к системам и способам реализации обмена информацией между двумя или более мобильными вычислительными устройствами и/или другими вычислительными системами.[001] The present technical solution generally relates to computing and, more specifically, to systems and methods for implementing the exchange of information between two or more mobile computing devices and/or other computing systems.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

[002] В современном взаимосвязанном мире мобильные приложения переживают взрывной рост, а связь между мобильными устройствами пользователей приобретает все большее значение. Для различных мобильных приложений необходимо максимально увеличить скорость и эффективность обмена информацией между мобильными устройствами, терминалами и другими гаджетами, поскольку мир становится все более взаимосвязанным. Обмениваемая информация может быть разной, начиная от контактных данных пользователей, их фото, видео, файлов, заканчивая финансовыми транзакциями и другими коммерческими данными. С другой стороны, все еще сохраняются многие препятствия и нерешенные проблемы при таком обмене информацией, особенно когда взаимодействующие мобильные устройства используют разные операционные системы.[002] In today's interconnected world, mobile applications are experiencing explosive growth, and communication between users' mobile devices is becoming increasingly important. For various mobile applications, it is necessary to maximize the speed and efficiency of information exchange between mobile devices, terminals and other gadgets, as the world becomes more and more interconnected. The exchanged information can be different, ranging from the contact details of users, their photos, videos, files, ending with financial transactions and other commercial data. On the other hand, there are still many obstacles and unresolved problems in this exchange of information, especially when interacting mobile devices use different operating systems.

[003] Любому специалисту в данной области техники понятно, ввиду вышеуказанных и других недостатков традиционной технологии, что новые и усовершенствованные системы и способы для реализации обмена информацией между двумя или более мобильными вычислительными устройствами и/или другими вычислительными системами будут быть весьма востребованными на рынке.[003] It will be appreciated by one of ordinary skill in the art, in view of the foregoing and other shortcomings of conventional technology, that new and improved systems and methods for implementing information exchange between two or more mobile computing devices and/or other computing systems will be highly sought after in the market.

[004] Существующие способы обмена финансовой информацией можно разделить по используемым технологиям: NFC, динамический QR, ультразвук и ручной ввод данных. Настоящее техническое имеет значительные преимущества по сравнению с каждым из них. Технология NFC в качестве платежного инструмента ограничена территориально производителями устройств и разработчиками операционных систем, а также требует наличия специализированного модуля, который отсутствует во многих смартфонах, для работы технологии. Для данного изобретения необходимы только стандартные модули смартфона, что дает возможность ее использования на абсолютно любом смартфоне и без территориальных ограничений. Технология обмена информацией с использованием динамического QR требует наличия специального дисплея на терминале приема платежей или кассе, для технологии. Данному изобретению достаточно наличие микрофона, который зачастую встроен в современные терминалы приема платежей, а также, его стоимость значительно дешевле, чем дисплея. Главный недостаток ультразвукового способа обмена информации заключается в нестабильности его работы, т.к. на качество передачи данных влияет множество факторов, таких как: расположение устройств относительно друг друга, наличие отражающих звук предметов, модель смартфона и настройки ОС. Ручной ввод данных значительно уступает данному техническому решению в удобстве использования и времени обмена данными.[004] Existing ways of exchanging financial information can be divided according to the technologies used: NFC, dynamic QR, ultrasound and manual data entry. This technical has significant advantages over each of them. NFC technology as a payment instrument is limited geographically by device manufacturers and operating system developers, and also requires a specialized module, which is not available in many smartphones, for the technology to work. This invention requires only standard smartphone modules, which makes it possible to use it on absolutely any smartphone and without territorial restrictions. The technology of information exchange using dynamic QR requires a special display on the payment terminal or cash register for the technology. This invention is sufficient to have a microphone, which is often built into modern payment terminals, and also, its cost is much cheaper than the display. The main disadvantage of the ultrasonic method of information exchange is the instability of its work, because The quality of data transfer is affected by many factors, such as the location of devices relative to each other, the presence of sound-reflecting objects, the smartphone model and OS settings. Manual data entry is significantly inferior to this technical solution in terms of ease of use and data exchange time.

СУЩНОСТЬESSENCE

[005] Технической проблемой или технической задачей, решаемой в данном техническом решении, является осуществление системы и способа обеспечения обмена информацией между устройствами.[005] The technical problem or technical problem solved in this technical solution is the implementation of a system and a method for ensuring the exchange of information between devices.

[006] Технический результат - повышение эффективности оперативного обмена финансовой информацией между мобильными устройствами, терминалами и другими гаджетами. Без использования данного технического решения при таком обмене в уровне техники сохраняется множество препятствий и проблем, особенно, если указанные устройства используют разные операционные платформы (операционные системы).[006] The technical result is an increase in the efficiency of the rapid exchange of financial information between mobile devices, terminals and other gadgets. Without the use of this technical solution in such an exchange, many obstacles and problems remain in the prior art, especially if these devices use different operating platforms (operating systems).

[007] Данный технический результат достигается за счет следующих факторов:[007] This technical result is achieved due to the following factors:

• успешная работа технологии не требует дополнительного оборудования (модуля Bluetooth, NFC, геолокации и пр.), кроме микрофона и доступа в сеть Интернет;• successful operation of the technology does not require additional equipment (Bluetooth, NFC, geolocation, etc.), except for a microphone and access to the Internet;

• запись звука и опечатки производятся на устройстве, в облако попадает исключительно хэш, который невозможно обратно конвертировать в воспроизводимое аудио, гарантируя приватность.• sound recording and typos are made on the device, only the hash gets into the cloud, which cannot be converted back into playable audio, guaranteeing privacy.

• сравнение отпечатков проводится между хэшами, генерированными в коротких промежутках времени (от 1 до 10 секунд), что позволяет безопасно сопрягать мобильные устройства с терминалами и кассами, и сделать невозможным подмену аудио среды через удаленный доступ.• fingerprints are compared between hashes generated in short time intervals (from 1 to 10 seconds), which allows you to safely pair mobile devices with terminals and cash registers, and make it impossible to change the audio environment through remote access.

[008] Указанный технический результат достигается за счет осуществления компьютерно-реализуемого способа, который выполняется на компьютеризированной системе, содержащей мобильное устройство аудиозахвата, центральный процессор, устройство отображения и память, причем реализуемый компьютером способ включает осуществление захвата аудиосигнала на основании заданного заранее критерия с использованием мобильного устройства аудиозахвата пользователя, при этом аудиосигнал содержит образец окружающего звука в окружающем звуковом пространстве мобильного устройства; использование центрального процессора для генерации хэш-функции захваченного аудиосигнала; передача хэша захваченного аудиосигнала на сервер; осуществление посредством сервера сравнения хэша захваченного сигнала и по меньшей мере одного хэша, хранящегося в облачной базе данных, причем создают первую длинную аудиосигнатуру; осуществляют проверку аудиотрека-кандидата с помощью побитного сравнения хэша длинной аудиосигнатуры захваченного аудиосигнала с хэшем длинной аудиосигнатуры, сохраненной в облачной базе данных и доступной серверу, с использованием индекса проверки; прием результата сравнения от сервера, идентифицирующего второе устройство пользователя, причем второе устройство связано с аналогичным хэшем аудиосигнала, аналогичным хэшу аудио, полученным из выборки окружающего звука в окружающем звуковом пространстве второго устройства; а также санкционирование передачи финансовых данных между мобильным устройством аудиозахвата и вторым устройством, связанным с аналогичным хэшем аудиосигнала, на основании результата сравнения.[008] The specified technical result is achieved through the implementation of a computer-implemented method that runs on a computerized system containing a mobile audio capture device, a central processor, a display device and a memory, and the computer-implemented method includes capturing an audio signal based on a predetermined criterion using a mobile user audio capture devices, wherein the audio signal comprises an ambient sound sample in the ambient sound space of the mobile device; using the CPU to generate a hash function of the captured audio signal; transmitting the hash of the captured audio signal to the server; performing by the server comparing the hash of the captured signal and at least one hash stored in the cloud database, and create the first long audio signature; verifying the candidate audio track by bit by bit comparing the hash of the long audio signature of the captured audio signal with the hash of the long audio signature stored in the cloud database and available to the server using the verification index; receiving a comparison result from a server identifying a second user device, the second device being associated with a similar audio signal hash similar to the audio hash obtained from the ambient sound sample in the second device's ambient sound space; and authorizing the transfer of financial data between the mobile audio capture device and the second device associated with the same hash of the audio signal, based on the result of the comparison.

[009] В некоторых вариантах реализации заданным критерием является наличие звукового сигнала.[009] In some implementations, the predetermined criterion is the presence of an audio signal.

[0010] В некоторых вариантах реализации заданным критерием является громкость захваченного аудиосигнала, превышающая заданный порог.[0010] In some implementations, the predetermined criterion is the volume of the captured audio signal that is above a predetermined threshold.

[0011] В некоторых вариантах реализации, когда звуковой сигнал не удовлетворяет заданному критерию, осуществляется генерирование случайного звука с использованием устройства генерации звука.[0011] In some embodiments, when the audio signal does not meet the predetermined criteria, random audio is generated using an audio generating device.

[0012] В некоторых вариантах реализации дополнительно включает передачу захваченного аудиосигнала на удаленный сервер, при этом хэш генерируется на удаленном сервере.[0012] In some embodiments, the implementation further includes transmitting the captured audio signal to a remote server, wherein the hash is generated at the remote server.

[0013] В некоторых вариантах реализации удаленный сервер является облачным сервером.[0013] In some embodiments, the remote server is a cloud server.

[0014] В некоторых вариантах реализации окружающее звуковое пространство второго устройства расположено в другом географическом местоположении, чем окружающее звуковое пространство устройства аудиозахвата.[0014] In some embodiments, the ambient sound space of the second device is located in a different geographic location than the ambient sound space of the audio capture device.

[0015] В некоторых вариантах реализации сервер содержит базу данных, в которой хранится множество хэшей аудиосигнала.[0015] In some embodiments, the server contains a database that stores a plurality of hashes of the audio signal.

[0016] Способ по п. 1, характеризующийся тем, что дополнительно включает выполнение передачи данных со вторым устройством на основе идентификатора второго устройства.[0016] The method of claim 1, further comprising performing a data communication with the second device based on the identifier of the second device.

[0017] В некоторых вариантах реализации хэш захваченного аудиосигнала и аналогичный хэш аудиосигнала содержат перцептивные хэши.[0017] In some embodiments, the hash of the captured audio signal and the similar hash of the audio signal comprise perceptual hashes.

ПОДРОБНОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙDETAILED DESCRIPTION OF THE DRAWINGS

[0018] Прилагаемые чертежи, которые включены в настоящее описание и составляют его часть, иллюстрируют варианты осуществления настоящего изобретения и вместе с описанием служат для объяснения и иллюстрации принципов работы технического решения.[0018] The accompanying drawings, which are included in and form part of this specification, illustrate embodiments of the present invention and, together with the description, serve to explain and illustrate the principles of operation of the technical solution.

[0019] Фиг. 1 иллюстрирует примерный вариант осуществления компьютеризированной системы для обмена информацией между мобильными вычислительными устройствами.[0019] FIG. 1 illustrates an exemplary embodiment of a computerized system for exchanging information between mobile computing devices.

[0020] Фиг. 2 иллюстрирует другой альтернативный вариант осуществления компьютеризированной системы для обмена информацией между мобильными вычислительными устройствами.[0020] FIG. 2 illustrates another alternative embodiment of a computerized system for exchanging information between mobile computing devices.

[0021] Фиг. 3 иллюстрирует примерную блок-схему варианта осуществления способа, выполняемого посредством компьютеризированной системой согласно изобретению для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2.[0021] FIG. 3 illustrates an exemplary flowchart of an embodiment of a method performed by a computerized system according to the invention for exchanging information between the mobile computing devices shown in FIG. 1 and 2.

[0022] Фиг. 4 иллюстрирует примерный вариант осуществления компьютеризированной мобильной системы, которая может использоваться в качестве мобильного вычислительного устройства пользователя в сочетании с компьютеризированной системой для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2.[0022] FIG. 4 illustrates an exemplary embodiment of a computerized mobile system that can be used as a user's mobile computing device in conjunction with the computerized system for exchanging information between the mobile computing devices shown in FIG. 1 and 2.

[0023] Фиг. 5 иллюстрирует примерный вариант компьютеризированной серверной системы, которую можно использовать, например, в качестве сервера компьютеризированной системы согласно изобретению для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2.[0023] FIG. 5 illustrates an exemplary computerized server system that can be used, for example, as a server of the computerized system according to the invention for exchanging information between the mobile computing devices shown in FIG. 1 and 2.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION

[0024] В контексте настоящего описания «сервер» представляет собой компьютерную программу, которая работает на соответствующем аппаратном обеспечении и способна принимать запросы (например, от устройств) по сети и выполнять эти запросы или вызывать выполнение этих запросов. Аппаратное обеспечение может быть одним физическим компьютером или одной физической компьютерной системой, но ни то, ни другое не является обязательным для настоящей технологии. В настоящем контексте использование выражения "сервер" не предполагает, что каждая задача (например, принятые инструкции или запросы) или какая-либо конкретная задача будут приняты, выполнены или вызваны для выполнения одним и тем же сервером (т.е. тем же самым программным обеспечением и/или аппаратным обеспечением); данное выражение предполагает, что любое количество программных элементов или аппаратных устройств может быть задействовано в приеме/отправке, выполнении или вызове для выполнения любой задачи или запроса, или последствий любой задачи или запроса; и все это программное обеспечение и аппаратное обеспечение может быть одним сервером или многочисленными серверами, причем оба данных случая включены в выражение "по меньшей мере один сервер".[0024] As used herein, a "server" is a computer program that runs on appropriate hardware and is capable of receiving requests (eg, from devices) over a network and fulfilling or causing those requests to be executed. The hardware may be one physical computer or one physical computer system, but neither is required for the present technology. In the present context, the use of the term "server" does not imply that every task (e.g. received instructions or requests) or any particular task will be received, executed or called for execution by the same server (i.e. the same software software and/or hardware); this expression implies that any number of software elements or hardware devices can be involved in receiving / sending, executing or calling to perform any task or request, or the consequences of any task or request; and all of this software and hardware may be a single server or multiple servers, both of which are included in the expression "at least one server".

[0025] В контексте настоящего описания "устройство" представляет собой любое компьютерное оборудование, которое способно выполнять программное обеспечение, которое является надлежащим для релевантной поставленной задачи. Таким образом, некоторые (неограничивающие) примеры устройств включают в себя персональные компьютеры (настольные ПК, ноутбуки, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что устройство, выступающее в качестве устройства в настоящем контексте, не исключается из возможности выступать в качестве сервера для других устройств. Использование термина "устройство" не исключает использования многочисленных устройств при приеме/отправке, выполнении или вызове выполнения какой-либо задачи или запроса, или последствий любой задачи или запроса, или этапов любого описанного в данном документе способа.[0025] As used herein, a "device" is any computer hardware that is capable of executing software that is appropriate for the relevant task at hand. Thus, some (non-limiting) examples of devices include personal computers (desktops, laptops, netbooks, etc.), smartphones and tablets, and network equipment such as routers, switches, and gateways. It should be noted that a device acting as a device in the present context is not excluded from being able to act as a server for other devices. The use of the term "device" does not preclude the use of multiple devices when receiving/sending, performing or causing the execution of any task or request, or the consequences of any task or request, or the steps of any method described herein.

[0026] В контексте настоящего описания "база данных" представляет собой любую структурированную совокупность данных, независимо от ее конкретной структуры, программное обеспечение для администрирования базы данных, или компьютерное оборудование, на котором данные хранятся, реализуются или их делают доступными для использования иным образом. База данных может находиться на том же аппаратном обеспечении, что и процесс, который хранит или использует информацию, хранящуюся в базе данных, или она может находиться на отдельном аппаратном обеспечении, например, на выделенном сервере или множестве серверов.[0026] As used herein, a "database" is any structured collection of data, regardless of its specific structure, database administration software, or computer equipment on which data is stored, implemented, or otherwise made available for use. The database may reside on the same hardware as the process that stores or uses the information stored in the database, or it may reside on separate hardware such as a dedicated server or multiple servers.

[0027] В контексте настоящего описания термин "информация" включает в себя информацию любого характера или вида, которая может быть сохранена в базе данных любым образом. Таким образом, информация включает в себя, но без ограничения, аудиовизуальные произведения (изображения, фильмы, звуковые записи, презентации и т.д.), данные (данные о местоположении, численные данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы, списки слов и т.д.[0027] In the context of the present description, the term "information" includes information of any nature or kind that can be stored in the database in any way. Thus, information includes, but is not limited to, audiovisual works (images, films, sound recordings, presentations, etc.), data (location data, numerical data, etc.), text (opinions, comments , questions, messages, etc.), documents, spreadsheets, word lists, etc.

[0028] В контексте настоящего описания, если специально не указано иное, подразумевается, что термин «компонент» включает в себя программное обеспечение (соответствующее конкретному аппаратному контексту), которое является как необходимым, так и достаточным для реализации конкретной функции (функций), на которую ссылаются.[0028] As used herein, unless specifically stated otherwise, the term "component" is intended to include software (as appropriate in a particular hardware context) that is both necessary and sufficient to implement a particular function(s), on which is being referenced.

[0029] В контексте настоящего описания предполагается, что выражение "используемый компьютером носитель информации" включает в себя носители любого характера и вида, в том числе RAM, ROM, диски (CD-ROM, DVD, дискеты, накопители на жестких дисках и т.д.), USB-ключи, твердотельные накопители, ленточные накопители и т.д.[0029] As used herein, the expression "media used by a computer" is intended to include media of any kind and kind, including RAM, ROM, disks (CD-ROMs, DVDs, floppy disks, hard disk drives, etc.) etc.), USB keys, SSDs, tape drives, etc.

[0030] В контексте настоящего описания слова "первый", "второй", "третий" и т.д. используются в качестве прилагательных только для того, чтобы позволить отличать существительные, которые они модифицируют, друг от друга, а не для описания какой-либо особой взаимосвязи между такими существительными. Таким образом, например, следует понимать, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо конкретного порядка, типа, хронологии, иерархии или ранжирования (например) таких серверов, равно как и их использование (само по себе) не означает, что какой-либо "второй сервер" должен обязательно существовать в любой определенной ситуации. Кроме того, как обсуждается в других контекстах данного документа, ссылка на "первый" элемент и "второй" элемент не исключает того, что эти два элемента фактически являются одним и тем же элементом реального мира. Таким образом, например, в некоторых случаях "первый" сервер и "второй" сервер могут быть одним и тем же программным обеспечением и/или аппаратным обеспечением, в других случаях они могут представлять собой разное программное обеспечение и/или аппаратное обеспечение.[0030] In the context of the present description, the words "first", "second", "third", etc. are used as adjectives only to allow the nouns they modify to be distinguished from each other, and not to describe any particular relationship between such nouns. Thus, for example, it should be understood that the use of the terms "first server" and "third server" does not imply any particular order, type, chronology, hierarchy or ranking (for example) of such servers, nor does their use (in itself ) does not mean that some "second server" must necessarily exist in any given situation. Also, as discussed elsewhere in this document, reference to a "first" element and a "second" element does not exclude that the two elements are in fact the same real world element. Thus, for example, in some cases the "first" server and the "second" server may be the same software and/or hardware, in other cases they may be different software and/or hardware.

[0031] В нижеследующем подробном описании будет сделана ссылка на прилагаемые чертежи, на которых одинаковые функциональные элементы обозначены одинаковыми цифрами. Вышеупомянутые сопровождающие чертежи приведены в качестве иллюстрации, а не в качестве ограничения, то есть конкретные варианты осуществления, соответствующие принципам настоящего изобретения. Эти реализации описаны достаточно подробно, чтобы специалисты в данной области техники могли применять изобретение на практике. Следует понимать, что могут быть использованы другие реализации и что могут быть сделаны структурные изменения и/или замены различных элементов, не выходя за рамки объема и смысл настоящего изобретения. Следовательно, нижеследующее подробное описание не следует толковать в ограниченном смысле. Кроме того, различные описанные варианты осуществления изобретения могут быть реализованы в виде программного обеспечения, работающего на компьютере общего назначения, в виде специализированного аппаратного обеспечения или комбинации программного и аппаратного обеспечения.[0031] In the following detailed description, reference will be made to the accompanying drawings, in which the same functional elements are designated by the same numbers. The above accompanying drawings are given by way of illustration and not by way of limitation, that is, specific embodiments consistent with the principles of the present invention. These implementations are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that other implementations may be used and that structural changes and/or substitutions of various elements may be made without departing from the scope and spirit of the present invention. Therefore, the following detailed description should not be construed in a limited sense. In addition, the various embodiments of the invention described may be implemented as software running on a general purpose computer, as dedicated hardware, or as a combination of software and hardware.

[0032] Для решения вышеуказанных и других проблем, связанных с традиционной технологией, в одном или нескольких вариантах осуществления, описанных в настоящем документе, реализованы различные примерные системы и способы для реализации обмена информацией между двумя или более мобильными вычислительными устройствами и/или другими вычислительными системами. Один из аспектов концепций изобретения, описанных в настоящем документе, обеспечивает способ обмена информацией, которая позволяет двум или более вычислительным устройствам, таким как смартфоны или другие гаджеты, точно определять местоположение друг друга, используя их встроенный микрофон и их центральный процессор для захвата и анализа небольших выборок информации, окружающее звуковое пространство. В одном или нескольких вариантах осуществления на основе захваченного звукового образца создается хэш. Этот созданный хэш отправляется обратно в облачную базу данных, где он сравнивается и сопоставляется с другими хранящимися в нем хэшами. Если совпадение найдено, устройства могут немедленно обмениваться любой необходимой информацией. В различных вариантах осуществления вышеупомянутый хэш может быть сгенерирован на самом мобильном устройстве или на удаленном (например, облачном) сервере.[0032] To address the above and other problems associated with conventional technology, one or more of the embodiments described herein implement various exemplary systems and methods for implementing information exchange between two or more mobile computing devices and/or other computing systems. . One aspect of the inventive concepts described herein provides a method for exchanging information that allows two or more computing devices, such as smartphones or other gadgets, to pinpoint each other's location using their built-in microphone and their CPU to capture and analyze small samples of information surrounding the sound space. In one or more embodiments, a hash is generated based on the captured audio sample. This generated hash is sent back to the cloud database where it is compared and matched against the other hashes stored in it. If a match is found, the devices can immediately exchange any necessary information. In various embodiments, the aforementioned hash may be generated on the mobile device itself or on a remote (eg cloud) server.

[0033] Средство идентификации хэшей в том виде, в котором оно описано в данном описании, функционирует таким образом, чтобы решить вышеописанные проблемы, обеспечивая индивидуальным клиентам осуществляемую в реальном масштабе времени на стороне сервера идентификацию объектов аудиовизуальной информации, включенных в вещание потоковой аудиовизуальной информации. Эти объекты аудиовизуальной информации включают в себя, например, песни, рекламные ролики, музыкальные заставки, позывные станций и т.д. Вообще, средство идентификации аудиовизуальной информации функционирует, предоставляя, по меньшей мере, один сервер, который обеспечивает осуществляемую в реальном масштабе времени идентификацию объектов аудиовизуальной информации в потоке вещаемой аудиовизуальной информации, для индивидуальных клиентов, посредством сравнения хэшей, вычисляемых каждым клиентом на основе частей потока аудиовизуальной информации, взятых в качестве образцов, с базой данных известных хэшей. Вообще, вычисленные хэши посылаются каждым клиентом на сервер и сравниваются либо напрямую, либо через имеющийся на стороне сервера кэш хэшей, с большой базой данных хранящихся заранее вычисленных хэшей, идентификационные данные которых известны.[0033] The hash identification engine, as described herein, functions to solve the problems described above by providing individual clients with real-time, server-side identification of media objects included in a streaming media broadcast. These media items include, for example, songs, commercials, musical intros, station call signs, and so on. In general, the media identification means operates by providing at least one server that provides real-time identification of media objects in a broadcast media stream to individual clients by comparing hashes computed by each client based on parts of the media stream. information taken as samples, with a database of known hashes. In general, the computed hashes are sent by each client to the server and compared, either directly or via a server-side hash cache, with a large database of stored precomputed hashes whose identities are known.

[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.[0034] In FIG. 1 shows an exemplary embodiment of a computerized system 100 for exchanging financial information between mobile devices 101 and 102 that are spatially adjacent to each other, such as may be used to pay for services or goods. As shown in FIG. 1, the mobile audio capture device 101 includes a microphone 103 that captures an ambient sound sample that includes sound emitted by a second user device 102, which in an embodiment may be a POS terminal, for example. The captured raw audio signal 104 is then sent to the processor 105 of the mobile audio capture device 101, which creates a hashed version of it using any hashing algorithm now known or later developed. The hash of the captured audio signal 106 is then sent to the server 107 where it is compared by the server processor (see element 108 in FIG. 1) against a set of stored hashes 109. Perceptual hash algorithms describe a class of functions for generating comparable hashes. They use various image properties to construct an individual hash. In the future, these hashes can be compared with each other. If the hashes are different, then the data is different. If the hashes match, then the data is most likely the same (since there is a possibility of collisions, the same hashes do not guarantee the same data). In various embodiments, server 107 may be deployed in the cloud. The hash comparison result 110 is returned to the mobile audio capture device 101, and the identification result is displayed to the user using the user interface 111 that is generated on the corresponding display device. In various embodiments, the result 110 of the hash comparison indicates to the user the identifier of the second user device 102. Thus, the mobile audio capture device 101 can accurately identify the second user device 102 as being nearby. Thus, the mobile audio capture device 101 in the implementation example does not even need to be applied to the POS terminal 102 in order to exchange financial information and carry out a financial transaction. This identification may be used to authorize and/or initiate data communication between mobile devices 101 and 102.

[0035] В течение первого этапа процедуры сравнения, быстрого выбора кандидата в облаке, сервер 107 находит аудиосигнал-кандидат, используя первую короткую аудиосигнатуру (короткую аудиосигнатуру входящего аудиосигнала или хэш) в прюнинг-индексе. Аудиосигнал-кандидат может также являться аудиотреком, который содержит по меньшей мере одно хромаслово, полностью совпадающее с хромасловом, идентифицированным во входящем аудиосигнале.[0035] During the first step of the comparison procedure, quick cloud candidate selection, the server 107 finds a candidate audio signal using the first short audio signature (incoming audio short audio signature or hash) in the pruning index. The candidate audio signal may also be an audio track that contains at least one chroma word that exactly matches the chroma word identified in the incoming audio signal.

[0036] В течение второго этапа процедуры сравнения, этапа проверки, сервер 107 создает первую длинную аудиосигнатуру. Первая длинная аудиосигнатура может описать часть аудиосигнала длительностью до 120 первых секунд входящего аудиосигнала.[0036] During the second step of the comparison procedure, the verification step, the server 107 creates a first long audio signature. The first long audio signature may describe a portion of the audio signal up to the first 120 seconds of the incoming audio signal.

[0037] После этого сервер 107 осуществляет проверку хэща аудиотрека-кандидата с помощью побитного сравнения длинной аудиосигнатуры входящего аудиосигнала с хэшем длинной аудиосигнатуы, сохраненной в облачной базе данных и доступной серверу 107, с использованием индекса проверки. На этом этапе сервер 107 может учесть разное качество сравниваемых аудиосигналов, а также сдвиг по времени между сравниваемыми аудиосигналами.[0037] Thereafter, the server 107 checks the hash of the candidate audio track by bit-by-bit comparison of the long audio signature of the incoming audio signal with the hash of the long audio signature stored in the cloud database and available to the server 107 using the check index. At this stage, the server 107 can take into account the different quality of the compared audio signals, as well as the time offset between the compared audio signals.

[0038] На этом этапе сервер 107 исключает из списка кандидатов те проиндексированные аудиосигналы, чья длина отличается от длины входящего аудиосигнала на предварительно определенное время, например, на 10 секунд, 30 секунд, минуту и так далее. Совпадение аудиосигналов устанавливается при совпадении их аудиосигнатур на предварительно определенном уровне. Например, в некоторых вариантах осуществления совпадение битов в длинных аудиосигнатурах входящего аудиосигнала и аудиосигнала-кандидата не обязательно должно быть стопроцентным. В таких случаях байты длинной аудиосигнатуры аудиосигналов совпадают на 90%, 80%, 70% и так далее.[0038] At this stage, the server 107 excludes from the list of candidates those indexed audio signals whose length differs from the length of the incoming audio signal by a predetermined time, for example, 10 seconds, 30 seconds, a minute, and so on. An audio match is established when their audio signatures match at a predetermined level. For example, in some embodiments, bit matching in the long audio signatures of the incoming audio signal and the candidate audio signal need not be 100% matched. In such cases, the long audio signature bytes of the audio signals match 90%, 80%, 70%, and so on.

[0039] Следует отметить, что конкретные варианты осуществления аудиосигнатур никак не ограничены и, в таком случае, могут быть использованы различные подходы известного уровня техники к созданию аудиосигнатур. Пример такого подхода, который может быть использован для создания аудиосигнатуры, предложен в патенте США US 7013301 «Аудиосигнатурная система и способ».[0039] It should be noted that specific embodiments of audio signatures are not limited in any way and, in such a case, various prior art approaches to creating audio signatures can be used. An example of such an approach that can be used to generate an audio signature is provided in US Pat. No. 7,013,301 "Audio Signature System and Method".

[0040] Другой подход к созданию аудиосигнатуры описан в статье "Как функционирует хромапринт?" за авторством Lukas Lalinsky, опубликованной на веб-странице https://oxyqene.sk/2011/01/how-does-chromaprint-work/. "Хромапринт" является клиентской библиотекой, которая осуществляет пользовательский алгоритм для извлечения аудиосигнатур из источника аудио. Гиперссылки на исходный код опубликованы на https://acoustid.org/chromaprint. Исходный код доступен для авторизации по лицензии LGPL2.1+ (стандартная общественная лицензия ограниченного применения).[0040] Another approach to creating an audio signature is described in the article "How does a chromaprint work?" by Lukas Lalinsky published at https://oxyqene.sk/2011/01/how-does-chromaprint-work/. "Chromaprint" is a client library that implements a custom algorithm for extracting audio signatures from an audio source. Hyperlinks to the source code are published at https://acoustid.org/chromaprint. The source code is available for authorization under the LGPL2.1+ (Less General Public License).

[0041] Технология "Хромапринт" позволяет представить аудиосигнал как спектрограмму, которая показывает, как на конкретных частотах меняется с течением времени интенсивность. Для создания спектрограммы аудиосигнал делится на множество перекрывающихся интервалов, которые обрабатываются с помощью функции преобразования Фурье.[0041] Technology "Chromaprint" allows you to represent the audio signal as a spectrogram, which shows how the intensity changes over time at specific frequencies. To create a spectrogram, the audio signal is divided into many overlapping intervals, which are processed using a Fourier transform function.

[0042] В случае хромапринта входящий аудиосигнал может быть преобразован с частотой 11025 Гц и размером интервалов 4096 (0,371 с) с перекрытием 2/3. Хромапринт далее обрабатывает информацию, преобразуя частоты в ноты, и в итоге получается 12 ячеек, каждая из которых содержит соответствующую ноту. В результате создается представление аудио, которое устойчиво к изменениям.[0042] In the case of a chroma print, the incoming audio signal can be converted at 11025 Hz and 4096 intervals (0.371 s) with a 2/3 overlap. The chromaprint further processes the information, converting the frequencies into notes, resulting in 12 cells, each containing a corresponding note. The result is an audio representation that is resilient to change.

[0043] Соответственно, на каждую из них применяется предварительно определенный набор из 16 фильтров, причем эти фильтры улавливают различия в интенсивности в нотах по времени.[0043] Accordingly, a predefined set of 16 filters are applied to each of them, with these filters capturing differences in note intensity over time.

[0044] Как будет понятно специалистам в данной области, могут быть использованы другие способы создания аудиосигнатур. Кроме того, могут быть использованы описанные способы с модификациями.[0044] As will be appreciated by those skilled in the art, other methods for generating audio signatures may be used. In addition, the described methods with modifications can be used.

[0045] Однако, следует понимать, что в некоторых вариантах осуществления после того, как конкретный способ создания аудиосигнатур был выбран, он применяется для создания и коротких, и длинных аудиосигнатур. В других вариантах осуществления могут быть применены различные подходы для создания коротких и длинных аудиосигнатур.[0045] However, it should be understood that in some embodiments, once a particular audio signature generation method has been selected, it is used to generate both short and long audio signatures. In other embodiments, different approaches may be taken to create short and long audio signatures.

[0046] В качестве неограничивающего примера, поиск может быть выполнен с использованием прюнинг-индекса. Прюнинг-индекс используется для быстрого выбора аудиосигналов-кандидатов в базе данных. В некоторых вариантах осуществления короткая аудиосигнатура хранится в прюнинг-индексе, который сформирован для множества коротких аудиосигнатур.[0046] As a non-limiting example, a search can be performed using a pruning index. The pruning index is used to quickly select candidate audio signals in the database. In some embodiments, a short audio signature is stored in a pruning index that is generated for a plurality of short audio signatures.

[0047] Поиск может быть осуществлен следующим образом: сначала сервер 107 извлекает первую многобайтовую последовательность соответствующего хромаслова первой короткой аудиосигнатуры и находит индекс ключа, соответствующий первой многобайтовой последовательности. Если хромаслово первой короткой аудиосигнатуры выглядит как 5214-5255-5008-5047, соответствующим индексом ключа является индекс ключа 5214-5255-5008.[0047] The search can be performed as follows: first, the server 107 extracts the first multibyte sequence of the corresponding chromaword of the first short audio signature and finds the key index corresponding to the first multibyte sequence. If the chromaword of the first short audio signature looks like 5214-5255-5008-5047, then the corresponding key index is the key index 5214-5255-5008.

[0048] Набор списков словопозиций соответствует ключу индекса. Сервер 107 извлекает этот набор списков словопозиций. Затем сервер 107 извлекает последующий байт соответствующего хромаслова первой короткой аудиосигнатуры и находит ключ сортировки, соответствующий последующему байту хромаслова первой короткой аудиосигнатуры.[0048] The set of lists of collocations corresponds to the index key. The server 107 retrieves this set of posting lists. The server 107 then extracts the subsequent byte of the corresponding chromaword of the first short audio signature and finds the sort key corresponding to the subsequent byte of the first short audio signature chromaword.

[0049] Например, если хромаслово первой короткой аудиосигнатуры выглядит как 5214-5255-5008-5047, соответствующий ключ сортировки будет являться ключом сортировки (5047). Используя этот ключ сортировки, сервер 107 извлекает список словопозиций для хромаслова 5214-5255-5008-5047.[0049] For example, if the chromaword of the first short audio signature looks like 5214-5255-5008-5047, the corresponding sort key would be the sort key (5047). Using this sort key, server 107 retrieves a list of postings for chromaword 5214-5255-5008-5047.

[0050] Затем на следующем этапе с уже извлеченным списком словопозиций сервер 107 может находить и выбирать аудиосигналы, в которых появляется хромаслово 5214-5255-5008-5047. В качестве неограничивающего примера, аудиосигнал-кандидат может быть найден с помощью использования идентификатора аудиосигнала, содержащегося в списке словопозиций соответствующего проиндексированного хромаслова. Поскольку одно и то же хромаслово может быть найдено в нескольких различных индексированных аудиосигналах, несколько соответствующих индексированных аудиосигналов с несколькими соответствующими идентификаторами трека могут быть выбраны как аудиосигналы-кандидаты. Таким образом, для одного хромаслова первой короткой аудиосигнатуры могут быть выбраны несколько аудиосигналов-кандидатов.[0050] Then, in the next step, with the list of word positions already retrieved, the server 107 can find and select audio signals in which the chroma word 5214-5255-5008-5047 appears. As a non-limiting example, a candidate audio signal can be found by using the audio signal identifier contained in the posting list of the corresponding indexed chromaword. Since the same chromaword can be found in several different indexed audio signals, several corresponding indexed audio signals with several corresponding track IDs can be selected as candidate audio signals. Thus, for one chromaword of the first short audio signature, several candidate audio signals can be selected.

[0051] На этапе сервер 107 повторяет предыдущие этапы для каждого хромаслова первой короткой аудиосигнатуры. Когда определен дополнительный аудиосигнал-кандидат в ответ на поиск, осуществленный с учетом каждого следующего хромаслова первой короткой аудиосигнатуры, эти дополнительные аудиосигналы должны быть добавлены ко множеству аудиосигналов-кандидатов. Таким образом, множество аудиотреков-кандидатов может содержать все аудиосигналы, причем каждый аудиосигнал имеет по меньшей мере одно хромаслово, которое соответствует любому из множества хромаслов первой короткой аудиосигнатуры. Существует возможность того, что некоторые аудиосигналы-кандидаты содержат более высокое или более низкое число хромаслов, соответствующих хромаслову первой короткой аудиосигнатуры.[0051] In step, the server 107 repeats the previous steps for each chromaword of the first short audio signature. When an additional candidate audio signal is determined in response to a search performed considering each next chromoword of the first short audio signature, these additional audio signals must be added to the plurality of candidate audio signals. Thus, a plurality of candidate audio tracks may comprise all audio signals, with each audio signal having at least one chroma word that matches any of the plurality of chroma words of the first short audio signature. It is possible that some candidate audio signals contain a higher or lower number of chromawords corresponding to the chromaword of the first short audio signature.

[0052] Второе устройство пользователя 102 работает, по существу, аналогичным образом. Его микрофон 112 улавливает окружающий звуковой сигнал и преобразует его в электронную форму. Необработанный аудиосигнал 113 отправляется в процессор 114, который создает хэш аудиосигнала 115, который впоследствии отправляется в процессор 108 сервера 107. Процессор сравнивает полученный хэш аудиосигнала 115 со звуковыми хэшами, хранящимися в хранилище 109 хэшей, и возвращает результат 116 сравнения на второе устройство пользователя 102. Результат сравнения отображается пользователю в пользовательском интерфейсе 117, например, в виде зеленой галочки, после чего осуществляется непосредственно финансовая транзакция.[0052] The second user device 102 operates in a substantially similar manner. Its microphone 112 picks up the ambient sound signal and converts it into electronic form. The raw audio signal 113 is sent to the processor 114, which creates a hash of the audio signal 115, which is subsequently sent to the processor 108 of the server 107. The processor compares the received hash of the audio signal 115 with the audio hashes stored in the hash store 109 and returns the comparison result 116 to the second user device 102. The comparison result is displayed to the user in the user interface 117, for example, in the form of a green checkmark, after which the financial transaction is carried out directly.

[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.[0053] In one or more embodiments, numerous currently known, commercially available, or later developed perceptual hashing algorithms may be used to select and match hashes, including but not limited to FDMF; musicURI; jHears; Schmidt (part of Tuneprint); audio scout; OpenFP; echoprint, libFoolD; freetantrum; advertise; Last.fm AudiolD; Shazam; RoviMediaRecognitionService (part of AMGLASSO); Gracenote MusicID; Philips; (JSC and The Song Tapper.

[0054] He ограничиваясь, могут использоваться в более широком смысле следующие фреймворки.[0054] Without limitation, the following frameworks may be used more broadly.

[0055] Open Source[0055] Open Source

• нахождение хэшей в FDMF Курта Розенфельда.• Finding hashes in Kurt Rosenfeld's FDMF.

• MusicURI, часть проекта Mpeg-7 Audio DB.• MusicURI, part of the Mpeg-7 Audio DB project.

• jHears - это акустическая среда создания хэшей, основанная на дизайне FutureProofFingerPrint Джеффа Шмидта (ранее работавшего в Tuneprint). jHears разработан Юхой Хельджоранта.• jHears is an acoustic hashing framework based on the design of FutureProofFingerPrint by Jeff Schmidt (formerly of Tuneprint). jHears is developed by Juha Heljoranta.

• AudioScout. Основан на библиотеке хэшей pHash, разработанной теми же авторами. Использует алгоритм Philips Robust Hashing.• Audio Scout. Based on the pHash hash library developed by the same authors. Uses the Philips Robust Hashing algorithm.

• OpenFP.• OpenFP.

• Echoprint. Решение для получения хэшей аудио, разработанное Echo Nest.• echoprint. Audio hash solution developed by Echo Nest.

• libFoolD. Библиотека звуковых хэшей, используемая и разработанная для foosic.• libFoolD. Sound hash library used and developed for foosic.

[0056] Частично Open-Source[0056] Partially Open Source

• Last.fm. Библиотека звуковых хэшей на стороне клиента (fplib) имеет открытый исходный код. Использует алгоритм «Компьютерное зрение для идентификации музыки».• Last.fm. The client side audio hash library (fplib) is open source. Uses the "Computer Vision for Music Identification" algorithm.

[0057] Коммерческое ПО.[0057] Commercial software.

• Audible Magic.• Audible Magic.

• AudiolD. Разработан в Институте интегральных схем Фраунгофера IIS и Институте цифровых медиатехнологий Фраунгофера IDMT, в настоящее время предоставляется mufin GmbH.• AudioLD. Developed by the Fraunhofer Institute for Integrated Circuits IIS and the Fraunhofer Institute for Digital Media Technology IDMT, currently provided by mufin GmbH.

• Shazam. Запатентованная система снятия музыкальных хэшей, в настоящее время предлагаемая непосредственно пользователям по телефону.• Shazams. Patented music hashing system currently offered directly to users over the phone.

• Служба распознавания носителей Rovi (ранее AMG LASSO).• Rovi Media Recognition Service (formerly AMG LASSO).

• Gracenote MusicID.• Gracenote MusicID.

• Philips. Один из первых масштабируемых алгоритмов звуковых звуковых хэшей.• Philips. One of the first scalable audio hash algorithms.

• USC.• USC.

[0058] Следует отметить, что в примерном варианте осуществления системы, показанном на Фиг. 1, пользователю не нужно вводить какие-либо идентификаторы (например, номер телефона, псевдоним и т.д.) в мобильное устройство, чтобы идентифицировать его для другого мобильного устройства. Соответствующие мобильные устройства должны быть идентифицированы как находящиеся рядом друг с другом на основе их звуковой среды, после чего финансовая информация может быть безопасно отправлена между мобильными устройствами через облако и осуществлена финансовая транзакция как с аналогом ApplePay, где технология работает на беспроводной передаче данных NFC. В данном же решении действует принцип обмена звуковой информацией для синхронизации. В различных вариантах осуществления любое устройство со встроенным микрофоном может быть использовано в связи с системой 100, включая, помимо прочего, мобильные телефоны и смартфоны, банковские терминалы, терминалы самообслуживания и т.п.[0058] It should be noted that in the exemplary embodiment of the system shown in FIG. 1, the user does not need to enter any identifiers (eg, phone number, alias, etc.) into the mobile device in order to identify it to another mobile device. Appropriate mobile devices must be identified as being next to each other based on their sound environment, after which financial information can be securely sent between mobile devices via the cloud and a financial transaction can be carried out similar to ApplePay, where the technology works on NFC wireless data transmission. In this solution, the principle of the exchange of sound information for synchronization operates. In various embodiments, any device with an integrated microphone may be used in connection with the system 100, including, but not limited to, mobile phones and smart phones, banking terminals, self-service terminals, and the like.

[0059] Фиг. 2 иллюстрирует другой примерный вариант компьютеризированной системы 200 для обмена информацией между мобильными вычислительными устройствами 101 и 102, которые пространственно расположены рядом друг с другом. В этом варианте осуществления мобильное устройство аудиозахвата 101 работает так же, как мобильное устройство аудиозахвата 101, показанное на Фиг. 1. С другой стороны, в этом варианте осуществления 200 второе устройство пользователя 102 не имеет возможности обработки для создания хэш-функции захваченного аудиосигнала, как это может быть в случае со старыми мобильными телефонами. Следовательно, вместо локального создания хэша второе устройство пользователя 102 отправляет захваченный необработанный аудиосигнал 201 на сервер 107, который использует свой более мощный процессор для создания хэша звука 202 и выполнения сравнения созданного звукового хэша с сохраненным звуковым хэшем. Результаты 116 сравнения снова возвращаются на второе устройство пользователя 102, где они отображаются пользователю с помощью пользовательского интерфейса 117 и/или используются для авторизации или инициирования обмена данными между мобильными устройствами 101 и 102.[0059] FIG. 2 illustrates another exemplary computerized system 200 for exchanging information between mobile computing devices 101 and 102 that are spatially adjacent to each other. In this embodiment, the mobile audio capture device 101 operates in the same way as the mobile audio capture device 101 shown in FIG. 1. On the other hand, in this embodiment 200, the second user device 102 does not have the processing capability to create a hash function of the captured audio signal, as may be the case with older mobile phones. Therefore, instead of generating the hash locally, the second user device 102 sends the captured raw audio signal 201 to the server 107, which uses its more powerful processor to generate the audio hash 202 and compare the generated audio hash with the stored audio hash. The comparison results 116 are again returned to the user's second device 102 where they are displayed to the user via the user interface 117 and/or used to authorize or initiate communication between the mobile devices 101 and 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 данных многими различными способами. Однако, лишь в качестве примеров, множество цифровых аудиосигналов может быть записано ответственными за оценку людьми и/или получено с помощью краудсорсинга.[0060] In various embodiments, hash storage 109 may be deployed as a database. In various embodiments, this database may be implemented on any currently known or later developed type of database management system, such as a relational database management system, including but not limited to MySQL, Oracle, SQL Server, DB2, SQL Anywhere , PostgreSQL, SQLite, Firebird, Redis, MongoDB, Hadoop, and/or MaxDB, which are well known to those skilled in the art. In an alternative embodiment, instead of hash storage 109, a cloud-based distributed database such as the Amazon Relational Database Service (Amazon RDS), well known to those skilled in the art, may also be used. The database 109 can store a large number of digital audio signals, such as 10,000, 100,000, 1,000,000, and the like. A plurality of digital audio signals may be collected and stored in the database 109 in many different ways. However, by way of example only, a variety of digital audio signals may be recorded by the people responsible for evaluating and/or crowdsourced.

[0061] Фиг. 3 иллюстрирует примерную блок-схему варианта осуществления способа реализации, выполняемого на компьютеризированной системе согласно изобретению для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2. Сначала, на этапе 301, выполняемом на мобильном устройстве аудиозахвата 101 или втором устройстве пользователя 102 пользователя, окружающий звук захватывается с использованием микрофона 103 или 112 соответствующего мобильного устройства аудиозахвата 101 или 102. Захваченный звуковой сигнал анализируется на шаг 302, и создается соответствующий хэш. Это можно сделать локально на соответствующем мобильном устройстве аудиозахвата 101 или 102 или удаленно на сервере 107, который имеет повышенную производительность обработки данных.[0061] FIG. 3 illustrates an exemplary flowchart of an embodiment of an implementation method executed on a computerized system according to the invention for exchanging information between the mobile computing devices shown in FIG. 1 and 2. First, in step 301 performed on the mobile audio capture device 101 or the second user device 102 of the user, ambient sound is captured using the microphone 103 or 112 of the respective mobile audio capture device 101 or 102. The captured audio signal is analyzed at step 302, and generated corresponding hash. This can be done locally on the respective mobile audio capture device 101 or 102, or remotely on the server 107 which has increased processing performance.

[0062] Если обнаружена тишина или звуки низкой громкости, начинается этап 303, выполняемый на мобильном устройстве или сервере, операция процесса переходит к этапу 308, на котором генерируется случайный звук, и процесс впоследствии возвращается к вышеупомянутому этапу 301. В противном случае процесс переходит к этапу 304, после чего создается хэш захваченного аудиообразца (на мобильном вычислительном устройстве или сервере) с использованием одного из вышеупомянутых алгоритмов хеширования. Впоследствии, на этапе 305, созданный хэш отправляется на облачный сервер 107. Этот этап выполняется только в том случае, если предыдущие этапы выполняются на мобильном вычислительном устройстве. На этапе 305, выполняемом на серверном сервере 107, созданный хэш используется пользователем для поиска в хэш-хранилище 109 аналогичного хэша. Если совпадающий хэш найден в хэш-хранилище 109, соответствующий идентификатор устройства (DeviceID) получается из хэш-хранилища, см. этап 307, который может выполняться либо на сервере 107, либо на соответствующем мобильном вычислительном устройстве.[0062] If silence or low-volume sounds are detected, step 303 is started on the mobile device or server, the process operation proceeds to step 308 where a random sound is generated, and the process subsequently returns to the above-mentioned step 301. Otherwise, the process proceeds to step 304, whereupon a hash of the captured audio sample is generated (on the mobile computing device or server) using one of the aforementioned hashing algorithms. Subsequently, at step 305, the generated hash is sent to the cloud server 107. This step is performed only if the previous steps are performed on a mobile computing device. At step 305, executed on the server server 107, the generated hash is used by the user to search the hash store 109 for a similar hash. If a matching hash is found in the hash store 109, the corresponding device ID (DeviceID) is obtained from the hash store, see step 307, which can be performed either on the server 107 or on the corresponding mobile computing device.

[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 г., и содержание которой включено в настоящее описание посредством этой ссылки.[0063] In another embodiment of the invention, database searches are accelerated by using bit vector indexing, as described in the US patent application "Multidimensional Data Object Searching Using Bit Vector Indices" , which has a filing date of June 23, 2003, and is assigned serial number 10/602,438, and the contents of which are incorporated herein by this reference. This bit vector indexing approach is also described in a publication entitled "Indexing High Dimensional Rectangles for Fast Multimedia Identifications" by John C. Piatt and Christopher J. C. Burges, published in Microsoft Technical Report MSR-TR-2003-38, dated October 28, 2003, and the contents of which are incorporated herein. description through this link.

[0064] Вообще, способы битового векторного индексирования, описанные в вышеупомянутых заявке на патент США и соответствующем техническом отчете компании «Microsoft», рассматривают проблему быстрого осуществления точечных запросов в отношении многомерных областей. Такие запросы полезны при решении становящихся все более важными задач идентификации и поиска мультимедиа, в которых различные элементы базы данных имеют различные показатели сходства. В противоположность обычному индексированию в базе данных, которое сосредоточено на индексировании для многомерных запросов о ближайшем соседнем элементе и эпсилон-интервале, индексирование для точечных запросов в отношении многомерных областей, предоставляет эффективный способ индексирования, в котором для достижения значительных выигрышей в производительности сделана ставка на сочетание избыточности и битового векторного индексирования. Было отмечено, что такие способы обеспечивают значительное повышение производительности по сравнению с характерными для реального мира способами линейного перебора. [0064] In general, the bit vector indexing methods described in the aforementioned US patent application and related Microsoft technical report address the problem of rapidly performing point queries on multidimensional regions. Such queries are useful in the increasingly important tasks of media identification and retrieval in which different database elements have different similarity scores. As opposed to regular database indexing, which focuses on indexing for multidimensional nearest neighbor and epsilon interval queries, point query indexing for multidimensional regions provides an efficient indexing method that relies on a combination of redundancy and bit vector indexing. It has been noted that such methods provide significant performance improvements over real-world linear enumeration methods.

[0065] Отрицательные результаты поиска в базе данных, то есть данные об отсутствии совпадения «следа» с хэшами в базе данных, не посылаются назад клиенту. Положительные результаты поиска в базе данных, то есть данные о совпадении «следа» и хэша, посылаются назад клиенту, чтобы идентифицировать объект аудиовизуальной информации, на основе которого был вычислен этот «след». Как отмечалось выше, поиск в кэше с целью идентифицировать совпадающие «следы» осуществляется перед поиском в базе данных хэшей. Следовательно, если обнаружено совпадение со «следами», хранящимися в кэше, то не требуется никакого последующего поиска в базе данных, поскольку «след», хранящийся в кэше, будет либо содержать идентификационные данные связанного с ним объекта аудиовизуальной информации, либо будет просто указывать, что совпадающий хэш отсутствует. В случае, когда «след» совпадает с хэшем в базе данных, назад клиенту будет послана любая идентификационная информация, связанная с этим совпадающим хэшем.[0065] Negative database search results, i.e. no trace match with database hashes, are not sent back to the client. Positive results of the database lookup, i.e. the trace and hash match data, are sent back to the client to identify the media object from which the trace was computed. As noted above, a cache lookup to identify matching "footprints" is performed before a hash database lookup. Therefore, if a match is found with the "trace" stored in the cache, then no further database lookup is required, since the "trace" stored in the cache will either contain the identity of the media object associated with it, or will simply indicate, that there is no matching hash. In the case where the "trace" matches a hash in the database, any identification information associated with that matching hash will be sent back to the client.

[0066] Одно из преимуществ расположенного на стороне сервера кэша, предусмотренного средством идентификации аудиовизуальной информации, заключается в том, что размер кэша относительно мал, что делает поиски в кэше чрезвычайно быстрыми. В частности, размер кэша является функцией максимальной ожидаемой задержки между приемом клиентами некоторой точки в потоке аудиовизуальной информации и количества уникальных потоков аудиовизуальной информации, для которых предоставляются услуги по идентификации. Кроме того, следует отметить, что размер кэша не является функцией количества пользователей.[0066] One advantage of the server-side cache provided by the media identifier is that the cache size is relatively small, making cache lookups extremely fast. In particular, the cache size is a function of the maximum expected delay between clients receiving a point in the media stream and the number of unique media streams for which identification services are provided. Also, note that cache size is not a function of the number of users.

[0067] В частности, каждый конкретный поток вещания аудиовизуальной информации приблизительно синхронизирован по каждому клиенту, который принимает этот конкретный поток аудиовизуальной информации.[0067] In particular, each particular broadcast media stream is approximately synchronized with each client that receives that particular media stream.

[0068] По этой причине нет необходимости держать «следы» в кэше аудиовизуальной информации в течение промежутка времени, превышающего некоторое малое кратное максимального ожидаемого времени задержки (причем, время задержки также включает в себя максимальную ожидаемую задержку по каждому клиенту на вычисление и передачу «следа» на сервер). Иначе говоря, эта задержка представляет собой просто максимальное значение времени между приемом сервером первого «следа» для данной части конкретного объекта аудиовизуальной информации и приемом сервером последнего «следа» (от самого медленного устройства) для этой части того же самого объекта аудиовизуальной информации. Следовательно, следы необходимо держать в кэше только в течение короткого промежутка времени длительностью примерно несколько секунд. В результате отсутствует необходимость в большом кэше для хранения всех уникальных поступающих на сервер «следов».[0068] For this reason, there is no need to keep "traces" in the media cache for a period of time exceeding some small multiple of the maximum expected delay time (moreover, the delay time also includes the maximum expected delay per client for calculating and transmitting the "trace "to the server). In other words, this delay is simply the maximum time between the server receiving the first trace for a given part of a particular media object and the server receiving the last trace (from the slowest device) for that part of the same media object. Therefore, traces need only be cached for a short period of time, approximately a few seconds. As a result, there is no need for a large cache to store all the unique traces that come to the server.

[0069] В родственном варианте осуществления изобретения, вместо попыток определить или оценить максимальные значения времени задержки для установления сроков жизни «следов» в кэше, предлагается более простое решение, которое заключается в том, чтобы просто удалять «следы» из кэша после того, как они не совпали ни с какими поступающими «следами» в течение некоторого короткого промежутка времени длительностью примерно в одну секунду или около того. В дополнительных альтернативных вариантах осуществления изобретения также могут быть использованы другие схемы кэширования, включая, например, использование фиксированного размера кэша, который удаляет «следы» основываясь на традиционной логике удаления элементов с наиболее давним использованием.[0069] In a related embodiment of the invention, instead of trying to determine or estimate maximum latency values for establishing cache trace lifetimes, a simpler solution is proposed which is to simply remove cache traces after they did not match any incoming "trails" for some short period of time of about one second or so. In additional alternative embodiments of the invention, other caching schemes may also be used, including, for example, the use of a fixed cache size that removes traces based on traditional oldest-used item removal logic.

[0070] Ввиду вышеописанной сущности изобретения, должно быть ясно, что средство идентификации аудиовизуальной информации, описанное в данном документе, предоставляет уникальные систему и способ для обеспечения идентификации аудиовизуальной информации в реальном масштабе времени для большого количества одновременно поступающих клиентских запросов по синхронным потокам вещания аудиовизуальной информации. В дополнение к только что описанным выгодам, другие преимущества системы станут очевидны из подробного описания, которое следует ниже, при рассмотрении его совместно с прилагаемыми чертежами.[0070] In view of the foregoing summary of the invention, it should be clear that the media identification tool described herein provides a unique system and method for providing real-time media identification for a large number of concurrent client requests over synchronous media broadcast streams. . In addition to the benefits just described, other advantages of the system will become apparent from the detailed description that follows, when considered in conjunction with the accompanying drawings.

[0071] Как должно быть понятно специалистам в данной области техники, в настоящее время существует несколько способов, позволяющих определить, что два или более устройства расположены рядом друг с другом. Все эти методы используют службы определения местоположения (геолокацию), WiFi, Bluetooth, NFC и т.д., и все они имеют свои ограничения. С другой стороны, описанная здесь технология может работать даже в тишине. Если звука недостаточно для создания отличительной звуковой среды, описанное устройство может воспроизвести мелодию или мелодию звонка, чтобы создать звуковые помехи и найти соответствие. Также может использоваться произнесение пользователем нескольких слов в микрофон с двумя или более устройствами, находящимися поблизости друг от друга.[0071] As will be appreciated by those skilled in the art, there are currently several ways to determine that two or more devices are located next to each other. All of these methods use location services (geolocation), WiFi, Bluetooth, NFC, etc., and they all have their limitations. On the other hand, the technology described here can work even in silence. If there is not enough sound to create a distinctive sound environment, the described device can play a melody or a ringtone to interfere with the sound and find a match. It can also be used for the user to speak a few words into the microphone with two or more devices in close proximity to each other.

[0072] В одном или нескольких вариантах реализации инициация записи хэшей, как описано выше, может варьироваться: описанная технология может быть инициирована гироскопом устройства (встряхиванием или наклоном устройства), нажатием кнопки в специально разработанном приложении, работающим в фоновом режиме, и любым другим подходящим способом. В одном или нескольких вариантах реализации включение служб определения местоположения, а также Geo IP и Mac-адреса значительно сужает радиус поиска и ускоряет процесс определения географической близости устройств.[0072] In one or more implementations, the initiation of hash recording as described above may vary: the described technique may be initiated by the device's gyroscope (shaking or tilting the device), by pressing a button in a specially designed application running in the background, and any other suitable way. In one or more implementations, enabling location services as well as Geo IP and Mac address significantly narrows the search radius and speeds up the process of determining the geographic proximity of devices.

[0073] Ниже будет представлено описание в реализации с алгоритмом искусственного интеллекта, то есть нейронной сети.[0073] A description will be given below in an implementation with an artificial intelligence algorithm, that is, a neural network.

[0074] Вообще говоря, определенная нейронная сеть (далее - NN) состоит из взаимосвязанной группы искусственных «нейронов», которые обрабатывают информацию, используя коннекционистский подход к вычислению. NN используются для моделирования сложных взаимосвязей между входными и выходными данными (без фактического знания этих взаимосвязей) или для поиска закономерностей в данных. NN сначала подготавливаются во время фазы обучения, во время которой им предоставляется некоторый известный набор «входных данных» и информации для адаптации NN к генерированию надлежащих выходных данных (для некоторой определенной ситуации, которую пытаются смоделировать). Во время этой фазы обучения эта NN адаптируется к изучаемой ситуации и меняет свою структуру так, чтобы данная NN могла обеспечивать разумные прогнозные выходные данные для определенных входных данных во время некоторой новой ситуации (на основе того, что было изучено). Таким образом, вместо того, чтобы пытаться определить сложные статистические схемы или математические алгоритмы для некоторой определенной ситуации, определенная NN пытается дать «интуитивный» ответ, основанный на «восприятии» ситуации. Таким образом, определенная NN является своего рода обученным «черным ящиком», который может быть использован в ситуации, когда то, что находится в этом «ящике», важным не является; важно лишь, что «ящик» дает разумные ответы на определенные входные данные.[0074] Generally speaking, a defined neural network (hereinafter - NN) consists of an interconnected group of artificial "neurons" that process information using a connectionist approach to computing. NNs are used to model complex relationships between inputs and outputs (without actually knowing those relationships) or to look for patterns in data. NNs are first trained during a training phase during which they are provided with some known set of "inputs" and information to adapt the NN to generate the proper output (for some particular situation they are trying to model). During this learning phase, this NN adapts to the situation being learned and changes its structure so that the given NN can provide reasonable predictive output for certain inputs during some new situation (based on what has been learned). Thus, instead of trying to define complex statistical schemes or mathematical algorithms for some specific situation, a defined NN tries to give an "intuitive" answer based on the "perception" of the situation. Thus, a certain NN is a kind of trained "black box" that can be used in a situation where what is in this "box" is not important; what matters is that the "box" gives reasonable answers to certain inputs.

[0075] NN обычно используются во многих таких ситуациях, в которых важно знать лишь выходные данные, основанные на некоторых определенных входных данных, но то, как именно эти выходные данные были получены, имеет меньшее значение или значения не имеет. Например, NN обычно используются для оптимизации распределения веб-трафика между серверами и при обработке данных, в том числе фильтрации, кластеризации, разделении сигналов, сжатии, генерировании вектора, распознавании речи и тому подобном.[0075] NNs are commonly used in many of these situations in which it is important to know only the output based on some specific input, but how that output was obtained is of little or no importance. For example, NNs are commonly used to optimize the distribution of web traffic between servers and data processing, including filtering, clustering, signal separation, compression, vector generation, speech recognition, and the like.

[0076] Следует понимать, что NN могут быть классифицированы на различные классы NN. Один из этих классов содержит рекуррентные нейронные сети (RNN). Эти конкретные NN приспособлены использовать свои «внутренние состояния» (хранимую память) для обработки последовательностей входных данных. Это делает RNN хорошо подходящими для таких задач, как, например, распознавание несегментированного рукописного ввода и распознавание речи. Этими внутренними состояниями RNN можно управлять, и они именуются «управляемыми» (gated) состояниями или «управляемыми» воспоминаниями.[0076] It should be understood that NNs can be classified into different classes of NNs. One of these classes contains Recurrent Neural Networks (RNNs). These particular NNs are adapted to use their "internal states" (stored memory) to process input sequences. This makes RNNs well suited for tasks such as non-segmented handwriting recognition and speech recognition. These internal states of the RNN can be manipulated and are referred to as gated states or gated memories.

[0077] Также следует отметить, что сами RNN также могут быть классифицированы на различные подклассы RNN. Например, RNN могут быть реализованы в виде сетей с долгой краткосрочной памятью (LSTM), управляемых рекуррентных блоков (GRU), двунаправленных RNN (BRNN) и т.п.[0077] It should also be noted that RNNs themselves can also be classified into various subclasses of RNNs. For example, RNNs can be implemented as Long Short Term Memory Networks (LSTMs), Managed Recurrent Units (GRUs), Bidirectional RNNs (BRNNs), and the like.

[0078] Сети с LSTM представляют собой системы глубокого обучения, которые могут обучаться задачам, требующим, в некотором смысле, «воспоминаний» о событиях, которые произошли ранее в течение очень коротких и дискретных временных интервалов. Топологии сетей с LSTM могут меняться в зависимости от конкретных задач, которые их "обучают" выполнять. Например, сети с LSTM могут обучаться выполнять задачи, при которых относительно длительные задержки происходят между событиями или когда события происходят вместе с низкой и высокой частотой.[0078] LSTM networks are deep learning systems that can be trained on tasks that require, in a sense, "memories" of events that happened previously over very short and discrete time intervals. The topologies of LSTM networks can change depending on the specific tasks they are "trained" to perform. For example, LSTM networks can be trained to perform tasks where relatively long delays occur between events, or when events occur together at low and high frequency.

[0079] В некоторых вариантах осуществления настоящей технологии предполагается, что NN 400 может быть реализована как данная сеть с LSTM. Можно сказать, что NN 400 может быть реализована в некоторых вариантах осуществления с некоторой топологией сети, которая позволяет хранить «воспоминания» о событиях, которые произошли ранее.[0079] In some embodiments of the present technology, it is contemplated that NN 400 may be implemented as a given LSTM network. It can be said that the NN 400 can be implemented in some embodiments with some network topology that allows "memories" of events that have occurred previously to be stored.

[0080] Подводя итог, можно сказать, что реализация NN системой обмена информацией между устройствами может быть в общем разделена на две фазы: фаза обучения и фаза использования.[0080] Summarizing, the implementation of NN by the communication system between devices can be generally divided into two phases: a learning phase and a usage phase.

[0081] Сначала, NN обучают во время фазы обучения. Во время фазы обучения сервер 107 может выполнять большое количество итераций обучения в отношении NN. Вообще говоря, во время определенной итерации обучения в NN вводят наборы признаков, связанных с общим цифровым аудиосигналом, и она, в некотором смысле, «обучается» тому, какой из этих наборов признаков соответствует сегменту этого цифрового аудиосигнала, во время которого пользовательское высказывание или аудиозапись в этом цифровом аудиосигнале завершилась (используя скорректированный момент времени завершения высказывания, соответствующий временной отметке в качестве его представительной переменной).[0081] First, NNs are trained during the training phase. During the training phase, the server 107 may perform a large number of training iterations on the NN. Generally speaking, during a certain training iteration, the NN is introduced with feature sets associated with a common digital audio signal, and it is, in a sense, “learned” which of these feature sets corresponds to the segment of that digital audio signal during which the user utterance or audio recording ended in this digital audio signal (using the corrected end time of the utterance corresponding to the timestamp as its representative variable).

[0082] Затем, во время фазы использования, когда NN знает, какие данные следует ожидать в качестве входных данных (например, наборы признаков) и какие данные следует предоставлять в качестве выходных данных (например, прогнозы для наборов признаков), NN фактически работает, используя данные в процессе использования (in-use data). Вообще говоря, во время использования, в NN вводят наборы признаков, связанных с цифровым аудиосигналом в процессе использования (например, таким как цифровой аудиосигнал), и используют ее для определения вероятности соответствующего сегмента цифрового аудиосигнала в процессе использования, во время которого пользовательское высказывание завершилось.[0082] Then, during the usage phase, when the NN knows what data to expect as input (eg, feature sets) and what data to provide as output (eg, feature set predictions), the NN actually works, using data in the process of use (in-use data). Generally speaking, at use time, feature sets associated with the digital audio signal in use (such as digital audio signal) are entered into the NN and used to determine the likelihood of the corresponding segment of the digital audio signal in use during which the user utterance ended.

[0083] Далее будет описано то, как сервер 107 может выполнять итерацию обучения NN. Предположим, что данная итерация обучения NN выполняется на основе данных, связанных с цифровым аудиосигналом. Однако следует отметить, что в отношении NN во время фазы ее обучения выполняется большее количество итераций обучения, как упомянуто выше, используя данные, связанные с другими аудиосигналами из множества цифровых аудиосигналов, аналогично выполнению данной итерации обучения.[0083] Next, how the server 107 can iterate NN training will be described. Assume that a given NN training iteration is performed on the data associated with a digital audio signal. However, it should be noted that for NN, during its training phase, more training iterations are performed, as mentioned above, using data associated with other audio signals from a plurality of digital audio signals, similarly to performing a given training iteration.

[0084] Для данной итерации обучения NN, сервер 107 может извлечь обучающие данные из базы данных. Обучающие данные содержат (i) множество наборов признаков для цифрового аудиосигнала и (ii) соответствующие связанные метки. Как упомянуто выше, в некоторых вариантах осуществления настоящей технологии обучающие данные могут быть предопределены сервером 107, то есть сервер 107 мог определить и сохранить эти обучающие данные до фазы обучения NN.[0084] For a given NN training iteration, server 107 may retrieve training data from a database. The training data contains (i) a plurality of feature sets for the digital audio signal and (ii) corresponding associated labels. As mentioned above, in some embodiments of the present technology, the training data may be predetermined by the server 107, i.e., the server 107 may have determined and stored this training data prior to the training phase of the NN.

[0085] Сервер 107 сконфигурирован с возможностью ввода множества наборов признаков в NN в той же последовательности, что и последовательность, в которой соответствующие сегменты из множества сегментов встречаются в цифровом аудиосигнале. Другими словами, во время данной итерации обучения сервер 107 сконфигурирован с возможностью ввода множества наборов признаков в следующем порядке: первый набор признаков, второй набор признаков, третий набор признаков, четвертый набор признаков. [0086] Когда сервер 107 вводит первый набор признаков в NN, NN сконфигурирована с возможностью вывода первого выходного значения, указывающего вероятность того, что хэш в цифровом аудиосигнале завершился во время первого сегмента цифрового аудиосигнала. Предположим, что первое выходное значение равно «0,1» (или 10%, например). Можно сказать, что NN определяет первое выходное значение «0,1» для первого сегмента на основе первого набора признаков.[0085] The server 107 is configured to input the plurality of feature sets into the NN in the same sequence as the sequence in which corresponding segments of the plurality of segments occur in the digital audio signal. In other words, during a given training iteration, the server 107 is configured to input a plurality of feature sets in the following order: first feature set, second feature set, third feature set, fourth feature set. [0086] When the server 107 inputs the first feature set to the NN, the NN is configured to output a first output value indicating the probability that the hash in the digital audio signal completed during the first segment of the digital audio signal. Suppose the first output value is "0.1" (or 10% for example). We can say that NN determines the first output value "0.1" for the first segment based on the first set of features.

[0087] Сервер 107 затем вводит второй набор признаков в NN. NN сконфигурирована с возможностью вывода второго выходного значения, указывающего вероятность того, что хэш в цифровом аудиосигнале завершился во время второго сегмента цифрового аудиосигнала. Предположим, что второе выходное значение равно «0,3».[0087] The server 107 then inserts the second set of features into the NN. The NN is configured to output a second output value indicating the probability that the hash in the digital audio signal has completed during the second segment of the digital audio signal. Suppose the second output value is "0.3".

[0088] Как упоминалось ранее, NN может иметь топологию сети, которая позволяет NN хранить «воспоминания» о событиях, которые произошли ранее. Другими словами, NN может быть сконфигурирована с возможностью вывода второго выходного значения «0,3» на основе (i) второго набора признаков, а также на основе «памяти», что ранее введенным набором признаков является (ii) первый набор признаков. Это означает, что NN может определять второе выходное значение «0,3» для второго сегмента на основе обоих (i) второго набора признаков и (ii) первого набора признаков.[0088] As previously mentioned, the NN may have a network topology that allows the NN to store "memories" of events that have occurred previously. In other words, the NN may be configured to output a second output value of "0.3" based on (i) the second feature set, and also based on the "memory" that the previously input feature set is (ii) the first feature set. This means that the NN can determine the second output value "0.3" for the second segment based on both (i) the second feature set and (ii) the first feature set.

[0089] Сервер 107 затем вводит третий набор признаков в NN, а NN выводит третье выходное значение «0,1». NN может определять третье выходное значение «0,1» для третьего сегмента на основе (i) третьего набора признаков, (ii) второго набора признаков и (iii) первого набора признаков.[0089] The server 107 then inputs the third feature set to the NN, and the NN outputs a third output value of "0.1". The NN may determine the third output value "0,1" for the third segment based on (i) the third feature set, (ii) the second feature set, and (iii) the first feature set.

[0090] Сервер 107 затем вводит четвертый набор признаков в NN, а NN выводит четвертое выходное значение «0,4». NN может определять четвертое выходное значение «0,4» для четвертого сегмента на основе (i) четвертого набора признаков, (ii) третьего набора признаков, (iii) второго набора признаков и (iv) первого набора признаков.[0090] The server 107 then inputs the fourth feature set to the NN, and the NN outputs a fourth output value of "0.4". The NN may determine a fourth output value of "0.4" for the fourth segment based on (i) the fourth feature set, (ii) the third feature set, (iii) the second feature set, and (iv) the first feature set.

[0091] Таким образом, как поясняется выше, во время данной итерации обучения NN прогнозирует, что:[0091] Thus, as explained above, during a given training iteration, the NN predicts that:

[0092] существует вероятность «0,1», что пользовательское высказывание завершилось во время первого сегмента цифрового аудиосигнала;[0092] there is a probability of "0.1" that the user utterance ended during the first segment of the digital audio signal;

[0093] существует вероятность «0,3», что пользовательское высказывание завершилось во время второго сегмента цифрового аудиосигнала;[0093] there is a probability of "0.3" that the user utterance ended during the second segment of the digital audio signal;

[0094] существует вероятность «0,1», что пользовательское высказывание завершилось во время третьего сегмента цифрового аудиосигнала;[0094] there is a probability of "0.1" that the user utterance ended during the third segment of the digital audio signal;

[0095] существует вероятность «0,4», что пользовательское высказывание завершилось во время четвертого сегмента цифрового аудиосигнала.[0095] There is a probability of "0.4" that the user utterance ended during the fourth segment of the digital audio signal.

[0096] Затем, во время данной итерации обучения, сервер 107 может быть сконфигурирован с возможностью выполнения сравнительного анализа между выходными значениями, выданными посредством NN, и метками, связанными с соответствующими наборами признаков из множества наборов признаков. На основе этого сравнения сервер 107 может быть сконфигурирован с возможностью определения множества отдельных штрафных значений.[0096] Then, during a given training iteration, the server 107 may be configured to perform comparison analysis between the output values provided by the NN and the labels associated with the respective feature sets from the plurality of feature sets. Based on this comparison, server 107 can be configured to determine multiple individual penalty values.

[0097] Следовательно, сервер 107 сконфигурирован с возможностью подготовки NN таким образом, что NN выводит выходные значения в ответ на наборы признаков, так что различия между значениями соответствующих меток и соответствующими выходными значениями сводятся к минимуму. Чем больше различия между значениями соответствующих меток и соответствующими выходными значениями, тем выше будет объединенное штрафное значение и, следовательно, тем большей может быть корректировка связей между искусственными «нейронами» NN. Точно так же, чем меньше различия между значениями соответствующих меток и соответствующими выходными значениями, тем ниже будет объединенное штрафное значение и, следовательно, тем меньшей может быть корректировка связей между искусственными «нейронами» NN.[0097] Therefore, the server 107 is configured to prepare the NN such that the NN outputs output values in response to feature sets such that differences between the values of the respective labels and the respective output values are minimized. The greater the difference between the values of the respective labels and the respective output values, the higher the combined penalty value will be, and hence the greater the adjustment of connections between the artificial "neurons" NN can be. Similarly, the smaller the difference between the values of the respective labels and the respective output values, the lower the combined penalty value will be, and hence the smaller the adjustment of connections between the artificial "neurons" NN can be.

[0098] При «ложноположительном» прогнозе NN определяет, что существует высокая вероятность того, что некоторый сегмент, который возникает до завершения (конца) пользовательского высказывания или аудиосигнал в цифровом аудиосигнале, содержит это завершение упомянутого пользовательского высказывания. Сокращение количества ложноположительных прогнозов может быть полезным во время использования, поскольку ложноположительный прогноз может привести к тому, что система ошибочно определит, что пользовательское высказывание завершилось во время самой последней полученной части цифрового аудиосигнала, когда, в действительности, пользователь еще не прекратил говорить.[0098] With a "false positive" prediction, NN determines that there is a high probability that some segment that occurs before the completion (end) of the user utterance or an audio signal in a digital audio signal contains this completion of said user utterance. Reducing the number of false positives can be beneficial during use because a false positive can cause the system to erroneously determine that the user's utterance ended at the time of the most recently received part of the digital audio signal, when the user has not, in fact, stopped speaking yet.

[0099] Например, ложноположительные прогнозы могут с большей вероятностью происходить для сегментов, во время которых возникает пауза в пользовательском высказывании. Другими словами, ложноположительный прогноз более вероятно происходит во время сегментов, в которых пользователь приостанавливает пользовательское высказывание (например, во время паузы между двумя произносимыми пользователем словами).[0099] For example, false positive predictions may be more likely to occur for segments during which there is a pause in the user's utterance. In other words, a false positive prediction is more likely to occur during segments in which the user pauses the user's utterance (eg, during a pause between two words the user speaks).

[00100] Количество ложноположительных прогнозов NN может быть сокращено путем назначения весов отдельным штрафным значениям, связанным с сегментами цифрового аудиосигнала, которые возникают до скорректированного момента времени завершения высказывания, чтобы увеличить их вклад в объединенное штрафное значение.[00100] The number of NN false positives can be reduced by assigning weights to the individual penalty values associated with the digital audio signal segments that occur before the adjusted utterance end time to increase their contribution to the combined penalty value.

[00101] Далее будет описан вариант реализации технологической платформы.[00101] Next, an embodiment of the technology platform will be described.

[00102] Фиг. 4 иллюстрирует примерный вариант осуществления компьютеризированной мобильной системы, которая может использоваться в качестве мобильного вычислительного устройства пользователя в сочетании с компьютеризированной системой для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2. В одном или нескольких вариантах осуществления компьютеризированная мобильная система 400 может быть реализована в форм-факторе мобильного вычислительного устройства, такого как смартфон, iPAD, планшетный компьютер или смарт-часы, которые широко доступны в продаже и хорошо известны специалистам в данной области.[00102] FIG. 4 illustrates an exemplary embodiment of a computerized mobile system that can be used as a user's mobile computing device in conjunction with the computerized system for exchanging information between the mobile computing devices shown in FIG. 1 and 2. In one or more embodiments, computerized mobile system 400 may be implemented in the form factor of a mobile computing device, such as a smartphone, iPAD, tablet computer, or smart watch, that is widely available commercially and well known to those skilled in the art. .

[00103] Компьютеризированная система 400 может включать в себя шину 404 данных или другой способ передачи данных или механизм связи для передачи информации между различными аппаратными компонентами мобильной компьютеризированной системы 400 и между ними, а также центральный процессор (ЦП или просто процессор) 401, соединенный с шиной 404 данных, для обработки информации и выполнения других вычислительных и управляющих задач. Компьютеризированная система 400 также включает в себя память 412, такую как оперативное запоминающее устройство (ОЗУ) или другое динамическое запоминающее устройство, соединенное с шиной 404 данных для хранения различной информации, а также инструкций, которые должны выполняться процессором 401. Память 412 может также включать постоянные запоминающие устройства, такие как магнитный диск, оптический диск, твердотельное устройство флэш-памяти или другие энергонезависимые твердотельные запоминающие устройства.[00103] The computerized system 400 may include a data bus 404 or other data transfer method or communication mechanism for transferring information between and between various hardware components of the mobile computerized system 400, as well as a central processing unit (CPU or simply a processor) 401 coupled to data bus 404 to process information and perform other computing and control tasks. Computerized system 400 also includes memory 412, such as random access memory (RAM) or other dynamic storage device, coupled to data bus 404 to store various information as well as instructions to be executed by processor 401. Memory 412 may also include permanent storage devices such as magnetic disk, optical disk, solid state flash memory or other non-volatile solid state storage devices.

[00104] В одном или нескольких вариантах осуществления память 412 может также использоваться для хранения временных переменных или другой промежуточной информации во время выполнения команд процессором 401. Дополнительно компьютеризированная система 400 может дополнительно включать в себя постоянное запоминающее устройство (ПЗУ или СППЗУ) 402 или другое статическое запоминающее устройство, соединенное с шиной данных 404 для хранения статической информации и инструкций для процессора 401, таких как микропрограммы, необходимые для работы компьютеризированной системы 400, базовой системы ввода-вывода (BIOS), а также различные параметры конфигурации компьютеризированной системы 400.[00104] In one or more embodiments, memory 412 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 401. Additionally, computerized system 400 may further include read-only memory (ROM or EPROM) 402 or other static a storage device coupled to the data bus 404 for storing static information and instructions for the processor 401, such as the firmware needed to operate the computerized system 400, the basic input/output system (BIOS), and various configuration settings for the computerized system 400.

[00105] В одном или нескольких вариантах осуществления компьютеризированная система 400 может включать в себя устройство 409 отображения, которое также может быть подключено к шине 404 данных для отображения различной информации пользователю компьютеризированной системы 400, такой как экраны пользовательского интерфейса, показанные на Фиг. 4 и 5. В альтернативном варианте устройство 409 отображения может быть связано с графическим контроллером и/или графическим процессором (не показаны). Устройство 409 отображения может быть реализовано в виде жидкокристаллического дисплея (ЖКД), изготовленного, например, с использованием технологии тонкопленочных транзисторов (ТПТ) или технологии органических светоизлучающих диодов (ОСИД), которые хорошо известны специалистам в данной области. В различных вариантах осуществления устройство 409 отображения может быть встроено в тот же общий корпус, что и остальные компоненты компьютеризированной системы 400. В альтернативном варианте осуществления устройство 409 отображения может быть расположено вне такого корпуса.[00105] In one or more embodiments, computerized system 400 may include a display device 409 that may also be connected to data bus 404 to display various information to a user of computerized system 400, such as the user interface screens shown in FIG. 4 and 5. Alternatively, display device 409 may be associated with a graphics controller and/or graphics processor (not shown). The display device 409 may be implemented in the form of a liquid crystal display (LCD) manufactured using, for example, thin film transistor (TFT) technology or organic light emitting diode (OLED) technology, which are well known to those skilled in the art. In various embodiments, the display device 409 may be built into the same common housing as the rest of the computerized system 400. In an alternative embodiment, the display device 409 may be located outside such a housing.

[00106] В одном или нескольких вариантах осуществления компьютеризированная система 400 может дополнительно включать в себя микрофон 425, подключенный к шине 404 данных и сконфигурированный для захвата окружающего звука и преобразования его в электронную форму.[00106] In one or more embodiments, computerized system 400 may further include a microphone 425 coupled to data bus 404 and configured to capture ambient sound and convert it into electronic form.

[00107] В одном или нескольких вариантах осуществления компьютеризированная система 400 может включать в себя одно или несколько устройств ввода, таких как интерфейс 410 с сенсорным экраном для приема тактильных команд, камеру 411 для получения неподвижных изображений и видео различных объектов, а также клавиатуру 406, которые могут быть подключены к вышеупомянутой шине 404 данных для передачи информации, включая, помимо прочего, изображения и видео, а также выбор пользовательских команд на процессор 401. В альтернативном варианте осуществления устройства ввода могут включать в себя систему отслеживания движений глаз пользователя (не показан), которая может использоваться для указания компьютеризированной системы 400 выбора команды пользователем.[00107] In one or more embodiments, the computerized system 400 may include one or more input devices, such as a touch screen interface 410 for receiving tactile commands, a camera 411 for receiving still images and videos of various objects, and a keyboard 406, which may be connected to the aforementioned data bus 404 to transmit information, including but not limited to images and video, as well as selection of user commands to the processor 401. In an alternative embodiment, the input devices may include a user eye tracking system (not shown) , which can be used to indicate to the computerized system 400 the user's command selection.

[00108] В одном или нескольких вариантах осуществления компьютеризированная система 400 может дополнительно включать в себя приемник 403 сигнала местоположения, сконфигурированный для выполнения сканирования сигнала или маяков GPS и передачи данных сканирования, описанных выше, в процессор 401 через шину 404 данных.[00108] In one or more embodiments, computerized system 400 may further include a location signal receiver 403 configured to perform a scan of the GPS signal or beacons and transmit the scan data described above to processor 401 via data bus 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) отправляют и принимают электрические или электромагнитные сигналы, которые несут потоки цифровых данных, представляющие различные типы информации.[00109] In one or more embodiments, computerized system 400 may further include a communications interface, such as a network interface 405, coupled to data bus 404. The network interface 405 may be configured to establish a connection between the computerized system 400 and the Internet 424 using at least one of the WIFI interfaces 407 and a cellular network adapter (GSM or CDMA) 408 . The network interface 405 may be configured to provide two-way communication between the computerized system 400 and the Internet 424. The WIFI interface 407 may operate in accordance with the 802.11a, 802.11b, 802.11g, and/or 802.11n protocols, as well as the well-known Bluetooth protocol. specialists in this field of technology. In an exemplary implementation, the WIFI interface 407 and the cellular network adapter (GSM or CDMA) 408 send and receive electrical or electromagnetic signals that carry digital data streams representing various types of information.

[00110] В одном или нескольких вариантах осуществления Интернет 424 обычно обеспечивает передачу данных через одну или несколько подсетей к другим сетевым ресурсам. Таким образом, компьютеризированная система 400 способна осуществлять доступ к различным сетевым ресурсам, расположенным где угодно в Интернете 424, таким как веб-серверы, другие серверы контента, а также другие сетевые ресурсы хранения данных. В одном или нескольких вариантах осуществления компьютеризированная система 400 сконфигурирована для отправки и приема сообщений, мультимедиа и других данных, включая код прикладной программы, через различные сети, включая Интернет 424, посредством сетевого интерфейса 405. В примере с Интернетом, когда компьютеризированная система 400 действует как сетевой клиент, она может запрашивать код или данные для прикладной программы, выполняемой в компьютеризированной системе 400. Подобным образом она может отправлять различные данные или компьютерный код другим сетевым ресурсам.[00110] In one or more embodiments, the implementation of the Internet 424 typically provides data transmission through one or more subnets to other network resources. Thus, computerized system 400 is capable of accessing various network resources located anywhere on the Internet 424, such as web servers, other content servers, and other network storage resources. In one or more embodiments, computerized system 400 is configured to send and receive messages, multimedia, and other data, including application program code, over various networks, including the Internet 424, via network interface 405. In the Internet example, when computerized system 400 acts as a network client, it may request code or data for an application program running on computerized system 400. Similarly, it may send various data or computer code to other network resources.

[00111] В одном или нескольких вариантах осуществления компьютеризированная система 400 использует сетевой интерфейс 405 для отправки запроса(ов) через Интернет 424, такого как HTTP-запросы, на серверы и получения различной информации, включая, помимо прочего, вышеупомянутую отображаемую информацию пользователю, использующему пользовательский интерфейс, показанный на Фиг. 4 и 5.[00111] In one or more embodiments, the computerized system 400 uses a network interface 405 to send request(s) over the Internet 424, such as HTTP requests, to servers and obtain various information, including, but not limited to, the aforementioned displayed information to a user using the user interface shown in Fig. 4 and 5.

[00112] В одном или нескольких вариантах осуществления описанные здесь функциональные возможности реализуются компьютеризированной системой 400 в ответ на выполнение процессором 401 одной или нескольких последовательностей одной или нескольких инструкций, содержащихся в памяти 412. Такие инструкции могут быть считаны в память 412 с другого компьютера. Выполнение последовательностей инструкций, содержащихся в памяти 412, заставляет процессор 401 выполнять различные шаги способа, описанные здесь. В альтернативных вариантах осуществления вместо команд программного обеспечения или в сочетании с программными инструкциями для реализации вариантов осуществления изобретения может использоваться аппаратная схема. Таким образом, варианты осуществления изобретения не ограничиваются какой-либо конкретной комбинацией аппаратных схем и программного обеспечения.[00112] In one or more embodiments, the functionality described herein is implemented by computerized system 400 in response to processor 401 executing one or more sequences of one or more instructions contained in memory 412. Such instructions may be read into memory 412 from another computer. Execution of the sequences of instructions contained in the memory 412 causes the processor 401 to perform the various steps of the method described here. In alternative embodiments, instead of software commands, or in combination with software instructions, hardware circuitry may be used to implement embodiments of the invention. Thus, embodiments of the invention are not limited to any particular combination of hardware circuits and software.

[00113] Термин «машиночитаемый носитель», используемый здесь, относится к любому носителю, который участвует в предоставлении инструкций процессору 401 для выполнения. Машиночитаемый носитель является лишь одним примером машиночитаемого носителя, который может содержать инструкции для реализации любого из описанных здесь способов и/или приемов. Такая среда может принимать различные формы, включая, помимо прочего, энергонезависимую среду и летучую среду.[00113] The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to the processor 401 for execution. A computer-readable medium is just one example of a computer-readable medium that may contain instructions for implementing any of the methods and/or techniques described herein. Such an environment may take various forms, including, but not limited to, a non-volatile environment and a volatile environment.

[00114] Обычные формы постоянных машиночитаемых носителей включают, например, дискету, гибкий диск, жесткий диск, магнитную ленту или любой другой магнитный носитель, компакт-диск, любой другой оптический носитель, перфокарты, бумажную ленту, любые другой физический носитель с набором отверстий, RAM, PROM, EPROM, FLASH-EPROM, флэш-диск, карта памяти, любая другая микросхема памяти или картридж или любой другой носитель, с которого компьютер может считывать. Различные формы машиночитаемых носителей могут использоваться для переноса одной или нескольких последовательностей одной или нескольких инструкций в процессор 901 для выполнения. Например, инструкции могут быть изначально перенесены на магнитный диск с удаленного компьютера. Альтернативно, удаленный компьютер может загрузить инструкции в свою динамическую память и отправить инструкции через Интернет 424. В частности, компьютерные инструкции могут быть загружены в память 412 компьютеризированной системы 400 с вышеупомянутого удаленного компьютера через Интернет 424 с использованием множества сетевых протоколов передачи данных, хорошо известных в данной области техники.[00114] Common forms of permanent computer-readable media include, for example, floppy disk, floppy disk, hard disk, magnetic tape or any other magnetic media, CD, any other optical media, punched cards, paper tape, any other physical media with a set of holes, RAM, PROM, EPROM, FLASH-EPROM, flash drive, memory card, any other memory chip or cartridge, or any other media that a computer can read. Various forms of computer-readable media may be used to carry one or more sequences of one or more instructions to the processor 901 for execution. For example, instructions may initially be transferred to a magnetic disk from a remote computer. Alternatively, the remote computer may download the instructions into its dynamic memory and send the instructions over the Internet 424. In particular, the computer instructions may be downloaded into the memory 412 of the computerized system 400 from the aforementioned remote computer over the Internet 424 using a variety of network communication protocols well known in the art. this field of technology.

[00115] В одном или нескольких вариантах осуществления в памяти 412 компьютеризированной системы 400 могут храниться любые из следующих программ, приложений или модулей:[00115] In one or more embodiments, memory 412 of computerized system 400 may store any of the following programs, applications, or modules:

[00116] 1. Операционная система (ОС) 413, которая может быть мобильной операционной системой для реализации основных системных служб и управления различными аппаратными компонентами компьютеризированной системы 400. Типовые варианты осуществления операционной системы 413 хорошо известны специалистам в данной области техники, и может включать iOS, Android, Windows Mobile или любую другую известную или разработанную в будущем мобильную операционную систему (системы).[00116] 1. Operating system (OS) 413, which may be a mobile operating system for implementing basic system services and managing various hardware components of computerized system 400. Exemplary embodiments of operating system 413 are well known to those skilled in the art, and may include iOS , Android, Windows Mobile or any other known or future mobile operating system(s).

[00117] 2. Мобильные приложения 414 могут включать в себя, например, набор программных приложений, выполняемых процессором 401 компьютеризированной системы 400, которые заставляют компьютеризированную мобильную систему 400 выполнять определенные заранее определенные функции, такие как захват аудиосигнала, создание хэша из него и передавать его на сервер 107 для приема информации для отображения пользователю и для отображения этой информации пользователю с использованием графического пользовательского интерфейса, отображаемого на устройстве отображения, как описано выше. В одном или нескольких вариантах осуществления мобильные приложения 414 могут включать в себя, например, приложение 415 захвата звука для захвата аудиосигнала с использованием микрофона 425, приложение 416 хеширования для создания хэша захваченного аудиосигнала с использованием алгоритма хеширования и генерацию пользовательского интерфейса.[00117] 2. Mobile applications 414 may include, for example, a set of software applications executed by processor 401 of computerized system 400 that causes computerized mobile system 400 to perform certain predefined functions such as capturing an audio signal, generating a hash from it, and transmitting it. to the server 107 to receive information for display to the user and to display this information to the user using a graphical user interface displayed on the display device as described above. In one or more embodiments, mobile applications 414 may include, for example, an audio capture application 415 for capturing an audio signal using a microphone 425, a hashing application 416 for generating a hash of the captured audio signal using a hashing algorithm, and user interface generation.

[00118] 3. Хранилище 418 данных может использоваться, например, для хранения хэш-сигнала аудиосигнала, а также другой подходящей статистической информации.[00118] 3. Data store 418 may be used to store a hash of an audio signal, as well as other suitable statistical information, for example.

[00119] Фиг. 5 иллюстрирует примерный вариант компьютеризированной серверной системы, которую можно использовать, например, в качестве сервера компьютеризированной системы согласно изобретению для обмена информацией между мобильными вычислительными устройствами, показанными на Фиг. 1 и 2. Следует отметить, что другие компоненты описываемой системы, такие как ядро базы данных, также могут быть развернуты на компьютеризированной серверной системе 500.[00119] FIG. 5 illustrates an exemplary computerized server system that can be used, for example, as a server of the computerized system according to the invention for exchanging information between the mobile computing devices shown in FIG. 1 and 2. It should be noted that other components of the described system, such as the database engine, can also be deployed on the computerized server system 500.

[00120] В одном или нескольких вариантах осуществления компьютеризированная серверная система 500 может включать в себя шину 504 данных, которая может быть по существу аналогична и может выполнять по существу аналогичные функции, что и шина 504 данных компьютеризированной системы 400, показанной на Фиг. 4. В различных вариантах осуществления шина 504 данных может использовать тот же или другой протокол соединения и/или связи, что и шина 404 данных. Устройство 509 отображения и клавиатура 506 компьютеризированной серверной системы 500 также могут быть по существу аналогичны соответствующему процессору 401, сетевому интерфейсу 405, запоминающему устройству 402 СППЗУ/прошивки, устройству 409 отображения и клавиатуре 406 компьютеризированной системы 400, за исключением того, что первые компоненты развернуты в конфигурации серверной платформы. В различных реализациях один или несколько процессоров 501 могут иметь существенно повышенную вычислительную мощность по сравнению с процессором 401.[00120] In one or more embodiments, the computerized server system 500 may include a data bus 504 that may be substantially the same and may perform substantially the same functions as the data bus 504 of the computerized system 400 shown in FIG. 4. In various embodiments, data bus 504 may use the same or a different connection and/or communication protocol as data bus 404. The display device 509 and keyboard 506 of the computerized server system 500 may also be substantially the same as the corresponding processor 401, network interface 405, EPROM/firmware storage 402, display device 409, and keyboard 406 of the computerized system 400, except that the first components are deployed in server platform configuration. In various implementations, one or more processors 501 may have significantly increased processing power compared to processor 401.

[00121] В дополнение к устройству 506 ввода (клавиатуре) компьютеризированная серверная система 500 может дополнительно включать в себя устройство 510 управления курсором, такое как мышь, шаровой манипулятор или клавиши направления курсора, для передачи информации о направлении и выбора команд процессору 501 и для управления перемещения курсора на устройстве 509 отображения. Это устройство ввода обычно имеет две степени свободы по двум осям, первой оси (например, х) и второй оси (например, у), что позволяет устройству задавать положения на плоскости.[00121] In addition to the input device (keyboard) 506, the computerized server system 500 may further include a cursor control device 510, such as a mouse, trackball, or cursor direction keys, to communicate direction information and command selection to the processor 501 and to control moving the cursor on the display device 509 . This input device typically has two degrees of freedom in two axes, a first axis (eg x) and a second axis (eg y), which allows the device to define positions on a plane.

[00122] Адаптер 507 LAN/ISDN компьютеризированной серверной системы 500 может быть реализован, например, с использованием карты цифровой сети с интеграцией служб (ISDN) или модема для обеспечения соединения для передачи данных с телефонной линией соответствующего типа, которая сопряжена с Интернетом 424 с использованием аппаратного обеспечения интернет-провайдера (не показано). В качестве другого примера адаптер LAN/ISDN 507 может быть картой интерфейса локальной сети (LAN NIC) для обеспечения соединения для передачи данных с совместимой LAN и Интернетом 424. Для хранения различных файлов данных компьютеризированная серверная система 500 может быть снабжена хранилищем 508 данных для хранения различных статистических данных, которые должны отображаться пользователю посредством контроллера 503 хранения. Камера 511 может использоваться для получения изображений и/или видео различных объектов.[00122] The LAN/ISDN adapter 507 of the computerized server system 500 may be implemented, for example, using an Integrated Services Digital Network (ISDN) card or modem to provide a data connection to an appropriate type of telephone line that is interfaced to the Internet 424 using ISP hardware (not shown). As another example, the LAN/ISDN adapter 507 may be a local area network interface card (LAN NIC) to provide a data connection to a compatible LAN and the Internet 424. To store various data files, the computerized server system 500 may be provided with a data store 508 for storing various statistical data to be displayed to the user by the storage controller 503 . The camera 511 may be used to acquire images and/or video of various objects.

[00123] В одном или нескольких вариантах осуществления в памяти 512 компьютеризированной серверной системы 500 могут храниться любые из следующих программ, приложений, модулей и/или данных:[00123] In one or more embodiments, memory 512 of computerized server system 500 may store any of the following programs, applications, modules, and/or data:

[00124] 1. Серверная операционная система (ОС) 513, которая может быть операционной системой для реализации основных системных служб и управления различными аппаратными компонентами компьютеризированной серверной системы 500. Примерные варианты осуществления серверной операционной системы 513 хорошо известны специалистам в данной области техники и может включать Windows Server, Mac OS, Unix, AIX, FreeBSD, Linux, a также любые известные в настоящее время или разработанные позже операционные системы.[00124] 1. Server operating system (OS) 513, which may be an operating system for implementing basic system services and managing various hardware components of computerized server system 500. Exemplary embodiments of server operating system 513 are well known to those skilled in the art and may include Windows Server, Mac OS, Unix, AIX, FreeBSD, Linux, and any operating system currently known or later developed.

[00125] 2. Модуль 514 сетевой связи может включать в себя, например, один или несколько стеков сетевых протоколов, которые используются для установления сетевого соединения между компьютеризированной серверной системой 500 и различными сетевыми объектами Интернета 424, такими как компьютеризированная мобильная система 400, используя сетевой адаптер 505, работающий совместно с адаптером LAN/ISDN 507.[00125] 2. The network communication module 514 may include, for example, one or more network protocol stacks that are used to establish a network connection between the computerized server system 500 and various Internet network entities 424, such as the computerized mobile system 400, using a network 505 adapter that works in conjunction with the 507 LAN/ISDN adapter.

[00126] 3. Серверные приложения 515 могут включать в себя, например, набор программных приложений, выполняемых одним или несколькими процессорами 501 компьютеризированной серверной системы 500, которые заставляют компьютеризированную серверную систему 500 выполнять определенные заранее определенные функции или задачи, такие как создание хэша захваченного аудиосигнала и сравнить этот хэш с содержимым хранилища хэшей. В одном или нескольких вариантах осуществления серверные приложения 515 могут включать в себя приложение 516 хэширования для генерирования хеширования аудиосигнала, функциональные возможности которого были подробно описаны выше. Дополнительно может быть предусмотрена система 517 управления базой данных для хранения и управления доступом к различной информации, как подробно описано выше, такой как данные хранения хэшей. Приложение 518 для сравнения хэшей может быть предусмотрено для вычисления расстояния (например, разницы) между двумя хэшами и для нахождения совпадающих хэшей.[00126] 3. Server applications 515 may include, for example, a set of software applications executed by one or more processors 501 of computerized server system 500 that cause computerized server system 500 to perform certain predefined functions or tasks, such as generating a hash of a captured audio signal. and compare this hash with the contents of the hash store. In one or more embodiments, server applications 515 may include a hash application 516 to generate an audio hash, the functionality of which has been detailed above. Additionally, a database management system 517 may be provided for storing and managing access to various information as detailed above, such as hash storage data. A hash comparison application 518 may be provided to calculate the distance (eg, difference) between two hashes and to find matching hashes.

[00127] 4. Хранилище 519 данных может использоваться, например, для хранения хэш-данных или сравнения с сгенерированным хэшем, который может храниться в виде одной или нескольких таблиц базы данных, содержащих записи базы данных.[00127] 4. Data store 519 may be used, for example, to store hash data or compare against a generated hash, which may be stored in one or more database tables containing database records.

[00128] Ниже будет подробно раскрыт способ обнаружения и обмена финансовой информацией между расположенными рядом устройствами при помощи данной технологии.[00128] The method for detecting and exchanging financial information between nearby devices using this technology will be described in detail below.

[00129] Устройствами, подходящими для использования технологии являются ноутбуки, смартфоны, носимые устройства (например, часы, очки, кольца), кассы (в том числе мобильные), персональные компьютеры, устройства типа "Система на чипе" (SOC), одноплатные компьютеры (SBC) и так далее.[00129] Devices suitable for using the technology are laptops, smartphones, wearable devices (e.g., watches, glasses, rings), cash registers (including mobile devices), personal computers, System on a Chip (SOC) devices, single board computers (SBC) and so on.

[00130] Устройство должно быть оснащено микрофоном любого типа, аналого-цифровым преобразователем (АЦП) с частотой дискретизации не менее 8 kHz, процессором и модулем связи, работающим по протоколу Wi-Fi, Bluetooth, Ethernet, EDGE, 3G, LTE, 4G, 5G или другому, позволяющему осуществлять двусторонний обмен данными на скорости 16 кбит/сек или выше.[00130] The device must be equipped with a microphone of any type, an analog-to-digital converter (ADC) with a sampling rate of at least 8 kHz, a processor and a communication module operating on the Wi-Fi protocol, Bluetooth, Ethernet, EDGE, 3G, LTE, 4G, 5G or another that allows two-way data exchange at a speed of 16 kbps or higher.

[00131] При запуске режима обнаружения устройство устанавливает подключение к серверу, например, по протоколу обмена данными WebSockets, но не ограничиваясь им, и выполняет инициализацию подключения, которая состоит из авторизации и синхронизации времени с сервером. Алгоритм синхронизации времени определяет среднее время доставки пакета путем выполнения 5 или более сетевых запросов и корректирует время, полученное с сервера на среднее время доставки пакета. В случае успешной инициализации устройство отправляет на сервер сообщение с публичными данными транзакции, позволяющее идентифицировать устройство и инициализировать проведение платежа, такие как: идентификатор кассы, название кассы, id пользователя, ФИО пользователя, сумма платежа, идентификатор платежа, а также любые другие данные, на усмотрение компании, использующей технологию.[00131] When the discovery mode is started, the device establishes a connection to the server, for example, via the WebSockets communication protocol, but not limited to, and performs connection initialization, which consists of authorization and time synchronization with the server. The time synchronization algorithm determines the average packet delivery time by making 5 or more network requests and adjusts the time received from the server to the average packet delivery time. In case of successful initialization, the device sends a message to the server with public transaction data that allows you to identify the device and initialize the payment, such as: cash desk ID, cash desk name, user id, user full name, payment amount, payment ID, as well as any other data on the discretion of the company using the technology.

[00132] Окружающий звук захватывается при помощи микрофона, преобразуется в цифровой аудиосигнал при помощи АЦП и далее поступает на обработку в процессор, при этом устройство должно обладать следующими характеристиками:[00132] Surround sound is captured using a microphone, converted to a digital audio signal using an ADC, and then sent to the processor for processing, while the device must have the following characteristics:

• частота дискретизации не менее 8kHz;• sampling frequency not less than 8kHz;

• разрядность сигнала не менее 8 бит;• signal width not less than 8 bits;

• суммарная задержка при захвате аудиопотока не более 1 сек.• total delay when capturing an audio stream is no more than 1 sec.

[00133] Аудиосигнал по мере накопления преобразуется в амплитудный спектр при помощи оконного преобразования Фурье (STFT), где в качестве оконной функции используется окно Хэмминга (Hamming window), а в качестве функции Фурье - быстрое преобразование Фурье (FFT). Результатом преобразования является амплитудный спектр, который разделяется на 32 равных частотных интервала. Усредненная амплитуда каждого частотного интервала проверяется на превышение порогового значения, где результат проверки представляет собой 1 или 0 в двоичном представлении. Таким образом, результат каждой итерации оконной функции представлен в виде 32-битного числа (элемент хэша), а хэш аудио среды состоит из 100 или более таких элементов.[00133] The audio signal, as it accumulates, is transformed into an amplitude spectrum using the windowed Fourier transform (STFT), where the Hamming window is used as the window function, and the Fast Fourier Transform (FFT) is used as the Fourier function. The result of the transformation is the amplitude spectrum, which is divided into 32 equal frequency intervals. The average amplitude of each frequency interval is checked for exceeding a threshold value, where the result of the check is 1 or 0 in binary representation. Thus, the result of each iteration of the window function is represented as a 32-bit number (hash element), and the audio environment hash consists of 100 or more such elements.

[00134] Устройство отправляет новые хэши аудио среды на сервер в реальном времени используя двунаправленный протокол обмена данными WebSockets, но не ограничивается им. В случае потери соединения, хэши накапливаются в ОЗУ устройства и отправляются при возобновлении подключения.[00134] The device sends the new audio environment hashes to the server in real time using, but is not limited to, the bidirectional WebSockets communication protocol. In the event of a connection loss, hashes are accumulated in the device's RAM and sent when the connection is resumed.

[00135] Пакет данных представлен в формате JSON, но не ограничен им. В пакете содержится точное время записи исходного аудиосигнала и хэш аудио среды, состоящий из массива элементов хэша, длиной от 100 до 1000 элементов.[00135] The data packet is in JSON format, but is not limited to it. The package contains the exact recording time of the original audio signal and the hash of the audio environment, consisting of an array of hash elements, from 100 to 1000 elements long.

[00136] При получении пакета данных с хэшем, сервер создает индекс хэша и реплицирует индекс и исходный хэш на все сервера в кластере (ноды), где они хранятся в течение 1 минуты. Таким образом, каждая нода имеет полный набор хэшей всех устройств за последнюю минуту. Сервер отправляет на случайную ноду задание на поиск совпадений с новым хэшем. Таким образом, сервер равномерно распределяет нагрузку в кластере.[00136] When receiving a data packet with a hash, the server creates a hash index and replicates the index and the original hash to all servers in the cluster (nodes), where they are stored for 1 minute. Thus, each node has a complete set of hashes of all devices for the last minute. The server sends a task to a random node to search for matches with a new hash. Thus, the server evenly distributes the load in the cluster.

[00137] Горизонтальное масштабирование сервера выполняется в автоматическом режиме в зависимости от средней нагрузки на ноды в кластере. При достижении 60%, в кластер добавляется дополнительная нода, при падении нагрузки менее 40%, нода удаляется из кластера.[00137] Horizontal server scaling is performed automatically depending on the average load on the nodes in the cluster. Upon reaching 60%, an additional node is added to the cluster, when the load drops below 40%, the node is removed from the cluster.

[00138] Индекс хэша представляет собой полный инвертированный индекс поиска, где каждый ключ ссылается на место в совпадающем хэше. Ключи в индексе построены с использованием алгоритма расширения выборки: каждый элемент хэша перемножается на 8 различных битовых масок, получившиеся 8 ключей добавляются в индекс с указанием используемой маски.[00138] The hash index is a complete inverted lookup index, where each key refers to a location in the matching hash. The keys in the index are built using the sampling expansion algorithm: each hash element is multiplied by 8 different bit masks, the resulting 8 keys are added to the index, indicating the mask used.

[00139] Поиск совпадающих хэшей происходит в несколько этапов. 1) при помощи индекса выбираются хэши с наибольшим количеством совпадающих ключей. 2) определяется сдвиг в хэшах относительно искомого хэша и определяется область пересечения хэшей. 3) Для каждого кандидата вычисляется error rate, как отношение количества битовых отличий между хэшем и искомым хэшем к длине области пересечения хэшей. 4) Кандидаты, чей error rate ниже порогового значения, считаются совпадающими.[00139] The search for matching hashes occurs in several steps. 1) using the index, hashes with the largest number of matching keys are selected. 2) the shift in hashes relative to the desired hash is determined and the intersection area of the hashes is determined. 3) For each candidate, the error rate is calculated as the ratio of the number of bit differences between the hash and the desired hash to the length of the hash intersection area. 4) Candidates whose error rate is below the threshold are considered a match.

[00140] Стоит отметить, что пороговое значение может быть настроено для различных сценариев использования, например, для изменения радиуса обнаружения устройств, уменьшения времени обнаружения.[00140] It is worth noting that the threshold value can be configured for various use cases, for example, to change the detection radius of devices, reduce the detection time.

[00141] При совпадении хэшей сервер отправляет на соответствующие устройства, публичные данные транзакции, позволяющее идентифицировать устройство и инициализировать проведение платежа, такие как: идентификатор кассы, название кассы, id пользователя, ФИО пользователя, сумма платежа, идентификатор платежа, а также любые другие данные, на усмотрение компании, использующей технологию.[00141] If the hashes match, the server sends to the corresponding devices public transaction data that allows you to identify the device and initiate the payment, such as: cash desk ID, cash desk name, user id, user full name, payment amount, payment ID, as well as any other data , at the discretion of the company using the technology.

[00142] Устройство выполняет проведение платежа, используя технологию данного патента. Технология не получает доступа к данным транзакции и не влияет на безопасность проведения транзакции.[00142] The device performs the payment using the technology of this patent. The technology does not get access to the transaction data and does not affect the security of the transaction.

[00143] Наконец, следует понимать, что процессы и методы, описанные в настоящем документе, по своей сути не связаны с каким-либо конкретным устройством и могут быть реализованы с помощью любой подходящей комбинации компонентов. Кроме того, в соответствии с идеями, описанными в данном документе, могут использоваться различные типы устройств общего назначения. Также может оказаться выгодным сконструировать специализированное устройство для выполнения описанных здесь этапов способа. Настоящее изобретение описано на конкретных примерах, которые во всех отношениях предназначены для иллюстрации, а не для ограничения. Специалистам в данной области техники будет понятно, что для практического применения настоящего изобретения подходят многие различные комбинации аппаратных средств, программного обеспечения и программно-аппаратных средств. Например, описываемое программное обеспечение может быть реализовано на самых разных языках программирования или сценариев, таких как ассемблер, C/C++, Objective-C, perl, shell, PHP, Java, а также на любом известном в настоящее время или разработанном позже языке программирования или скриптовом языке.[00143] Finally, it should be understood that the processes and methods described herein are not inherently associated with any particular device and may be implemented using any suitable combination of components. In addition, in accordance with the ideas described in this document, various types of general purpose devices can be used. It may also be advantageous to design a specialized device for carrying out the steps of the method described here. The present invention has been described in terms of specific examples, which are intended in all respects to be illustrative and not restrictive. Those skilled in the art will appreciate that many different combinations of hardware, software, and firmware are suitable for practicing the present invention. For example, the described software may be implemented in a wide variety of programming or scripting languages such as assembly language, C/C++, Objective-C, perl, shell, PHP, Java, or any programming language now known or later developed, or scripting language.

[00144] В настоящее время, для реализации бесшовного опыта бесконтактной оплаты (обмена финансовой информацией) используются проприетарные технологии, ограниченные своей экосистемой (GooglePay, ApplePay и так далее). Для реализации кроссплатформенного решения используются динамические QR коды, что повышает требования к устройствам (наличие экрана на принимающем устройстве и камеры на платежном) либо используются системы генерации и ввода одноразовых кодов, что ухудшает пользовательский опыт.[00144] Currently, proprietary technologies limited to their ecosystem (GooglePay, ApplePay, and so on) are used to implement a seamless contactless payment (financial information exchange) experience. To implement a cross-platform solution, dynamic QR codes are used, which increases the requirements for devices (the presence of a screen on the receiving device and a camera on the payment device), or systems for generating and entering one-time codes are used, which worsens the user experience.

[00145] В случае с данным техническим решением в подавляющем большинстве случаев идентификация пары устройств, участвующей в процессе обмена финансовой информацией происходит автоматически, без участия человека и не предъявляет высоких требований к устройствам, участвующим в обмене.[00145] In the case of this technical solution, in the vast majority of cases, the identification of a pair of devices participating in the process of exchanging financial information occurs automatically, without human intervention and does not place high demands on the devices involved in the exchange.

[00146] Кроме того, специалистам в данной области техники будут очевидны другие реализации изобретения из рассмотрения описанного здесь описания и практического применения изобретения. Различные аспекты и/или компоненты описанных вариантов осуществления могут использоваться по отдельности или в любой комбинации в системах и способах для реализации обмена информацией между двумя или более мобильными вычислительными устройствами и/или другими вычислительными системами. Предполагается, что описание и примеры рассматриваются только как иллюстративные, а истинный объем и сущность изобретения указаны в следующей формуле изобретения.[00146] In addition, other embodiments of the invention will be apparent to those skilled in the art from a consideration of the description and practice of the invention described herein. Various aspects and/or components of the described embodiments may be used singly or in any combination in systems and methods for implementing information exchange between two or more mobile computing devices and/or other computing systems. It is intended that the description and examples be regarded as illustrative only, and that the true scope and spirit of the invention be indicated in the following claims.

Claims (18)

1. Компьютерно-реализуемый способ обнаружения и обмена финансовой информацией между расположенными рядом устройствами, выполняемый на компьютеризированной системе, содержащей мобильное устройство аудиозахвата, центральный процессор, устройство отображения и память, причем реализуемый компьютером способ включает:1. A computer-implemented method for detecting and exchanging financial information between nearby devices, executing on a computerized system containing a mobile audio capture device, a central processing unit, a display device, and a memory, the computer-implemented method comprising: - осуществление захвата аудиосигнала на основании заданного заранее критерия с использованием мобильного устройства аудиозахвата пользователя, при этом аудиосигнал содержит образец окружающего звука в окружающем звуковом пространстве мобильного устройства;- capturing an audio signal based on a predetermined criterion using a user's mobile audio capture device, wherein the audio signal contains an ambient sound sample in the ambient sound space of the mobile device; - использование центрального процессора для генерации хэш-функции захваченного аудиосигнала;- using the CPU to generate the hash function of the captured audio signal; - передачу хэша захваченного аудиосигнала на сервер кластера;- transmission of the hash of the captured audio signal to the cluster server; - причем создают при получении пакета данных с хэшем захваченного аудиосигнала посредством сервера индекс хэша и реплицируют индекс и полученный хэш на все сервера в кластере (ноды), где каждая нода имеет полный набор хэшей аудиосигналов всех устройств за последнюю минуту; - moreover, when receiving a data packet with a hash of the captured audio signal by means of the server, a hash index is created and the index and the received hash are replicated to all servers in the cluster (nodes), where each node has a complete set of hashes of the audio signals of all devices for the last minute; - осуществление посредством сервера сравнения хэша захваченного аудиосигнала и по меньшей мере одного хэша, хранящегося в облачной базе данных, который отправляет на случайную ноду задание на поиск совпадений с хэшем захваченного аудиосигнала причем - implementation by means of a server of comparing the hash of the captured audio signal and at least one hash stored in the cloud database, which sends a task to a random node to search for matches with the hash of the captured audio signal, moreover -- сервер находит аудиосигнал-кандидат, используя короткую аудиосигнатуру в индексе;-- server finds a candidate audio signal using the short audio signature in the index; -- создают длинную аудиосигнатуру;-- create a long audio signature; -- осуществляют проверку аудиосигнала-кандидата с помощью побитного сравнения хэша длинной аудиосигнатуры захваченного аудиосигнала с хэшем длинной аудиосигнатуры, сохраненной в облачной базе данных и доступной серверу, с использованием индекса проверки;-- verifying the candidate audio signal by bitwise comparing the hash of the long audio signature of the captured audio signal with the hash of the long audio signature stored in the cloud database and available to the server using the verification index; - прием результата сравнения от сервера, идентифицирующего второе устройство пользователя, причем второе устройство связано с аналогичным хэшем аудиосигнала, аналогичным хэшу аудио, полученным из выборки окружающего звука в окружающем звуковом пространстве второго устройства; а такжеreceiving a comparison result from a server identifying a second user device, the second device being associated with a similar audio hash similar to the audio hash obtained from the ambient sound sample in the second device's ambient sound space; as well as - санкционирование передачи финансовых данных между мобильным устройством аудиозахвата и вторым устройством, связанным с аналогичным хэшем аудиосигнала, на основании результата сравнения.- authorizing the transfer of financial data between the mobile audio capture device and the second device associated with the same hash of the audio signal, based on the result of the comparison. 2. Способ по п.1, характеризующийся тем, что заданным критерием является наличие звукового сигнала.2. The method according to claim 1, characterized in that the predetermined criterion is the presence of a sound signal. 3. Способ по п.1, характеризующийся тем, что заданным критерием является громкость захваченного аудиосигнала, превышающая заданный порог.3. The method according to claim 1, characterized in that the predetermined criterion is the loudness of the captured audio signal exceeding the predetermined threshold. 4. Способ по п.1, характеризующийся тем, что, когда звуковой сигнал не удовлетворяет заданному критерию, осуществляется генерирование случайного звука с использованием устройства генерации звука.4. The method according to claim 1, characterized in that when the audio signal does not meet the predetermined criterion, random audio is generated using the audio generating device. 5. Способ по п.1, характеризующийся тем, что удаленный сервер является облачным сервером.5. The method according to claim 1, characterized in that the remote server is a cloud server. 6. Способ по п.1, характеризующийся тем, что сервер содержит базу данных, в которой хранится множество хэшей аудиосигнала.6. The method according to claim 1, characterized in that the server contains a database that stores a plurality of hashes of the audio signal. 7. Способ по п.1, характеризующийся тем, что дополнительно включает выполнение передачи данных со вторым устройством на основе идентификатора второго устройства.7. The method of claim 1, further comprising performing data communication with the second device based on the identifier of the second device. 8. Способ по п.1, характеризующийся тем, что хэш захваченного аудиосигнала и аналогичный хэш аудиосигнала содержат перцептивные хэши.8. The method according to claim 1, characterized in that the hash of the captured audio signal and the similar hash of the audio signal contain perceptual hashes.
RU2022127558A 2022-10-24 Method and system for information exchange between devices RU2783261C1 (en)

Publications (1)

Publication Number Publication Date
RU2783261C1 true RU2783261C1 (en) 2022-11-10

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140324591A1 (en) * 2013-04-29 2014-10-30 Qualcomm Incorporated Selectively authenticating a group of devices as being in a shared environment based on locally captured ambient sound
US20150373468A1 (en) * 2014-06-24 2015-12-24 Microsoft Corporation Proximity discovery using audio signals
RU2628118C2 (en) * 2015-02-16 2017-08-15 Общество С Ограниченной Ответственностью "Яндекс" Method for forming and usage of the inverted index of audio recording and machinescent of information storage device
US10348724B2 (en) * 2014-04-07 2019-07-09 Barco N.V. Ad hoc one-time pairing of remote devices using online audio fingerprinting
US20190311746A1 (en) * 2018-04-06 2019-10-10 Deluxe One Llc Indexing media content library using audio track fingerprinting
WO2022128779A1 (en) * 2020-12-15 2022-06-23 Eaton Intelligent Power Limited Systems and methods for calibrating a distance model using acoustic data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140324591A1 (en) * 2013-04-29 2014-10-30 Qualcomm Incorporated Selectively authenticating a group of devices as being in a shared environment based on locally captured ambient sound
US10348724B2 (en) * 2014-04-07 2019-07-09 Barco N.V. Ad hoc one-time pairing of remote devices using online audio fingerprinting
US20150373468A1 (en) * 2014-06-24 2015-12-24 Microsoft Corporation Proximity discovery using audio signals
RU2628118C2 (en) * 2015-02-16 2017-08-15 Общество С Ограниченной Ответственностью "Яндекс" Method for forming and usage of the inverted index of audio recording and machinescent of information storage device
US20190311746A1 (en) * 2018-04-06 2019-10-10 Deluxe One Llc Indexing media content library using audio track fingerprinting
WO2022128779A1 (en) * 2020-12-15 2022-06-23 Eaton Intelligent Power Limited Systems and methods for calibrating a distance model using acoustic data

Similar Documents

Publication Publication Date Title
JP6916352B2 (en) Response to remote media classification queries using classifier models and context parameters
US20200142928A1 (en) Mobile video search
KR102315732B1 (en) Speech recognition method, device, apparatus, and storage medium
US10909971B2 (en) Detection of potential exfiltration of audio data from digital assistant applications
US10768954B2 (en) Personalized digital assistant device and related methods
US11334636B2 (en) Real-time event detection on social data streams
US9224385B1 (en) Unified recognition of speech and music
US10346737B1 (en) Distributed multisensor system to record spatially diverse events
US11145309B1 (en) Dynamic model selection in speech-to-text processing
US20230388416A1 (en) Emergency communication system with contextual snippets
US11645249B1 (en) Automated detection of duplicate content in media items
EP4331188A1 (en) Automated recording highlights for conferences
US11570403B2 (en) Automated recording highlights for conferences
US20220353100A1 (en) Automated Recording Highlights For Conferences
RU2783261C1 (en) Method and system for information exchange between devices
US11868678B2 (en) User interface sound emanation activity classification
US11165779B2 (en) Generating a custom blacklist for a listening device based on usage
US11863711B2 (en) Speaker segment analysis for conferences
US11640426B1 (en) Background audio identification for query disambiguation
US11386056B2 (en) Duplicate multimedia entity identification and processing
EP3746914B1 (en) Personalized digital assistant device and related methods
US20200364195A1 (en) Identifying Duplication Multimedia Entities