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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/008—Means for controlling the transition from one tone waveform to another
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Processing 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/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0272—Voice signal separating
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Processing 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/04—Time compression or expansion
- G10L21/043—Time compression or expansion by changing speed
- G10L21/045—Time compression or expansion by changing speed using thinning out or insertion of a waveform
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Processing 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/04—Time compression or expansion
- G10L21/043—Time compression or expansion by changing speed
- G10L21/045—Time compression or expansion by changing speed using thinning out or insertion of a waveform
- G10L21/047—Time 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
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
На Фиг. 2 представлена принципиальная схема, изображающая аудиосигнатуру 1002, которая является вариантом осуществления аудиосигнатуры в соответствии с вариантами осуществления решения.In FIG. 2 is a schematic diagram illustrating an
На Фиг. 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
На Фиг. 5 представлена принципиальная схема списка 304 словопозиций, реализованного в соответствии с вариантами осуществления.In FIG. 5 is a schematic diagram of a
На Фиг. 6 представлена блок-схема способа 500 выбора индексированного аудиотрека как аудиотрека-кандидата из множества индексированных аудиотреков, причем способ 500 выполнен в соответствии с вариантами осуществления решения.In FIG. 6 is a flowchart of a
На Фиг. 7 представлена блок-схема способа 600 сверки аудиотрека-кандидата с первым аудиотреком, причем способ 600 выполнен в соответствии с вариантами осуществления настоящего решения.In FIG. 7 is a flowchart of a
На Фиг. 8 представлена принципиальная схема системы 700, реализованной в соответствии с вариантами осуществления решения.In FIG. 8 is a schematic diagram of a
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ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
Еще одним объектом настоящего решения является способ поддержки инвертированного индекса аудиотрека, который может быть выполнен как два отдельных индекса: (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
На Фиг. 8 представлена принципиальная схема системы 700, реализованной в соответствии с вариантами осуществления настоящего решения.In FIG. 8 is a schematic diagram of a
Принципиальная схема системы 700 может быть реализована как вариант осуществления решения, не ограничивающий объем решения. Важно иметь в виду, что нижеследующее описание системы 700 представляет собой описание показательных вариантов осуществления. Таким образом, все последующее описание представлено только как описание показательного примера. Это описание не предназначено для определения объема или установления границ решения. Некоторые полезные примеры модификаций системы 700 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что-то, что описано, является единственным вариантом осуществления этого элемента. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 700 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления, и в подобных случаях он представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления будут обладать гораздо большей сложностью.A schematic diagram of a
Система 700 включает в себя электронное устройство 702. Электронное устройство 702 обычно связано с пользователем 740 и, таким образом, иногда может упоминаться как «клиентское устройство». Следует отметить, что тот факт, что электронное устройство 702 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации или чего-либо подобного.
Варианты электронного устройства 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
В соответствии вариантами осуществления приложение 704 может поддерживать передачу данных серверу 720 или носителю, доступному серверу 720. Действительно, приложение 740 может также поддерживать загрузку данных с сервера 720 или любого другого источника.In accordance with embodiments, the
Приложение 704 может быть любым известным веб-браузером или любым другим приложением, которое позволяет загружать контент. В качестве неограничивающего примера, приложение 704 может быть осуществлено как браузерное приложение Yandex™. Важно иметь в виду, что любое другое коммерчески доступное или собственное приложение может быть использовано для реализации вариантов осуществления.
Электронное устройство 702 соединено с сетью 710 передачи данных через линию передачи данных (отдельно не пронумерована). В некоторых вариантах осуществления, сеть 710 передачи данных может представлять собой Интернет. В других вариантах осуществления сеть 710 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.An electronic device 702 is connected to a
Реализация линии передачи данных не ограничена и будет зависеть от того, какое электронное устройство 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
Сервер 720 может представлять собой обычный компьютерный сервер. В примере варианта осуществления сервер 720 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 720 может представлять собой любое другое подходящее аппаратное, и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В общем случае задачей сервера 720 является предоставление пользователю 740 возможности загружать аудиотреки; выполнять сравнение полученных аудиотреков и сохраненных аудиотреков.
Сервер 720 содержит используемый компьютером носитель 722 информации, также упоминаемый как носитель 722 или машиночитаемый носитель информации. Носитель 722 может содержать любой тип медиа, включая (но не ограничиваясь) ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), твердотельные накопители, накопители на магнитной ленте и т.д. В общем случае задачей носителя 722 является хранение машиночитаемых команд (кодов), а также других данных, например прюнинг-индекса 7241 и индекса 7242 проверки и т.д. В альтернативных вариантах осуществления прюнинг-индекс 7241 и индекс 7242 проверки могут быть выполнены как единственный инвертированный индекс 7241 аудиотрека (не изображен). В альтернативных вариантах осуществления прюнинг-индекс 7241 и индекс 7242 проверки могут быть выполнены как три и более индексов.
Прюнинг-индекс 7241 содержит множество наборов 200 списков словопозиций, причем множество наборов 200 списков словопозиций сформировано в соответствии с комбинацией 202 байтов, в соответствии с вариантами осуществления решения.The
Прюнинг-индекс 7241 содержит множество наборов 200 списков 304 словопозиций, созданных для коротких аудиосигнатур, как будет описано подробнее ниже.
Индекс 7241 проверки содержит файл ключей и файл сигнатур. Файл сигнатур содержит последовательность длинных сигнатур. В этом осуществлении сигнатуры расположены в файле сигнатур одна за другой, без разделителей. В этом осуществлении каждая длинная сигнатура в файле сигнатур начинается с двух первых байтов, описывающих длину соответствующей сигнатуры. Файл ключей содержит идентификаторы (ID) трека (не показаны на Фиг. 8), связанные с соответствующим аудиотреком и имеющие ссылки на начала длинных сигнатур в файле сигнатур, как будет описано подробнее ниже.
Чтобы обеспечить сравнение, создаются короткие и длинные аудиосигнатуры всех сохраненных треков. Длина всех коротких аудиосигнатур и всех длинных аудиосигнатур из начала каждого соответствующего аудиофайла может быть предварительно определена и может быть постоянной для всех соответствующих коротких и длинных сигнатур.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
Процедура сравнения содержит два этапа: этап быстрого выбора кандидата и этап проверки кандидата.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,
В течение первого этапа процедуры сравнения, быстрого выбора кандидата, сервер 720 находит аудиотрек-кандидат, используя первую короткую аудиосигнатуру (короткую аудиосигнатуру входящего аудиотрека) в прюнинг-индексе 7241. Аудиотрек-кандидат может также являться аудиотреком, который содержит по меньшей мере одно хромаслово, полностью совпадающее с хромасловом, идентифицированным во входящем аудиотреке.During the first stage of the comparison procedure, quick candidate selection, the
В течение второго этапа процедуры сравнения, этапа проверки, сервер 720 создает первую длинную аудиосигнатуру. Первая длинная аудиосигнатура может описать часть аудиотрека длительностью до 120 первых секунд входящего аудиотрека.During the second step of the comparison procedure, the verification step, the
После этого сервер 720 осуществляет проверку аудиотрека-кандидата с помощью побитного сравнения длинной аудиосигнатуры входящего аудиотрека с длинной аудиосигнатурой, сохраненной в базе данных и доступной серверу 720, с использованием индекса 7241 проверки. На этом этапе сервер 720 может учесть разное качество сравниваемых аудиотреков, а также сдвиг по времени между сравниваемыми аудиотреками.After that, the
На этом этапе сервер 720 исключает из списка кандидатов те проиндексированные аудиотреки, чья длина отличается от длины входящего аудиотрека на предварительно определенное время, например на 10 секунд, 30 секунд, минуту и так далее. Совпадение аудиотреков устанавливается при совпадении их аудиосигнатур на предварительно определенном уровне. Например, в некоторых вариантах осуществления совпадение битов в длинных аудиосигнатурах входящего аудиотрека и аудиотрека-кандидата не обязательно должно быть стопроцентным. В таких случаях байты длинной аудиосигнатуры треков совпадают на 90%, 80%, 70% и так далее.At this point, the
Следует отметить, что конкретные варианты осуществления аудиосигнатур никак не ограничены и в таком случае могут быть использованы различные подходы известного уровня техники к созданию аудиосигнатур. Пример такого подхода, который может быть использован для создания аудиосигнатуры, предложен в патенте США 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
На этот момент времени еще не известно, является ли этот аудиотрек проиндексированным и/или сохраненным в базе данных (не изображена), которая доступна для сервера 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
Более конкретно, вторая аудиосигнатура 1001 является аудиосигнатурой аудиотрека, который уже был проиндексирован и/или сохранен в базе данных, причем эта база данных доступна серверу 720. Для одного и того же аудиотрека может быть более одной второй аудиосигнатуры 1001, поскольку может быть создана вторая аудиосигнатура для аудиофайла с первой предварительно определенной длительностью (вторая короткая аудиосигнатура) и со второй предварительно определенной длительностью (вторая длинная аудиосигнатура). Например, вторая короткая аудиосигнатура 1001 и вторая длинная аудиосигнатура 1001 могут быть созданы для одного и того же аудиотрека, но при этом у них будет разная длительность от начала аудиотрека (например, первые 21 секунда с начала аудиотрека и первые 120 секунд с начала аудиотрека). Вторая аудиосигнатура сохраняется в базе данных (не изображена), которая доступна для сервера 720. Вторая аудиосигнатура 100 является представлением одной из множества вторых аудиосигнатур, сохраненных в базе данных.More specifically, the
В некоторых вариантах осуществления каждая из вторых аудиосигнатур содержит указание на идентификатор 402 трека, связанный с соответствующим аудиотреком, которому принадлежит эта каждая из вторых аудиосигнатур, и возможно определение, что для входящего аудиотрека есть совпадающий сохраненный аудиотрек. Эту информацию можно использовать разными способами. Например, информация о совпадающем сохраненном аудиотреке может быть использована для предоставления лучшего варианта этого музыкального трека пользователю. Альтернативно или дополнительно эта информация может быть использована для определения обладателя авторских прав и/или получения авторизации для использования аудиотрека и/или осуществления лицензионной выплаты (роялти) владельцу авторских прав. Альтернативно или дополнительно эта информация может быть использована для нахождения и удаления дубликатов.In some embodiments, each of the second audio signatures comprises an indication of a
Со ссылкой на Фиг. 1 следует отметить, что аудиосигнатура 1001 связана с первым входящим аудиотреком и что длина первого входящего аудиотрека в этом примере составляет 5 минут 41 секунду.With reference to FIG. 1, it should be noted that the
Как изображено на Фиг. 1, аудиосигнатура 1001 содержит хромаслова 1021, созданные в течение процесса создания аудиосигнатур из первого входящего аудиотрека. Аудиосигнатура может содержать (помимо хромаслов) другие компоненты, например указание на длительность первого входящего аудиотрека и тому подобное.As shown in FIG. 1, the
Размер каждого хромаслова 1021 в рамках аудиосигнатуры 1001 является одним и тем же: каждое хромаслово 1021 состоит из четырех байтов 104. Поскольку один байт равен восьми битам и имеет 28 или 256 возможных значений, от 0 до 255, байты в примере, изображенном на Фиг. 1 представлены как значения в ряду от 5000 до 5255.The size of each
Байты 104 каждого хромаслова 1021 любой аудиосигнатуры могут быть сгруппированы не менее чем в две группы. Первые две группы образуют начальную часть 106 хромаслова, как показано на Фиг. 1. Число байтов в каждой из первых двух групп может быть предварительно определено. В качестве примера, число байтов в первых двух группах может составлять по меньшей мере единицу.
Как будет понятно специалистам в данной области техники, в различных вариантах осуществления число байтов в каждой из первых двух групп может быть предварительно определено разными способами. Например, в начальной части 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
Такой конкретный пример изображен на Фиг. 1: байты 104 в каждом хромаслове 1021 аудиосигнатуры 1001 сгруппированы в две группы: (i) первую многобайтовую последовательность 108, которая является последовательностью байтов 104, которая, в свою очередь, расположена в начальной части соответствующего хромаслова, и (ii) последующий байт 110. В некоторых вариантах осуществления последующих байтов может быть несколько: 110, 112, 114. Другими словами, байты в каждом хромаслове 102 делятся на две группы, причем размер первой группы составляет три байта, а размер второй группы - один байт (как изображено на фиг. 1).Such a specific example is depicted in FIG. 1:
В общем случае начальная часть 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
Сервер 720 может создавать аудиосигнатуру 1002 для входящего трека целиком, а также для части входящего аудиотрека. В рамках вариантов осуществления сервер 720 может создавать более чем одну аудиосигнатуру для входящего аудиотрека. Например, в некоторых вариантах осуществления сервер 720 создает первую короткую аудиосигнатуру и первую длинную аудиосигнатуру.
Короткая аудиосигнатура является аудиосигнатурой первой части аудиотрека и длится первое предварительно определенное время от начала аудиотрека. В некоторых вариантах осуществления первая предварительно определенная длительность является меньшим из двух интервалов: предварительно определенной длительности в промежутке от 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
Длинная аудиосигнатура является аудиосигнатурой второй части аудиотрека и длится второе предварительно определенное время от начала аудиотрека. В некоторых вариантах осуществления вторая предварительно определенная длительность является меньшим из двух интервалов: предварительно определенной длительности в промежутке от 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,
Аудиосигнатура 1002, изображенная на Фиг. 2, может быть любой из следующих аудиосигнатур: первой короткой аудиосигнатуры, первой длинной аудиосигнатуры, второй короткой аудиосигнатуры и второй длинной аудиосигнатуры. Структура этих аудиосигнатур входящего аудиотрека может быть одной и той же, кроме того, что первая длинная аудиосигнатура содержит больше хромаслов. И первая длинная, и первая короткая аудиосигнатуры одного и того же аудиотрека создаются с использованием той же самой технологии, с учетом соответственно длинной и короткой части одного и того же аудиоитрека с его начала, причем первая короткая аудиосигнатура идентична началу первой длинной аудиосигнатуры.The
Как будет понятно специалистам в данной области техники, в различных вариантах осуществления число байтов в каждой из первых двух групп может быть предварительно определено разными способами. Например, в начальной части 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
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
На Фиг. 3 изображена принципиальная схема множества наборов 200 списков слоповозиций. Каждый набор списков словопозиций изображен как большой четырехугольник и отдельно пронумерован: 2001, 2002, 2003, … 2004, 2005… и т.д.In FIG. 3 is a schematic diagram of a plurality of
Список словопозиций является структурой данных индекса, хранящей преобразованный контент, например аудиотрек, в его местоположении в файле базы данных, или в документе, или в наборе документов. Задачей списка словопозиций является предоставление возможности быстрого поиска аудиотрека за счет усиления процесса обработки, когда аудиотрек добавляется в базу данных.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
Существует только один конкретный список 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
В данном наборе 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
Фиг. 3 иллюстрирует наборы 200 списков 304 словопозиций, которые созданы для хромаслов 1021. Поскольку каждое хромаслово 1021 имеет первую многобайтовую последовательность 108, которая является последовательностью трех байтов, то каждый список словопозиций сгруппирован в набор 200 списков 304 словопозиций, причем набор 200 начинается с последовательности в три байта.FIG. 3 illustrates sets of 200 word lists 304 that are created for
Поскольку в этом примере каждое хромаслово имеет первую многобайтовую последовательность из трех байтов, каждый набор 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
Все эти комбинации байтов от 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
Число наборов 200 списков 304 словопозиций может быть меньше или больше, чем 16777216, в зависимости от длины первой многобайтовой последовательности. Например, первая многобайтовая последовательность 108 состоит из единственного байта (из "первого байта"), тогда будет существовать 256 наборов 200 списков 304 словопозиций.The number of
Возможна ситуация, когда для хромаслов нет списков словопозиций, начиная с определенного первого байта или с определенной первой многобайтовой последовательности. Пусть во всей базе данных аудиотреков нет аудиосигнатур, которые содержали бы хромаслова, начинающиеся с первой многобайтовой последовательности 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
В рамках данного набора списков словопозиций один из списков 304 отличается от другого списка 304 словопозиций тем, что у связанных хромаслов 1021 различные последующие байты (или различные вторые многобайтовые последовательности, в зависимости от обстоятельств в некоторых вариантах осуществления). Различные последующие байты (или вторые многобайтовые последовательности (в зависимости от обстоятельств в некоторых вариантах осуществления)) уникальны для данного набора списков словопозиций.Within this set of word lists, one of
Возьмем в качестве примера набор 2004, изображенный на Фиг. 3. Набор 2004 содержит все списки 304 словопозиций для индексированных хромаслов 1022, которые имеют ту же самую многобайтовую последовательность 5214-5255-5008. Все хромаслова 1022 имеют одну и ту же первую многобайтовую последовательность 5214-5255-5008, отличаясь друг от друга последующим байтом 110 (или второй многобайтовой последовательностью, в зависимости от обстоятельств в некоторых вариантах осуществления).Take, as an example, the
Поскольку конкретный список словопозиций имеет отсылки для всех элементов конкретного хромаслова, такой список словопозиций является уникальным в данном наборе списков словопозиций. Поэтому в одном и том же наборе 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
Например, набор 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
Одним из объектов настоящего решения является постоянный носитель 722 компьютерной информации, схематическое представление которого изображено на Фиг. 8. Постоянный носитель 722 компьютерной информации содержит инвертированный индекс аудиотрека.One of the objects of this solution is a
Инвертированный индекс аудиотрека может храниться в двух различных индексах, прюнинг-индексе 7241 и индексе 7242 проверки. Для создания и поддержки прюнинг-индекса 7241 и индекса 7242 проверки может быть использована та же самая технология. И прюнинг-индекс 7241, и индекс 7242 проверки будут также совместно упоминаться как инвертированный индекс аудиотрека (не изображен).The inverted audio track index can be stored in two different indices, the
Когда делается отсылка на инвертированный индекс аудиотрека, она применима и к прюнинг-индексу 7241, и к индексу 7242 проверки. Как будет понятно специалисту в данной области техники, представление прюнинг-индекса 7241 и индекса 7241 проверки упрощено; оба индекса могут содержать другие компоненты, которые не изображены на Фиг. 8, например ключи 202 индекса и ключи 302 сортировки.When a reference is made to the inverted audio track index, it applies to both the
Фиг. 4 представляет часть 300 прюнинг-индекса 7241 из конкретного набора 2004 списков словопозиций. Весь инвертированный индекс 7241 аудиотрека (не изображен) содержит множество таких частей 300, представляющих все возможные наборы 200 списков словопозиций.FIG. 4 represents a
Инвертированный индекс аудиотрека содержит множество 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
В некоторых вариантах осуществления каждый из наборов 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
В некоторых вариантах осуществления ключ 202 индекса необходим для быстрого определения положения данного набора 200 списков 304 словопозиций в рамках инвертированного индекса 724 аудиотрека. Использование ключа 202 индекса позволяет определить специализированный набор 200 списков словопозиций, который содержит конкретный список словопозиций для конкретного хромаслова. Поэтому сужение поиска позволяет быстро определить положение данного набора 200 списков 304 словопозиций в рамках индекса.In some embodiments, an
В некоторых вариантах осуществления каждый список 304 словопозиций из данного набора 200 списков словопозиций связан с ключом 302 сортировки, который является уникальным для данного набора списков словопозиций.In some embodiments, each
В некоторых вариантах осуществления ключ 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
В некоторых вариантах осуществления ключ 202 индекса содержит в себе первую многобайтовую последовательность 108. Поэтому ключ 202 индекса будет идентичным первой многобайтовой последовательности 108, которая также определяет наборы 200 списков 304 словопозиций.In some embodiments, the
Другим объектом является способ создания и поддержки прюнинг-индекса 7241.Another object is a method for creating and maintaining the 7241 training index.
Способ содержит получение сервером 720 аудиотрека для индексации. Это получение может быть осуществлено, например, от правообладателя. Затем аудиотрек может быть загружен в базу данных (не изображена), сохранен на сервере 720 или доступен для сервера 720.The method comprises receiving, by the
Способ содержит определение первого хромаслова 1021, связанного с новым аудиотреком для индексации, причем хромаслово 1021 разделено на множество байтов 104, а также первое хромаслово 1021 содержит начальную часть 106 хромаслова, которая является подмножеством байтов с первым байтом и последующим байтом 110, причем последующий байт 110 расположен сразу после первого байта. Следовательно, в этом варианте осуществления начальная часть 106 хромаслова 1021 содержит два байта.The method comprises determining a
Кроме того, способ содержит определение на основе первого байта конкретного набора 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
Кроме того, способ содержит: сохранение указания на первое хромаслово в данном списке 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
В некоторых вариантах осуществления способ также перед определением первого хромаслова 1021, связанного с новым аудиотреком для индексирования, содержит определение аудиосигнатуры 1001 нового аудиотрека для индексирования.In some embodiments, the method also prior to determining the
Другими словами, сервер 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,
Ранее уже указывалось, что набор 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
В некоторых вариантах осуществления первый байт является первой многобайтовой последовательностью 108, которая является последовательностью байтов в начале начальной части 106 каждого нового хромаслова 1021, а число байтов 104 в каждой первой многобайтовой последовательности 108 является одним и тем же.In some embodiments, the first byte is the first
В некоторых вариантах осуществления последующий байт 110 является второй многобайтовой последовательностью, которая является последовательностью байтов, следующих либо за первой многобайтовой последовательностью 108, либо за первым байтом каждого нового хромаслова 1021, причем число байтов 104 в каждой второй многобайтовой последовательности является тем же самым.In some embodiments, the
В некоторых вариантах осуществления аудиосигнатура 1001 является либо короткой, либо длинной аудиосигнатурой.In some embodiments, the
В некоторых вариантах осуществления короткая аудиосигнатура хранится в прюнинг-индексе 7241, который сформирован для множества коротких аудиосигнатур. Прюнинг-индекс 7241 используется для быстрого выбора аудиотреков-кандидатов.In some embodiments, the implementation of the short audio signature is stored in the
В некоторых вариантах осуществления длинная аудиосигнатура хранится в индексе 7242 проверки, который сформирован для множества длинных аудиосигнатур. Индекс 7242 проверки используется для проверки аудиотреков на совпадение с входящим аудиотреком.In some embodiments, the implementation of the long audio signature is stored in the
Индекс 7241 проверки содержит файл ключей и файл сигнатур. Файл сигнатур содержит последовательность длинных сигнатур. В этом осуществлении сигнатуры расположены в файле сигнатур одна за другой, без разделителей. В этом осуществлении каждая длинная сигнатура в файле сигнатур начинается с двух первых байтов, описывающих длину соответствующей сигнатуры. Файл ключей содержит идентификаторы (ID) трека (не показаны на Фиг. 8), связанные с соответствующим аудиотреком и имеющие ссылки на начала длинных сигнатур в файле сигнатур.
Другим объектом решения является способ сравнения первого входящего аудиотрека с индексированным аудиотреком. Способ выполняется на сервере 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
В общем случае способ содержит два главных этапа: (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
Способ 500 начинается на этапе 502.The
На этапе 502 сервер 720 определяет первую короткую аудиосигнатуру, которая является аудиосигнатурой первой части первого входящего аудиотрека и содержит первое хромаслово 1021, причем первая часть первого аудиотрека имеет предварительно определенную длительность от начала первого входящего аудиотрека.At
На этапе 504 сервер 720 определяет хромаслова 1021 первой короткой аудиосигнатуры. Определение хромаслов 1021 является частью процесса создания аудиосигнатур, как это было описано ранее.At
На этапе 506 сервер 720 осуществляет поиск индексированных хромаслов 1021 с такой же начальной частью 106, что и у слова 1021 первой короткой аудиосигнатуры.At 506,
В качестве неограничивающего примера, поиск может быть выполнен с использованием прюнинг-индекса 7241. Прюнинг-индекс 7241 используется для быстрого выбора аудиотреков-кандидатов. В некоторых вариантах осуществления короткая аудиосигнатура хранится в прюнинг-индексе 7241, который сформирован для множества коротких аудиосигнатур.As a non-limiting example, a search can be performed using the
Поиск может быть осуществлен следующим образом: сначала сервер 720 извлекает первую многобайтовую последовательность 108 соответствующего хромаслова первой короткой аудиосигнатуры и находит индекс 202 ключа, соответствующий первой многобайтовой последовательности 108. Если хромаслово 1021 первой короткой аудиосигнатуры выглядит как 5214-5255-5008-5047, соответствующим индексом 202 ключа является индекс 2024 ключа 5214-5255-5008, изображенный на Фиг. 4.The search can be performed as follows: first,
Как изображено на Фиг. 3, набор 2004 списков словопозиций соответствует ключу 2024 индекса. Сервер 720 извлекает этот набор 2004 списков словопозиций. Затем сервер 720 извлекает последующий байт 110 соответствующего хромаслова 1021 первой короткой аудиосигнатуры и находит ключ 302 сортировки, соответствующий последующему байту 110 хромаслова 1021 первой короткой аудиосигнатуры.As shown in FIG. 3, a
Например, если хромаслово 1021 первой короткой аудиосигнатуры выглядит как 5214-5255-5008-5047, соответствующий ключ 302 сортировки будет являться ключом 302 сортировки (5047), изображенным на Фиг. 4. Используя этот ключ 302 сортировки, сервер 720 извлекает список 304 словопозиций для хромаслова 5214-5255-5008-5047.For example, if the
Затем на этапе 508 с уже извлеченным списком 304 словопозиций сервер 720 может находить и выбирать аудиотреки, в которых появляется хромаслово 5214-5255-5008-5047. В качестве неограничивающего примера, аудиотрек-кандидат может быть найден с помощью использования идентификатора 402 трека, содержащегося в списке словопозиций соответствующего проиндексированного хромаслова 1021. Поскольку одно и то же хромаслово 1021 может быть найдено в нескольких различных индексированных аудиотреках, несколько соответствующих индексированных аудиотреков с несколькими соответствующими идентификаторами 402 трека могут быть выбраны как аудиотреки-кандидаты. Таким образом, для одного хромаслова 1021 первой короткой аудиосигнатуры могут быть выбраны несколько аудиотреков-кандидатов.Then, at
На этапе 510 сервер 720 повторяет этапы с 504 по 508 для каждого хромаслова 1021 первой короткой аудиосигнатуры. Когда определен дополнительный аудиотрек-кандидат в ответ на поиск, осуществленный с учетом каждого следующего хромаслова 1021 первой короткой аудиосигнатуры, эти дополнительные аудиотреки должны быть добавлены ко множеству аудиотреков-кандидатов. Таким образом, множество аудиотреков-кандидатов может содержать все аудиотреки, причем каждый аудиотрек имеет по меньшей мере одно хромаслово 1021, которое соответствует любому из множества хромаслов 1021 первой короткой аудиосигнатуры. Существует возможность того, что некоторые аудиотреки-кандидиаты содержат более высокое или более низкое число хромаслов, соответствующих хромаслову 1021 первой короткой аудиосигнатуры.At
Затем способ 500 завершается.Then, the
На Фиг. 7 представлена блок-схема способа 600 сверки аудиотрека-кандидата с первым аудиотреком, причем способ 600 выполнен в соответствии с вариантами осуществления решения.In FIG. 7 is a flowchart of a
Способ 600 начинается на этапе 602, на котором сервер 720 определяет первую длинную аудиосигнатуру, которая является аудиосигнатурой второй части первого входящего аудиотрека. Сервер 720 определяет вторую длинную аудиосигнатуру, используя идентификатор 402 аудиотрека, который был определен на этапе 508.The
Как было указано ранее, если одно и то же хромаслово 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
Как это было показано в описании способа 500 сервер 720 определяет первую короткую аудиосигнатуру, состоящую из хромаслов и, используя прюнинг-индекс 7241, находит идентификатор аудиотрека, который содержит хромаслово, представленное в первой короткой аудиосигнатуре. Затем способ 500 предоставляет возможность определить аудиотрек-кандидат и его идентификатор 402 трека. Как поймут специалисты в данной области техники, может быть найдено более одного аудиотрека-кандидата и, соответственно, более одного идентификатора 402 трека.As shown in the description of
Длинная аудиосигнатура аудиотрека-кандидата сохраняется в индексе 7242 проверки с другими длинными аудиосигнатурами других треков.The long audio signature of the candidate audio track is stored in the
Индекс 7242 проверки может быть сформирован для множества длинных аудиосигнатур. Индекс проверки используется для проверки аудиотреков на совпадение с входящим аудиотреком. Длинные аудиосигнатуры могут храниться в индексе 7242 проверки как единственная запись, одна длинная аудиосигнатура за другой длинной аудиосигнатурой. В начале каждой длинной аудиосигнатуры может быть расположена многобайтовая последовательность, указывающая на длину следующей длинной аудиосигнатуры. В этом варианте осуществления многобайтовая последовательность, указывающая на длину последующей длинной аудиосигнатуры, является последовательностью двух байтов.
Сервер 720 извлекает вторую длинную аудиосигнатуру, используя идентификатор 402 аудиотрека.
Извлечение может быть произведено из файла сигнатур. Извлечение может быть произведено следующим образом.The extraction can be done from a signature file. The extraction can be performed as follows.
Индекс 7242 проверки содержит файл ключей и файл сигнатур.
Файл сигнатур может содержать последовательность вторых длинных сигнатур. В этом варианте осуществления вторые длинные сигнатуры расположены в файле сигнатур одна за другой, без разделителей. В этом осуществлении решения каждая вторая длинная сигнатура в файле сигнатур начинается с двух первых байтов, описывающих длину соответствующей сигнатуры.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
Затем сервер 720 считывает два байта в начале соответствующей второй длинной аудиосигнатуры и оценивает длительность второй длинной аудиосигнатуры с помощью этих двух байтов второй длинной аудиосигнатуры в файле сигнатур, и извлекает вторую длинную аудиосигнатуру.The
Затем способ переходит к этапу 606.The method then proceeds to step 606.
На этапе 606 сервер 720 выполняет побитное сравнение первой длинной аудиосигнатуры и второй длинной аудиосигнатуры. Аудиотрек-кандидат считается проверенным при совпадении по меньшей мере одной из множества вторых длинных аудиосигнатур с первой длинной аудиосигнатурой на стадии побитного сравнения.At 606,
В некоторых вариантах осуществления, чтобы аудиотрек-кандидат считался совпадающим в первым аудиотреком, абсолютное совпадение аудиосигнатуры, установленное при побитном сравнении, не является необходимым. Две аудиосигнатуры могут считаться совпадающими даже при том, что определенное число битов не совпадает. Например, может быть предварительно определено, что аудиосигнатуры совпадают, если в множестве битов один бит из тридцатидвухбитовой последовательности в каждой аудиосигнатуре не совпадает.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
Затем способ 600 завершается.Then, the
В некоторых вариантах осуществления аудиотрек-кандидат содержит множество аудиотреков-кандидатов, а способ дополнительно содержит выбор подгруппы множества аудиотреков-кандидатов на основе предварительно определенного порогового числа кандидатов. Предварительно установленный порог числа кандидатов может являться предварительно определенным минимальным числом совпадающих хромаслов 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
В некоторых вариантах осуществления побитное сравнение первой длинной аудиосигнатуры со второй длинной аудиосигнатурой содержит смещение первой длинной аудиосигнатуры по отношению ко второй длительной аудиосигнатуре. Смещение первой длинной аудиосигнатуры по отношению ко второй длинной аудиосигнатуре удобно, когда входящий аудиотрек укорочен в начале или его начало содержит несколько секунд тишины, шума, помех и т.д. В некоторых вариантах осуществления смещение содержит амплитуду смещения. Например, амплитуда может находиться в промежутке плюс или минус 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
В некоторых вариантах осуществления до определения первой короткой аудиосигнатуры способ содержит получение сервером 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
В некоторых вариантах осуществления получение второй короткой аудиосигнатуры содержит извлечение с использованием индекса. В качестве неограничивающего примера, индекс может являться инвертированным индексом аудиотрека. Более конкретно, инвертированный индекс 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
Модификации и улучшения вышеописанных вариантов осуществления будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего решения ограничен только объемом прилагаемой формулы изобретения.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)
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)
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 |
-
2015
- 2015-02-16 RU RU2015105093A patent/RU2606567C2/en active IP Right Revival
Patent Citations (5)
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 |