Способ сравнения первого входящего аудиотрека с индексированным аудиотреком
Иллюстрации
Показать всеИзобретение описывает способ сравнения первого входящего аудиотрека с индексированным аудиотреком. Технический результат – устранение затрат производительной мощности, имеющих место при сравнении более крупных частей аудиосигнатур. Для этого способ выполняется на сервере. Способ содержит: выбор индексированного аудиотрека как аудиотрека-кандидата из множества индексированных аудиотреков; проверку аудиотрека-кандидата на совпадение с первым аудиотреком. 22 з.п. ф-лы, 8 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее решение относится к способу и системе сравнения аудиотреков с использованием хромапринтов с быстрой процедурой выбора кандидата.
УРОВЕНЬ ТЕХНИКИ
У распознавания аудиофайлов есть две задачи: распознавание частей аудиозаписей и сравнение полных аудиотреков.
Технология распознавания используется для идентификации аудиозаписей с помощью использования относительно короткого, но потенциально искаженного и зашумленного фрагмента аудиотрека. Типичным примером является Shazam - коммерческий сервис распознавания музыки на базе смартфонов. Shazam использует встроенный микрофон смартфона, чтобы получить короткий фрагмент проигрываемой музыки. Он создает на основе этого фрагмента аудиосигнатуру и сравнивает ее с базой данных. После того как произведено распознавание, нет необходимости любой дальнейшей обработки, например дополнительного сравнения с подобранным в базе данных файлов. Поэтому когда пользователь слушает музыкальный микс из разных мелодий и пытается определить мелодию, Shazam определит название той мелодии, которая проигрывается в данный момент.
Задачей сравнения является поиск дубликатов. Дубликатом музыкального микса из композиций будет являться такой же микс из тех же самых композиций. Однако аудиотреки могут рассматриваться как дубликаты, если различие между ними состоит в небольшом различии по длительности, в небольшом сдвиге по времени или в различии по качеству.
Поскольку целью сравнения является поиск дубликатов, необходимо сравнение более крупных частей аудиосигнатур. Сравнение более крупных частей аудиосигнатур является ресурсозатратным (затрачивается производительная мощность и т.д.)
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Задачей настоящего решения является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.
ЗАМЕНЯЮЩИЙ ЛИСТ ОПИСАНИЯ
Первым объектом осуществления решения является способ сравнения первого входящего аудиотрека с индексированным аудиотреком. Способ выполняется на сервере. Способ включает в себя: (1) выбор индексированного аудиотрека из множества индексированных аудиотреков в качестве аудиотрека-кандидата; выбор осуществляется с помощью выполнения следующих этапов: (а) определение первой короткой аудиосигнатуры (аудиоотпечатка), причем первая короткая аудиосигнатура является аудиосигнатурой первой части первого входящего аудиотрека и содержит первое хромаслово, причем первая часть первого аудиотрека имеет предварительно определенную длительность от начала первого входящего аудиотрека; (b) определение аудиотрека-кандидата из набора индексированных аудиотреков, при этом у аудиотрека-кандидата имеется вторая короткая аудиосигнатура, которая содержит второе хромаслово, причем начальная часть второго хромаслова является идентичной начальной части первого хромаслова, а вторая короткая аудиосигнатура является аудиосигнатурой первой части аудиотрека-кандидата, причем первая часть аудиотрека-кандидата имеет первую предварительно определенную длительность от начала аудиотрека-кандидата; (2) проверку на совпадение аудиотрека-кандидата с первым аудиотреком с помощью выполнения следующих этапов: (а) определение первой длинной аудиосигнатуры, которая является аудиосигнатурой второй части первого входящего аудиотрека; (b) извлечение второй длинной аудиосигнатуры, причем вторая длинная аудиосигнатура является аудиосигнатурой второй части аудиотрека-кандидата; и вторая часть первого аудиотрека и вторая часть аудиотрека-кандидата имеют вторую предварительно определенную длительность от начала соответственно первого аудиотрека и аудиотрека-кандидата; и первые части соответствующего первого аудиотрека и аудиотрека-кандидата полностью входят во вторые части соответствующего первого аудиотрека и аудиотрека-кандидата; а также осуществление побитного сравнения первой длинной аудиосигнатуры со второй длинной аудиосигнатурой.
В некоторых вариантах осуществления начальные части хромаслова содержат комбинацию из: (i) любого из первого байта и первой многобайтовой последовательности, причем первая многобайтовая последовательность является последовательностью байтов в начале начальной части соответствующего хромаслова, а также первая многобайтовая последовательность имеет предварительно определенное число байтов; и (ii) любого из последующих байтов и второй многобайтовой последовательности, причем вторая многобайтовая последовательность является последовательностью байтов, следующей либо за первой многобайтовой последовательностью, либо за первым байтом каждого соответствующего хромаслова, причем во второй многобайтовой последовательности имеется предварительно определенное число байтов.
В некоторых вариантах осуществления первая предварительно определенная длительность составляет меньший из интервалов: предварительно определенной длительности в промежутке от 9 до 27 секунд или длительности соответствующего аудиотрека.
В некоторых вариантах осуществления первая предварительно определенная длительность составляет меньший из интервалов: 21 секунды или длительности соответствующего аудиотрека.
В некоторых вариантах осуществления вторая предварительно определенная длительность составляет меньший из интервалов: предварительно определенной длительности в промежутке от 96 до 141 секунд, или длительности соответствующего аудиотрека.
В некоторых вариантах осуществления вторая предварительно определенная длительность составляет меньший из интервалов: 120 секунд или длительности соответствующего аудиотрека.
В некоторых вариантах осуществления и первое хромаслово, и второе хромаслово характеризуют часть соответствующего аудиотрека, а длительность части аудиотрека находится между 1/2 и 8 секундами.
В некоторых вариантах осуществления способ также содержит формирование указанного первого хромаслова и указанного второго хромаслова.
В некоторых вариантах осуществления и первое хромаслово, и второе хромаслово содержат указание на идентификатор (ID) трека, связанный с соответствующим аудиотреком.
В некоторых вариантах осуществления каждое хромаслово содержит указание на информацию о длительности трека, связанную с соответствующим аудиотреком.
В некоторых вариантах осуществления идентификатор трека описывается третьей многобайтовой последовательностью, следующей либо за (i) последующим байтом, либо за (ii) второй многобайтовой последовательностью.
В некоторых вариантах осуществления длительность трека характеризуется одним байтом, который следует либо за (i) последующим байтом, либо за (ii) второй многобайтовой последовательностью.
В некоторых вариантах осуществления определение аудиотрека-кандидата содержит сравнение соответствующей длительности первого входящего аудиотрека и аудиотрека-кандидата.
В некоторых вариантах осуществления способ также содержит определение того, что аудиотрек-кандидат не является совпадающим с первым входящим треком-кандидатом из-за того, что длительность трека отличается на значение, превышающее предварительно установленное значение.
В некоторых вариантах осуществления аудиотрек-кандидат содержит множество аудиотреков-кандидатов, а способ содержит выбор подгруппы множества аудиотреков-кандидатов на основе предварительно определенного порогового числа кандидатов.
В некоторых вариантах осуществления побитное сравнение первой длинной аудиосигнатуры со второй длинной аудиосигнатурой содержит смещение первой длинной аудиосигнатуры по отношению ко второй длинной аудиосигнатуре.
В некоторых вариантах осуществления смещение содержит амплитуду смещения, которая находится в промежутке плюс или минус 20 секунд.
В некоторых вариантах осуществления определение, что начальная часть второго хромаслова идентична начальной части первого хромаслова, выполняется с помощью определения, что вся последовательность байтов в начальной части второго хромаслова совпадает со всей последовательностью байтов в начальной части первого хромаслова.
В некоторых вариантах осуществления по меньшей мере одна из короткой аудиосигнатуры и длинной аудиосигнатуры содержит указание на идентификатор (ID) трека, связанный с соответствующим аудиотреком.
В некоторых вариантах осуществления до определения первой короткой аудиосигнатуры способ также содержит получение сервером по меньшей мере части первого входящего аудиотрека.
В некоторых вариантах осуществления получение второй короткой аудиосигнатуры содержит извлечение с использованием индекса.
В некоторых вариантах осуществления индекс является инвертированным индексом аудиотрека.
В некоторых вариантах осуществления инвертированный индекс аудиотрека является либо: (i) прюнинг-индексом (от англ. pruning - обрезка), сформированным для множества коротких аудиосигнатур, либо (ii) индексом проверки (валидации), сформированным для множества длинных аудиосигнатур.
Другим объектом осуществления является сервер, включающий в себя постоянный носитель компьютерной информации (машиночитаемый носитель). Постоянный носитель информации содержит инвертированный индекс аудиотрека. Инвертированный индекс аудиотрека содержит: множество наборов списков словопозиций (постинг-листов), причем каждый список словопозиций в множестве наборов списков словопозиций является списком словопозиций хромаслов, а каждое хромаслово является компонентом аудиосигнатуры; каждое хромасловослово поделено на множество байтов и содержит начальную часть хромаслова, которая является подмножеством байтов, имеющим первый байт и последующий байт, причем последующий байт расположен непосредственно за первым байтом; в рамках данного набора списков словопозиций из множества списков словопозиций: каждый список словопозиций содержит хромаслова, у которых один и тот же первый байт в начальной части хромаслова, и первый из множества списков словопозиций отличается от второго из множества списков словопозиций тем, что связанные хромаслова имеют иной последующий байт, который является уникальным для данного набора списков словопозиций.
В некоторых вариантах осуществления каждый из данных наборов списков словопозиций связан с ключом индекса, который является уникальным в рамках множества наборов списков словопозиций.
В некоторых вариантах осуществления ключ индекса необходим для быстрого определения положения данного набора списка словопозиций в рамках индекса.
В некоторых вариантах осуществления каждый список словопозиций из данных наборов списков словопозиций связан с ключом сортировки, который является уникальным для данного набора списков словопозиций.
В некоторых вариантах осуществления ключ сортировки используется для быстрого определения местоположения списка словопозиций в рамках данного набора списков словопозиций.
В некоторых вариантах осуществления первый байт является первой многобайтовой последовательностью, которая является последовательностью байтов в начале начальной части каждого соответствующего хромаслова, а число байтов в каждой первой многобайтовой последовательности является одним и тем же.
В некоторых вариантах осуществления ключ индекса содержит в себе первую многобайтовую последовательность.
В некоторых вариантах осуществления последующий байт является второй многобайтовой последовательностью, которая является последовательностью байтов, следующих либо за первым байтом, либо за первой многобайтовой последовательностью каждого соответствующего хромаслова.
В некоторых вариантах осуществления число байтов в каждой из вторых многобайтовых последовательностей является одним и тем же.
В некоторых вариантах осуществления первая многобайтовая последовательность является последовательностью из трех байтов.
В некоторых вариантах осуществления начальная часть каждого хромаслова содержит в себе предварительно определенное число байтов.
В некоторых вариантах осуществления начальная часть каждого хромаслова содержит в себе 4 байта.
В некоторых вариантах осуществления каждый из данных наборов списков словопозиций является связанным с ключом индекса, который является уникальным в рамках множества наборов списков словопозиций, и каждый список словопозоций в данном наборе списков словопозиций является связанным с ключом сортировки, который является уникальным в рамках данного набора списков словопозиций.
В некоторых вариантах осуществления аудиосигнатура является либо (i) короткой аудиосигнатурой, являющаяся аудиосигнатурой первой части аудиотрека, причем первая часть аудиотрека обладает первой предварительно определенной длительностью от начала аудиотрека, либо (ii) длинной аудиосигнатурой, которая является аудиосигнатурой второй части аудиотрека, причем вторая часть аудиотрека обладает второй предварительно определенной длительностью от начала аудиотрека.
В некоторых вариантах осуществления по меньшей мере одна из короткой и длинной аудиосигнатуры содержит идентификатор (ID) трека.
В некоторых вариантах осуществления либо короткая, либо длинная аудиосигнатура сохраняются в инвертированном индексе аудиотрека, осуществленном либо как: (i) прюнинг-индекс, сформированный для множества коротких аудиосигнатур, либо как (ii) индекс проверки, сформированный для множества длинных аудиосигнатур.
Другим объектом является способ создания и поддержки инвертированного индекса аудиотрека, способ содержит: (i) получение аудиотрека для индексации; (ii) определение первого хромаслова, разделенного на множество байтов, причем первое хромаслово содержит начальную часть хромаслова, которая является подмножеством байтов с первым байтом и последующим байтом, причем последующий байт расположен сразу после первого байта; (iii) определение на основе первого байта конкретного набора списков словопозиций в рамках множества наборов списков словопозиций, причем этот конкретный набор содержит списки словопозиций, которые содержат ссылки на хромаслова с одинаковым первым байтом; (iv) сохранение указания на первое хромаслово в данном списке словопозиций в ответ на то, что второй байт первого хромаслова совпадает с любым вторым байтом любых хромаслов, хранящихся в данном списке словопозиций в рамках конкретного набора списков словопозиций; (v) создание нового списка словопозиций в рамках конкретного набора списков словопозиций, хранящего указание на первое хромаслово в ответ на то, что второй байт первого хромаслова не совпадает с любым вторым байтом любых хромаслов, хранящихся в списках словопозиций.
В некоторых вариантах осуществления первый байт является первой многобайтовой последовательностью, которая является последовательностью байтов в начале начальной части нового хромаслова, причем число байтов является предварительно определенным.
В некоторых вариантах осуществления последующий байт является второй многобайтовой последовательностью, которая является последовательностью байтов, следующих либо за первой многобайтовой последовательностью, либо за первым байтом нового хромаслова, причем число байтов в каждой второй многобайтовой последовательности является предварительно определенным.
В некоторых вариантах осуществления способ перед определением первого хромаслова, связанного с новым аудиотреком для индексирования, содержит определение аудиосигнатуры нового аудиотрека для индексирования, причем хромаслово является частью аудиосигнатуры.
В некоторых вариантах осуществления аудиосигнатура является либо (i) короткой аудиосигнатурой первой части нового аудиотрека, причем первая часть нового аудиотрека обладает первой предварительно определенной длительностью от начала нового аудиотрека, либо (ii) длинной аудиосигнатурой второй части нового аудиотрека, причем вторая часть нового аудиотрека обладает второй предварительно определенной длительностью от начала нового аудиотрека.
В некоторых вариантах осуществления первая предварительно определенная длительность составляет меньший интервал из: предварительно определенной длительности в промежутке от 9 до 27 секунд или длительности нового аудиотрека.
В некоторых вариантах осуществления первая предварительно определенная длительность составляет меньший из интервалов: 21 секунда или длительность нового аудиотрека.
В некоторых вариантах осуществления вторая предварительно определенная длительность составляет меньший из интервалов: предварительно определенной длительности в промежутке от 96 до 141 секунд или длительности нового аудиотрека.
В некоторых вариантах осуществления вторая предварительно определенная длительность составляет меньший из интервалов: 120 секунд или длительность соответствующего аудиотрека.
В некоторых вариантах осуществления хромаслово характеризует часть аудиотрека, а длительность части аудиотрека находится между 1/2 и 8 секундами.
В некоторых вариантах осуществления длительность части аудиотрека составляет 3 секунды.
В некоторых вариантах осуществления каждое хромаслово содержит указание на идентификатор (ID) трека, связанный с соответствующим аудиотреком.
В некоторых вариантах осуществления каждое хромаслово содержит указание на информацию о длительности трека, связанную с соответствующим аудиотреком.
В некоторых вариантах осуществления идентификатор (ID) трека описывается одним байтом, который следует либо за (i) следующим байтом, либо за (ii) второй многобайтовой последовательностью.
В некоторых вариантах осуществления длительность трека описывается одним байтом, который следует либо за (i) следующим байтом, либо за (ii) второй многобайтовой последовательностью.
В некоторых вариантах осуществления короткая аудиосигнатура сохраняется в инвертированном индексе аудиотрека, причем этот индекс исполняется как прюнинг-индекс, сформированный для коротких аудиосигнатур.
В контексте настоящего описания "аудиосигнатура" является сжатой цифровой информацией (сигналом), детерминированно созданной из аудиосигнала, которая может быть использована для идентификации образца аудио или быстрого определения положения элементов в базе данных аудио.
В контексте настоящего описания "хромаслово" является компонентом аудиосигнатуры, причем каждое хромаслово является последовательностью байтов, описывающих часть аудио. Как неограничивающий пример, хромаслово может являться компонентом аудиосигнатуры, созданным с использованием технологии "хромапринт".
В контексте настоящего описания "аудиотрек" является аудиофайлом; видеофайлом, который содержит аудиотрек; любой другой записью аудиосигнала, подходящего для машинного анализа; а также незаписанным аудиосигналом, например аудиосигналом, исходящим из преобразователя, например микрофона.
В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным. В контексте описания использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
В контексте настоящего описания «клиентское устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами клиентских устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов вышеописанного способа.
В контексте настоящего описания «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например выделенном сервере или множестве серверов.
В контексте настоящего описания «информация» включает в себя любую информацию любого типа, которую можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
В контексте настоящего описания «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
В контексте настоящего описания «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
Каждый вариант осуществления преследует по меньшей мере одну из вышеупомянутых целей. Следует иметь в виду, что некоторые объекты решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять другим целям, отдельно не указанным здесь.
Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для лучшего понимания решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
На Фиг. 1 представлена принципиальная схема, изображающая аудиосигнатуру 1001, которая является вариантом осуществления аудиосигнатуры в соответствии с вариантами осуществления решения.
На Фиг. 2 представлена принципиальная схема, изображающая аудиосигнатуру 1002, которая является вариантом осуществления аудиосигнатуры в соответствии с вариантами осуществления решения.
На Фиг. 3 представлена принципиальная схема, изображающая множество наборов 200 списков словопозиций, причем множество наборов 200 списков словопозиций сформировано в соответствии с комбинацией 202 байтов в соответствии с вариантами осуществления.
На Фиг. 4 представлена принципиальная схема, изображающая фрагмент 300 прюнинг-индекса 724 для конкретного набора 2004 из списков словопозиций 304, причем фрагмент 300 прюнинг-индекса 724 реализован в соответствии с вариантами осуществления, не ограничивающими объем решения.
На Фиг. 5 представлена принципиальная схема списка 304 словопозиций, реализованного в соответствии с вариантами осуществления.
На Фиг. 6 представлена блок-схема способа 500 выбора индексированного аудиотрека как аудиотрека-кандидата из множества индексированных аудиотреков, причем способ 500 выполнен в соответствии с вариантами осуществления решения.
На Фиг. 7 представлена блок-схема способа 600 сверки аудиотрека-кандидата с первым аудиотреком, причем способ 600 выполнен в соответствии с вариантами осуществления настоящего решения.
На Фиг. 8 представлена принципиальная схема системы 700, реализованной в соответствии с вариантами осуществления решения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Одним объектом настоящего решения является способ сравнения входящего аудиотрека с аудиотреками, которые уже проиндексированы и/или сохранены в базе данных, доступной серверу. В широком смысле способ содержит этапы (i) быстрого выбора аудиотрека-кандидата и (ii) проверку кандидатов.
Другим объектом настоящего решения является постоянный носитель компьютерной информации (машиночитаемый носитель информации), на котором хранится инвертированный индекс аудиотрека. В некоторых вариантах осуществления инвертированный индекс аудиотрека может быть выполнен как два различных индекса: (i) прюнинг-индекс 7241, сформированный для множества коротких аудиосигнатур, либо как (ii) индекс 7242 проверки, сформированный для множества длинных аудиосигнатур.
Еще одним объектом настоящего решения является способ поддержки инвертированного индекса аудиотрека, который может быть выполнен как два отдельных индекса: (i) прюнинг-индекс 7241, сформированный для множества коротких аудиосигнатур, либо как (ii) индекс 7242 проверки, сформированный для множества длинных аудиосигнатур.
На Фиг. 8 представлена принципиальная схема системы 700, реализованной в соответствии с вариантами осуществления настоящего решения.
Принципиальная схема системы 700 может быть реализована как вариант осуществления решения, не ограничивающий объем решения. Важно иметь в виду, что нижеследующее описание системы 700 представляет собой описание показательных вариантов осуществления. Таким образом, все последующее описание представлено только как описание показательного примера. Это описание не предназначено для определения объема или установления границ решения. Некоторые полезные примеры модификаций системы 700 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что-то, что описано, является единственным вариантом осуществления этого элемента. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 700 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления, и в подобных случаях он представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления будут обладать гораздо большей сложностью.
Система 700 включает в себя электронное устройство 702. Электронное устройство 702 обычно связано с пользователем 740 и, таким образом, иногда может упоминаться как «клиентское устройство». Следует отметить, что тот факт, что электронное устройство 702 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации или чего-либо подобного.
Варианты электронного устройства 702 конкретно не ограничены, но в качестве примера электронного устройства 702 могут использоваться персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) или беспроводные устройства передачи данных (смартфоны, планшеты и т.п.). Электронное устройство 702 включает в себя аппаратное, и/или прикладное программное, и/или системное программное обеспечение (или их комбинацию), как известно в данной области техники, чтобы исполнять приложение 704, которое может являться веб-браузером или любым другим приложением, предоставляющим возможность загрузки аудиотреков на сервер 720 или на носитель, доступный серверу 720.
В соответствии вариантами осуществления приложение 704 может поддерживать передачу данных серверу 720 или носителю, доступному серверу 720. Действительно, приложение 740 может также поддерживать загрузку данных с сервера 720 или любого другого источника.
Приложение 704 может быть любым известным веб-браузером или любым другим приложением, которое позволяет загружать контент. В качестве неограничивающего примера, приложение 704 может быть осуществлено как браузерное приложение Yandex™. Важно иметь в виду, что любое другое коммерчески доступное или собственное приложение может быть использовано для реализации вариантов осуществления.
Электронное устройство 702 соединено с сетью 710 передачи данных через линию передачи данных (отдельно не пронумерована). В некоторых вариантах осуществления, сеть 710 передачи данных может представлять собой Интернет. В других вариантах осуществления сеть 710 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
Реализация линии передачи данных не ограничена и будет зависеть от того, какое электронное устройство 702 используется. В качестве примера, но не ограничения, в данных вариантах осуществления в случаях, когда электронное устройство 702 представляет собой беспроводное устройство связи (например, смартфон), линия передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех случаях, когда электронное устройство 702 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п), так и проводной (соединение на основе сети Ethernet).
Важно иметь в виду, что варианты осуществления электронного устройства 702, линия передачи данных и сеть 710 передачи данных даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления электронного устройства 702, линии передачи данных и сети 710 передачи данных. То есть представленные здесь примеры не ограничивают объем решения.
Сервер 720 может представлять собой обычный компьютерный сервер. В примере варианта осуществления сервер 720 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 720 может представлять собой любое другое подходящее аппаратное, и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В общем случае задачей сервера 720 является предоставление пользователю 740 возможности загружать аудиотреки; выполнять сравнение полученных аудиотреков и сохраненных аудиотреков.
Сервер 720 содержит используемый компьютером носитель 722 информации, также упоминаемый как носитель 722 или машиночитаемый носитель информации. Носитель 722 может содержать любой тип медиа, включая (но не ограничиваясь) ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), твердотельные накопители, накопители на магнитной ленте и т.д. В общем случае задачей носителя 722 является хранение машиночитаемых команд (кодов), а также других данных, например прюнинг-индекса 7241 и индекса 7242 проверки и т.д. В альтернативных вариантах осуществления прюнинг-индекс 7241 и индекс 7242 проверки могут быть выполнены как единственный инвертированный индекс 7241 аудиотрека (не изображен). В альтернативных вариантах осуществления прюнинг-индекс 7241 и индекс 7242 проверки могут быть выполнены как три и более индексов.
Прюнинг-индекс 7241 содержит множество наборов 200 списков словопозиций, причем множество наборов 200 списков словопозиций сформировано в соответствии с комбинацией 202 байтов, в соответствии с вариантами осуществления решения.
Прюнинг-индекс 7241 содержит множество наборов 200 списков 304 словопозиций, созданных для коротких аудиосигнатур, как будет описано подробнее ниже.
Индекс 7241 проверки содержит файл ключей и файл сигнатур. Файл сигнатур содержит последовательность длинных сигнатур. В этом осуществлении сигнатуры расположены в файле сигнатур одна за другой, без разделителей. В этом осуществлении каждая длинная сигнатура в файле сигнатур начинается с двух первых байтов, описывающих длину соответствующей сигнатуры. Файл ключей содержит идентификаторы (ID) трека (не показаны на Фиг. 8), связанные с соответствующим аудиотреком и имеющие ссылки на начала длинных сигнатур в файле сигнатур, как будет описано подробнее ниже.
Чтобы обеспечить сравнение, создаются короткие и длинные аудиосигнатуры всех сохраненных треков. Длина всех коротких аудиосигнатур и всех длинных аудиосигнатур из начала каждого соответствующего аудиофайла может быть предварительно определена и может быть постоянной для всех соответствующих коротких и длинных сигнатур.
Например, все короткие аудиосигнатуры могут быть созданы не более чем для 20 первых секунд каждого сохраненного аудиотрека и все длинные сигнатуры могут быть созданы не более чем для 120 первых секунд каждого сохраненного аудиотрека. Однако, если длина конкретного аудиотрека меньше, чем предварительно определенное значение для соответствующей короткой или длинной аудиосигнатуры, соответствующая короткая или длинная аудиосигнатура создается для аудиотрека полностью.
Поэтому в рамках еще одного варианта осуществления длина соответствующей короткой или длинной сигнатуры может быть короче, чем соответствующее предварительно определенное значение. Кроме того, если длина аудиотрека меньше, чем предварительно определенное значение для короткой аудиосигнатуры, то длина короткой аудиосигнатуры и длинной аудиосигнатуры может быть идентичной.
Каждая аудиосигнатура содержит хромаслова, которые характеризуют небольшие равные части связанного аудиотрека. Хромаслова могут характеризовать перекрывающиеся части аудиотрека. Каждое хромаслово может быть представлено как последовательность байтов. Структура и характеристики аудиосигнатур и хромаслов будут описаны подробнее ниже, в основном, при описании Фиг. 1.
Когда