RU2606567C2 - Method of comparison of the first input audio track with the indexed audio track - Google Patents

Method of comparison of the first input audio track with the indexed audio track Download PDF

Info

Publication number
RU2606567C2
RU2606567C2 RU2015105093A RU2015105093A RU2606567C2 RU 2606567 C2 RU2606567 C2 RU 2606567C2 RU 2015105093 A RU2015105093 A RU 2015105093A RU 2015105093 A RU2015105093 A RU 2015105093A RU 2606567 C2 RU2606567 C2 RU 2606567C2
Authority
RU
Russia
Prior art keywords
audio
audio track
track
signature
word
Prior art date
Application number
RU2015105093A
Other languages
Russian (ru)
Other versions
RU2015105093A (en
Inventor
Елена Андреевна Калинина
Original Assignee
Общество С Ограниченной Ответственностью "Яндекс"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Яндекс" filed Critical Общество С Ограниченной Ответственностью "Яндекс"
Priority to RU2015105093A priority Critical patent/RU2606567C2/en
Priority to PCT/IB2015/051557 priority patent/WO2016024172A1/en
Priority to US15/103,994 priority patent/US9558272B2/en
Publication of RU2015105093A publication Critical patent/RU2015105093A/en
Application granted granted Critical
Publication of RU2606567C2 publication Critical patent/RU2606567C2/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/008Means for controlling the transition from one tone waveform to another
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0272Voice signal separating
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • G10L21/043Time compression or expansion by changing speed
    • G10L21/045Time compression or expansion by changing speed using thinning out or insertion of a waveform
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • G10L21/043Time compression or expansion by changing speed
    • G10L21/045Time compression or expansion by changing speed using thinning out or insertion of a waveform
    • G10L21/047Time compression or expansion by changing speed using thinning out or insertion of a waveform characterised by the type of waveform to be thinned out or inserted

Abstract

FIELD: information technology.
SUBSTANCE: invention describes a method of comparison of the first input audio track with the indexed audio track. Method is carried out on a server. Method involves: selection of indexed audio track as an audio-candidate from a plurality of indexed audio tracks; check of the audio-candidate for a match with the first audio track.
EFFECT: elimination of productive capacity costs that occur in the comparison of audio signatures larger parts.
23 cl, 8 dwg

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF THE INVENTION

Настоящее решение относится к способу и системе сравнения аудиотреков с использованием хромапринтов с быстрой процедурой выбора кандидата.The present solution relates to a method and system for comparing audio tracks using chroma prints with a quick candidate selection procedure.

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

У распознавания аудиофайлов есть две задачи: распознавание частей аудиозаписей и сравнение полных аудиотреков.Recognizing audio files has two tasks: recognizing parts of audio recordings and comparing complete audio tracks.

Технология распознавания используется для идентификации аудиозаписей с помощью использования относительно короткого, но потенциально искаженного и зашумленного фрагмента аудиотрека. Типичным примером является Shazam - коммерческий сервис распознавания музыки на базе смартфонов. Shazam использует встроенный микрофон смартфона, чтобы получить короткий фрагмент проигрываемой музыки. Он создает на основе этого фрагмента аудиосигнатуру и сравнивает ее с базой данных. После того как произведено распознавание, нет необходимости любой дальнейшей обработки, например дополнительного сравнения с подобранным в базе данных файлов. Поэтому когда пользователь слушает музыкальный микс из разных мелодий и пытается определить мелодию, Shazam определит название той мелодии, которая проигрывается в данный момент.Recognition technology is used to identify audio recordings using a relatively short, but potentially distorted and noisy fragment of an audio track. A typical example is Shazam, a smartphone-based commercial music recognition service. Shazam uses the smartphone’s built-in microphone to get a short snippet of the music being played. He creates an audio signature based on this fragment and compares it with the database. After recognition is made, there is no need for any further processing, for example, additional comparison with the files selected in the database. Therefore, when a user listens to a music mix from different tunes and tries to identify a melody, Shazam will determine the name of the melody that is currently being played.

Задачей сравнения является поиск дубликатов. Дубликатом музыкального микса из композиций будет являться такой же микс из тех же самых композиций. Однако аудиотреки могут рассматриваться как дубликаты, если различие между ними состоит в небольшом различии по длительности, в небольшом сдвиге по времени или в различии по качеству.The comparison task is to find duplicates. A duplicate of a music mix from the songs will be the same mix from the same songs. However, audio tracks can be considered as duplicates if the difference between them is a slight difference in duration, a slight shift in time or a difference in quality.

Поскольку целью сравнения является поиск дубликатов, необходимо сравнение более крупных частей аудиосигнатур. Сравнение более крупных частей аудиосигнатур является ресурсозатратным (затрачивается производительная мощность и т.д.)Since the purpose of the comparison is to find duplicates, you need to compare the larger parts of the audio signatures. Comparing larger parts of audio signatures is resource-intensive (expending productive power, etc.)

РАСКРЫТИЕ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Задачей настоящего решения является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.The objective of this solution is to eliminate at least some of the disadvantages inherent in the prior art.

ЗАМЕНЯЮЩИЙ ЛИСТ ОПИСАНИЯSUBSTITUTE SHEET DESCRIPTION

Первым объектом осуществления решения является способ сравнения первого входящего аудиотрека с индексированным аудиотреком. Способ выполняется на сервере. Способ включает в себя: (1) выбор индексированного аудиотрека из множества индексированных аудиотреков в качестве аудиотрека-кандидата; выбор осуществляется с помощью выполнения следующих этапов: (а) определение первой короткой аудиосигнатуры (аудиоотпечатка), причем первая короткая аудиосигнатура является аудиосигнатурой первой части первого входящего аудиотрека и содержит первое хромаслово, причем первая часть первого аудиотрека имеет предварительно определенную длительность от начала первого входящего аудиотрека; (b) определение аудиотрека-кандидата из набора индексированных аудиотреков, при этом у аудиотрека-кандидата имеется вторая короткая аудиосигнатура, которая содержит второе хромаслово, причем начальная часть второго хромаслова является идентичной начальной части первого хромаслова, а вторая короткая аудиосигнатура является аудиосигнатурой первой части аудиотрека-кандидата, причем первая часть аудиотрека-кандидата имеет первую предварительно определенную длительность от начала аудиотрека-кандидата; (2) проверку на совпадение аудиотрека-кандидата с первым аудиотреком с помощью выполнения следующих этапов: (а) определение первой длинной аудиосигнатуры, которая является аудиосигнатурой второй части первого входящего аудиотрека; (b) извлечение второй длинной аудиосигнатуры, причем вторая длинная аудиосигнатура является аудиосигнатурой второй части аудиотрека-кандидата; и вторая часть первого аудиотрека и вторая часть аудиотрека-кандидата имеют вторую предварительно определенную длительность от начала соответственно первого аудиотрека и аудиотрека-кандидата; и первые части соответствующего первого аудиотрека и аудиотрека-кандидата полностью входят во вторые части соответствующего первого аудиотрека и аудиотрека-кандидата; а также осуществление побитного сравнения первой длинной аудиосигнатуры со второй длинной аудиосигнатурой.The first object of the implementation of the decision is a method of comparing the first incoming audio track with an indexed audio track. The method is executed on the server. The method includes: (1) selecting an indexed audio track from a plurality of indexed audio tracks as a candidate audio track; the selection is carried out by performing the following steps: (a) determining the first short audio signature (audio fingerprint), the first short audio signature being the audio signature of the first part of the first incoming audio track and containing the first chroma word, the first part of the first audio track having a predetermined duration from the beginning of the first incoming audio track; (b) determining the candidate audio track from the set of indexed audio tracks, wherein the candidate audio track has a second short audio signature that contains a second chroma word, wherein the initial part of the second chroma word is identical to the initial part of the first chroma word, and the second short audio signature is the audio signature of the first part of the audio track a candidate, the first part of the candidate audio track having a first predetermined duration from the beginning of the candidate audio track; (2) checking that the candidate audio track matches the first audio track by performing the following steps: (a) determining the first long audio signature, which is the audio signature of the second part of the first incoming audio track; (b) extracting a second long audio signature, the second long audio signature being an audio signature of a second part of a candidate audio track; and the second part of the first audio track and the second part of the candidate audio track have a second predetermined duration from the beginning of the first audio track and the candidate audio track, respectively; and the first parts of the corresponding first audio track and the candidate audio track are fully included in the second parts of the corresponding first audio track and the candidate audio track; as well as making bitwise comparisons of the first long audio signature with the second long audio signature.

В некоторых вариантах осуществления начальные части хромаслова содержат комбинацию из: (i) любого из первого байта и первой многобайтовой последовательности, причем первая многобайтовая последовательность является последовательностью байтов в начале начальной части соответствующего хромаслова, а также первая многобайтовая последовательность имеет предварительно определенное число байтов; и (ii) любого из последующих байтов и второй многобайтовой последовательности, причем вторая многобайтовая последовательность является последовательностью байтов, следующей либо за первой многобайтовой последовательностью, либо за первым байтом каждого соответствующего хромаслова, причем во второй многобайтовой последовательности имеется предварительно определенное число байтов.In some embodiments, the initial parts of the chroma word contain a combination of: (i) any of the first byte and the first multibyte sequence, the first multibyte sequence being the sequence of bytes at the beginning of the initial part of the corresponding chroma word, and the first multibyte sequence has a predetermined number of bytes; and (ii) any of the subsequent bytes and the second multibyte sequence, the second multibyte sequence being a sequence of bytes following either the first multibyte sequence or the first byte of each corresponding chroma word, and the second multibyte sequence has a predetermined number of bytes.

В некоторых вариантах осуществления первая предварительно определенная длительность составляет меньший из интервалов: предварительно определенной длительности в промежутке от 9 до 27 секунд или длительности соответствующего аудиотрека.In some embodiments, the first predetermined duration is the shorter of the intervals: a predetermined duration in the range of 9 to 27 seconds or the duration of the corresponding audio track.

В некоторых вариантах осуществления первая предварительно определенная длительность составляет меньший из интервалов: 21 секунды или длительности соответствующего аудиотрека.In some embodiments, the first predetermined duration is the shorter of the intervals: 21 seconds or the duration of the corresponding audio track.

В некоторых вариантах осуществления вторая предварительно определенная длительность составляет меньший из интервалов: предварительно определенной длительности в промежутке от 96 до 141 секунд, или длительности соответствующего аудиотрека.In some embodiments, the second predetermined duration is the shorter of the intervals: a predetermined duration in the range of 96 to 141 seconds, or the duration of the corresponding audio track.

В некоторых вариантах осуществления вторая предварительно определенная длительность составляет меньший из интервалов: 120 секунд или длительности соответствующего аудиотрека.In some embodiments, the second predetermined duration is the shorter of the intervals: 120 seconds or the duration of the corresponding audio track.

В некоторых вариантах осуществления и первое хромаслово, и второе хромаслово характеризуют часть соответствующего аудиотрека, а длительность части аудиотрека находится между 1/2 и 8 секундами.In some embodiments, the implementation of both the first key and second key characterizes part of the corresponding audio track, and the duration of the part of the audio track is between 1/2 and 8 seconds.

В некоторых вариантах осуществления способ также содержит формирование указанного первого хромаслова и указанного второго хромаслова.In some embodiments, the method also comprises forming said first chroma word and said second chroma word.

В некоторых вариантах осуществления и первое хромаслово, и второе хромаслово содержат указание на идентификатор (ID) трека, связанный с соответствующим аудиотреком.In some embodiments, the implementation of both the first master and second master contains an indication of the identifier (ID) of the track associated with the corresponding audio track.

В некоторых вариантах осуществления каждое хромаслово содержит указание на информацию о длительности трека, связанную с соответствующим аудиотреком.In some embodiments, each key word contains an indication of track duration information associated with a corresponding audio track.

В некоторых вариантах осуществления идентификатор трека описывается третьей многобайтовой последовательностью, следующей либо за (i) последующим байтом, либо за (ii) второй многобайтовой последовательностью.In some embodiments, a track identifier is described by a third multibyte sequence following either (i) a subsequent byte or (ii) a second multibyte sequence.

В некоторых вариантах осуществления длительность трека характеризуется одним байтом, который следует либо за (i) последующим байтом, либо за (ii) второй многобайтовой последовательностью.In some embodiments, the duration of the track is characterized by one byte, which follows either (i) the next byte, or (ii) the second multibyte sequence.

В некоторых вариантах осуществления определение аудиотрека-кандидата содержит сравнение соответствующей длительности первого входящего аудиотрека и аудиотрека-кандидата.In some embodiments, the definition of the candidate audio track comprises comparing the corresponding duration of the first incoming audio track and the candidate audio track.

В некоторых вариантах осуществления способ также содержит определение того, что аудиотрек-кандидат не является совпадающим с первым входящим треком-кандидатом из-за того, что длительность трека отличается на значение, превышающее предварительно установленное значение.In some embodiments, the method also comprises determining that the candidate audio track is not the same as the first incoming candidate track because the track duration differs by a value that exceeds a preset value.

В некоторых вариантах осуществления аудиотрек-кандидат содержит множество аудиотреков-кандидатов, а способ содержит выбор подгруппы множества аудиотреков-кандидатов на основе предварительно определенного порогового числа кандидатов.In some embodiments, the candidate audio track comprises a plurality of candidate audio tracks, and the method comprises selecting a subgroup of a plurality of candidate audio tracks based on a predetermined threshold number of candidates.

В некоторых вариантах осуществления побитное сравнение первой длинной аудиосигнатуры со второй длинной аудиосигнатурой содержит смещение первой длинной аудиосигнатуры по отношению ко второй длинной аудиосигнатуре.In some embodiments, a bitwise comparison of the first long audio signature with the second long audio signature comprises offsetting the first long audio signature relative to the second long audio signature.

В некоторых вариантах осуществления смещение содержит амплитуду смещения, которая находится в промежутке плюс или минус 20 секунд.In some embodiments, the bias comprises a bias amplitude that is between plus or minus 20 seconds.

В некоторых вариантах осуществления определение, что начальная часть второго хромаслова идентична начальной части первого хромаслова, выполняется с помощью определения, что вся последовательность байтов в начальной части второго хромаслова совпадает со всей последовательностью байтов в начальной части первого хромаслова.In some embodiments, the determination that the initial part of the second chroma word is identical to the initial part of the first chroma word is performed by determining that the entire sequence of bytes in the initial part of the second chroma word matches the entire sequence of bytes in the initial part of the first chroma word.

В некоторых вариантах осуществления по меньшей мере одна из короткой аудиосигнатуры и длинной аудиосигнатуры содержит указание на идентификатор (ID) трека, связанный с соответствующим аудиотреком.In some embodiments, at least one of the short audio signature and the long audio signature includes an indication of a track identifier (ID) associated with the corresponding audio track.

В некоторых вариантах осуществления до определения первой короткой аудиосигнатуры способ также содержит получение сервером по меньшей мере части первого входящего аудиотрека.In some embodiments, prior to determining the first short audio signature, the method also comprises receiving at least a portion of the first incoming audio track by the server.

В некоторых вариантах осуществления получение второй короткой аудиосигнатуры содержит извлечение с использованием индекса.In some embodiments, obtaining a second short audio signature comprises extracting using an index.

В некоторых вариантах осуществления индекс является инвертированным индексом аудиотрека.In some embodiments, the implementation of the index is an inverted index of the audio track.

В некоторых вариантах осуществления инвертированный индекс аудиотрека является либо: (i) прюнинг-индексом (от англ. pruning - обрезка), сформированным для множества коротких аудиосигнатур, либо (ii) индексом проверки (валидации), сформированным для множества длинных аудиосигнатур.In some embodiments, the inverted audio track index is either: (i) a pruning index (from pruning), generated for a plurality of short audio signatures, or (ii) a verification (validation) index generated for a plurality of long audio signatures.

Другим объектом осуществления является сервер, включающий в себя постоянный носитель компьютерной информации (машиночитаемый носитель). Постоянный носитель информации содержит инвертированный индекс аудиотрека. Инвертированный индекс аудиотрека содержит: множество наборов списков словопозиций (постинг-листов), причем каждый список словопозиций в множестве наборов списков словопозиций является списком словопозиций хромаслов, а каждое хромаслово является компонентом аудиосигнатуры; каждое хромасловослово поделено на множество байтов и содержит начальную часть хромаслова, которая является подмножеством байтов, имеющим первый байт и последующий байт, причем последующий байт расположен непосредственно за первым байтом; в рамках данного набора списков словопозиций из множества списков словопозиций: каждый список словопозиций содержит хромаслова, у которых один и тот же первый байт в начальной части хромаслова, и первый из множества списков словопозиций отличается от второго из множества списков словопозиций тем, что связанные хромаслова имеют иной последующий байт, который является уникальным для данного набора списков словопозиций.Another object of implementation is a server including a permanent medium of computer information (computer-readable medium). A permanent storage medium contains an inverted audio track index. The inverted index of the audio track contains: a plurality of sets of word-lists (posting lists), and each list of word-positions in the set of sets of word-lists is a list of word-positions of the chroma keys, and each chroma word is a component of the audio signature; each chroma word is divided into many bytes and contains the initial part of the chroma word, which is a subset of bytes having the first byte and the next byte, with the next byte located immediately after the first byte; within this set of word lists from many word lists: each word list contains chroma words that have the same first byte in the initial part of the chroma word and the first of the many word lists differs from the second of the many word lists in that the related chroma words have a different a subsequent byte that is unique to a given set of word position lists.

В некоторых вариантах осуществления каждый из данных наборов списков словопозиций связан с ключом индекса, который является уникальным в рамках множества наборов списков словопозиций.In some embodiments, each of these sets of wordlist sets is associated with an index key that is unique within a plurality of sets of wordlist.

В некоторых вариантах осуществления ключ индекса необходим для быстрого определения положения данного набора списка словопозиций в рамках индекса.In some embodiments, an index key is needed to quickly determine the position of a given set of word positions within an index.

В некоторых вариантах осуществления каждый список словопозиций из данных наборов списков словопозиций связан с ключом сортировки, который является уникальным для данного набора списков словопозиций.In some embodiments, each word list from the given word list sets is associated with a sort key that is unique to the given word list set.

В некоторых вариантах осуществления ключ сортировки используется для быстрого определения местоположения списка словопозиций в рамках данного набора списков словопозиций.In some embodiments, a sort key is used to quickly locate a word list within a given set of word lists.

В некоторых вариантах осуществления первый байт является первой многобайтовой последовательностью, которая является последовательностью байтов в начале начальной части каждого соответствующего хромаслова, а число байтов в каждой первой многобайтовой последовательности является одним и тем же.In some embodiments, the first byte is the first multibyte sequence, which is the sequence of bytes at the beginning of the initial part of each corresponding chroma word, and the number of bytes in each first multibyte sequence is the same.

В некоторых вариантах осуществления ключ индекса содержит в себе первую многобайтовую последовательность.In some embodiments, the index key comprises a first multibyte sequence.

В некоторых вариантах осуществления последующий байт является второй многобайтовой последовательностью, которая является последовательностью байтов, следующих либо за первым байтом, либо за первой многобайтовой последовательностью каждого соответствующего хромаслова.In some embodiments, the subsequent byte is a second multibyte sequence, which is a sequence of bytes following either the first byte or the first multibyte sequence of each corresponding chroma word.

В некоторых вариантах осуществления число байтов в каждой из вторых многобайтовых последовательностей является одним и тем же.In some embodiments, the number of bytes in each of the second multibyte sequences is the same.

В некоторых вариантах осуществления первая многобайтовая последовательность является последовательностью из трех байтов.In some embodiments, the first multibyte sequence is a sequence of three bytes.

В некоторых вариантах осуществления начальная часть каждого хромаслова содержит в себе предварительно определенное число байтов.In some embodiments, the initial portion of each chroma word contains a predetermined number of bytes.

В некоторых вариантах осуществления начальная часть каждого хромаслова содержит в себе 4 байта.In some embodiments, the start of each chroma word contains 4 bytes.

В некоторых вариантах осуществления каждый из данных наборов списков словопозиций является связанным с ключом индекса, который является уникальным в рамках множества наборов списков словопозиций, и каждый список словопозоций в данном наборе списков словопозиций является связанным с ключом сортировки, который является уникальным в рамках данного набора списков словопозиций.In some embodiments, each of these wordlist sets is associated with an index key that is unique across a plurality of wordlist sets, and each word list in a given wordlist set is associated with a sort key that is unique within a given wordlist set .

В некоторых вариантах осуществления аудиосигнатура является либо (i) короткой аудиосигнатурой, являющаяся аудиосигнатурой первой части аудиотрека, причем первая часть аудиотрека обладает первой предварительно определенной длительностью от начала аудиотрека, либо (ii) длинной аудиосигнатурой, которая является аудиосигнатурой второй части аудиотрека, причем вторая часть аудиотрека обладает второй предварительно определенной длительностью от начала аудиотрека.In some embodiments, the audio signature is either (i) a short audio signature, which is the audio signature of the first part of the audio track, the first part of the audio track having a first predetermined length from the beginning of the audio track, or (ii) a long audio signature that is the audio signature of the second part of the audio track, the second part of the audio track has a second predefined duration from the beginning of the audio track.

В некоторых вариантах осуществления по меньшей мере одна из короткой и длинной аудиосигнатуры содержит идентификатор (ID) трека.In some embodiments, at least one of the short and long audio signatures comprises a track identifier (ID).

В некоторых вариантах осуществления либо короткая, либо длинная аудиосигнатура сохраняются в инвертированном индексе аудиотрека, осуществленном либо как: (i) прюнинг-индекс, сформированный для множества коротких аудиосигнатур, либо как (ii) индекс проверки, сформированный для множества длинных аудиосигнатур.In some embodiments, either a short or a long audio signature is stored in an inverted audio track index, implemented either as: (i) a tuning index generated for a plurality of short audio signatures, or as (ii) a verification index generated for a plurality of long audio signatures.

Другим объектом является способ создания и поддержки инвертированного индекса аудиотрека, способ содержит: (i) получение аудиотрека для индексации; (ii) определение первого хромаслова, разделенного на множество байтов, причем первое хромаслово содержит начальную часть хромаслова, которая является подмножеством байтов с первым байтом и последующим байтом, причем последующий байт расположен сразу после первого байта; (iii) определение на основе первого байта конкретного набора списков словопозиций в рамках множества наборов списков словопозиций, причем этот конкретный набор содержит списки словопозиций, которые содержат ссылки на хромаслова с одинаковым первым байтом; (iv) сохранение указания на первое хромаслово в данном списке словопозиций в ответ на то, что второй байт первого хромаслова совпадает с любым вторым байтом любых хромаслов, хранящихся в данном списке словопозиций в рамках конкретного набора списков словопозиций; (v) создание нового списка словопозиций в рамках конкретного набора списков словопозиций, хранящего указание на первое хромаслово в ответ на то, что второй байт первого хромаслова не совпадает с любым вторым байтом любых хромаслов, хранящихся в списках словопозиций.Another object is a method for creating and maintaining an inverted index of an audio track, the method comprising: (i) obtaining an audio track for indexing; (ii) determining a first chroma word divided by many bytes, the first chroma word containing the initial part of the chroma word, which is a subset of the bytes with the first byte and the next byte, with the next byte immediately after the first byte; (iii) determining, on the basis of the first byte, a particular set of word lists within a plurality of sets of word lists, this particular set containing word lists that contain references to chroma words with the same first byte; (iv) saving the indication of the first chroma word in this list of word positions in response to the fact that the second byte of the first chroma word matches any second byte of any chroma words stored in this list of word positions within a specific set of word lists; (v) creating a new list of word positions within a specific set of word list lists storing the first chroma word in response to the fact that the second byte of the first chroma word does not match any second byte of any chroma words stored in the word lists.

В некоторых вариантах осуществления первый байт является первой многобайтовой последовательностью, которая является последовательностью байтов в начале начальной части нового хромаслова, причем число байтов является предварительно определенным.In some embodiments, the first byte is the first multibyte sequence, which is the sequence of bytes at the beginning of the initial portion of a new chroma word, the number of bytes being predetermined.

В некоторых вариантах осуществления последующий байт является второй многобайтовой последовательностью, которая является последовательностью байтов, следующих либо за первой многобайтовой последовательностью, либо за первым байтом нового хромаслова, причем число байтов в каждой второй многобайтовой последовательности является предварительно определенным.In some embodiments, the subsequent byte is a second multibyte sequence, which is a sequence of bytes following either the first multibyte sequence or the first byte of a new chroma word, the number of bytes in each second multibyte sequence being predetermined.

В некоторых вариантах осуществления способ перед определением первого хромаслова, связанного с новым аудиотреком для индексирования, содержит определение аудиосигнатуры нового аудиотрека для индексирования, причем хромаслово является частью аудиосигнатуры.In some embodiments, the method before determining the first chroma word associated with the new audio track for indexing comprises determining the audio signature of the new audio track for indexing, the chroma word being part of the audio signature.

В некоторых вариантах осуществления аудиосигнатура является либо (i) короткой аудиосигнатурой первой части нового аудиотрека, причем первая часть нового аудиотрека обладает первой предварительно определенной длительностью от начала нового аудиотрека, либо (ii) длинной аудиосигнатурой второй части нового аудиотрека, причем вторая часть нового аудиотрека обладает второй предварительно определенной длительностью от начала нового аудиотрека.In some embodiments, the audio signature is either (i) a short audio signature of the first part of the new audio track, the first part of the new audio track having a first predetermined duration from the start of the new audio track, or (ii) a long audio signature of the second part of the new audio track, the second part of the new audio track having a second predefined duration from the start of a new audio track.

В некоторых вариантах осуществления первая предварительно определенная длительность составляет меньший интервал из: предварительно определенной длительности в промежутке от 9 до 27 секунд или длительности нового аудиотрека.In some embodiments, the first predetermined duration is a shorter interval of: a predetermined duration ranging from 9 to 27 seconds or the duration of a new audio track.

В некоторых вариантах осуществления первая предварительно определенная длительность составляет меньший из интервалов: 21 секунда или длительность нового аудиотрека.In some embodiments, the first predetermined duration is the shorter of the intervals: 21 seconds or the duration of a new audio track.

В некоторых вариантах осуществления вторая предварительно определенная длительность составляет меньший из интервалов: предварительно определенной длительности в промежутке от 96 до 141 секунд или длительности нового аудиотрека.In some embodiments, the second predetermined duration is the shorter of the intervals: a predetermined duration in the range of 96 to 141 seconds or the duration of a new audio track.

В некоторых вариантах осуществления вторая предварительно определенная длительность составляет меньший из интервалов: 120 секунд или длительность соответствующего аудиотрека.In some embodiments, the second predetermined duration is the shorter of the intervals: 120 seconds or the duration of the corresponding audio track.

В некоторых вариантах осуществления хромаслово характеризует часть аудиотрека, а длительность части аудиотрека находится между 1/2 и 8 секундами.In some embodiments, the implementation of the chroma key characterizes part of the audio track, and the duration of the part of the audio track is between 1/2 and 8 seconds.

В некоторых вариантах осуществления длительность части аудиотрека составляет 3 секунды.In some embodiments, the duration of the portion of the audio track is 3 seconds.

В некоторых вариантах осуществления каждое хромаслово содержит указание на идентификатор (ID) трека, связанный с соответствующим аудиотреком.In some embodiments, each key word contains an indication of a track identifier (ID) associated with a corresponding audio track.

В некоторых вариантах осуществления каждое хромаслово содержит указание на информацию о длительности трека, связанную с соответствующим аудиотреком.In some embodiments, each key word contains an indication of track duration information associated with a corresponding audio track.

В некоторых вариантах осуществления идентификатор (ID) трека описывается одним байтом, который следует либо за (i) следующим байтом, либо за (ii) второй многобайтовой последовательностью.In some embodiments, the track identifier (ID) is described by one byte, which follows either (i) the next byte or (ii) the second multibyte sequence.

В некоторых вариантах осуществления длительность трека описывается одним байтом, который следует либо за (i) следующим байтом, либо за (ii) второй многобайтовой последовательностью.In some embodiments, the duration of the track is described by one byte, which follows either (i) the next byte or (ii) the second multibyte sequence.

В некоторых вариантах осуществления короткая аудиосигнатура сохраняется в инвертированном индексе аудиотрека, причем этот индекс исполняется как прюнинг-индекс, сформированный для коротких аудиосигнатур.In some embodiments, the short audio signature is stored in the inverted index of the audio track, which index is executed as a tuning index generated for short audio signatures.

В контексте настоящего описания "аудиосигнатура" является сжатой цифровой информацией (сигналом), детерминированно созданной из аудиосигнала, которая может быть использована для идентификации образца аудио или быстрого определения положения элементов в базе данных аудио.In the context of the present description, an “audio signature” is compressed digital information (signal) determinately created from an audio signal that can be used to identify an audio sample or to quickly determine the position of elements in an audio database.

В контексте настоящего описания "хромаслово" является компонентом аудиосигнатуры, причем каждое хромаслово является последовательностью байтов, описывающих часть аудио. Как неограничивающий пример, хромаслово может являться компонентом аудиосигнатуры, созданным с использованием технологии "хромапринт".In the context of the present description, “chroma” is a component of an audio signature, with each chroma word being a sequence of bytes describing a portion of the audio. As a non-limiting example, a chroma word can be a component of an audio signature created using chroma-print technology.

В контексте настоящего описания "аудиотрек" является аудиофайлом; видеофайлом, который содержит аудиотрек; любой другой записью аудиосигнала, подходящего для машинного анализа; а также незаписанным аудиосигналом, например аудиосигналом, исходящим из преобразователя, например микрофона.As used herein, an “audio track” is an audio file; a video file that contains an audio track; any other audio recording suitable for machine analysis; as well as an unrecorded audio signal, such as an audio signal coming from a transducer, such as a microphone.

В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным. В контексте описания использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».In the context of the present description, “server” means a computer program running on appropriate equipment that is able to receive requests (for example, from client devices) over the network and execute these requests or initiate the execution of these requests. The equipment may be a single physical computer or a single physical computer system, but neither is required. In the context of the description, the use of the expression “server” does not mean that every task (for example, received commands or requests) or any specific task will be received, executed or initiated to be executed by the same server (that is, by the same software and / or hardware); this means that any number of software elements or hardware devices can be involved in receiving / transmitting, executing or initiating the execution of any request or the consequences of any request associated with the client device, and all this software and hardware can be one server or several servers , both options are included in the expression “at least one server”.

В контексте настоящего описания «клиентское устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами клиентских устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов вышеописанного способа.In the context of the present description, "client device" means a hardware device capable of working with software suitable for solving the corresponding problem. Thus, examples of client devices (among other things) include personal computers (desktop computers, laptops, netbooks, etc.) smartphones, tablets, as well as network equipment such as routers, switches, and gateways. It should be borne in mind that a device behaving as a client device in the present context may behave like a server in relation to other client devices. The use of the expression “client device” does not exclude the possibility of using multiple client devices to receive / send, execute, or initiate the execution of any task or request, or the consequences of any task or request, or the steps of the above method.

В контексте настоящего описания «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например выделенном сервере или множестве серверов.In the context of the present description, “database” means any structured data set that does not depend on a specific structure, database management software, hardware of the computer on which data is stored, used or otherwise made available for use. The database may reside on the same hardware that runs 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.

В контексте настоящего описания «информация» включает в себя любую информацию любого типа, которую можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.In the context of the present description, “information” includes any information of any type that can be stored in a database. Thus, information includes, among other things, audiovisual works (images, videos, sound recordings, presentations, etc.), data (location data, digital data, etc.), text (opinions, comments, questions , messages, etc.), documents, tables, etc.

В контексте настоящего описания «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).In the context of the present description, a “component” means software (corresponding to a specific hardware context) that is necessary and sufficient to perform the specific specified function (s).

В контексте настоящего описания «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.In the context of the present description, “computer-based storage medium of computer information” means a storage medium of absolutely any type and nature, including RAM, ROM, disks (CDs, DVDs, diskettes, hard disks, etc.), USB flash drives , solid state drives, tape drives, etc.

В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.In the context of the present description, the words “first”, “second”, “third”, etc. used in the form of adjectives solely to distinguish the nouns to which they relate from each other, and not for the purpose of describing any specific relationship between these nouns. So, for example, it should be borne in mind that the use of the terms “first server” and “third server” does not imply any ordering, chronology, hierarchy or ranking (for example) of servers / between servers, as well as their use (in itself) does not imply that a certain "second server" must exist in a given situation. Hereinafter, as indicated here in other contexts, reference to the “first” element and the “second” element does not exclude the possibility that it is one and the same actual real element. So, for example, in some cases, the “first” server and the “second” server can be the same software and / or hardware, and in other cases they can be different software and / or hardware.

Каждый вариант осуществления преследует по меньшей мере одну из вышеупомянутых целей. Следует иметь в виду, что некоторые объекты решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять другим целям, отдельно не указанным здесь.Each embodiment pursues at least one of the aforementioned objectives. It should be borne in mind that some objects of the solution obtained as a result of attempts to achieve the aforementioned goals may satisfy other goals not specifically indicated here.

Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.Additional and / or alternative characteristics, aspects, and advantages of the embodiments will become apparent from the following description, the attached drawings, and the attached claims.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

Для лучшего понимания решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:For a better understanding of the solution, as well as its other aspects and characteristics, a reference is made to the following description, which should be used in combination with the accompanying drawings, where:

На Фиг. 1 представлена принципиальная схема, изображающая аудиосигнатуру 1001, которая является вариантом осуществления аудиосигнатуры в соответствии с вариантами осуществления решения.In FIG. 1 is a schematic diagram illustrating an audio signature 1001, which is an embodiment of an audio signature in accordance with an embodiment.

На Фиг. 2 представлена принципиальная схема, изображающая аудиосигнатуру 1002, которая является вариантом осуществления аудиосигнатуры в соответствии с вариантами осуществления решения.In FIG. 2 is a schematic diagram illustrating an audio signature 1002, which is an embodiment of an audio signature in accordance with an embodiment.

На Фиг. 3 представлена принципиальная схема, изображающая множество наборов 200 списков словопозиций, причем множество наборов 200 списков словопозиций сформировано в соответствии с комбинацией 202 байтов в соответствии с вариантами осуществления.In FIG. 3 is a schematic diagram showing a plurality of sets of word lists 200, wherein a plurality of sets of word lists 200 are formed in accordance with a combination of 202 bytes in accordance with embodiments.

На Фиг. 4 представлена принципиальная схема, изображающая фрагмент 300 прюнинг-индекса 724 для конкретного набора 2004 из списков словопозиций 304, причем фрагмент 300 прюнинг-индекса 724 реализован в соответствии с вариантами осуществления, не ограничивающими объем решения.In FIG. 4 is a schematic diagram illustrating a fragment 300 of a training index 724 for a particular set 2004 from word lists 304, wherein a fragment 300 of a training index 724 is implemented in accordance with non-limiting embodiments.

На Фиг. 5 представлена принципиальная схема списка 304 словопозиций, реализованного в соответствии с вариантами осуществления.In FIG. 5 is a schematic diagram of a word list 304 implemented in accordance with embodiments.

На Фиг. 6 представлена блок-схема способа 500 выбора индексированного аудиотрека как аудиотрека-кандидата из множества индексированных аудиотреков, причем способ 500 выполнен в соответствии с вариантами осуществления решения.In FIG. 6 is a flowchart of a method 500 for selecting an indexed audio track as a candidate audio track from a plurality of indexed audio tracks, the method 500 being implemented in accordance with an embodiment.

На Фиг. 7 представлена блок-схема способа 600 сверки аудиотрека-кандидата с первым аудиотреком, причем способ 600 выполнен в соответствии с вариантами осуществления настоящего решения.In FIG. 7 is a flowchart of a method 600 for reconciling a candidate audio track with a first audio track, the method 600 being implemented in accordance with embodiments of the present solution.

На Фиг. 8 представлена принципиальная схема системы 700, реализованной в соответствии с вариантами осуществления решения.In FIG. 8 is a schematic diagram of a system 700 implemented in accordance with an embodiment of the solution.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION

Одним объектом настоящего решения является способ сравнения входящего аудиотрека с аудиотреками, которые уже проиндексированы и/или сохранены в базе данных, доступной серверу. В широком смысле способ содержит этапы (i) быстрого выбора аудиотрека-кандидата и (ii) проверку кандидатов.One object of this solution is a method for comparing an incoming audio track with audio tracks that are already indexed and / or stored in a database accessible by the server. In a broad sense, the method comprises the steps of (i) quickly selecting a candidate audio track and (ii) checking candidates.

Другим объектом настоящего решения является постоянный носитель компьютерной информации (машиночитаемый носитель информации), на котором хранится инвертированный индекс аудиотрека. В некоторых вариантах осуществления инвертированный индекс аудиотрека может быть выполнен как два различных индекса: (i) прюнинг-индекс 7241, сформированный для множества коротких аудиосигнатур, либо как (ii) индекс 7242 проверки, сформированный для множества длинных аудиосигнатур.Another object of this solution is a permanent storage medium of computer information (computer-readable storage medium), which stores the inverted index of the audio track. In some embodiments, the inverted audio track index may be implemented as two different indices: (i) a training index 7241 generated for a plurality of short audio signatures, or (ii) a verification index 7242 generated for a plurality of long audio signatures.

Еще одним объектом настоящего решения является способ поддержки инвертированного индекса аудиотрека, который может быть выполнен как два отдельных индекса: (i) прюнинг-индекс 7241, сформированный для множества коротких аудиосигнатур, либо как (ii) индекс 7242 проверки, сформированный для множества длинных аудиосигнатур.Another object of the present solution is a method for supporting an inverted index of an audio track, which can be performed as two separate indices: (i) a tuning index 7241 generated for a plurality of short audio signatures, or (ii) a verification index 7242 generated for a plurality of long audio signatures.

На Фиг. 8 представлена принципиальная схема системы 700, реализованной в соответствии с вариантами осуществления настоящего решения.In FIG. 8 is a schematic diagram of a system 700 implemented in accordance with embodiments of the present solution.

Принципиальная схема системы 700 может быть реализована как вариант осуществления решения, не ограничивающий объем решения. Важно иметь в виду, что нижеследующее описание системы 700 представляет собой описание показательных вариантов осуществления. Таким образом, все последующее описание представлено только как описание показательного примера. Это описание не предназначено для определения объема или установления границ решения. Некоторые полезные примеры модификаций системы 700 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что-то, что описано, является единственным вариантом осуществления этого элемента. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 700 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления, и в подобных случаях он представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления будут обладать гораздо большей сложностью.A schematic diagram of a system 700 may be implemented as an embodiment of a solution without limiting the scope of the solution. It is important to keep in mind that the following description of system 700 is a description of exemplary embodiments. Thus, the entire following description is presented only as a description of a representative example. This description is not intended to determine the scope or scope of a decision. Some useful examples of modifications to the system 700 may also be covered by the following description. The purpose of this is also solely assistance in understanding, and not determining the scope and boundaries of the solution. These modifications are not an exhaustive list, and it will be understood by those skilled in the art that other modifications are possible. In addition, this should not be interpreted so that where it has not yet been done, i.e. where examples of modifications have not been set forth, no modifications are possible, and / or something that is described is the only embodiment of this element. As will be clear to a person skilled in the art, this is most likely not the case. In addition, it should be borne in mind that the system 700 is in some specific manifestations a fairly simple embodiment, and in such cases it is presented here in order to facilitate understanding. As will be understood by a person skilled in the art, many embodiments will have much greater complexity.

Система 700 включает в себя электронное устройство 702. Электронное устройство 702 обычно связано с пользователем 740 и, таким образом, иногда может упоминаться как «клиентское устройство». Следует отметить, что тот факт, что электронное устройство 702 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации или чего-либо подобного.System 700 includes an electronic device 702. An electronic device 702 is typically associated with a user 740, and thus may sometimes be referred to as a “client device”. It should be noted that the fact that the electronic device 702 is associated with the user does not imply any particular mode of operation, nor does it require a login, registration, or the like.

Варианты электронного устройства 702 конкретно не ограничены, но в качестве примера электронного устройства 702 могут использоваться персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) или беспроводные устройства передачи данных (смартфоны, планшеты и т.п.). Электронное устройство 702 включает в себя аппаратное, и/или прикладное программное, и/или системное программное обеспечение (или их комбинацию), как известно в данной области техники, чтобы исполнять приложение 704, которое может являться веб-браузером или любым другим приложением, предоставляющим возможность загрузки аудиотреков на сервер 720 или на носитель, доступный серверу 720.The options for electronic device 702 are not particularly limited, but personal computers (desktop computers, laptops, netbooks, etc.) or wireless data transmission devices (smartphones, tablets, etc.) can be used as an example of electronic device 702. The electronic device 702 includes hardware and / or application software and / or system software (or a combination thereof), as is known in the art, to execute an application 704, which may be a web browser or any other application providing the ability to download audio tracks to server 720 or to media available to server 720.

В соответствии вариантами осуществления приложение 704 может поддерживать передачу данных серверу 720 или носителю, доступному серверу 720. Действительно, приложение 740 может также поддерживать загрузку данных с сервера 720 или любого другого источника.In accordance with embodiments, the application 704 may support data transfer to the server 720 or the media available to the server 720. Indeed, the application 740 may also support downloading data from the server 720 or any other source.

Приложение 704 может быть любым известным веб-браузером или любым другим приложением, которое позволяет загружать контент. В качестве неограничивающего примера, приложение 704 может быть осуществлено как браузерное приложение Yandex™. Важно иметь в виду, что любое другое коммерчески доступное или собственное приложение может быть использовано для реализации вариантов осуществления.Application 704 may be any known web browser or any other application that allows you to download content. By way of non-limiting example, application 704 may be implemented as a Yandex ™ browser application. It is important to keep in mind that any other commercially available or proprietary application can be used to implement embodiments.

Электронное устройство 702 соединено с сетью 710 передачи данных через линию передачи данных (отдельно не пронумерована). В некоторых вариантах осуществления, сеть 710 передачи данных может представлять собой Интернет. В других вариантах осуществления сеть 710 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.An electronic device 702 is connected to a data network 710 via a data line (not individually numbered). In some embodiments, implementation, the data network 710 may be the Internet. In other embodiments, the data network 710 may be implemented differently — as a global data network, a local data network, a private data network, and the like.

Реализация линии передачи данных не ограничена и будет зависеть от того, какое электронное устройство 702 используется. В качестве примера, но не ограничения, в данных вариантах осуществления в случаях, когда электронное устройство 702 представляет собой беспроводное устройство связи (например, смартфон), линия передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех случаях, когда электронное устройство 702 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п), так и проводной (соединение на основе сети Ethernet).The implementation of the data line is not limited and will depend on which electronic device 702 is used. By way of example, but not limitation, in these embodiments, in cases where the electronic device 702 is a wireless communication device (eg, a smartphone), the data line is a wireless data network (for example, inter alia, a 3G data line, 4G data line, Wireless Fidelity or shortly WiFi®, Bluetooth®, etc.). In cases where the electronic device 702 is a laptop computer, the data line can be either wireless (Wireless Internet Wireless Fidelity or shortly WiFi®, Bluetooth®, etc.) or wired (Ethernet-based connection).

Важно иметь в виду, что варианты осуществления электронного устройства 702, линия передачи данных и сеть 710 передачи данных даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления электронного устройства 702, линии передачи данных и сети 710 передачи данных. То есть представленные здесь примеры не ограничивают объем решения.It is important to keep in mind that embodiments of an electronic device 702, a data line and a data network 710 are provided for illustrative purposes only. Thus, those skilled in the art will be able to understand the details of other specific embodiments of the electronic device 702, the data line, and the data network 710. That is, the examples presented here do not limit the scope of the solution.

Сервер 720 может представлять собой обычный компьютерный сервер. В примере варианта осуществления сервер 720 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 720 может представлять собой любое другое подходящее аппаратное, и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В общем случае задачей сервера 720 является предоставление пользователю 740 возможности загружать аудиотреки; выполнять сравнение полученных аудиотреков и сохраненных аудиотреков.Server 720 may be a conventional computer server. In an example embodiment, the server 720 may be a Dell ™ PowerEdge ™ server that uses the Microsoft ™ Windows Server ™ operating system. Needless to say, server 720 may be any other suitable hardware and / or application software and / or system software, or a combination thereof. In general, the task of the server 720 is to provide the user 740 with the ability to download audio tracks; Compare received audio tracks and stored audio tracks.

Сервер 720 содержит используемый компьютером носитель 722 информации, также упоминаемый как носитель 722 или машиночитаемый носитель информации. Носитель 722 может содержать любой тип медиа, включая (но не ограничиваясь) ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), твердотельные накопители, накопители на магнитной ленте и т.д. В общем случае задачей носителя 722 является хранение машиночитаемых команд (кодов), а также других данных, например прюнинг-индекса 7241 и индекса 7242 проверки и т.д. В альтернативных вариантах осуществления прюнинг-индекс 7241 и индекс 7242 проверки могут быть выполнены как единственный инвертированный индекс 7241 аудиотрека (не изображен). В альтернативных вариантах осуществления прюнинг-индекс 7241 и индекс 7242 проверки могут быть выполнены как три и более индексов.Server 720 comprises a computer-used storage medium 722, also referred to as a storage medium 722 or computer-readable storage medium. The media 722 may contain any type of media, including but not limited to RAM, ROM, disks (CDs, DVDs, floppy disks, hard drives, etc.), solid state drives, tape drives, etc. In the General case, the task of the medium 722 is the storage of machine-readable commands (codes), as well as other data, for example, a testing index 7241 and a verification index 7242, etc. In alternative embodiments, the punening index 7241 and verification index 7242 may be performed as a single inverted audio track index 7241 (not shown). In alternative embodiments, the runinning index 7241 and check index 7242 may be performed on three or more indices.

Прюнинг-индекс 7241 содержит множество наборов 200 списков словопозиций, причем множество наборов 200 списков словопозиций сформировано в соответствии с комбинацией 202 байтов, в соответствии с вариантами осуществления решения.The paging index 7241 comprises a plurality of sets of 200 word lists, wherein a plurality of sets 200 of word lists are generated in accordance with a combination of 202 bytes, in accordance with embodiments of the solution.

Прюнинг-индекс 7241 содержит множество наборов 200 списков 304 словопозиций, созданных для коротких аудиосигнатур, как будет описано подробнее ниже.Puning index 7241 contains many sets of 200 lists of 304 word positions created for short audio signatures, as will be described in more detail below.

Индекс 7241 проверки содержит файл ключей и файл сигнатур. Файл сигнатур содержит последовательность длинных сигнатур. В этом осуществлении сигнатуры расположены в файле сигнатур одна за другой, без разделителей. В этом осуществлении каждая длинная сигнатура в файле сигнатур начинается с двух первых байтов, описывающих длину соответствующей сигнатуры. Файл ключей содержит идентификаторы (ID) трека (не показаны на Фиг. 8), связанные с соответствующим аудиотреком и имеющие ссылки на начала длинных сигнатур в файле сигнатур, как будет описано подробнее ниже.Verification index 7241 contains a key file and a signature file. The signature file contains a sequence of long signatures. In this implementation, the signatures are located in the signature file one after another, without delimiters. In this embodiment, each long signature in the signature file begins with the first two bytes describing the length of the corresponding signature. The key file contains track identifiers (not shown in Fig. 8) associated with the corresponding audio track and having links to the beginning of long signatures in the signature file, as will be described in more detail below.

Чтобы обеспечить сравнение, создаются короткие и длинные аудиосигнатуры всех сохраненных треков. Длина всех коротких аудиосигнатур и всех длинных аудиосигнатур из начала каждого соответствующего аудиофайла может быть предварительно определена и может быть постоянной для всех соответствующих коротких и длинных сигнатур.To provide comparison, short and long audio signatures of all saved tracks are created. The length of all short audio signatures and all long audio signatures from the beginning of each corresponding audio file may be predetermined and may be constant for all corresponding short and long signatures.

Например, все короткие аудиосигнатуры могут быть созданы не более чем для 20 первых секунд каждого сохраненного аудиотрека и все длинные сигнатуры могут быть созданы не более чем для 120 первых секунд каждого сохраненного аудиотрека. Однако, если длина конкретного аудиотрека меньше, чем предварительно определенное значение для соответствующей короткой или длинной аудиосигнатуры, соответствующая короткая или длинная аудиосигнатура создается для аудиотрека полностью.For example, all short audio signatures can be created for no more than 20 first seconds of each stored audio track, and all long audio signatures can be created for no more than 120 first seconds of each saved audio track. However, if the length of a particular audio track is less than a predetermined value for the corresponding short or long audio signature, the corresponding short or long audio signature is created for the entire audio track.

Поэтому в рамках еще одного варианта осуществления длина соответствующей короткой или длинной сигнатуры может быть короче, чем соответствующее предварительно определенное значение. Кроме того, если длина аудиотрека меньше, чем предварительно определенное значение для короткой аудиосигнатуры, то длина короткой аудиосигнатуры и длинной аудиосигнатуры может быть идентичной.Therefore, in another embodiment, the length of the corresponding short or long signature may be shorter than the corresponding predetermined value. In addition, if the length of the audio track is less than a predetermined value for the short audio signature, then the length of the short audio signature and the long audio signature may be identical.

Каждая аудиосигнатура содержит хромаслова, которые характеризуют небольшие равные части связанного аудиотрека. Хромаслова могут характеризовать перекрывающиеся части аудиотрека. Каждое хромаслово может быть представлено как последовательность байтов. Структура и характеристики аудиосигнатур и хромаслов будут описаны подробнее ниже, в основном, при описании Фиг. 1.Each audio signature contains a chroma word that characterizes small equal parts of a linked audio track. Khromaslov can characterize the overlapping parts of the audio track. Each key word can be represented as a sequence of bytes. The structure and characteristics of audio signatures and chromas will be described in more detail below, mainly when describing FIG. one.

Когда сервер 720 получает входящий аудиотрек, создается короткая аудиосигнатура не более чем для 20 первых секунд входящего аудиотрека.When server 720 receives an incoming audio track, a short audio signature is created for no more than the first 20 seconds of the incoming audio track.

Процедура сравнения содержит два этапа: этап быстрого выбора кандидата и этап проверки кандидата.The comparison procedure contains two stages: the stage of quick selection of the candidate and the stage of verification of the candidate.

Как уже упоминалось ранее, сервер 720 может поддерживать два индекса: прюнинг-индекс 7241, содержащий короткие аудиосигнатуры, и индекс 7241 проверки, содержащий длинные аудиосигнатуры. Последовательности байтов в хромасловах могут быть использованы как ключи, чтобы найти совпадающие аудиотреки. То, как индексы сформированы и поддерживаются, будет описано ниже, в основном, при описании Фиг. 3-5.As mentioned previously, server 720 can support two indices: a pruning index 7241 containing short audio signatures, and a verification index 7241 containing long audio signatures. Byte sequences in the chromas can be used as keys to find matching audio tracks. How indexes are generated and maintained will be described below, mainly with reference to FIG. 3-5.

В течение первого этапа процедуры сравнения, быстрого выбора кандидата, сервер 720 находит аудиотрек-кандидат, используя первую короткую аудиосигнатуру (короткую аудиосигнатуру входящего аудиотрека) в прюнинг-индексе 7241. Аудиотрек-кандидат может также являться аудиотреком, который содержит по меньшей мере одно хромаслово, полностью совпадающее с хромасловом, идентифицированным во входящем аудиотреке.During the first stage of the comparison procedure, quick candidate selection, the server 720 finds the candidate audio track using the first short audio signature (short audio signature of the incoming audio track) in the tuning index 7241. The candidate audio track may also be an audio track that contains at least one key word, completely coinciding with the chroma key identified in the incoming audio track.

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

После этого сервер 720 осуществляет проверку аудиотрека-кандидата с помощью побитного сравнения длинной аудиосигнатуры входящего аудиотрека с длинной аудиосигнатурой, сохраненной в базе данных и доступной серверу 720, с использованием индекса 7241 проверки. На этом этапе сервер 720 может учесть разное качество сравниваемых аудиотреков, а также сдвиг по времени между сравниваемыми аудиотреками.After that, the server 720 checks the candidate audio track by bitwise comparing the long audio signature of the incoming audio track with the long audio signature stored in the database and available to server 720 using the verification index 7241. At this point, server 720 can take into account the different quality of the compared audio tracks, as well as the time offset between the compared audio tracks.

На этом этапе сервер 720 исключает из списка кандидатов те проиндексированные аудиотреки, чья длина отличается от длины входящего аудиотрека на предварительно определенное время, например на 10 секунд, 30 секунд, минуту и так далее. Совпадение аудиотреков устанавливается при совпадении их аудиосигнатур на предварительно определенном уровне. Например, в некоторых вариантах осуществления совпадение битов в длинных аудиосигнатурах входящего аудиотрека и аудиотрека-кандидата не обязательно должно быть стопроцентным. В таких случаях байты длинной аудиосигнатуры треков совпадают на 90%, 80%, 70% и так далее.At this point, the server 720 excludes from the list of candidates those indexed audio tracks whose length differs from the length of the incoming audio track by a predetermined time, for example, 10 seconds, 30 seconds, a minute, and so on. The coincidence of audio tracks is established when their audio signature matches at a predefined level. For example, in some embodiments, the match of the bits in the long audio signatures of the incoming audio track and the candidate audio track need not be one hundred percent. In such cases, the bytes of the long audio signature of the tracks match 90%, 80%, 70%, and so on.

Следует отметить, что конкретные варианты осуществления аудиосигнатур никак не ограничены и в таком случае могут быть использованы различные подходы известного уровня техники к созданию аудиосигнатур. Пример такого подхода, который может быть использован для создания аудиосигнатуры, предложен в патенте США US 7013301 «Аудиосигнатурная система и способ».It should be noted that specific embodiments of the audio signatures are not limited in any way, and in this case, various prior art approaches to creating audio signatures can be used. An example of such an approach, which can be used to create an audio signature, is proposed in US patent US 7013301 "Audio signature system and method."

Другой подход к созданию аудиосигнатуры описан в статье "Как функционирует хромапринт?" за авторством Lukáš Lalinský, опубликованной на вебстранице https://oxvgene.sk/2011/01/how-does-chromaprint-work/. "Хромапринт" является клиентской библиотекой, которая осуществляет пользовательский алгоритм для извлечения аудиосигнатур из источника аудио. Гиперссылки на исходный код опубликованы на https://acoustid.org/chromaprint. Исходный код доступен для авторизации по лицензии LGPL2.1+ (стандартная общественная лицензия ограниченного применения).Another approach to creating an audio signature is described in the article "How does chroma-print work?" authored by Lukáš Lalinský published on the web page https://oxvgene.sk/2011/01/how-does-chromaprint-work/ . Chromeprint is a client library that implements a custom algorithm for extracting audio signatures from an audio source. Source hyperlinks are published at https://acoustid.org/chromaprint . The source code is available for authorization under the LGPL2.1 + license (standard public limited license).

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

В случае хромапринта входящий аудиотрек может быть преобразован с частотой 11025 Гц и размером интервалов 4096 (0,371 с) с перекрытием 2/3. Хромапринт далее обрабатывает информацию, преобразуя частоты в ноты, и в итоге получается 12 ячеек, каждая из которых содержит соответствующую ноту. В результате создается представление аудио, которое устойчиво к изменениям.In the case of a chroma-print, the incoming audio track can be converted with a frequency of 11025 Hz and an interval size of 4096 (0.371 s) with a 2/3 overlap. Chromaprint then processes the information, converting the frequencies into notes, and as a result, 12 cells are obtained, each of which contains a corresponding note. The result is an audio representation that is resilient to change.

Соответственно, на каждую из них применяется предварительно определенный набор из 16 фильтров, причем эти фильтры улавливают различия в интенсивности в нотах по времени. В результате создается "хромаслово". "Хромаслово" является компонентом аудиосигнатуры, причем каждое хромаслово является последовательностью байтов, описывающих часть аудио.Accordingly, for each of them a predefined set of 16 filters is applied, and these filters capture differences in intensity in notes over time. The result is a "chromo-word". A “chroma” is a component of an audio signature, with each chroma and a sequence of bytes describing a portion of the audio.

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

Однако следует понимать, что в некоторых вариантах осуществления, после того как конкретный способ создания аудиосигнатур был выбран, он применяется для создания и коротких, и длинных аудиосигнатур. В других вариантах осуществления могут быть применены различные подходы для создания коротких и длинных аудиосигнатур.However, it should be understood that in some embodiments, after a particular method of creating audio signatures has been selected, it is used to create both short and long audio signatures. In other embodiments, various approaches can be applied to create short and long audio signatures.

На Фиг. 1 представлена аудиосигнатура 1001. Например, аудиосигнатура является аудиосигнатурой входящего аудиотрека (входящий аудиотрек является аудиотреком, полученным сервером 720 от пользователя 740 электронного устройства 702 (как изображено на Фиг. 8).In FIG. 1 illustrates an audio signature 1001. For example, an audio signature is an audio signature of an incoming audio track (the incoming audio track is an audio track received by server 720 from user 740 of electronic device 702 (as shown in FIG. 8).

На этот момент времени еще не известно, является ли этот аудиотрек проиндексированным и/или сохраненным в базе данных (не изображена), которая доступна для сервера 720. Сервер 720 создает аудиосигнатуру входящего аудиотрека. Сервер 720 затем сравнивает таким образом созданную аудиосигнатуру с множеством вторых аудиосигнатур, причем вторые аудиосигнатуры уже были проиндексированы и сохранены в базах данных и/или в индексах (например, в индексе 7241 проверки), доступных серверу 720. Если аудиосигнатура совпадает с одной из множества вторых аудиосигнатур, то определяется потенциально совпадающий трек.At this point in time, it is not yet known whether this audio track is indexed and / or stored in a database (not shown) that is available for server 720. Server 720 creates an audio signature of the incoming audio track. The server 720 then compares the thus created audio signature with a plurality of second audio signatures, the second audio signatures being already indexed and stored in the databases and / or indexes (for example, in the verification index 7241) available to the server 720. If the audio signature matches one of the many second audio signatures, then a potentially matching track is determined.

Более конкретно, вторая аудиосигнатура 1001 является аудиосигнатурой аудиотрека, который уже был проиндексирован и/или сохранен в базе данных, причем эта база данных доступна серверу 720. Для одного и того же аудиотрека может быть более одной второй аудиосигнатуры 1001, поскольку может быть создана вторая аудиосигнатура для аудиофайла с первой предварительно определенной длительностью (вторая короткая аудиосигнатура) и со второй предварительно определенной длительностью (вторая длинная аудиосигнатура). Например, вторая короткая аудиосигнатура 1001 и вторая длинная аудиосигнатура 1001 могут быть созданы для одного и того же аудиотрека, но при этом у них будет разная длительность от начала аудиотрека (например, первые 21 секунда с начала аудиотрека и первые 120 секунд с начала аудиотрека). Вторая аудиосигнатура сохраняется в базе данных (не изображена), которая доступна для сервера 720. Вторая аудиосигнатура 100 является представлением одной из множества вторых аудиосигнатур, сохраненных в базе данных.More specifically, the second audio signature 1001 is the audio signature of an audio track that has already been indexed and / or stored in a database, which database is available to server 720. For the same audio track, there may be more than one second audio signature 1001, since a second audio signature can be created for an audio file with a first predetermined duration (second short audio signature) and with a second predefined duration (second long audio signature). For example, the second short audio signature 1001 and the second long audio signature 1001 can be created for the same audio track, but they will have different durations from the beginning of the audio track (for example, the first 21 seconds from the beginning of the audio track and the first 120 seconds from the beginning of the audio track). The second audio signature is stored in a database (not shown), which is available for server 720. The second audio signature 100 is a representation of one of the many second audio signatures stored in the database.

В некоторых вариантах осуществления каждая из вторых аудиосигнатур содержит указание на идентификатор 402 трека, связанный с соответствующим аудиотреком, которому принадлежит эта каждая из вторых аудиосигнатур, и возможно определение, что для входящего аудиотрека есть совпадающий сохраненный аудиотрек. Эту информацию можно использовать разными способами. Например, информация о совпадающем сохраненном аудиотреке может быть использована для предоставления лучшего варианта этого музыкального трека пользователю. Альтернативно или дополнительно эта информация может быть использована для определения обладателя авторских прав и/или получения авторизации для использования аудиотрека и/или осуществления лицензионной выплаты (роялти) владельцу авторских прав. Альтернативно или дополнительно эта информация может быть использована для нахождения и удаления дубликатов.In some embodiments, each of the second audio signatures comprises an indication of a track identifier 402 associated with a corresponding audio track to which each of the second audio signatures belongs, and it is possible to determine that there is a matching stored audio track for the incoming audio track. This information can be used in many ways. For example, information about a matching stored audio track can be used to provide a better version of this music track to a user. Alternatively or additionally, this information can be used to determine the copyright holder and / or obtain authorization to use the audio track and / or to make a license payment (royalty) to the copyright holder. Alternatively or additionally, this information can be used to find and remove duplicates.

Со ссылкой на Фиг. 1 следует отметить, что аудиосигнатура 1001 связана с первым входящим аудиотреком и что длина первого входящего аудиотрека в этом примере составляет 5 минут 41 секунду.With reference to FIG. 1, it should be noted that the audio signature 1001 is associated with the first incoming audio track and that the length of the first incoming audio track in this example is 5 minutes 41 seconds.

Как изображено на Фиг. 1, аудиосигнатура 1001 содержит хромаслова 1021, созданные в течение процесса создания аудиосигнатур из первого входящего аудиотрека. Аудиосигнатура может содержать (помимо хромаслов) другие компоненты, например указание на длительность первого входящего аудиотрека и тому подобное.As shown in FIG. 1, the audio signature 1001 contains chroma words 1021 created during the process of creating audio signatures from a first incoming audio track. The audio signature may contain (in addition to the chromas) other components, for example, an indication of the duration of the first incoming audio track and the like.

Размер каждого хромаслова 1021 в рамках аудиосигнатуры 1001 является одним и тем же: каждое хромаслово 1021 состоит из четырех байтов 104. Поскольку один байт равен восьми битам и имеет 28 или 256 возможных значений, от 0 до 255, байты в примере, изображенном на Фиг. 1 представлены как значения в ряду от 5000 до 5255.The size of each key word 1021 within the audio signature 1001 is the same: each key word 1021 consists of four bytes 104. Since one byte is eight bits and has 28 or 256 possible values, from 0 to 255, the bytes in the example shown in FIG. 1 are presented as values in a range from 5000 to 5255.

Байты 104 каждого хромаслова 1021 любой аудиосигнатуры могут быть сгруппированы не менее чем в две группы. Первые две группы образуют начальную часть 106 хромаслова, как показано на Фиг. 1. Число байтов в каждой из первых двух групп может быть предварительно определено. В качестве примера, число байтов в первых двух группах может составлять по меньшей мере единицу.Bytes 104 of each chroma word 1021 of any audio signature can be grouped in at least two groups. The first two groups form the initial part 106 of the chroma word, as shown in FIG. 1. The number of bytes in each of the first two groups can be predefined. As an example, the number of bytes in the first two groups may be at least one.

Как будет понятно специалистам в данной области техники, в различных вариантах осуществления число байтов в каждой из первых двух групп может быть предварительно определено разными способами. Например, в начальной части 106 хромаслова (размер начальной части хромаслова составляет четыре байта), возможны следующие комбинации:As will be appreciated by those skilled in the art, in various embodiments, the number of bytes in each of the first two groups can be predefined in different ways. For example, in the initial part of the chroma word (the size of the initial part of the chroma word is four bytes), the following combinations are possible:

1 байт и 3 байта;1 byte and 3 bytes;

2 байта и 2 байта;2 bytes and 2 bytes;

3 байта и 1 байт.3 bytes and 1 byte.

Поэтому, в широком смысле, в любом четырехбайтовом хромаслове возможны следующие комбинации групп:Therefore, in a broad sense, in any four-byte chroma word, the following combinations of groups are possible:

первый байт (не изображен) и вторая многобайтовая последовательность (не изображена);the first byte (not shown) and the second multibyte sequence (not shown);

первая многобайтовая последовательность (которая является двухбайтовой последовательностью) и вторая многобайтовая последовательность, которая также является двухбайтовой последовательностью; иa first multibyte sequence (which is a two-byte sequence) and a second multibyte sequence, which is also a two-byte sequence; and

первая многобайтовая последовательность 108, которая является трехбайтовой последовательностью, и последующий байт 110.a first multibyte sequence 108, which is a three byte sequence, and a subsequent byte 110.

Такой конкретный пример изображен на Фиг. 1: байты 104 в каждом хромаслове 1021 аудиосигнатуры 1001 сгруппированы в две группы: (i) первую многобайтовую последовательность 108, которая является последовательностью байтов 104, которая, в свою очередь, расположена в начальной части соответствующего хромаслова, и (ii) последующий байт 110. В некоторых вариантах осуществления последующих байтов может быть несколько: 110, 112, 114. Другими словами, байты в каждом хромаслове 102 делятся на две группы, причем размер первой группы составляет три байта, а размер второй группы - один байт (как изображено на фиг. 1).Such a specific example is depicted in FIG. 1: bytes 104 in each chroma word 1021 of the audio signature 1001 are grouped into two groups: (i) a first multibyte sequence 108, which is a sequence of bytes 104, which, in turn, is located in the initial part of the corresponding chroma word, and (ii) the subsequent byte 110. In some embodiments, there may be several subsequent bytes: 110, 112, 114. In other words, the bytes in each chroma word 102 are divided into two groups, the size of the first group being three bytes and the size of the second group being one byte (as shown in FIG. one )

В общем случае начальная часть 106 хромаслова является частью хромаслова, которая содержит комбинацию первой многобайтовой последовательности (или первого байта, в зависимости от обстоятельств) и второй многобайтовой последовательности (или последующего байта, в зависимости от обстоятельств).In the general case, the initial portion of the chroma word is the portion of the chroma word that contains a combination of the first multibyte sequence (or the first byte, as the case may be) and the second multibyte sequence (or the subsequent byte, as the case may be).

В альтернативных вариантах осуществления байты в хромасловах могут быть сгруппированы более чем в две группы, например, как на фиг. 2.In alternative embodiments, bytes in the chroma words may be grouped into more than two groups, for example, as in FIG. 2.

Однако начальная часть 106 хромаслова может не обязательно совпадать с самим хромасловом.However, the initial portion 106 of the chroma word may not necessarily coincide with the chroma word itself.

Сервер 720 может создавать аудиосигнатуру 1002 для входящего трека целиком, а также для части входящего аудиотрека. В рамках вариантов осуществления сервер 720 может создавать более чем одну аудиосигнатуру для входящего аудиотрека. Например, в некоторых вариантах осуществления сервер 720 создает первую короткую аудиосигнатуру и первую длинную аудиосигнатуру.Server 720 may create an audio signature 1002 for the entire incoming track, as well as for part of the incoming audio track. In embodiments, server 720 may create more than one audio signature for an incoming audio track. For example, in some embodiments, the server 720 creates a first short audio signature and a first long audio signature.

Короткая аудиосигнатура является аудиосигнатурой первой части аудиотрека и длится первое предварительно определенное время от начала аудиотрека. В некоторых вариантах осуществления первая предварительно определенная длительность является меньшим из двух интервалов: предварительно определенной длительности в промежутке от 9 до 27 секунд или длительности аудиотрека.The short audio signature is the audio signature of the first part of the audio track and lasts a first predetermined time from the start of the audio track. In some embodiments, the first predetermined duration is the shorter of the two intervals: a predetermined duration in the range of 9 to 27 seconds or the duration of the audio track.

В приведенном примере варианта осуществления первая предварительно определенная длительность от начала аудиотрека составляет меньший из двух интервалов: 21 секунда или длительность аудиотрека. Учитывая, что длительность входящего аудиотрека составляет 5 минут 41 секунду, что больше, чем 21 секунда, сервер 720 создает первую короткую аудиосигнатуру для первой 21 секунды входящего аудиотрека.In the example example of the embodiment, the first predetermined duration from the beginning of the audio track is the shorter of the two intervals: 21 seconds or the duration of the audio track. Given that the duration of the incoming audio track is 5 minutes 41 seconds, which is more than 21 seconds, the server 720 creates the first short audio signature for the first 21 seconds of the incoming audio track.

Длинная аудиосигнатура является аудиосигнатурой второй части аудиотрека и длится второе предварительно определенное время от начала аудиотрека. В некоторых вариантах осуществления вторая предварительно определенная длительность является меньшим из двух интервалов: предварительно определенной длительности в промежутке от 99 до 141 секунд или длительности аудиотрека. В приведенном примере варианта осуществления вторая предварительно определенная длительность от начала аудиотрека составляет меньший из двух интервалов: 120 секунд или длительности аудиотрека. Учитывая, что длительность входящего аудиотрека составляет 5 минут 41 секунду, что больше, чем 120 секунда, сервер 720 создает первую длинную аудиосигнатуру для первых 120 секунд входящего аудиотрека.The long audio signature is the audio signature of the second part of the audio track and lasts a second predetermined time from the start of the audio track. In some embodiments, the second predetermined duration is the shorter of the two intervals: a predetermined duration in the range of 99 to 141 seconds or the duration of the audio track. In the example example of the embodiment, the second predetermined duration from the beginning of the audio track is the smaller of two intervals: 120 seconds or the duration of the audio track. Given that the duration of the incoming audio track is 5 minutes 41 seconds, which is more than 120 seconds, server 720 creates the first long audio signature for the first 120 seconds of the incoming audio track.

Аудиосигнатура 1002, изображенная на Фиг. 2, может быть любой из следующих аудиосигнатур: первой короткой аудиосигнатуры, первой длинной аудиосигнатуры, второй короткой аудиосигнатуры и второй длинной аудиосигнатуры. Структура этих аудиосигнатур входящего аудиотрека может быть одной и той же, кроме того, что первая длинная аудиосигнатура содержит больше хромаслов. И первая длинная, и первая короткая аудиосигнатуры одного и того же аудиотрека создаются с использованием той же самой технологии, с учетом соответственно длинной и короткой части одного и того же аудиоитрека с его начала, причем первая короткая аудиосигнатура идентична началу первой длинной аудиосигнатуры.The audio signature 1002 shown in FIG. 2, there may be any of the following audio signatures: a first short audio signature, a first long audio signature, a second short audio signature, and a second long audio signature. The structure of these audio signatures of the incoming audio track may be the same, except that the first long audio signature contains more chroma. Both the first long and first short audio signatures of the same audio track are created using the same technology, taking into account the correspondingly long and short parts of the same audio track from its beginning, the first short audio signature being identical to the beginning of the first long audio signature.

Как будет понятно специалистам в данной области техники, в различных вариантах осуществления число байтов в каждой из первых двух групп может быть предварительно определено разными способами. Например, в начальной части 106 хромаслова (причем размер начальной части хромаслова составляет четыре байта), возможны следующие комбинации:As will be appreciated by those skilled in the art, in various embodiments, the number of bytes in each of the first two groups can be predefined in different ways. For example, in the initial part 106 of the chroma word (and the size of the initial part of the chroma word is four bytes), the following combinations are possible:

1 байт и 3 байта;1 byte and 3 bytes;

2 байта и 2 байта;2 bytes and 2 bytes;

3 байта и 1 байт.3 bytes and 1 byte.

Поэтому, в широком смысле, в любом четырехбайтовом хромаслове возможны следующие комбинации групп:Therefore, in a broad sense, in any four-byte chroma word, the following combinations of groups are possible:

первый байт (не изображен) и вторая многобайтовая последовательность (не изображена);the first byte (not shown) and the second multibyte sequence (not shown);

первая многобайтовая последовательность (которая является двухбайтовой последовательностью) и вторая многобайтовая последовательность, которая также является двухбайтовой последовательностью; иa first multibyte sequence (which is a two-byte sequence) and a second multibyte sequence, which is also a two-byte sequence; and

первая многобайтовая последовательность 108, которая является трехбайтовой последовательностью, и последующий байт 110.a first multibyte sequence 108, which is a three byte sequence, and a subsequent byte 110.

На Фиг. 3 изображена принципиальная схема множества наборов 200 списков слоповозиций. Каждый набор списков словопозиций изображен как большой четырехугольник и отдельно пронумерован: 2001, 2002, 2003, … 2004, 2005… и т.д.In FIG. 3 is a schematic diagram of a plurality of sets 200 of positioning lists. Each set of vocabulary lists is depicted as a large quadrangle and separately numbered: 2001, 2002, 2003, ... 2004, 2005 ... etc.

Список словопозиций является структурой данных индекса, хранящей преобразованный контент, например аудиотрек, в его местоположении в файле базы данных, или в документе, или в наборе документов. Задачей списка словопозиций является предоставление возможности быстрого поиска аудиотрека за счет усиления процесса обработки, когда аудиотрек добавляется в базу данных.A word list is an index data structure storing transformed content, such as an audio track, at its location in a database file, or in a document or in a set of documents. The task of the list of word positions is to provide the ability to quickly search for an audio track by enhancing the processing process when the audio track is added to the database.

Список 304 словопозиций изображен на Фиг. 4. Список 304 словопозиций является одним из списков словопозиций, сгруппированных в набор 200 списков словопозиций. Список 304 словопозиций для каждого хромаслова 1021 может содержать идентификатор 402 трека, связанный с аудиотреком, характеризующий соответствующее хромаслово 1021. Идентификатор 402 трека может быть многобайтовой последовательностью. В этом варианте идентификатор 402 трека является последовательностью четырех байтов. Список 304 словопозиций для каждого хромаслова 1021 может содержать указание 404 на длительность трека, связанное с аудиотреком, из которого создано соответствующее хромаслово 1021. Кроме того, список 304 словопозиций для каждого хромаслова 1021 может содержать указание 406 положения хромаслова 1021 в аудиотреке, который описывает соответствующее слово 1021.The word list 304 is depicted in FIG. 4. The list of 304 word positions is one of the lists of word positions grouped into a set of 200 word lists. The word list 304 for each key word 1021 may contain a track identifier 402 associated with an audio track characterizing the corresponding key word 1021. Track identifier 402 may be a multibyte sequence. In this embodiment, track identifier 402 is a sequence of four bytes. A list of 304 word positions for each chroma word 1021 may contain an indication 404 of the track duration associated with the audio track from which the corresponding chroma word 1021 is created. In addition, a list of 304 word positions for each chroma word 1021 may contain an indication 406 of the position of the chroma word 1021 in the audio track that describes the corresponding word 1021.

Существует только один конкретный список 304 словопозиций для всех хромаслов 1021, которые имеют одну и ту же начальную часть 106. Например, при существовании нескольких хромаслов 1021 и при том, что начальная часть каждого из трех хромаслов 102 выглядит как 5214-5255-5008-5047, будет только один список словопозиций для всех этих трех хромаслов 1021 с начальной частью 106, которая выглядит как 5214-5255-5008-5047.There is only one specific list of 304 word positions for all chromas 1021, which have the same initial part 106. For example, if there are several chromas 1021 and even though the initial part of each of the three chromas102 looks like 5214-5255-5008-5047 , there will be only one list of word positions for all these three chromas 1021 with the initial part 106, which looks like 5214-5255-5008-5047.

В данном наборе 200 списков 304 словопозиций множества списков 304 словопозиций, каждый список 304 словопозиций содержит хромаслово 1021 с такой же первой многобайтовой последовательностью 108 хромаслов 1021. Следует учитывать, что первая многобайтовая последовательность 108 хромаслова 1021 меньше, чем начальная часть 106 хромаслова 1021. В дополнение к первой многобайтовой последовательности 108 начальная часть 106 хромаслова 1021 также содержит последующий байт 110. Другими словами, каждый набор 200 списков 304 словоформ содержит только те списки 304 словоформ, которые ссылаются на хромаслова 1021 с той же самой многобайтовой последовательностью 108, например 5214-5255-5008 (или тот же самый первый байт, в зависимости от обстоятельств в некоторых вариантах осуществления). Это означает, что каждый набор 200 списков 304 словопозиций содержит списки 304 словопозиций, которые могут быть созданы для разных хромаслов с одинаковой первой многобайтовой последовательностью 108, но различными последующими байтами 110; например, один набор 200 списков 304 словопозиций может быть создан для следующих хромаслов: 5214-5255-5008-5008, 5214-5255-5008-5012, 5214-5255-5008-5047, 5214-5255-5008-5077, 5214-5255-5008-5201.In this set of 200 lists of 304 word positions of a set of lists of 304 word positions, each list of 304 word positions contains a chroma 1021 with the same first multibyte sequence 108 chroma 1021. It should be noted that the first multibyte sequence 108 chroma 1021 is smaller than the initial part 106 of chroma 1021. In addition to the first multibyte sequence 108, the initial part 106 of the chroma 1021 also contains the subsequent byte 110. In other words, each set 200 of wordform lists 304 contains only those wordform lists 304, which matured hromaslova link to 1021 with the same multi-byte sequence 108, e.g. 5214-5255-5008 (or the same first byte, depending on the circumstances in some embodiments). This means that each set 200 of word-lists 304 contains word-lists 304 that can be created for different chromas with the same first multibyte sequence 108, but different subsequent bytes 110; for example, one set of 200 lists of 304 word positions can be created for the following chromas: 5214-5255-5008-5008, 5214-5255-5008-5012, 5214-5255-5008-5047, 5214-5255-5008-5077, 5214-5255 -5008-5201.

Фиг. 3 иллюстрирует наборы 200 списков 304 словопозиций, которые созданы для хромаслов 1021. Поскольку каждое хромаслово 1021 имеет первую многобайтовую последовательность 108, которая является последовательностью трех байтов, то каждый список словопозиций сгруппирован в набор 200 списков 304 словопозиций, причем набор 200 начинается с последовательности в три байта.FIG. 3 illustrates sets of 200 word lists 304 that are created for chroma 1021. Since each chroma 1021 has a first multibyte sequence 108, which is a sequence of three bytes, each word list is grouped into a set of 200 word lists 304, and the 200 begins with a sequence of three bytes.

Поскольку в этом примере каждое хромаслово имеет первую многобайтовую последовательность из трех байтов, каждый набор 200 списков 304 словопозиций также определен любой возможной комбинацией трех байтов, начиная с первого набора 2001, который определяется комбинацией байтов 2021 (5000-5000-5000), и заканчивая последним набором 2005, который определяется комбинацией байтов 2025 (5255-5255-5255).Since in this example each key word has the first multibyte sequence of three bytes, each set of 200 lists of 304 word positions is also defined by any possible combination of three bytes, starting with the first set of 2001, which is determined by the combination of bytes 2021 (5000-5000-5000), and ending with the last set 2005, which is determined by a combination of bytes 2025 (5255-5255-5255).

Все эти комбинации байтов от 2021 до 2025 могут быть использованы как соответствующие ключи индекса из множества ключей индекса 202, как будет описано позже. Поскольку, как уже было отмечено ранее, один байт равен восьми битам и имеет 28 или 256 возможных значений, от 0 до 255, байты в примере, изображенном на Фиг. 2 представлены как значения в ряду от 5000 до 5255. Поэтому возможны 16777216 комбинаций трех байтов (2563). Все эти комбинации байтов будут использованы как ключи 202 индекса, как будет описано ниже. Поскольку наборы 200 списков словопозиций определяются числом байтов, равным числу байтов в первой многобайтовой последовательности 108, будет 16777216 наборов 200 списков 304 словопозиций.All these combinations of bytes from 2021 to 2025 can be used as the corresponding index keys from the plurality of index keys 202, as will be described later. Since, as noted earlier, one byte is eight bits and has 28 or 256 possible values, from 0 to 255, the bytes in the example depicted in FIG. 2 are presented as values ranging from 5000 to 5255. Therefore, 16777216 combinations of three bytes (2563) are possible. All of these byte combinations will be used as index keys 202, as will be described below. Since the sets 200 of word lists are determined by the number of bytes equal to the number of bytes in the first multibyte sequence 108, there will be 16777216 sets of 200 lists of 304 word positions.

Число наборов 200 списков 304 словопозиций может быть меньше или больше, чем 16777216, в зависимости от длины первой многобайтовой последовательности. Например, первая многобайтовая последовательность 108 состоит из единственного байта (из "первого байта"), тогда будет существовать 256 наборов 200 списков 304 словопозиций.The number of sets 200 of lists of 304 word positions may be less or more than 16777216, depending on the length of the first multibyte sequence. For example, the first multibyte sequence 108 consists of a single byte (of the "first byte"), then there will be 256 sets of 200 lists of 304 word positions.

Возможна ситуация, когда для хромаслов нет списков словопозиций, начиная с определенного первого байта или с определенной первой многобайтовой последовательности. Пусть во всей базе данных аудиотреков нет аудиосигнатур, которые содержали бы хромаслова, начинающиеся с первой многобайтовой последовательности 5010-5127-5206. В этом случае набор 200, связанный с многобайтовой последовательностью 5010-5127-5206 будет пуст и не будет содержать ни одного списка словопозиций. Возможно добавление списка словопозиций в существующий набор 200, причем набор 200 определяется многобайтовой последовательностью 5010-5127-5206, если будет получена аудиосигнатура нового аудиотрека и по меньшей мере одно новое хромаслово 1021 будет начинаться с многобайтовой последовательности 5010-5127-5206.A situation is possible when there are no word lists for chromas, starting with a specific first byte or with a specific first multibyte sequence. Suppose that there are no audio signatures in the entire database of audio tracks that contain chroma words starting with the first multibyte sequence 5010-5127-5206. In this case, the set 200 associated with the multibyte sequence 5010-5127-5206 will be empty and will not contain any list of word positions. It is possible to add a list of word positions to the existing set 200, the set 200 being determined by a multibyte sequence 5010-5127-5206, if an audio signature of a new audio track is received and at least one new chroma 1021 begins with a multibyte sequence 5010-5127-5206.

В рамках данного набора списков словопозиций один из списков 304 отличается от другого списка 304 словопозиций тем, что у связанных хромаслов 1021 различные последующие байты (или различные вторые многобайтовые последовательности, в зависимости от обстоятельств в некоторых вариантах осуществления). Различные последующие байты (или вторые многобайтовые последовательности (в зависимости от обстоятельств в некоторых вариантах осуществления)) уникальны для данного набора списков словопозиций.Within this set of word lists, one of lists 304 differs from another word list 304 in that associated chromas 1021 have different subsequent bytes (or different second multibyte sequences, as the case may be in some embodiments). The various subsequent bytes (or second multibyte sequences (depending on the circumstances in some embodiments)) are unique to a given set of word lists.

Возьмем в качестве примера набор 2004, изображенный на Фиг. 3. Набор 2004 содержит все списки 304 словопозиций для индексированных хромаслов 1022, которые имеют ту же самую многобайтовую последовательность 5214-5255-5008. Все хромаслова 1022 имеют одну и ту же первую многобайтовую последовательность 5214-5255-5008, отличаясь друг от друга последующим байтом 110 (или второй многобайтовой последовательностью, в зависимости от обстоятельств в некоторых вариантах осуществления).Take, as an example, the kit 2004 shown in FIG. 3. Set 2004 contains all lists of 304 word positions for indexed chroma 1022 that have the same multibyte sequence 5214-5255-5008. All key words 1022 have the same first multibyte sequence 5214-5255-5008, differing from each other by the subsequent byte 110 (or the second multibyte sequence, as the case may be in some embodiments).

Поскольку конкретный список словопозиций имеет отсылки для всех элементов конкретного хромаслова, такой список словопозиций является уникальным в данном наборе списков словопозиций. Поэтому в одном и том же наборе 200 списков 304 словопозиций последующий байт 110 (или вторая многобайтовая последовательность, в зависимости от обстоятельств в некоторых вариантах осуществления) отличает один список 304 словопозиций от другого.Since a specific list of word positions has references for all elements of a particular chromosword, such a list of word positions is unique in this set of word lists. Therefore, in the same set 200 of word lists 304, the subsequent byte 110 (or the second multibyte sequence, as the case may be in some embodiments) distinguishes one word list 304 from another.

Например, набор 2004 списков словопозиций, начинающихся с последовательности байтов 5214-5255-5008, будет содержать множество списков словопозиций, начинающихся с комбинации байтов 5214-5255-5008, где каждый список словопозиций будет иметь другой следующий байт 302, соответствующий последующему байту 110. Упомянутая комбинация 2024 байтов 5214-5255-5008 может быть использована как ключ индекса 2024 (см. Фиг. 4). Следующий байт 302 является идентичным последующему байту 110 соответствующего хромаслова 1022 и используется как ключ 302 сортировки для инвертированного индекса аудиотрека. В некоторых вариантах осуществления следующий байт 302 является многобайтовой последовательностью, которая идентична второй многобайтовой последовательности, и также используется как ключ 302 сортировки.For example, a set of 2004 word lists beginning with a sequence of bytes 5214-5255-5008 will contain many word lists starting with a combination of bytes 5214-5255-5008, where each word list will have a different next byte 302, corresponding to the next byte 110. Mentioned a combination of 2024 bytes 5214-5255-5008 can be used as an index key 2024 (see Fig. 4). The next byte 302 is identical to the subsequent byte 110 of the corresponding key word 1022 and is used as a sort key 302 for the inverted index of the audio track. In some embodiments, the next byte 302 is a multibyte sequence that is identical to the second multibyte sequence, and is also used as a sort key 302.

Одним из объектов настоящего решения является постоянный носитель 722 компьютерной информации, схематическое представление которого изображено на Фиг. 8. Постоянный носитель 722 компьютерной информации содержит инвертированный индекс аудиотрека.One of the objects of this solution is a permanent medium 722 of computer information, a schematic representation of which is shown in FIG. 8. The permanent computer information medium 722 comprises an inverted audio track index.

Инвертированный индекс аудиотрека может храниться в двух различных индексах, прюнинг-индексе 7241 и индексе 7242 проверки. Для создания и поддержки прюнинг-индекса 7241 и индекса 7242 проверки может быть использована та же самая технология. И прюнинг-индекс 7241, и индекс 7242 проверки будут также совместно упоминаться как инвертированный индекс аудиотрека (не изображен).The inverted audio track index can be stored in two different indices, the tuning index 7241 and the verification index 7242. The same technology can be used to create and maintain the tuning index 7241 and verification index 7242. Both the tuning index 7241 and the verification index 7242 will also be collectively referred to as an inverted audio track index (not shown).

Когда делается отсылка на инвертированный индекс аудиотрека, она применима и к прюнинг-индексу 7241, и к индексу 7242 проверки. Как будет понятно специалисту в данной области техники, представление прюнинг-индекса 7241 и индекса 7241 проверки упрощено; оба индекса могут содержать другие компоненты, которые не изображены на Фиг. 8, например ключи 202 индекса и ключи 302 сортировки.When a reference is made to the inverted audio track index, it applies to both the tuning index 7241 and the verification index 7242. As will be clear to a person skilled in the art, the presentation of the pruning index 7241 and verification index 7241 is simplified; both indices may contain other components that are not shown in FIG. 8, for example, index keys 202 and sort keys 302.

Фиг. 4 представляет часть 300 прюнинг-индекса 7241 из конкретного набора 2004 списков словопозиций. Весь инвертированный индекс 7241 аудиотрека (не изображен) содержит множество таких частей 300, представляющих все возможные наборы 200 списков словопозиций.FIG. 4 represents a portion 300 of the routing index 7241 from a particular set 2004 of word lists. The entire inverted audio track index 7241 (not shown) contains a plurality of such parts 300 representing all possible sets of 200 word lists.

Инвертированный индекс аудиотрека содержит множество 200 наборов списков 304 словопозиций, причем в каждом таком списке содержатся хромаслова 1022, каждое из которых является компонентом аудиосигнатуры 1012.The inverted index of the audio track contains many 200 sets of lists of 304 word positions, and each such list contains chroma words 1022, each of which is a component of the audio signature 1012.

В некоторых вариантах осуществления каждый из наборов 200 списков 304 словопозиций связан с ключом 202 индекса. Как изображено на Фиг. 3, все наборы 200 списков 304 словопозиций являются уникальными: набор 2001, набор 2002, набор 2003, 2004, 2005 и так далее, причем каждое множество наборов 200 определяется уникальной комбинацией 2021, 2022, 2023, 2024, 2025 и т.д. байтов. Поскольку один конкретный ключ 202 индекса из множества ключей индекса связан с одним конкретным набором из множества наборов 200, каждый ключ 202 индекса уникален, так что конкретный ключ 202 индекса соответствует конкретному набору 200 списков словопозиций. Например, конкретный набор 2004 списков словопозиций, будучи уникальным, соответствует комбинации 2024 байтов 5214-5255-5008, которая используется как ключ 2024 индекса, который тоже является уникальным.In some embodiments, each of the sets 200 of word lists 304 is associated with an index key 202. As shown in FIG. 3, all sets of 200 lists of 304 word positions are unique: set 2001, set 2002, set 2003, 2004, 2005 and so on, and each set of sets 200 is defined by a unique combination of 2021, 2022, 2023, 2024, 2025, etc. bytes. Since one particular index key 202 from the plurality of index keys is associated with one particular set of the plurality of sets 200, each index key 202 is unique, so that a particular index key 202 corresponds to a particular set of word lists 200. For example, a particular set of 2004 vocabulary lists, being unique, corresponds to a combination of 2024 bytes 5214-5255-5008, which is used as an index key 2024, which is also unique.

В некоторых вариантах осуществления ключ 202 индекса необходим для быстрого определения положения данного набора 200 списков 304 словопозиций в рамках инвертированного индекса 724 аудиотрека. Использование ключа 202 индекса позволяет определить специализированный набор 200 списков словопозиций, который содержит конкретный список словопозиций для конкретного хромаслова. Поэтому сужение поиска позволяет быстро определить положение данного набора 200 списков 304 словопозиций в рамках индекса.In some embodiments, an index key 202 is needed to quickly determine the position of a given set 200 of word lists 304 within an inverted audio track index 724. Using the index key 202 allows you to define a specialized set of 200 word lists, which contains a specific list of word positions for a specific chroma word. Therefore, narrowing the search allows you to quickly determine the position of this set of 200 lists of 304 word positions within the index.

В некоторых вариантах осуществления каждый список 304 словопозиций из данного набора 200 списков словопозиций связан с ключом 302 сортировки, который является уникальным для данного набора списков словопозиций.In some embodiments, each word list 304 from a given word list set 200 is associated with a sort key 302, which is unique to a given word list set.

В некоторых вариантах осуществления ключ 302 сортировки необходим для быстрого определения положения списка слопозиций в рамках данного набора списков словопозиций, поскольку использование ключа 302 сортировки позволяет отличить один список 304 словопозиций от всех других списков 304 словопозиций в рамках данного набора 200 списков словопозиций.In some embodiments, the sort key 302 is needed to quickly determine the position of the list of slots within a given set of word lists, since using the sort key 302 allows you to distinguish one list 304 of word positions from all other lists of 304 word positions within this set of 200 word lists.

В некоторых вариантах осуществления ключ 202 индекса содержит в себе первую многобайтовую последовательность 108. Поэтому ключ 202 индекса будет идентичным первой многобайтовой последовательности 108, которая также определяет наборы 200 списков 304 словопозиций.In some embodiments, the index key 202 comprises a first multibyte sequence 108. Therefore, the index key 202 will be identical to the first multibyte sequence 108, which also defines sets 200 of word lists 304.

Другим объектом является способ создания и поддержки прюнинг-индекса 7241.Another object is a method for creating and maintaining the 7241 training index.

Способ содержит получение сервером 720 аудиотрека для индексации. Это получение может быть осуществлено, например, от правообладателя. Затем аудиотрек может быть загружен в базу данных (не изображена), сохранен на сервере 720 или доступен для сервера 720.The method comprises receiving, by the server 720, an audio track for indexing. This receipt can be carried out, for example, from the copyright holder. The audio track can then be loaded into a database (not shown), stored on server 720, or accessible to server 720.

Способ содержит определение первого хромаслова 1021, связанного с новым аудиотреком для индексации, причем хромаслово 1021 разделено на множество байтов 104, а также первое хромаслово 1021 содержит начальную часть 106 хромаслова, которая является подмножеством байтов с первым байтом и последующим байтом 110, причем последующий байт 110 расположен сразу после первого байта. Следовательно, в этом варианте осуществления начальная часть 106 хромаслова 1021 содержит два байта.The method comprises determining a first chroma word 1021 associated with a new audio track for indexing, wherein the chroma 1021 is divided into many bytes 104, and the first chroma 1021 contains the initial part 106 of the chroma, which is a subset of bytes with the first byte and subsequent byte 110, with the subsequent byte 110 located immediately after the first byte. Therefore, in this embodiment, the initial portion 106 of the chroma 1021 contains two bytes.

Кроме того, способ содержит определение на основе первого байта конкретного набора 200 списков 304 словопозиций в рамках множества наборов 200 списков 304 словопозиций, причем этот конкретный набор содержит списки словопозиций, которые содержат ссылки на хромаслова с одинаковым первым байтом в начальной части 106. Число наборов 200 может быть равно 256, поскольку наборы списков словопозиций могут быть созданы в соответствии с любым возможным первым байтом. Поскольку, как было указано выше, один байт равен восьми битам, возможны 28 или 256 значений.In addition, the method comprises determining, on the basis of the first byte, a specific set of 200 lists of 304 word positions within a plurality of sets 200 of lists of 304 word positions, this particular set containing lists of word positions that contain links to the chroma words with the same first byte in the initial part 106. The number of sets 200 may be 256, because sets of wordlist lists can be created according to any possible first byte. Since, as mentioned above, one byte is equal to eight bits, 2 8 or 256 values are possible.

Кроме того, способ содержит: сохранение указания на первое хромаслово в данном списке 304 словопозиций в ответ на то, что последующий байт 110 первого хромаслова 1021 совпадает с любым последующим байтом 110 любых хромаслов 1021, хранящихся в данном списке 304 словопозиций в рамках конкретного набора 200 списков 304 словопозиций. Альтернативно способ содержит: создание нового списка 304 словопозиций в рамках конкретного набора 200 списков 304 словопозиций, хранящего указание на новое хромаслово 1021 в ответ на то, что последующий байт 110 первого хромаслова 1021 не совпадает с любым последующим байтом 110 любых хромаслов 1021, хранящихся в данном списке 304 словопозиций.In addition, the method comprises: storing an indication of the first chroma word in this list of 304 word locations in response to the fact that the subsequent byte 110 of the first chroma word 1021 matches any subsequent byte 110 of any chroma 1021 stored in this list of 304 word positions within a specific set of 200 lists 304 word positions. Alternatively, the method comprises: creating a new list of 304 word positions within a specific set of 200 lists of 304 word positions, storing an indication of a new key word 1021 in response to the fact that the subsequent byte 110 of the first key word 1021 does not match any subsequent byte 110 of any key words 1021 stored in this a list of 304 word positions.

В некоторых вариантах осуществления способ также перед определением первого хромаслова 1021, связанного с новым аудиотреком для индексирования, содержит определение аудиосигнатуры 1001 нового аудиотрека для индексирования.In some embodiments, the method also prior to determining the first chroma 1021 associated with the new audio track for indexing, comprises determining the audio signature 1001 of the new audio track for indexing.

Другими словами, сервер 720 может создавать аудиосигнатуру 1001 для входящего аудиотрека; затем он определяет по меньшей мере одно хромаслово 1021 для индексации, причем это слово содержится в аудиосигнатуре 1001. Хромаслово 1021 содержит начальную часть 106 хромаслова 1021, причем эта начальная часть 106 содержит первый байт и последующий байт 110. Используя первый байт как ключ 202 индекса, сервер 720 определяет соответствующий набор 200 списков 304 словопозиций как определенный одинаковым байтом, первым байтом соответствующего хромаслова. Затем, используя последующий байт 110 как ключ 302 сортировки, сервер 720 ищет такой список 302 словопозиций, чтобы в нем все хромаслова имели одинаковую комбинацию первого байта и последующего байта 110 в своей начальной части 106. Конкретный список 304 словопозиций должен быть определен с помощью тех же двух байтов, содержащихся в начальной части 106 хромаслова 1021 для индексации.In other words, server 720 may create an audio signature 1001 for an incoming audio track; then it defines at least one chroma word 1021 for indexing, and this word is contained in the audio signature 1001. Chrome 1021 contains the initial part 106 of the chroma word 1021, and this initial part 106 contains the first byte and the subsequent byte 110. Using the first byte as the index key 202, server 720 determines the corresponding set of 200 word lists 304 as defined by the same byte, the first byte of the corresponding chroma word. Then, using the subsequent byte 110 as the sort key 302, the server 720 searches for such a list of word positions 302 so that all the words in it have the same combination of the first byte and the subsequent byte 110 in its initial part 106. A specific list of 304 word positions should be determined using the same two bytes contained in the initial part 106 of the chroma word 1021 for indexing.

Ранее уже указывалось, что набор 200 списков 304 словопозиций может быть пустым, при условии, что нет индексированных хромаслов 1021 с конкретным первым байтом (или первой многобайтовой последовательностью, как бывает в некоторых вариантах осуществления). В этом случае поиск с использованием ключа 302 сортировки покажет отсутствие релевантного списка словопозиций. В таком случае будет создан новый список словопозиций для этого конкретного хромаслова.It has already been pointed out earlier that a set of 200 lists of 304 word positions may be empty, provided that there are no indexed chroma 1021 with a specific first byte (or first multibyte sequence, as is the case in some embodiments). In this case, a search using the sort key 302 will show the absence of a relevant list of word positions. In this case, a new list of word positions will be created for this particular chromo word.

В некоторых вариантах осуществления первый байт является первой многобайтовой последовательностью 108, которая является последовательностью байтов в начале начальной части 106 каждого нового хромаслова 1021, а число байтов 104 в каждой первой многобайтовой последовательности 108 является одним и тем же.In some embodiments, the first byte is the first multibyte sequence 108, which is the sequence of bytes at the beginning of the initial portion 106 of each new chroma 1021, and the number of bytes 104 in each first multibyte sequence 108 is the same.

В некоторых вариантах осуществления последующий байт 110 является второй многобайтовой последовательностью, которая является последовательностью байтов, следующих либо за первой многобайтовой последовательностью 108, либо за первым байтом каждого нового хромаслова 1021, причем число байтов 104 в каждой второй многобайтовой последовательности является тем же самым.In some embodiments, the subsequent byte 110 is a second multibyte sequence, which is a sequence of bytes following either the first multibyte sequence 108 or the first byte of each new chroma 1021, the number of bytes 104 in each second multibyte sequence being the same.

В некоторых вариантах осуществления аудиосигнатура 1001 является либо короткой, либо длинной аудиосигнатурой.In some embodiments, the audio signature 1001 is either a short or long audio signature.

В некоторых вариантах осуществления короткая аудиосигнатура хранится в прюнинг-индексе 7241, который сформирован для множества коротких аудиосигнатур. Прюнинг-индекс 7241 используется для быстрого выбора аудиотреков-кандидатов.In some embodiments, the implementation of the short audio signature is stored in the tuning index 7241, which is formed for many short audio signatures. The Puning Index 7241 is used to quickly select candidate audio tracks.

В некоторых вариантах осуществления длинная аудиосигнатура хранится в индексе 7242 проверки, который сформирован для множества длинных аудиосигнатур. Индекс 7242 проверки используется для проверки аудиотреков на совпадение с входящим аудиотреком.In some embodiments, the implementation of the long audio signature is stored in the index 7242 verification, which is formed for many long audio signatures. Verification index 7242 is used to check audio tracks to match the incoming audio track.

Индекс 7241 проверки содержит файл ключей и файл сигнатур. Файл сигнатур содержит последовательность длинных сигнатур. В этом осуществлении сигнатуры расположены в файле сигнатур одна за другой, без разделителей. В этом осуществлении каждая длинная сигнатура в файле сигнатур начинается с двух первых байтов, описывающих длину соответствующей сигнатуры. Файл ключей содержит идентификаторы (ID) трека (не показаны на Фиг. 8), связанные с соответствующим аудиотреком и имеющие ссылки на начала длинных сигнатур в файле сигнатур.Verification index 7241 contains a key file and a signature file. The signature file contains a sequence of long signatures. In this implementation, the signatures are located in the signature file one after another, without delimiters. In this embodiment, each long signature in the signature file begins with the first two bytes describing the length of the corresponding signature. The key file contains the identifiers (ID) of the track (not shown in Fig. 8) associated with the corresponding audio track and having links to the beginning of long signatures in the signature file.

Другим объектом решения является способ сравнения первого входящего аудиотрека с индексированным аудиотреком. Способ выполняется на сервере 720.Another object of the solution is a method for comparing a first incoming audio track with an indexed audio track. The method runs on server 720.

В общем случае способ содержит два главных этапа: (1) выбор индексированного аудиотрека из множества индексированных аудиотреков в качестве аудиотрека-кандидата; и (2) проверка аудиотрека-кандидата на совпадение с первым аудиотреком:In general, the method comprises two main steps: (1) selecting an indexed audio track from a plurality of indexed audio tracks as a candidate audio track; and (2) checking the candidate audio track for consistency with the first audio track:

На Фиг. 6 представлена блок-схема способа 500 выбора индексированного аудиотрека как аудиотрека-кандидата из множества индексированных аудиотреков, причем способ 500 выполнен в соответствии с вариантами осуществления решения.In FIG. 6 is a flowchart of a method 500 for selecting an indexed audio track as a candidate audio track from a plurality of indexed audio tracks, the method 500 being implemented in accordance with an embodiment.

Способ 500 начинается на этапе 502.The method 500 begins at step 502.

На этапе 502 сервер 720 определяет первую короткую аудиосигнатуру, которая является аудиосигнатурой первой части первого входящего аудиотрека и содержит первое хромаслово 1021, причем первая часть первого аудиотрека имеет предварительно определенную длительность от начала первого входящего аудиотрека.At step 502, the server 720 determines a first short audio signature, which is the audio signature of the first part of the first incoming audio track and contains the first chroma 1021, the first part of the first audio track having a predetermined duration from the beginning of the first incoming audio track.

На этапе 504 сервер 720 определяет хромаслова 1021 первой короткой аудиосигнатуры. Определение хромаслов 1021 является частью процесса создания аудиосигнатур, как это было описано ранее.At step 504, the server 720 determines the key words 1021 of the first short audio signature. The definition of chromas 1021 is part of the process of creating audio signatures, as described previously.

На этапе 506 сервер 720 осуществляет поиск индексированных хромаслов 1021 с такой же начальной частью 106, что и у слова 1021 первой короткой аудиосигнатуры.At 506, server 720 searches for indexed chroma 1021 with the same initial portion 106 as word 1021 of the first short audio signature.

В качестве неограничивающего примера, поиск может быть выполнен с использованием прюнинг-индекса 7241. Прюнинг-индекс 7241 используется для быстрого выбора аудиотреков-кандидатов. В некоторых вариантах осуществления короткая аудиосигнатура хранится в прюнинг-индексе 7241, который сформирован для множества коротких аудиосигнатур.As a non-limiting example, a search can be performed using the tuning index 7241. The tuning index 7241 is used to quickly select candidate audio tracks. In some embodiments, the implementation of the short audio signature is stored in the tuning index 7241, which is formed for many short audio signatures.

Поиск может быть осуществлен следующим образом: сначала сервер 720 извлекает первую многобайтовую последовательность 108 соответствующего хромаслова первой короткой аудиосигнатуры и находит индекс 202 ключа, соответствующий первой многобайтовой последовательности 108. Если хромаслово 1021 первой короткой аудиосигнатуры выглядит как 5214-5255-5008-5047, соответствующим индексом 202 ключа является индекс 2024 ключа 5214-5255-5008, изображенный на Фиг. 4.The search can be performed as follows: first, server 720 retrieves the first multibyte sequence 108 of the corresponding chroma word of the first short audio signature and finds the key index 202 corresponding to the first multibyte sequence 108. If the chroma word 1021 of the first short audio signature looks like 5214-5255-5008-5047, the corresponding index 202 of the key is key index 2024 of key 5214-5255-5008 depicted in FIG. four.

Как изображено на Фиг. 3, набор 2004 списков словопозиций соответствует ключу 2024 индекса. Сервер 720 извлекает этот набор 2004 списков словопозиций. Затем сервер 720 извлекает последующий байт 110 соответствующего хромаслова 1021 первой короткой аудиосигнатуры и находит ключ 302 сортировки, соответствующий последующему байту 110 хромаслова 1021 первой короткой аудиосигнатуры.As shown in FIG. 3, a set 2004 of word lists corresponds to an index key 2024. Server 720 retrieves this set of 2004 vocabulary lists. The server 720 then retrieves the subsequent byte 110 of the corresponding chroma 1021 of the first short audio signature and finds the sort key 302 corresponding to the subsequent byte 110 of the chroma 1021 of the first short audio signature.

Например, если хромаслово 1021 первой короткой аудиосигнатуры выглядит как 5214-5255-5008-5047, соответствующий ключ 302 сортировки будет являться ключом 302 сортировки (5047), изображенным на Фиг. 4. Используя этот ключ 302 сортировки, сервер 720 извлекает список 304 словопозиций для хромаслова 5214-5255-5008-5047.For example, if the key word 1021 of the first short audio signature looks like 5214-5255-5008-5047, the corresponding sort key 302 will be the sort key 302 (5047) shown in FIG. 4. Using this sort key 302, server 720 retrieves a list of 304 word positions for key word 5214-5255-5008-5047.

Затем на этапе 508 с уже извлеченным списком 304 словопозиций сервер 720 может находить и выбирать аудиотреки, в которых появляется хромаслово 5214-5255-5008-5047. В качестве неограничивающего примера, аудиотрек-кандидат может быть найден с помощью использования идентификатора 402 трека, содержащегося в списке словопозиций соответствующего проиндексированного хромаслова 1021. Поскольку одно и то же хромаслово 1021 может быть найдено в нескольких различных индексированных аудиотреках, несколько соответствующих индексированных аудиотреков с несколькими соответствующими идентификаторами 402 трека могут быть выбраны как аудиотреки-кандидаты. Таким образом, для одного хромаслова 1021 первой короткой аудиосигнатуры могут быть выбраны несколько аудиотреков-кандидатов.Then, at step 508, with the list of word positions 304 already extracted, the server 720 can find and select audio tracks in which the loudspeaker 5214-5255-5008-5047 appears. As a non-limiting example, a candidate audio track can be found using the track identifier 402 contained in the word list of the corresponding indexed chroma 1021. Since the same chroma 1021 can be found on several different indexed audio tracks, several corresponding indexed audio tracks with several corresponding track identifiers 402 may be selected as candidate audio tracks. Thus, for one chroma 1021 of the first short audio signature, several candidate audio tracks can be selected.

На этапе 510 сервер 720 повторяет этапы с 504 по 508 для каждого хромаслова 1021 первой короткой аудиосигнатуры. Когда определен дополнительный аудиотрек-кандидат в ответ на поиск, осуществленный с учетом каждого следующего хромаслова 1021 первой короткой аудиосигнатуры, эти дополнительные аудиотреки должны быть добавлены ко множеству аудиотреков-кандидатов. Таким образом, множество аудиотреков-кандидатов может содержать все аудиотреки, причем каждый аудиотрек имеет по меньшей мере одно хромаслово 1021, которое соответствует любому из множества хромаслов 1021 первой короткой аудиосигнатуры. Существует возможность того, что некоторые аудиотреки-кандидиаты содержат более высокое или более низкое число хромаслов, соответствующих хромаслову 1021 первой короткой аудиосигнатуры.At step 510, the server 720 repeats steps 504 through 508 for each key word 1021 of the first short audio signature. When an additional candidate audio track is determined in response to a search carried out taking into account each subsequent key word 1021 of the first short audio signature, these additional audio tracks must be added to the plurality of candidate audio tracks. Thus, a plurality of candidate audio tracks may contain all audio tracks, each audio track having at least one key 1021 that corresponds to any one of a plurality of key 1021 of the first short audio signature. It is possible that some candidate audio tracks contain a higher or lower number of chromos, corresponding to chroma 1021 of the first short audio signature.

Затем способ 500 завершается.Then, the method 500 ends.

На Фиг. 7 представлена блок-схема способа 600 сверки аудиотрека-кандидата с первым аудиотреком, причем способ 600 выполнен в соответствии с вариантами осуществления решения.In FIG. 7 is a flowchart of a method 600 for reconciling a candidate audio track with a first audio track, the method 600 being implemented in accordance with an embodiment.

Способ 600 начинается на этапе 602, на котором сервер 720 определяет первую длинную аудиосигнатуру, которая является аудиосигнатурой второй части первого входящего аудиотрека. Сервер 720 определяет вторую длинную аудиосигнатуру, используя идентификатор 402 аудиотрека, который был определен на этапе 508.The method 600 begins at block 602, in which the server 720 determines a first long audio signature, which is an audio signature of a second part of a first incoming audio track. The server 720 determines the second long audio signature using the identifier 402 of the audio track, which was determined at step 508.

Как было указано ранее, если одно и то же хромаслово 1021 было найдено в нескольких разных проиндексированных аудиотреках, может быть обнаружено несколько вторых длинных аудиосигнатур.As stated previously, if the same 1021 key was found in several different indexed audio tracks, several second long audio signatures could be detected.

Затем способ переходит к этапу 604.The method then proceeds to step 604.

На этапе 604 сервер 720 определяет вторую длинную аудиосигнатуру, которая является аудиосигнатурой второй части аудиотрека-кандидата.At 604, the server 720 determines a second long audio signature, which is the audio signature of the second part of the candidate audio track.

Как это было показано в описании способа 500 сервер 720 определяет первую короткую аудиосигнатуру, состоящую из хромаслов и, используя прюнинг-индекс 7241, находит идентификатор аудиотрека, который содержит хромаслово, представленное в первой короткой аудиосигнатуре. Затем способ 500 предоставляет возможность определить аудиотрек-кандидат и его идентификатор 402 трека. Как поймут специалисты в данной области техники, может быть найдено более одного аудиотрека-кандидата и, соответственно, более одного идентификатора 402 трека.As shown in the description of method 500, server 720 determines the first short audio signature, consisting of chromas, and, using the tuning index 7241, finds the identifier of the audio track that contains the chromo word represented in the first short audio signature. The method 500 then provides the ability to determine the candidate audio track and its track ID 402. As those skilled in the art will understand, more than one candidate audio track and, accordingly, more than one track identifier 402 can be found.

Длинная аудиосигнатура аудиотрека-кандидата сохраняется в индексе 7242 проверки с другими длинными аудиосигнатурами других треков.The long audio signature of the candidate audio track is stored in the verification index 7242 with other long audio signatures of other tracks.

Индекс 7242 проверки может быть сформирован для множества длинных аудиосигнатур. Индекс проверки используется для проверки аудиотреков на совпадение с входящим аудиотреком. Длинные аудиосигнатуры могут храниться в индексе 7242 проверки как единственная запись, одна длинная аудиосигнатура за другой длинной аудиосигнатурой. В начале каждой длинной аудиосигнатуры может быть расположена многобайтовая последовательность, указывающая на длину следующей длинной аудиосигнатуры. В этом варианте осуществления многобайтовая последовательность, указывающая на длину последующей длинной аудиосигнатуры, является последовательностью двух байтов.Verification index 7242 may be generated for a plurality of long audio signatures. The check index is used to check the audio tracks for consistency with the incoming audio track. Long audio signatures can be stored in the verification index 7242 as a single record, one long audio signature after another long audio signature. At the beginning of each long audio signature, a multi-byte sequence may be located indicating the length of the next long audio signature. In this embodiment, a multibyte sequence indicating the length of the subsequent long audio signature is a sequence of two bytes.

Сервер 720 извлекает вторую длинную аудиосигнатуру, используя идентификатор 402 аудиотрека.Server 720 retrieves a second long audio signature using audio track identifier 402.

Извлечение может быть произведено из файла сигнатур. Извлечение может быть произведено следующим образом.The extraction can be done from a signature file. The extraction can be performed as follows.

Индекс 7242 проверки содержит файл ключей и файл сигнатур.Verification index 7242 contains a key file and a signature file.

Файл сигнатур может содержать последовательность вторых длинных сигнатур. В этом варианте осуществления вторые длинные сигнатуры расположены в файле сигнатур одна за другой, без разделителей. В этом осуществлении решения каждая вторая длинная сигнатура в файле сигнатур начинается с двух первых байтов, описывающих длину соответствующей сигнатуры.The signature file may contain a sequence of second long signatures. In this embodiment, the second long signatures are located in the signature file one after another, without delimiters. In this implementation of the solution, every second long signature in the signature file begins with the first two bytes describing the length of the corresponding signature.

Файл ключей может содержать идентификаторы трека (не изображены на Фиг. 7), связанные с соответствующим аудиотреком в файле сигнатур и иметь ссылки на начала длинных аудиосигнатур в файле сигнатур, причем эти начала являются, в данном варианте осуществления, двумя первыми байтами, описывающими длительность соответствующей сигнатуры.The key file may contain track identifiers (not shown in Fig. 7) associated with the corresponding audio track in the signature file and have links to the beginning of long audio signatures in the signature file, and these beginnings are, in this embodiment, the first two bytes describing the duration of the corresponding signatures.

Как было описано выше, когда выполняются этапы способа 500, сервер 720 определяет аудиотрек-кандидат с использованием прюнинг-индекса 7241 и находит идентификатор этого трека. Чтобы извлечь вторую длинную аудиосигнатуру из файла сигнатур, сервер 720 может использовать идентификатор 402 трека, который был определен на этапе 508. Сервер 720 может найти тот же самый идентификатор 402 трека в файле ключей и затем найти начало второй длинной сигнатуры в файле сигнатур.As described above, when the steps of method 500 are performed, the server 720 determines the candidate audio track using the training index 7241 and finds the identifier of that track. To extract the second long audio signature from the signature file, server 720 can use the track identifier 402, which was determined in step 508. Server 720 can find the same track identifier 402 in the key file and then find the beginning of the second long signature in the signature file.

Затем сервер 720 считывает два байта в начале соответствующей второй длинной аудиосигнатуры и оценивает длительность второй длинной аудиосигнатуры с помощью этих двух байтов второй длинной аудиосигнатуры в файле сигнатур, и извлекает вторую длинную аудиосигнатуру.The server 720 then reads two bytes at the beginning of the corresponding second long audio signature and estimates the duration of the second long audio signature using these two bytes of the second long audio signature in the signature file, and extracts the second long audio signature.

Затем способ переходит к этапу 606.The method then proceeds to step 606.

На этапе 606 сервер 720 выполняет побитное сравнение первой длинной аудиосигнатуры и второй длинной аудиосигнатуры. Аудиотрек-кандидат считается проверенным при совпадении по меньшей мере одной из множества вторых длинных аудиосигнатур с первой длинной аудиосигнатурой на стадии побитного сравнения.At 606, server 720 performs a bitwise comparison of the first long audio signature and the second long audio signature. A candidate audio track is considered verified when at least one of the plurality of second long audio signatures matches the first long audio signature at the stage of bitwise comparison.

В некоторых вариантах осуществления, чтобы аудиотрек-кандидат считался совпадающим в первым аудиотреком, абсолютное совпадение аудиосигнатуры, установленное при побитном сравнении, не является необходимым. Две аудиосигнатуры могут считаться совпадающими даже при том, что определенное число битов не совпадает. Например, может быть предварительно определено, что аудиосигнатуры совпадают, если в множестве битов один бит из тридцатидвухбитовой последовательности в каждой аудиосигнатуре не совпадает.In some embodiments, for the candidate audio track to be considered the same in the first audio track, the absolute match of the audio signature established by bitwise comparison is not necessary. Two audio signatures can be considered matching even though a certain number of bits do not match. For example, it may be preliminarily determined that the audio signatures match if in a plurality of bits one bit of a thirty-two bit sequence in each audio signature does not match.

Дополнительно или альтернативно входящий аудиотрек и аудиотрек-кандидат могут иметь разную длительность. Это может случиться, когда у входящего аудиотрека нет начала или конца, или есть несколько секунд тишины в начале или в конце. Даже если идентичны не все биты аудиосигнатур обоих аудиотреков, эти аудиотреки могут считаться совпадающими.Additionally or alternatively, the incoming audio track and the candidate audio track may have different durations. This can happen when an incoming audio track has no beginning or end, or there are a few seconds of silence at the beginning or at the end. Even if not all of the audio signature bits of both audio tracks are identical, these audio tracks may be considered matching.

В некоторых вариантах осуществления определение того факта, что аудиотрек-кандидат не является совпадающим с первым входящим аудиотреком, осуществляется в ответ на то, что длительность трека отличается на значение, превышающее предварительно установленное значение. Например, предварительно установленное значение составляет 30 секунд, в другом случае соответствующий кандидат будет считаться несовпадающим, если его длительность отличается более чем на 30 секунд по сравнению со входящим аудиотреком.In some embodiments, the determination of the fact that the candidate audio track is not the same as the first incoming audio track is carried out in response to the fact that the duration of the track differs by a value exceeding the preset value. For example, the preset value is 30 seconds, in another case, the corresponding candidate will be considered mismatched if its duration differs by more than 30 seconds compared to the incoming audio track.

Поэтому в некоторых вариантах осуществления определение аудиотрека-кандидата содержит сравнение соответствующей длительности первого входящего аудиотрека и аудиотрека-кандидата. В качестве неограничивающего примера длительность аудиотрека-кандидата может быть извлечена из списка 304 словопозиций с использованием идентификатора 402 трека, связанного с аудиотреком, и указания 404 на информацию о длительности трека, связанной с аудиотреком. Указание 404 на информацию о длительности трека может быть единственным байтом или многобайтовой последовательностью. В этом варианте осуществления указание 402 на информацию о длительности трека является последовательностью двух байтов.Therefore, in some embodiments, the definition of the candidate audio track comprises comparing the corresponding duration of the first incoming audio track and the candidate audio track. As a non-limiting example, the duration of the candidate audio track can be retrieved from the word list 304 using the track identifier 402 associated with the audio track and an indication 404 of track duration information associated with the audio track. An indication of track duration information 404 may be a single byte or a multibyte sequence. In this embodiment, an indication 402 of track duration information is a sequence of two bytes.

Затем способ 600 завершается.Then, the method 600 ends.

В некоторых вариантах осуществления аудиотрек-кандидат содержит множество аудиотреков-кандидатов, а способ дополнительно содержит выбор подгруппы множества аудиотреков-кандидатов на основе предварительно определенного порогового числа кандидатов. Предварительно установленный порог числа кандидатов может являться предварительно определенным минимальным числом совпадающих хромаслов 1021 в первой короткой аудиосигнатуре и во второй короткой аудиосигнатуре, в которой предварительно определенное минимальное число совпадающих хромаслов зависит от числа предварительно определенных кандидатов и числа совпадающих хромаслов в предварительно определенных кандидатах. Например, если в большом множестве предварительно определенных кандидатов большое число предварительно выбранных кандидатов имеет два или более совпадающих хромаслов, предварительно определенное пороговое число кандидатов может быть установлено как 2, или 3, или 4 и так далее хромаслов. Таким образом, если предварительно определенное пороговое число кандидатов установлено как 3 хромаслова, поднабор множества аудиотреков-кандидатов будет включать вторые длинные аудиосигнатуры с минимум тремя хромасловами 1021, совпадающими с хромасловом 1021 из первой длинной аудиосигнатуры.In some embodiments, the candidate audio track comprises a plurality of candidate audio tracks, and the method further comprises selecting a subgroup of a plurality of candidate audio tracks based on a predetermined threshold number of candidates. The predetermined threshold for the number of candidates may be a predetermined minimum number of matching chroma 1021 in the first short audio signature and a second short audio signature in which a predetermined minimum number of matching chroma depends on the number of predetermined candidates and the number of matching chroma in the predetermined candidates. For example, if in a large number of predefined candidates a large number of pre-selected candidates has two or more matching chromas, a predetermined threshold number of candidates can be set as 2, or 3, or 4, and so on. Thus, if a predetermined threshold number of candidates is set to 3 chroma words, a subset of the plurality of candidate audio tracks will include second long audio signatures with at least three chroma 1021 that match the chroma 1021 from the first long audio signature.

В некоторых вариантах осуществления побитное сравнение первой длинной аудиосигнатуры со второй длинной аудиосигнатурой содержит смещение первой длинной аудиосигнатуры по отношению ко второй длительной аудиосигнатуре. Смещение первой длинной аудиосигнатуры по отношению ко второй длинной аудиосигнатуре удобно, когда входящий аудиотрек укорочен в начале или его начало содержит несколько секунд тишины, шума, помех и т.д. В некоторых вариантах осуществления смещение содержит амплитуду смещения. Например, амплитуда может находиться в промежутке плюс или минус 20 секунд или 15 секунд.In some embodiments, a bitwise comparison of the first long audio signature with the second long audio signature comprises offsetting the first long audio signature with respect to the second long audio signature. The offset of the first long audio signature relative to the second long audio signature is convenient when the incoming audio track is shortened at the beginning or its beginning contains a few seconds of silence, noise, interference, etc. In some embodiments, the bias comprises the bias amplitude. For example, the amplitude may be in the range of plus or minus 20 seconds or 15 seconds.

В некоторых вариантах осуществления определение того, что начальная часть второго хромаслова идентична начальной части первого хромаслова, выполняется с помощью определения того, что вся последовательность байтов в начальной части второго хромаслова совпадает со всей последовательностью байтов в начальной части первого хромаслова.In some embodiments, the determination that the initial part of the second chroma word is identical to the initial part of the first chroma word is performed by determining that the entire sequence of bytes in the initial part of the second chroma word matches the entire sequence of bytes in the initial part of the first chroma word.

В некоторых вариантах осуществления по меньшей мере одна из короткой аудиосигнатуры и длинной аудиосигнатуры содержит указание на идентификатор 402 трека, связанный с соответствующим аудиотреком.In some embodiments, at least one of the short audio signature and the long audio signature includes an indication of a track identifier 402 associated with the corresponding audio track.

В некоторых вариантах осуществления до определения первой короткой аудиосигнатуры способ содержит получение сервером 720 по меньшей мере части первого входящего аудиотрека. Получение может быть осуществлено, например, когда пользователь компьютерного устройства загружает новый аудиотрек в социальную сеть или в другое место, которое доступно серверу 720.In some embodiments, prior to determining the first short audio signature, the method comprises receiving at least 720 a portion of the first incoming audio track by the server 720. Obtaining can be carried out, for example, when a user of a computer device uploads a new audio track to a social network or to another place that is available to server 720.

В некоторых вариантах осуществления получение второй короткой аудиосигнатуры содержит извлечение с использованием индекса. В качестве неограничивающего примера, индекс может являться инвертированным индексом аудиотрека. Более конкретно, инвертированный индекс 7241 может быть индексом 7242 проверки.In some embodiments, obtaining a second short audio signature comprises extracting using an index. By way of non-limiting example, an index may be an inverted index of an audio track. More specifically, the inverted index 7241 may be a verification index 7242.

Модификации и улучшения вышеописанных вариантов осуществления будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего решения ограничен только объемом прилагаемой формулы изобретения.Modifications and improvements to the above described embodiments will be apparent to those skilled in the art. The preceding description is provided as an example only and is not subject to any restrictions. Thus, the scope of the present solution is limited only by the scope of the attached claims.

Claims (35)

1. Способ сравнения первого входящего аудиотрека с индексированным аудиотреком посредством сервера, включающий:1. A method of comparing a first incoming audio track with an indexed audio track through a server, comprising: выбор индексированного аудиотрека из набора индексированных аудиотреков в качестве аудиотрека-кандидата посредством:selecting an indexed audio track from a set of indexed audio tracks as a candidate audio track by: определения первой короткой аудиосигнатуры, являющейся аудиосигнатурой первой части первого входящего аудиотрека и содержащей первое хромаслово, представляющее собой компонент аудиосигнатуры в виде последовательности байтов, описывающих часть аудио, причем первая часть первого аудиотрека имеет предварительно определенную длительность от начала первого входящего аудиотрека;determining the first short audio signature, which is the audio signature of the first part of the first incoming audio track and containing the first chroma word, which is a component of the audio signature in the form of a sequence of bytes describing the audio part, the first part of the first audio track having a predetermined duration from the beginning of the first incoming audio track; определения аудиотрека-кандидата из набора индексированных аудиотреков, при этом аудиотрек-кандидат имеет вторую короткую аудиосигнатуру, содержащую второе хромаслово, причем начальная часть второго хромаслова идентична начальной части первого хромаслова, а вторая короткая аудиосигнатура является аудиосигнатурой первой части аудиотрека-кандидата, причем первая часть аудиотрека-кандидата имеет первую предварительно определенную длительность от начала аудиотрека-кандидата;determining a candidate audio track from a set of indexed audio tracks, wherein the candidate audio track has a second short audio signature containing a second chroma word, wherein the initial part of the second chroma word is identical to the initial part of the first chroma word, and the second short audio signature is the audio signature of the first part of the candidate audio track, the first part of the audio track - the candidate has a first predetermined duration from the beginning of the candidate audio track; проверку на совпадение аудиотрека-кандидата с первым аудиотреком посредством:checking that the candidate audio track matches the first audio track by: определения первой длинной аудиосигнатуры, являющейся аудиосигнатурой второй части первого входящего аудиотрека; извлечения второй длинной аудиосигнатуры, являющейся аудиосигнатурой второй части аудиотрека-кандидата;determining the first long audio signature, which is the audio signature of the second part of the first incoming audio track; extracting the second long audio signature, which is the audio signature of the second part of the candidate audio track; причем вторая часть первого аудиотрека и вторая часть аудиотрека-кандидата имеют вторую предварительно определенную длительность от начала соответственно первого аудиотрека и аудиотрека-кандидата; каждая первая часть соответствующего первого аудиотрека и аудиотрека-кандидата полностью входит во вторую часть соответствующего первого аудиотрека и аудиотрека-кандидата;moreover, the second part of the first audio track and the second part of the candidate audio track have a second predetermined duration from the beginning of the first audio track and the candidate audio track, respectively; each first part of the corresponding first audio track and the candidate audio track is fully included in the second part of the corresponding first audio track and the candidate audio track; осуществления побитного сравнения первой длинной аудиосигнатуры со второй длинной аудиосигнатурой.bitwise comparing the first long audio signature with the second long audio signature. 2. Способ по п. 1, в котором в качестве начальной части хромаслова используют комбинацию:2. The method according to p. 1, in which, as the initial part of the chromium word, a combination is used: первого байта или первой многобайтовой последовательности, являющейся последовательностью байтов в начале начальной части соответствующего хромаслова и имеющей предварительно определенное число байтов; и последующего байта или второй многобайтовой последовательности, являющейся последовательностью байтов, следующей за первой многобайтовой последовательностью или за первым байтом каждого соответствующего хромаслова, причем во второй многобайтовой последовательности имеется предварительно определенное число байтов.the first byte or the first multibyte sequence, which is a sequence of bytes at the beginning of the initial part of the corresponding chroma word and having a predetermined number of bytes; and a subsequent byte or second multibyte sequence, which is a sequence of bytes following the first multibyte sequence or the first byte of each corresponding chroma word, wherein the second multibyte sequence has a predetermined number of bytes. 3. Способ по п. 1, в котором в качестве первой предварительно определенной длительности используют меньший из интервалов:3. The method according to p. 1, in which the first of a predetermined duration using the smaller of the intervals: предварительно определенной длительности в пределах временного интервала от 9 до 27 секунд иa predetermined duration within the time interval from 9 to 27 seconds and длительности соответствующего аудиотрека.duration of the corresponding audio track. 4. Способ по п. 3, в котором в качестве первой предварительно определенной длительности используют меньший из интервалов: 21 секунда и длительность соответствующего аудиотрека.4. The method according to p. 3, in which the first of a predetermined duration using the shorter of the intervals: 21 seconds and the duration of the corresponding audio track. 5. Способ по п. 1, в котором в качестве второй предварительно определенной длительности используют меньший из интервалов:5. The method according to p. 1, in which the second of a predetermined duration using the smaller of the intervals: предварительно определенной длительности в пределах временного интервала от 96 до 141 секунд иa predetermined duration within the time interval from 96 to 141 seconds and длительности соответствующего аудиотрека.duration of the corresponding audio track. 6. Способ по п. 5, в котором в качестве второй предварительно определенной длительности используют меньший из интервалов: 120 секунд и длительность соответствующего аудиотрека.6. The method according to p. 5, in which the second of a predetermined duration using the shorter of the intervals: 120 seconds and the duration of the corresponding audio track. 7. Способ по п. 1, в котором указанное первое хромаслово и указанное второе хромаслово характеризуют часть соответствующего аудиотрека, а длительность части аудиотрека находится между 1/2 и 8 секундами.7. The method according to claim 1, wherein said first chroma and second chroma characterize a portion of the corresponding audio track, and the duration of the portion of the audio track is between 1/2 and 8 seconds. 8. Способ по п. 7, в котором формируют указанное первое хромаслово и указанное второе хромаслово.8. The method according to p. 7, in which form the specified first chroma and the second chroma. 9. Способ по п. 1, в котором указанное первое хромаслово и указанное второе хромаслово содержат указание на идентификатор трека, связанный с соответствующим аудиотреком.9. The method according to claim 1, wherein said first chroma word and said second chroma word contain an indication of a track identifier associated with a corresponding audio track. 10. Способ по п. 9, в котором идентификатор трека содержит третью многобайтовую последовательность, расположенную после последующего байта или второй многобайтовой последовательности.10. The method of claim 9, wherein the track identifier comprises a third multibyte sequence located after the subsequent byte or second multibyte sequence. 11. Способ по п. 1, в котором указанное первое хромаслово и указанное второе хромаслово содержат указание на информацию о длительности трека, связанную с соответствующим аудиотреком.11. The method according to p. 1, in which the specified first chroma and the second chroma contain an indication of information about the duration of the track associated with the corresponding audio track. 12. Способ по п. 11, в котором указание на длительность трека содержит один байт, который следует сразу после последующего байта или второй многобайтовой последовательности.12. The method according to p. 11, in which an indication of the duration of the track contains one byte, which follows immediately after the next byte or second multibyte sequence. 13. Способ по любому из пп. 10-12, в котором указанное определение аудиотрека-кандидата содержит сравнение соответствующей длительности первого входящего аудиотрека и аудиотрека-кандидата.13. The method according to any one of paragraphs. 10-12, wherein said determination of a candidate audio track comprises comparing the corresponding duration of the first incoming audio track and the candidate audio track. 14. Способ по п. 13, в котором определяют несовпадение аудиотрека-кандидата с первым входящим треком кандидатом на основе отличия длительности трека на значение, превышающее предварительно установленное значение.14. The method according to p. 13, in which the discrepancy between the candidate audio track and the first incoming track by the candidate is determined based on the difference in the track duration by a value exceeding the preset value. 15. Способ по п. 13, в котором аудиотрек-кандидат содержит множество аудиотреков-кандидатов и выбирают подгруппы множества аудиотреков-кандидатов на основе предварительно определенного порогового числа кандидатов.15. The method of claim 13, wherein the candidate audio track comprises a plurality of candidate audio tracks and subgroups of a plurality of candidate audio tracks are selected based on a predetermined threshold number of candidates. 16. Способ по п. 1, в котором побитное сравнение первой длинной аудиосигнатуры со второй длинной аудиосигнатурой содержит смещение первой длинной аудиосигнатуры по отношению ко второй длительной аудиосигнатуре.16. The method of claim 1, wherein the bitwise comparison of the first long audio signature with the second long audio signature comprises offsetting the first long audio signature with respect to the second long audio signature. 17. Способ по п. 16, в котором указанное смещение содержит амплитуду смещения, находящуюся в промежутке 20 секунд.17. The method of claim 16, wherein said offset comprises an offset amplitude in the range of 20 seconds. 18. Способ по п. 1, в котором определяют, что начальная часть второго хромаслова идентична начальной части первого хромаслова, посредством определения, что вся последовательность байтов в начальной части второго хромаслова совпадает со всей последовательностью байтов в начальной части первого хромаслова.18. The method of claim 1, wherein it is determined that the initial part of the second chroma word is identical to the initial part of the first chroma word by determining that the entire sequence of bytes in the initial part of the second chroma word matches the entire sequence of bytes in the initial part of the first chroma word. 19. Способ по п. 1, в котором по меньшей мере одна из короткой аудиосигнатуры и длинной аудиосигнатуры содержит указание на идентификатор трека, связанный с соответствующим аудиотреком.19. The method of claim 1, wherein at least one of the short audio signature and the long audio signature includes an indication of a track identifier associated with the corresponding audio track. 20. Способ по п. 1, в котором до указанного определения первой короткой аудиосигнатуры получают по меньшей мере часть первого входящего аудиотрека.20. The method of claim 1, wherein prior to said determining the first short audio signature, at least a portion of the first incoming audio track is received. 21. Способ по п. 1, в котором получают вторую короткую аудиосигнатуру посредством извлечения с использованием индекса.21. The method of claim 1, wherein a second short audio signature is obtained by extraction using an index. 22. Способ по п. 21, в котором указанный индекс является инвертированным индексом аудиотрека.22. The method of claim 21, wherein said index is an inverted index of an audio track. 23. Способ по п. 22, в котором инвертированным индексом аудиотрека является прюнинг-индекс, сформированный для множества коротких аудиосигнатур, или индекс проверки, сформированный для множества длинных аудиосигнатур.23. The method of claim 22, wherein the inverted index of the audio track is a tuning index generated for a plurality of short audio signatures, or a verification index generated for a plurality of long audio signatures.
RU2015105093A 2014-08-14 2015-02-16 Method of comparison of the first input audio track with the indexed audio track RU2606567C2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
RU2015105093A RU2606567C2 (en) 2015-02-16 2015-02-16 Method of comparison of the first input audio track with the indexed audio track
PCT/IB2015/051557 WO2016024172A1 (en) 2014-08-14 2015-03-03 Method of and a system for matching audio tracks using chromaprints with a fast candidate selection routine
US15/103,994 US9558272B2 (en) 2014-08-14 2015-03-03 Method of and a system for matching audio tracks using chromaprints with a fast candidate selection routine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015105093A RU2606567C2 (en) 2015-02-16 2015-02-16 Method of comparison of the first input audio track with the indexed audio track

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2014133395 Substitution 2014-08-14 2014-08-14

Publications (2)

Publication Number Publication Date
RU2015105093A RU2015105093A (en) 2016-09-10
RU2606567C2 true RU2606567C2 (en) 2017-01-10

Family

ID=56889317

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015105093A RU2606567C2 (en) 2014-08-14 2015-02-16 Method of comparison of the first input audio track with the indexed audio track

Country Status (1)

Country Link
RU (1) RU2606567C2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003030522A1 (en) * 2001-10-01 2003-04-10 Fortel Dtv, Inc. Digital video synchronizer with both decoded digital and undecoded analog outputs
WO2012078142A1 (en) * 2010-12-07 2012-06-14 Empire Technology Development Llc Audio fingerprint differences for end-to-end quality of experience measurement
RU2459281C1 (en) * 2011-09-15 2012-08-20 Общество с ограниченной ответственностью "Цифрасофт" Device and method to generate signature of acoustic signal, device to identify acoustic signal
US8380518B2 (en) * 2005-11-11 2013-02-19 Samsung Electronics Co., Ltd. Device, method, and medium for generating audio fingerprint and retrieving audio data
WO2014004914A1 (en) * 2012-06-28 2014-01-03 Google Inc. Generating a sequence of audio fingerprints at a set top box

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003030522A1 (en) * 2001-10-01 2003-04-10 Fortel Dtv, Inc. Digital video synchronizer with both decoded digital and undecoded analog outputs
US8380518B2 (en) * 2005-11-11 2013-02-19 Samsung Electronics Co., Ltd. Device, method, and medium for generating audio fingerprint and retrieving audio data
WO2012078142A1 (en) * 2010-12-07 2012-06-14 Empire Technology Development Llc Audio fingerprint differences for end-to-end quality of experience measurement
RU2459281C1 (en) * 2011-09-15 2012-08-20 Общество с ограниченной ответственностью "Цифрасофт" Device and method to generate signature of acoustic signal, device to identify acoustic signal
WO2014004914A1 (en) * 2012-06-28 2014-01-03 Google Inc. Generating a sequence of audio fingerprints at a set top box

Also Published As

Publication number Publication date
RU2015105093A (en) 2016-09-10

Similar Documents

Publication Publication Date Title
CN107293307B (en) Audio detection method and device
US11482242B2 (en) Audio recognition method, device and server
US20170221488A1 (en) Method and apparatus for generating voiceprint information
US10097884B2 (en) Media playback method, client and system
US9536546B2 (en) Finding differences in nearly-identical audio recordings
US11954149B2 (en) Multiple stage indexing of audio content
CN110047515B (en) Audio identification method, device, equipment and storage medium
US9734828B2 (en) Method and apparatus for detecting user ID changes
JP2009532797A (en) SYSTEM AND METHOD FOR PROVIDING ADAPTIVE RECOMMENDED WORDS BY USER AND COMPUTER-READABLE RECORDING MEDIUM CONTAINING PROGRAM FOR EXECUTING THE METHOD
US20160350415A1 (en) Method of and a system for matching audio tracks using chromaprints with a fast candidate selection routine
WO2016189307A1 (en) Audio identification method
CN102063904A (en) Melody extraction method and melody recognition system for audio files
US20200218760A1 (en) Music search method and device, server and computer-readable storage medium
US20160085795A1 (en) Grouping equivalent content items
US9881083B2 (en) Method of and a system for indexing audio tracks using chromaprints
RU2632127C1 (en) Method and system of comparing videofiles
RU2606567C2 (en) Method of comparison of the first input audio track with the indexed audio track
RU2628118C2 (en) Method for forming and usage of the inverted index of audio recording and machinescent of information storage device
KR100916310B1 (en) System and Method for recommendation of music and moving video based on audio signal processing
US20140280303A1 (en) Replacing equivalent content items
CN108198573B (en) Audio recognition method and device, storage medium and electronic equipment
CN103258052A (en) Method for discovering related resources on eMule network
CN112182327A (en) Data processing method, device, equipment and medium
JP2018504653A (en) Method, server, client and system for remote control of customized channels
KR101407334B1 (en) The method, device and server for providing music service

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170217

NF4A Reinstatement of patent

Effective date: 20180522