ES3073785T3 - Audio matching - Google Patents
Audio matchingInfo
- Publication number
- ES3073785T3 ES3073785T3 ES17758252T ES17758252T ES3073785T3 ES 3073785 T3 ES3073785 T3 ES 3073785T3 ES 17758252 T ES17758252 T ES 17758252T ES 17758252 T ES17758252 T ES 17758252T ES 3073785 T3 ES3073785 T3 ES 3073785T3
- Authority
- ES
- Spain
- Prior art keywords
- fine
- fingerprint
- filter
- audio signal
- query acoustic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/018—Audio watermarking, i.e. embedding inaudible data in the audio signal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/68—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/683—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/632—Query formulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/635—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/638—Presentation of query results
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/51—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/51—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
- G10L25/54—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for retrieval
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Library & Information Science (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Signal Processing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Telephonic Communication Services (AREA)
Abstract
Se describe una técnica de comparación de audio que genera huellas digitales a partir de una señal de audio capturada. Se generan huellas digitales gruesas y finas a partir del audio capturado. La huella digital gruesa se utiliza para compararla con un conjunto de huellas digitales gruesas almacenadas en una base de datos, con el fin de identificar un subconjunto de entradas de la base de datos que podrían coincidir. Posteriormente, la huella digital fina se utiliza para realizar una comparación detallada con las huellas digitales finas asociadas a dicho subconjunto de entradas de la base de datos, con el objetivo de encontrar una coincidencia para la señal de audio capturada. (Traducción automática con Google Translate, sin valor legal)
Description
[0001] DESCRIPCIÓN
[0002] Concordancia de audio
[0003] La presente invención se refiere a procedimientos y aparatos para la concordancia de audio. La invención tiene una relevancia particular, pero no exclusiva, para los sistemas de concordancia de audio donde un dispositivo de usuario portátil, tal como una tableta de ordenador o un teléfono celular, puede capturar sonidos que a continuación pueden identificarse mediante un proceso de concordancia.
[0004] Hay una serie de técnicas de reconocimiento de audio conocidas que incluyen:
[0005] - reconocimiento de audio activo donde las marcas de agua se codifican dentro de una señal de audio que puede extraerse más tarde para identificar la señal de audio,
[0006] - reconocimiento de audio pasivo donde se muestrea una señal de audio y el audio muestreado se usa para identificar el audio de una base de datos de muestras de audio, y
[0007] - reconocimiento de audio híbrido que combina las técnicas activa y pasiva.
[0008] El solicitante ha propuesto una serie de diferentes técnicas de reconocimiento de audio activo y estas se describen, por ejemplo, en los documentos WO2008/145994, WO2009/144470 y WO02/45273. Todas estas técnicas se basan en ocultar esteganográficamente datos dentro del audio a reconocer que a continuación es recuperado por un dispositivo de usuario. Estos sistemas funcionan bien, especialmente cuando el audio se capta a través de un micrófono en lugar de obtenerse eléctricamente directamente a través de un canal de radiodifusión. Como se discutió en estas solicitudes de patente anteriores, hay una serie de usos para estos sistemas que incluye el estudio de audiencia y la interacción del usuario con los medios de difusión. Sin embargo, para que funcione, el acceso a los medios de difusión debe proporcionarse antes (o durante) la transmisión para permitir la ocultación de las marcas de agua en el audio. Esto no siempre es posible.
[0009] Las técnicas de reconocimiento de audio pasivo no requieren la ocultación de una marca de agua, por lo que, en teoría, pueden usarse para reconocer cualquier muestra de audio. Sin embargo, las técnicas de reconocimiento de audio pasivo tienen la desventaja de que requieren una comparación más exigente entre el audio muestreado y una gran base de datos de muestras de audio. Además, cuando el audio es capturado por el micrófono del dispositivo de un usuario, es probable que el audio capturado sea relativamente ruidoso en comparación con el audio original y esto puede conducir fácilmente a errores en los resultados del reconocimiento. Una técnica común usada para hacer concordar pasivamente el audio es crear una "huella" acústica del sonido capturado y a continuación comparar esta huella con las huellas correspondientes de las señales de audio en la base de datos. La huella intenta capturar las características acústicas importantes de la señal de audio, lo que ayuda a reducir la carga de hacer concordar la muestra de audio con el audio de la base de datos. Sin embargo, estos sistemas de reconocimiento de huellas aún requieren un procesamiento significativo para poder comparar la huella de la consulta con las huellas de la base de datos, y esta carga de procesamiento continúa creciendo a medida que se crea más y más contenido multimedia. Se requieren técnicas para reducir esta carga de procesamiento.
[0010] Al desarrollar su sistema de reconocimiento de audio basado en huellas, los inventores también idearon una técnica para generar huellas de audio que son robustas al ruido y otras interferencias y que hacen que sea más fácil distinguir entre huellas de diferentes muestras de audio.
[0011] El documento US 2015/254338 describe un sistema y un procedimiento para la optimización de la búsqueda de huellas de audio. En un sistema descrito, las huellas de audio están organizadas en un árbol recursivo con diferentes ramas que contienen conjuntos de huellas que son diferentes entre sí. El árbol se construye usando un algoritmo de agrupamiento basado en una medida de similitud. La medida de similitud puede comprender una distancia de Hamming para una huella binaria o una distancia euclidiana para huellas de valor continuo. En otra realización, cada huella se almacena en una pluralidad de resoluciones y la agrupación se realiza jerárquicamente. El reconocimiento de una huella entrante comienza desde la raíz del árbol y continúa por sus ramas hasta que se declara una concordancia o desajuste.
[0012] El documento de Dalwon Jang y col.: "Pairwise Boosted Audio Fingerprint", IEE Transactions on Information Forensics and Security, IEEE, Piscatway, NJ, EE. UU., vol.4, n.º 4, 1 de diciembre de 2009, páginas 995 a 1004, describe una técnica para generar una huella a partir de una señal de audio mediante la aplicación de filtros a un espectro obtenido de la señal de audio.
[0013] El documento de Herre Jurgen y col. "Scalable Robust Audio Fingerprinting Using MPEG-7 Content Description" describe un sistema que puede generar huellas a diferentes escalas usando diferentes parámetros de extracción para la extracción de características de la señal de audio.
[0014] [0009]El texto de ISO/IEC CD 15938-4 "Information Technology - Multimedia Content Description Interface -Part 4 Audio", 14 de marzo de 2001, describe el estándar MPEG-7 al que se refiere el documento de Herre Jurgen y
col.
[0016] La presente invención proporciona un sistema de concordancia de audio como se establece en la reivindicación 1, un proceso de concordancia de audio como se establece en la reivindicación 8, un dispositivo de usuario como se establece en la reivindicación 9, un servidor de concordancia de audio como se establece en la reivindicación 11 y un producto de instrucciones implementables por ordenador como se establece en la reivindicación 12. Las características preferidas se exponen en las reivindicaciones dependientes.
[0018] Según un aspecto, la presente invención proporciona un sistema de concordancia de audio que comprende: medios (que pueden ser un micrófono, una antena o una unidad de procesamiento central) para capturar una señal de audio; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento central) para procesar la señal de audio capturada para generar un espectrograma bidimensional que representa un contenido de frecuencia de la señal de audio capturada en una pluralidad de subbandas de frecuencia en puntos de tiempo sucesivos dentro de la señal de audio capturada; medios para procesar el espectrograma para generar una huella acústica de consulta fina representativa de la señal de audio capturada, la huella acústica de consulta fina comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un primer número de bits por segundo de la señal de audio capturada; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento central) para generar una huella acústica de consulta basta representativa de la señal de audio capturada, la huella acústica de consulta basta comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un segundo número de bits por segundo de la señal de audio capturada que es menor que el primer número de bits por segundo de la señal de audio capturada; una base de datos de audio que comprende una pluralidad de entradas de base de datos, estando asociada cada entrada con contenido de audio, y cada entrada que comprende: i) una huella acústica de base de datos fina representativa del contenido de audio asociado; y ii) información relacionada con el contenido de audio asociado; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento centrales) para hacer concordar la huella acústica de consulta basta con las huellas acústicas de base de datos basta asociadas con dicha pluralidad de entradas de base de datos para identificar un subconjunto de entradas de base de datos posiblemente concordantes; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento centrales) para hacer concordar la huella acústica de consulta fina con las huellas acústicas de base de datos fina de las entradas de base de datos en dicho subconjunto de entradas de base de datos posiblemente concordantes para identificar una entrada de base de datos concordante; y medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento centrales) para emitir una respuesta de concordancia que comprende dicha información de la entrada de base de datos concordante identificada; donde los medios para generar la huella acústica de consulta fina están configurados para generar la huella acústica de consulta fina a partir del espectrograma aplicando un primer conjunto de filtros diferentes al espectrograma, para cada filtro en el primer conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes del espectrograma, cada parte que comprende valores de espectrograma de al menos una subbanda de frecuencia en uno o más puntos de tiempo adyacentes, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta fina bidimensional; donde cada filtro del primer conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde el medio para generar la huella acústica de consulta fina está configurado para aplicar cada filtro a una parte del espectrograma ponderando cada valor de espectrograma de la parte con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta fina; donde los medios para generar la huella acústica de consulta fina están configurados para ordenar las filas o columnas de la huella acústica de consulta fina que se generan aplicando el primer conjunto de filtros al espectrograma de modo que filas o columnas similares sean adyacentes entre sí; donde los medios para generar la huella acústica de consulta basta están configurados para generar la huella acústica de consulta basta a partir de la huella acústica de consulta fina aplicando un segundo conjunto de filtros diferentes a la huella acústica de consulta fina, para cada filtro del segundo conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes de la huella acústica de consulta fina bidimensional, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta basta bidimensional; donde cada filtro del segundo conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde los medios para generar la huella acústica de consulta basta están configurados para aplicar cada filtro a una parte de la huella acústica de consulta fina ponderando cada valor de la parte de la huella acústica de consulta fina con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta basta. De esta manera, se realiza una concordancia inicial usando huellas bastas para identificar una o más concordancias posibles y a continuación se realiza una concordancia más detallada usando la huella de consulta fina y un subconjunto de las huellas de base de datos fina. Los inventores han descubierto que este enfoque acelera significativamente el proceso de concordancia. Además, como las huellas bastas pueden generarse a partir de las huellas finas, no hay necesidad de almacenar datos adicionales o de transmitir datos adicionales entre diferentes dispositivos o entre diferentes componentes de software.
[0020] [0012]Cada entrada de base de datos puede comprender la huella acústica de base de datos basta asociada o el sistema puede comprender además medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento centrales) para generar la huella acústica de base de datos basta
asociada con una entrada de base de datos.
[0022] El espectrograma puede generarse de numerosas maneras, incluida la realización de una transformada de frecuencia tal como una transformada rápida de Fourier (Fast Fourier Transform,FFT) o una transformada discreta de Fourier (Discrete Fourier Transform, DFT) o tomando una transformada de ondícula de la señal de audio capturada.
[0024] Cada filtro puede tener un desplazamiento asociado que define partes del espectrograma o partes de la huella acústica de consulta fina a la que se aplica el filtro.
[0026] Según otro aspecto, la invención proporciona un proceso de concordancia de audio realizado por uno o más procesadores, el procedimiento que comprende: capturar una señal de audio; procesar la señal de audio capturada para generar un espectrograma bidimensional que representa un contenido de frecuencia de la señal de audio capturada en una pluralidad de subbandas de frecuencia en puntos de tiempo sucesivos dentro de la señal de audio capturada; procesar el espectrograma para generar una huella acústica de consulta fina representativa de la señal de audio capturada, la huella acústica de consulta fina comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un primer número de bits por segundo de la señal de audio capturada; generar una huella acústica de consulta basta representativa de la señal de audio capturada, la huella acústica de consulta basta comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un segundo número de bits por segundo de la señal de audio capturada que es menor que el primer número de bits por segundo de la señal de audio capturada; hacer concordar la huella acústica de consulta basta con huellas acústicas de base de datos basta de una pluralidad de entradas de base de datos para identificar un subconjunto de entradas de base de datos posiblemente concordantes; hacer concordar la huella acústica de consulta fina con las huellas acústicas de base de datos fina de las entradas de base de datos en dicho subconjunto de entradas de base de datos posiblemente concordantes para identificar una entrada de base de datos concordante; y emitir una respuesta de concordancia que comprende información relacionada con la entrada de base de datos de concordancia identificada; donde la huella acústica de consulta fina se genera a partir del espectrograma aplicando un primer conjunto de filtros diferentes al espectrograma, para cada filtro en el primer conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes del espectrograma, cada parte que comprende valores de espectrograma de al menos una subbanda de frecuencia en uno o más puntos de tiempo adyacentes, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta fina; donde cada filtro del primer conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde cada filtro se aplica a una parte del espectrograma ponderando cada valor de espectrograma de la parte con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta fina; donde los medios para generar la huella acústica de consulta fina están configurados para ordenar las filas o columnas de la huella acústica de consulta fina bidimensional que se generan aplicando el primer conjunto de filtros al espectrograma de modo que filas o columnas similares sean adyacentes entre sí; el procedimiento comprende además generar la huella acústica de consulta basta a partir de la huella acústica de consulta fina aplicando un segundo conjunto de filtros diferentes a la huella acústica de consulta fina, para cada filtro del segundo conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes de la huella acústica de consulta fina, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta basta bidimensional; donde cada filtro del segundo conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde cada filtro se aplica a una parte de la huella acústica de consulta fina ponderando cada valor de la parte de la huella acústica de consulta fina con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta basta.
[0028] [0016]Según otro aspecto, la presente invención proporciona un dispositivo de usuario para su uso en un sistema de concordancia de audio, el dispositivo de usuario que comprende : medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento centrales) para capturar una señal de audio; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento central) para procesar la señal de audio capturada para generar un espectrograma bidimensional que representa un contenido de frecuencia de la señal de audio capturada en una pluralidad de subbandas de frecuencia en puntos de tiempo sucesivos dentro de la señal de audio capturada; medios para procesar el espectrograma para generar una huella acústica de consulta fina representativa de la señal de audio capturada, la huella acústica de consulta fina comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un primer número de bits por segundo de la señal de audio capturada; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento central) para emitir una huella acústica de consulta basta representativa de la señal de audio capturada, la huella acústica de consulta basta comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un segundo número de bits por segundo de la señal de audio capturada que es menor que el primer número de bits por segundo de la señal de audio capturada; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento central) para emitir la huella acústica de consulta basta y la huella acústica de consulta fina a un servidor de concordancia de audio; y un medio (que puede ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento centrales) para recibir una respuesta de concordancia que comprende información relacionada con el audio capturado; donde los medios para generar la huella acústica de consulta fina están configurados para generar la huella acústica de
consulta fina a partir del espectrograma aplicando un primer conjunto de filtros diferentes al espectrograma, para cada filtro en el primer conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes del espectrograma, cada parte que comprende valores de espectrograma de al menos una subbanda de frecuencia en uno o más puntos de tiempo adyacentes, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta fina bidimensional; donde cada filtro del primer conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde el medio para generar la huella acústica de consulta fina está configurado para aplicar cada filtro a una parte del espectrograma ponderando cada valor de espectrograma de la parte con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta fina; donde los medios para generar la huella acústica de consulta fina están configurados para ordenar las filas o columnas de la huella acústica de consulta fina que se generan aplicando el primer conjunto de filtros al espectrograma de modo que filas o columnas similares sean adyacentes entre sí; donde los medios para generar la huella acústica de consulta basta están configurados para generar la huella acústica de consulta basta a partir de la huella acústica de consulta fina aplicando un segundo conjunto de filtros diferentes a la huella acústica de consulta fina, para cada filtro del segundo conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes de la huella acústica de consulta fina, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta basta bidimensional; donde cada filtro del segundo conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde los medios para generar la huella acústica de consulta basta están configurados para aplicar cada filtro a una parte de la huella acústica de consulta fina ponderando cada valor de la parte de la huella acústica de consulta fina con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta basta.
[0030] La presente invención también proporciona un servidor de concordancia de audio para su uso en un sistema de concordancia de audio, el servidor de concordancia de audio que comprende: medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento central) para recibir una huella acústica de consulta fina representativa de una señal de audio capturada, la huella acústica de consulta fina que comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un primer número de bits por segundo de la señal de audio capturada y generándose a partir de un espectrograma de la señal de audio capturada aplicando un primer conjunto de filtros diferentes al espectrograma y ordenando las filas o columnas de la huella acústica de consulta fina que se generan aplicando el primer conjunto de filtros al espectrograma de modo que filas o columnas similares sean adyacentes entre sí; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento central) para generar una huella acústica de consulta basta representativa de la señal de audio capturada, la huella acústica de consulta basta comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un segundo número de bits por segundo de la señal de audio capturada que es menor que el primer número de bits por segundo de la señal de audio capturada; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento centrales) para hacer concordar la huella acústica de consulta basta con huellas acústicas de base de datos basta asociadas con una pluralidad de entradas de base de datos para identificar un subconjunto de entradas de base de datos posiblemente concordantes; medios (que pueden ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento centrales) para hacer concordar la huella acústica de consulta fina con las huellas acústicas de base de datos fina de las entradas de base de datos en dicho subconjunto de entradas de base de datos posiblemente concordantes para identificar una entrada de base de datos concordante; y un medio (que puede ser un circuito de hardware o un módulo de software ejecutado por una o más unidades de procesamiento central) para emitir una respuesta de concordancia que comprende información relacionada con el audio capturado; donde los medios para generar la huella acústica de consulta basta están configurados para generar la huella acústica de consulta basta a partir de la huella acústica de consulta fina aplicando un segundo conjunto de filtros diferentes a la huella acústica de consulta fina, para cada filtro del segundo conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes de la huella acústica de consulta fina, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta basta bidimensional; donde cada filtro del segundo conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde los medios para generar la huella acústica de consulta basta están configurados para aplicar cada filtro a una parte de la huella acústica de consulta fina ponderando cada valor de la parte de la huella acústica de consulta fina con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta basta.
[0032] La invención también proporciona un producto de instrucciones implementables por ordenador que comprende instrucciones implementables por ordenador para hacer que un dispositivo informático programable realice todas las etapas del procedimiento descritas anteriormente o se configure como el aparato descrito anteriormente.
[0034] Estos y otros aspectos de la invención serán evidentes a partir de la siguiente descripción detallada de realizaciones ejemplares que se describen con referencia a los dibujos adjuntos donde:
[0036] la Figura 1 es un diagrama de bloques que ilustra los componentes principales de un sistema de concordancia de audio;
[0037] la Figura 2 es un diagrama de bloques que ilustra los componentes principales de un teléfono celular que forma parte del sistema de concordancia de audio de la Figura 1;
[0038] la Figura 3 es un diagrama de bloques funcionales que ilustra los principales componentes funcionales del software de aplicación que se ejecuta en el teléfono celular que se muestra en la Figura 2;
[0039] la Figura 4 ilustra el funcionamiento de una unidad de análisis de frecuencia que forma parte del software de aplicación que se muestra en la Figura 3 y que ilustra la forma en que una señal de audio capturada se divide en tramas sucesivas que se analizan en frecuencia para generar un espectrograma de la señal de audio;
[0040] la Figura 5a ilustra una cantidad de filtros básicos que son usados por una unidad de generación de huellas para generar una huella a partir del espectrograma;
[0041] la Figura 5b ilustra el espectrograma generado por la unidad de análisis de frecuencia y la forma en que se aplica un filtro al espectrograma;
[0042] las Figuras 5c y 5d ilustran la forma en que la unidad de generación de huellas aplica un filtro al espectrograma para generar un vector de valores combinados obtenidos combinando valores seleccionados del espectrograma con coeficientes del filtro;
[0043] la Figura 5e ilustra la forma en que la unidad de generación de huellas binariza el vector de valores combinados al generar la huella;
[0044] la Figura 5f ilustra gráficamente la huella generada por la unidad de generación de huellas aplicando un primer conjunto de filtros al espectrograma y concatenando los vectores binarios resultantes para formar una huella acústica 2D;
[0045] la Figura 6 ilustra una huella convencional y una huella generada por el teléfono celular de la Figura 1 concatenando los vectores binarios en un orden específico para maximizar la probabilidad de que los vectores binarios adyacentes en la huella sean similares entre sí;
[0046] la Figura 7 es un diagrama de bloques que ilustra los componentes principales del servidor de concordancia de audio 5 que forma parte del sistema que se muestra en la Figura 1;
[0047] las Figuras 8a, 8b, 8c y 8d ilustran la forma en que una unidad de generación de huellas bastas que forma parte del servidor que se muestra en la Figura 7 genera una huella de consulta basta a partir de la huella de consulta fina generada por el teléfono celular;
[0048] la Figura 9 ilustra la información contenida en las entradas dentro de una base de datos que forma parte del sistema de concordancia de audio que se muestra en la Figura 1;
[0049] la Figura 10a ilustra la forma en que una unidad de concordancia de huellas bastas que forma parte del servidor que se muestra en la Figura 7 hace concordar la huella de consulta basta con huellas bastas almacenadas dentro de la base de datos que se ilustra en la Figura 9 para identificar un subconjunto de entradas de base de datos que pueden concordar con la huella de consulta basta;
[0050] la Figura 10b ilustra un resultado obtenido por la unidad de concordancia de huellas bastas cuando no hay concordancia entre la huella de consulta basta y una huella de base de datos basta;
[0051] la Figura 10c ilustra un resultado obtenido por la unidad de concordancia de huellas bastas cuando hay una concordancia entre la huella de consulta basta y una huella de base de datos basta;
[0052] la Figura 11 ilustra la forma en que una unidad de concordancia de huellas finas que forma parte del servidor que se muestra en la Figura 7 hace concordar la huella de consulta fina con las huellas finas almacenadas dentro de la base de datos para el subconjunto de entradas de base de datos identificadas por la unidad de concordancia de huellas bastas para identificar la entrada de base de datos que mejor hace concordar la huella de consulta fina; las Figuras 12a y 12b ilustran parte de un proceso de entrenamiento usado para determinar un primer conjunto de filtros optimizados que se usan para generar una huella fina a partir de un espectrograma;
[0053] la Figura 13a ilustra distribuciones separadas obtenidas para un filtro para hacer concordar pares de muestras de audio de entrenamiento y para pares no concordantes de muestras de audio de entrenamiento;
[0054] la Figura 13b ilustra distribuciones superpuestas obtenidas para un filtro para hacer concordar pares de muestras de audio de entrenamiento y para pares no concordantes de muestras de audio de entrenamiento;
[0055] la Figura 14 ilustra una estructura en celosía de nodos y un proceso de propagación de ruta para identificar una mejor ruta a través de la estructura en celosía; y
[0056] las Figuras 15a y 15b ilustran parte de un proceso de entrenamiento usado para determinar un segundo conjunto de filtros optimizados que se usan para generar una huella basta a partir de una huella fina.
[0057] Visión general
[0058] La Figura 1 es un diagrama de bloques que ilustra los componentes principales de un sistema de concordancia de audio que incorpora la presente invención. El sistema se basa en un usuario que tiene un dispositivo de usuario 1 (en este caso un teléfono celular) que puede capturar el sonido 2 generado por una fuente de sonido 3 (tal como un televisor 3-1, una radio 3-2 o una actuación en vivo, etc.). El dispositivo de usuario 1 procesa el sonido capturado 2 y genera una huella acústica que representa el sonido capturado. En la siguiente descripción, estas huellas acústicas se denominarán simplemente huellas para facilitar la explicación. La forma en que se genera la huella se describirá con más detalle a continuación. El dispositivo de usuario 1 a continuación transmite la huella generada como una consulta a un servidor de concordancia de audio remoto 5 ya sea a través de la estación base 7 y la red de telecomunicaciones 9 o a través de un punto de acceso 11 y la red informática 13 (por ejemplo, Internet). En esta realización, en respuesta a la recepción de la huella de consulta, el servidor de concordancia de audio 5 procesa la huella de consulta para generar una huella de consulta basta que el servidor a continuación usa para buscar entradas posiblemente concordantes dentro de la base de datos 15. La huella basta tiene una resolución o tasa de bits más baja en comparación con la huella de consulta recibida. Esta primera búsqueda usando la huella de consulta basta identificará un subconjunto de entradas posiblemente concordantes dentro de la base de datos 15. El servidor de concordancia de audio 5 a continuación compara la huella de consulta de mayor resolución (o "fina") recibida del dispositivo de usuario 1 con el subconjunto de entradas identificadas por la primera búsqueda para identificar la entrada de base de datos que es más similar a la huella de consulta fina. El servidor de concordancia de audio 5 a continuación emite información recuperada de la entrada de concordancia en la base de datos 15, al dispositivo de usuario 1. Puede devolverse diversa información diferente, como la información de identificación del audio capturado por el dispositivo de usuario 1; información del artista; contenido relacionado (como otro contenido del mismo artista); e incluso enlaces informáticos a contenido almacenado en otros servidores conectados a la red informática 13. El dispositivo de usuario 1 a continuación emite la información devuelta al usuario, por ejemplo, a través de la pantalla 17 del dispositivo de usuario. Un ejemplo es cuando el proceso de concordancia de audio identifica el anuncio o programa de televisión que está viendo un espectador y a continuación presenta contenido relevante al usuario. La información recuperada de la base de datos 15 puede proporcionarse a un tercero en lugar de o además del dispositivo de usuario 1. Esto puede ser útil en aplicaciones de estudios de audiencia, donde el propósito del proceso de concordancia de audio es identificar el programa de televisión o radio que el usuario está escuchando o viendo; cuya información se envía a continuación a un servidor de estudio de audiencia de terceros 19 a través de la red informática 13.
[0059] A continuación se dará una descripción más detallada de las partes principales del sistema de concordancia de audio descrito anteriormente.
[0060] Teléfono celular del usuario
[0061] La Figura 2 es un diagrama de bloques que ilustra los componentes principales del teléfono celular 1 del usuario usado en esta realización. Como se muestra, el teléfono celular 1 incluye un micrófono 23 para recibir las señales acústicas 2 (como el sonido emitido por la televisión 3-1 o la radio 3-2) y para convertir estas señales acústicas en señales eléctricas equivalentes. Las señales eléctricas del micrófono 23 son filtradas a continuación por el filtro 51 para eliminar las frecuencias no deseadas, típicamente las que están fuera de la banda de frecuencia de 200 Hz a 20 kHz. El audio filtrado es a continuación digitalizado por un convertidor analógico a digital 53, que muestrea el audio filtrado típicamente a una frecuencia de muestreo de 24 o 48 kHz y representa cada muestra por un valor digital de 16 bits. El flujo de audio digitalizado (D(t)) se introduce a continuación en un procesador 63 (que puede comprender una o más unidades de procesamiento centrales).
[0062] Cuando se realiza una llamada de voz, el procesador 63 comprime el audio recibido y a continuación lo pasa a una unidad de procesamiento de RF 57 que modula los datos de audio comprimidos en una o más señales portadoras de RF para su transmisión a la estación base 7 a través de la antena 27. De manera similar, las señales de audio comprimidas recibidas a través de la antena 27 se alimentan a la unidad de procesamiento de RF 57, que demodula las señales de RF recibidas para recuperar los datos de audio comprimidos de la señal o señales portadoras de RF, que a continuación se pasan al procesador 63 para su descompresión. Las muestras de audio regeneradas a continuación se envían al altavoz 25 a través del convertidor digital a analógico 59 y el amplificador 61.
[0063] [0024]Como se muestra en la Figura 2, el procesador 63 está controlado por software almacenado en la memoria 65. El software incluye el software del sistema operativo 67 (para controlar el funcionamiento general del teléfono celular 1), un navegador 68 para acceder a Internet y el software de aplicación 69 para proporcionar funcionalidad adicional al teléfono celular 1. En esta realización, el software de aplicación 69 es parte del sistema de
concordancia de audio y hace que el teléfono celular capture el sonido 2 con fines de reconocimiento. El software de aplicación 69 también genera la huella fina descrita anteriormente que se envía al servidor de concordancia de audio 5 como una consulta. El software de aplicación 69 también responde a los datos recibidos del servidor de concordancia de audio 5, por ejemplo, emitiendo información al usuario en la pantalla 17; o recuperando información de otro servidor usando un enlace devuelto desde el servidor de concordancia de audio 5.
[0065] Software de aplicación - Análisis de frecuencia
[0067] La Figura 3 es un diagrama de bloques que ilustra la funcionalidad de procesamiento principal del software de aplicación 69 usado en esta realización. Como se muestra, el software de aplicación 69 recibe como entrada la señal de audio muestreada (D(t)) del convertidor A/D 53. Este audio muestreado se almacena en un búfer de audio 32. Las muestras de audio en el búfer de audio 32 son procesadas por una unidad de análisis de frecuencia 34 que procesa las muestras de audio en el búfer de audio 32 para generar un espectrograma 35 de la señal de audio (D(t)) que se almacena en el búfer de espectrograma 37. El espectrograma 35 es una representación de tiempo y frecuencia de la señal de audio (D(t)) e ilustra la forma en que el contenido de frecuencia de la señal de audio (D(t)) cambia con el tiempo a lo largo de la duración de la señal de audio. La unidad de análisis de frecuencia 34 construye el espectrograma 35 extrayendo tramas de muestras de audio de la señal de audio entrante D(t) y determinando el contenido de frecuencia de la señal de audio en cada trama (es decir, qué frecuencias están presentes y a qué amplitudes). En particular, como se ilustra en la Figura 4, la señal de audio de entrada D(t) se divide en tramas 39 superpuestas para permitir un análisis espectral de "corto tiempo" de las muestras de audio en cada trama, como es estándar en el campo del procesamiento de audio. Típicamente, una trama 39 de muestras se extrae una vez cada 10 a 20 milisegundos y las tramas 39 pueden solaparse (como se ilustra) o no solaparse. Típicamente, la unidad de análisis de frecuencia 34 funciona en paralelo con la escritura de las muestras entrantes en el búfer de audio 32. En otras palabras, la unidad de análisis de frecuencia 34 puede comenzar su análisis tan pronto como la primera trama (f<1>) de muestras de audio se escribe en el búfer de audio 32 y se detiene después de un tiempo predefinido o al final del clip de audio que es capturado por el micrófono 23.
[0069] Como es bien conocido en la técnica, normalmente se usa una función de formación de ventana (tal como una ventana Hamming) para extraer las tramas 39 de muestras de la señal de audio entrante (D(t)) - para reducir las distorsiones introducidas por la extracción. Una vez que se ha extraído una trama 39 de muestras, la unidad de análisis de frecuencia 34 realiza un proceso de análisis de frecuencia en las muestras de audio para determinar el contenido de frecuencia dentro de una banda de frecuencia definida de interés, que normalmente será una parte de la banda de paso del filtro 51. En esta realización, esta banda de frecuencia de interés se limita a la banda de 475 Hz a 2,52 kHz. Por supuesto, pueden usarse otras bandas de frecuencia.
[0071] Como apreciarán los expertos en la materia, el proceso de análisis de frecuencia realizado por la unidad de análisis de frecuencia 34 puede realizarse de varias maneras diferentes, como mediante el uso de una transformada rápida de Fourier (Fast Fourier Transform, FFT) o una transformada de coseno discreta (Discrete Cosine Transform,DCT) o mediante el uso de transformadas de ondícula o incluso mediante el uso de una matriz de bancos de filtros. En la realización preferida se usan transformadas de ondículas. Este análisis de frecuencia generará, para cada trama 39 de muestras de audio, un vector de números, que representa el contenido de frecuencia (amplitud) en cada uno de un número (K) de subbandas de frecuencia dentro de la banda de frecuencia definida de interés (por ejemplo, 475 Hz a 2,52 kHz). Por lo tanto, como se muestra en la Figura 4, el análisis de frecuencia de la primera trama f<1>da como resultado la generación del vector de números f<1>1
, f<1>2
, f<1>3
... f<1>K
; donde el número f<1>1
representa el contenido de frecuencia en la primera subbanda de frecuencia de las muestras de audio en la primera trama, f<1>2
representa el contenido de frecuencia en la segunda subbanda de frecuencia de las muestras de audio en la primera trama, f<1>3 representa el contenido de frecuencia en la tercera subbanda de frecuencia de las muestras de audio en la primera trama, etc. El número de subbandas consideradas (es decir, el valor de K) depende de la energía de procesamiento disponible del procesador 63 y la resolución de frecuencia requerida para extraer una huella significativa (distinguible). Los inventores han descubierto que un valor de K que está entre 25 y 50 subbandas produce buenos resultados para una banda de frecuencia de interés que tiene aproximadamente 2 kHz de ancho. De manera similar, el análisis de frecuencia de la segunda trama f<2>da como resultado la generación del vector de números f<2>1
f<2>2
, f<2>3
… f<2>K
; donde el número f<2>1
representa el contenido de frecuencia en la primera subbanda de las muestras de audio en la segunda trama, f<2>2
representa el contenido de frecuencia en la segunda subbanda de las muestras de audio en la segunda trama, f<2>3
representa el contenido de frecuencia en la tercera subbanda de las muestras de audio en la segunda trama, etc.
[0073] [0028]Como se ilustra en la Figura 4, el espectrograma 35 se forma concatenando los vectores generados a partir de la serie de tramas 39 extraídas de la señal de audio D(t). El número de tramas extraídas (y por lo tanto el tamaño (L) del espectrograma 35) depende de la duración del clip de audio entrante. Por lo general, se generará un espectrograma correspondiente a varios segundos de audio. Si el clip de audio es demasiado corto, entonces es más probable que la huella resultante coincida con múltiples entradas en la base de datos 15 y si es demasiado largo, esto aumentará los cálculos requeridos por el servidor de concordancia de audio 5 para hacer concordar la huella con las entradas en la base de datos 15. Para dar un ejemplo, con una tasa de muestreo de audio de 8 kHz y si cada trama 39 tiene 1024 muestras de audio y con una trama 39 que se extrae cada 128 muestras de audio, entonces un clip de
audio de ocho segundos dará como resultado que el tamaño del espectrograma 35 sea L = 500.
[0074] El espectrograma así generado es efectivamente una matriz K x L de valores que representan el clip de audio. Las filas de la matriz representan las diferentes subbandas de frecuencia y las diferentes columnas representan diferentes puntos de tiempo dentro del clip de audio. El valor individual en el espectrograma en la ubicación (i, j) corresponde a la amplitud del componente de frecuencia en la subbanda i en el tiempo j. Por supuesto, la matriz podría escribirse en la transpuesta, con las columnas representando las subbandas de frecuencia y las filas representando los puntos de tiempo. Por lo tanto, las referencias a filas y columnas en este documento son intercambiables.
[0075] Software de aplicación - Generación de huellas
[0076] Volviendo a la Figura 3, una vez que el espectrograma 35 se ha calculado y almacenado en el búfer de espectrograma 37, una unidad de generación de huellas 41 procesa el espectrograma 35 para generar una huella 43. La unidad de generación de huellas 41 genera la huella 43 aplicando un primer conjunto optimizado 45 de filtros al espectrograma 35 y binarizando el resultado. Hay muchas combinaciones de filtros posibles diferentes que pueden usarse para generar una huella y el primer conjunto optimizado 45 de filtros se ha encontrado a través de un proceso de optimización. Más adelante se describirá la forma en que se realiza este proceso de optimización. La forma en que se usa este primer conjunto optimizado 45 de filtros para generar la huella 43 se explicará ahora en detalle con referencia a las Figuras 5a a 5f.
[0077] La Figura 5a ilustra cinco tipos diferentes de filtro 47-1, 47-2, 47-3, 47-4 y 47-5 que pueden aplicarse a diferentes partes del espectrograma 35. Cada filtro 47 tiene una altura (Height, H) y un ancho (Width, W) que define el tamaño del filtro; y un desplazamiento (Offset, O) que define las subbandas de frecuencia del espectrograma 35 al que se aplicará el filtro 47. En esta realización, los coeficientes de cada filtro 47 suman cero. Por lo tanto, por ejemplo, el tipo de filtro 47-1 puede formarse a partir de la siguiente matriz de coeficientes:
[0080]
[0082] Y el tipo de filtro 47-2 puede formarse a partir de la siguiente matriz de coeficientes:
[0085]
[0088] La Figura 5b ilustra la forma en que un filtro 47 (en este caso el filtro 47-1) se aplica al espectrograma 35 en un desplazamiento dado desde la base del espectrograma. Como se representa por la flecha 49, el filtro 47 está escalonado a través del eje de tiempo del espectrograma 35 y en cada etapa los coeficientes del filtro 47 se usan para realizar una combinación ponderada de los valores de frecuencia en la parte relevante del espectrograma 35. El número de valores de frecuencia que se combinan en cada etapa depende del tamaño (W, H) del filtro 47 y cómo se combinan depende de los coeficientes del filtro 47. El valor combinado de cada etapa se escribe a continuación en un vector de valores combinados que se cuantifica (o binariza) en "1" y "0" dependiendo de si los valores combinados son mayores o menores que cero.
[0089] Este proceso se ilustra con más detalle en las Figuras 5c a 5e. La Figura 5c ilustra la aplicación de un ejemplo de filtro (que es un filtro tipo 47-1) que tiene un tamaño de 2 por 2 y un desplazamiento de 10. Por lo tanto, el filtro 47-1 se aplica a los valores en el espectrograma 35 que están a 10 filas desde la parte inferior del espectrograma 35 (por supuesto, el desplazamiento puede definirse desde cualquier punto dentro del espectrograma 35). En la primera etapa, el primer bloque 32 de valores de amplitud del espectrograma 35 en el desplazamiento definido se combina multiplicando estos valores de amplitud por los coeficientes correspondientes en el filtro 47-1 y a continuación sumando los valores. Por lo tanto, como se muestra en la Figura 5c, en la primera etapa el valor de amplitud 6 se multiplica por el coeficiente de filtro -1; el valor de amplitud 4 se multiplica por el coeficiente de filtro 1; el valor de amplitud 3 se multiplica por el coeficiente de filtro 1; y el valor de amplitud 5 se multiplica por el coeficiente de filtro -1. Los cuatro números resultantes se suman para proporcionar un resultado combinado de -4. Este valor se escribe en el primer elemento de un vector 42 de valores combinados. Como se ilustra en la Figura 5d, el filtro 47-1 se pasa entonces a lo largo de una etapa de tiempo y se combina de una manera similar con el siguiente bloque 34 de valores de amplitud del espectrograma 35. Como se muestra, esta combinación da como resultado el valor 2, que se escribe en el siguiente elemento del vector 42. Este proceso se repite hasta que el filtro 47-1 se ha escalonado a través de la longitud (eje de tiempo) del espectrograma 35 y el vector 42 resultante tendrá, por lo tanto, L elementos correspondientes a la longitud temporal del espectrograma 35.
[0090] [0035]Los valores combinados en este vector 42 serán números positivos y negativos. Con el fin de simplificar la huella 43 que se genera (y, por lo tanto, reducir los datos necesarios para representar la huella), estos valores se cuantifican en valores binarios, por ejemplo, estableciendo todos los valores superiores a 0 en el valor binario "1" y
estableciendo todos los valores inferiores a cero en el valor binario "0", como se muestra en la Figura 5e. El vector binarizado 44 resultante formará una fila de la huella 43 (mostrado en la Figura 5f). Como apreciarán los expertos en la materia, este proceso de binarización puede realizarse en cada valor combinado a medida que se genera y se escribe directamente en el vector binarizado 44, en lugar de generar primero el vector 42 intermedio.
[0092] Tal como se analizó anteriormente, la huella 43 se genera aplicando un primer conjunto optimizado 45 de estos filtros 47 al espectrograma 35. Cada filtro diferente 47 en este primer conjunto 45 producirá una fila diferente de la huella final 43. Por lo tanto, la concatenación de los diferentes vectores binarios 44 producidos mediante la aplicación del primer conjunto 45 de filtros al espectrograma 35 en una matriz, forma la huella 43 de salida final 2D. El orden en que se concatenan los vectores binarios 44 se determina de antemano y se usa el mismo primer conjunto 45 de filtros y orden para generar las huellas correspondientes para las entradas en la base de datos 15, de modo que el servidor de concordancia de audio 5 pueda comparar las huellas que se han generado de la misma manera. En esta realización, el primer conjunto 45 de filtros comprende treinta y dos filtros diferentes y, por lo tanto, la huella que se genera será una matriz de 32 por L de valores binarios. Se eligieron treinta y dos filtros, ya que esto permite el procesamiento conveniente de las huellas por un procesador de 32 bits o 64 bits (que puede usarse, por ejemplo, para realizar el proceso de concordancia de huellas en el servidor de concordancia de audio 5). Sin embargo, como apreciarán los expertos en la materia, puede usarse cualquier cantidad de filtros en el primer conjunto 45.
[0094] Además, como antes, las filas y columnas de la huella 43 son intercambiables. Por lo tanto, en lugar de que los vectores binarios 44 formen las filas de la huella 43, pueden usarse para formar las columnas. En este caso, la huella será una matriz L por 32 de valores binarios. Siempre que se realice el mismo proceso para generar las huellas para las entradas en la base de datos de audio 15, la orientación de la huella 43 no importa.
[0096] Orden de filas/columnas de huellas
[0098] Tal como se analizó anteriormente, los vectores binarios 44 generados mediante la aplicación de los filtros 47 en el conjunto optimizado 45 al espectrograma 35 se concatenan entre sí en un orden que se define de antemano. Normalmente, el orden no importa, siempre que se aplique el mismo orden al generar las huellas para las entradas en la base de datos 15. Esto significa que, en una huella convencional, los 1 y los 0 aparecerán distribuidos aleatoriamente a lo largo de la huella, como para el ejemplo de la huella 43-1 que se muestra en la Figura 6. Sin embargo, en esta realización, el ordenamiento se elige de una manera específica, en particular de una manera que maximice (o al menos aumente) la probabilidad de que los vectores binarios 44 adyacentes (es decir, las filas o columnas adyacentes) en la huella 43 sean similares entre sí. Como se explicará con más detalle más adelante, este ordenamiento específico se determina durante una etapa de entrenamiento donde se generan huellas para una gran colección de muestras de audio y se encuentra que el ordenamiento maximiza la probabilidad de que las filas/columnas adyacentes en la huella 43 sean similares. Este orden específico se define dentro del software de aplicación 69 y controla la forma en que la unidad de generación de huellas 41 concatena los vectores binarios 44 para formar la huella 43. La Figura 6 también muestra un segundo ejemplo de huella 43-2 que se genera usando el orden específico discutido anteriormente. Como puede observarse, la huella 43-2 es mucho menos aleatoria en apariencia que la huella 43-1, ya que muchos más bits adyacentes en la huella 43-2 tienen el mismo valor y, por lo tanto, se agrupan para definir islas más grandes del mismo valor binario. Como se explicará más adelante, esto es importante para que el servidor de audio remoto 5 pueda generar una huella basta a partir de la huella 43 que reducirá la carga de procesamiento para encontrar una entrada concordante en la base de datos 15.
[0100] Como apreciarán los expertos en la materia, como el orden de los vectores binarios 44 se conoce de antemano, los valores binarizados individuales podrían escribirse directamente en la parte relevante de la huella 43 sin escribirse primero en un vector binario 44. La explicación anterior se ha dado para facilitar la comprensión de la forma en que se genera la huella 43.
[0102] Software de aplicación - Respuesta de concordancia
[0104] [0040]Volviendo a la Figura 3, una vez que se ha generado la huella 43, el software de aplicación 69 pasa la huella 43 al procesador 63 para su transmisión al servidor de concordancia de audio 5. Como el software de aplicación 69 está diseñado para trabajar con el servidor de concordancia de audio 5, el software de aplicación 69 tendrá almacenada en él información de dirección para el servidor de concordancia de audio 5 de modo que pueda enviar la huella al servidor de concordancia de audio 5; ya sea a través de la red de telecomunicaciones 9 o a través de la red informática 13. El software de aplicación 69 pasará esta información de dirección y la huella generada 43 al procesador 63 solicitando que la huella 43 se envíe al servidor de concordancia de audio remoto 5. A continuación, el procesador 63 enviará la huella 43 al servidor de concordancia de audio 5 y espera un mensaje de respuesta. Cuando el mensaje de respuesta de concordancia 46 se devuelve desde el servidor de concordancia de audio 5 (ya sea a través de la red de telecomunicaciones 9 o a través de la red informática 13), el procesador 63 recibirá y pasará el mensaje de respuesta de concordancia 46 al software de aplicación 69. El software de aplicación 69 toma entonces una acción apropiada según el contenido del mensaje de respuesta de concordancia 46. Por ejemplo, si el mensaje de respuesta de concordancia 46 simplemente proporciona detalles del audio capturado, como el nombre de la canción, el artista, etc., entonces el software de aplicación 69 puede emitir esta información al usuario, como a través de la pantalla 17 o
el altavoz 25. Si el mensaje de respuesta de concordancia 46 incluye un enlace para obtener más información o contenido relacionado con el audio capturado, entonces el software de aplicación 69 puede indicar al usuario si el usuario desea recuperar la información o el contenido del enlace proporcionado. En respuesta a que el usuario acepta la recuperación (por ejemplo, presionando una tecla 33 en el teclado 31), el software de aplicación 69 puede recuperar la información o el contenido del propio enlace o puede solicitar al software del navegador 68 que recupere la información o el contenido (qué información o contenido recuperado se envía al usuario, por ejemplo, en la pantalla 17). Si el software de aplicación 69 forma parte de una aplicación de estudio de audiencia, entonces el software de aplicación 69 puede simplemente recopilar la información sobre el audio que se ha capturado (como el canal de televisión y el programa que se está viendo) y a continuación enviarla al servidor remoto de estudio de audiencia 19 junto con un identificador del usuario que posee el teléfono (que puede ser solo un identificador del teléfono 1). Si el mensaje de respuesta de concordancia 46 es un informe "nulo", que indica que no se han encontrado concordancias, entonces el software de aplicación 69 puede emitir esta información al usuario.
[0106] Servidor de concordancia de audio
[0108] La Figura 7 es un diagrama de bloques de los componentes principales del servidor de concordancia de audio 5 usado en esta realización. Como se muestra, el servidor de concordancia de audio 5 incluye un procesador (que puede ser una o más unidades de procesamiento central) 201 que se comunica con el dispositivo de usuario 1 a través de una interfaz de red 205 y la red de telecomunicaciones 9 o la red informática 13. El procesador 201 también se comunica con la base de datos 1543 a través de una interfaz de base de datos 207. En la práctica, las interfaces 205 y 207 pueden estar formadas por una única interfaz física, tal como una interfaz LAN o similar.
[0110] En esta realización, el procesador 201 está controlado por instrucciones de software almacenadas en la memoria 209 (aunque en otras realizaciones, el procesador 201 puede formarse a partir de uno o más procesadores de hardware dedicados, tales como circuitos integrados de aplicación específica). Las instrucciones de software incluyen un sistema operativo 211 que controla el funcionamiento general del servidor de concordancia de audio 5; un módulo de control de comunicaciones 213 que controla las comunicaciones entre el servidor de concordancia de audio 5 y el dispositivo de usuario 1 y la base de datos 15; una unidad de generación de huellas bastas 215 que genera una huella basta a partir de la huella de consulta 43 recibida de un dispositivo de usuario 1; una unidad de concordancia de huellas bastas 217 que hace concordar la huella basta generada por la unidad de generación de huellas bastas 215 con huellas bastas almacenadas en la base de datos 15; una unidad de concordancia de huellas finas 219 que hace concordar la huella 43 recibida del dispositivo de usuario 1 con una huella fina de un subconjunto de las entradas en la base de datos 15 para identificar una entrada concordante; y una unidad de informe de respuesta de concordancia 220 que informa los resultados de concordancia al dispositivo de usuario 1 en un mensaje de respuesta de concordancia 46. Como se explicará con más detalle a continuación, la unidad de generación de huellas bastas 215 genera la huella basta usando un segundo conjunto 221 de filtros optimizados que se almacena en la memoria 209.
[0112] Como se analizó anteriormente, el servidor de concordancia de audio 5 realiza operaciones de concordancia entre huellas bastas/finas correspondientes a una consulta recibida desde el dispositivo de usuario 1 y huellas bastas/finas almacenadas dentro de la base de datos 15. Para distinguir entre estas diferentes huellas, la huella 43 recibida del dispositivo de usuario 1 se denominará "huella de consulta fina" 43 y la huella basta que se genera a partir de ella se denominará "huella de consulta basta". Las huellas almacenadas en la base de datos 15 se denominarán "huellas de base de datos bastas" y "huellas de base de datos finas".
[0114] Conjunto de generación de huellas bastas
[0116] Como se mencionó anteriormente, en esta realización, la unidad de generación de huellas bastas 215 genera la huella de consulta basta a partir de la huella de consulta fina 43 recibida del dispositivo de usuario 1. Esto es ventajoso ya que significa que el dispositivo de usuario 1 no necesita transmitir, por ejemplo, el espectrograma 35 del clip de audio al servidor de concordancia de audio 5 para que se genere la huella de consulta basta.
[0118] [0045]La Figura 8 ilustra el proceso usado por la unidad de generación de huellas bastas 215 para generar la huella de consulta basta. El proceso es muy similar al proceso usado para generar la huella de consulta fina (descrito anteriormente con referencia a la Figura 5), excepto que se usa un segundo conjunto (diferente) 221 de filtros optimizados y en este caso los filtros 47 de este segundo conjunto 221 se aplican a la huella de consulta fina 43 en lugar de al espectrograma 35. Además, en lugar de pasar cada filtro 47 en este segundo conjunto 221 de filtros optimizados sobre la huella de consulta fina 43 un punto de tiempo a la vez, se omiten varios puntos de tiempo en cada etapa, con el fin de reducir el tamaño de la huella de consulta basta. En esta realización, los filtros omiten 10 puntos de tiempo entre cada etapa y el número de filtros en el segundo conjunto 221 de filtros se mantiene igual que en el primer conjunto 45 (=32). El resultado es una huella (basta) compacta que permite una búsqueda inicial más rápida de las entradas en la base de datos 15. Por supuesto, las huellas bastas podrían hacerse aún más compactas reduciendo el número de filtros 47 usados en el segundo conjunto 221 (en comparación con el número de filtros usados en el primer conjunto 45). Por lo tanto, en el ejemplo anterior, si la huella de consulta fina tiene una tasa de bits (o resolución) de 2000 bits por segundo de la señal de audio capturada, entonces la huella de consulta basta tendrá una
tasa de bits (o resolución) de 200 bits por segundo de la señal de audio capturada.
[0120] La Figura 8a muestra la huella de consulta fina 43 escrita en formato de matriz y con "0" binarios escritos como el valor -1. Esto garantiza que el proceso de filtrado combine con precisión las diferentes partes de la huella de consulta fina 43 que se combinarán con el filtro. En este ejemplo, el filtro 47 que se aplica a la huella de consulta fina 43 es un filtro de tipo 47-2 que tiene una altura 2 y un ancho 3. El ancho (dimensión temporal) del filtro suele ser mayor que esto y se ha elegido el valor de 3 para simplificar la ilustración. El ancho del filtro es típicamente aproximadamente el doble de la tasa de diezmado temporal entre la huella fina y la huella basta. Entonces, si la tasa de datos de la huella basta es de una décima parte de la de la huella fina, la tasa de diezmado es 10 y el ancho típico del filtro sería 20, aunque cada filtro puede tener un ancho diferente. Si el ancho es menor que la tasa de diezmado, por ejemplo, 4 en este ejemplo, entonces 6 de cada 10 de los valores de huella fina no tendrían impacto en los valores de huella basta. El filtro tiene un desplazamiento de 8, lo que significa que el filtro 47 se aplica a los elementos de la huella de consulta fina 43 que están a 8 filas de la parte inferior. El filtro 47 se aplica al primer bloque 301 de valores en la huella de consulta fina 43 (correspondiente al punto de tiempo t=1). El tamaño de este bloque 301 hace concordar el del filtro 47, de modo que cada valor en el bloque 301 tiene un coeficiente de filtro correspondiente con el que se multiplica, como se muestra. Los valores multiplicados se suman para obtener el valor 2, que se escribe en el primer elemento del vector 303. En la siguiente etapa, el filtro 47 se mueve a lo largo del eje de tiempo de la huella de consulta fina 43, pero esta vez omitiendo algunos de los elementos de la huella de consulta fina 43. En este ejemplo, el filtro se omite a lo largo de 10 elementos (puntos de tiempo); lo que significa que la huella de consulta basta que se genera tendrá una décima parte de la longitud temporal de la huella de consulta fina 43.
[0122] La Figura 8b ilustra que el siguiente bloque 305 de valores (en el tiempo t=11) en la huella de consulta fina 43 se combina de la misma manera con los coeficientes de filtro para generar el valor -2 que se escribe en el siguiente lugar en el vector 303. Una vez que el filtro 47 se ha escalonado a lo largo de la huella de consulta fina 43 y el vector 303 se ha llenado, el vector 303 se binariza (como se muestra en la Figura 8c) para producir un vector binario 307. Como antes, esta binarización puede realizarse en el momento en que se genera cada valor combinado y a continuación se escribe directamente en el vector binario 307 sin usar el vector 303 (o se escribe directamente en la huella de consulta basta). El vector binario 307 que se produce formará una fila (o una columna) de la huella de consulta basta. El mismo proceso se repite para todos los diferentes filtros 47 en el segundo conjunto 221 de filtros optimizados y los vectores binarios 307 resultantes se concatenan para formar la huella de consulta basta 309 (que se muestra en la Figura 8d). De nuevo, siempre que los vectores binarios 307 se concatenen en el mismo orden que se usó para concatenar los vectores binarios que se generaron para formar las huellas de base de datos basta, entonces el servidor de concordancia de audio 5 puede realizar una concordancia adecuada entre la huella de consulta basta 309 y las huellas de base de datos basta.
[0124] Los inventores han descubierto que la huella basta generada de esta manera sigue siendo lo suficientemente distintiva como para permitir su uso en una búsqueda inicial de la base de datos 15 con el fin de reducir significativamente el número de entradas de la base de datos que deben compararse con la huella de consulta fina. Esto se debe a la orden específica que se realizó para generar la huella de consulta fina. Este ordenamiento significa que hay patrones de bits más grandes (que contienen información) en la huella fina y la información contenida en estos patrones de bits más grandes sobrevive en cierta medida a través del proceso de generación de las huellas bastas correspondientes. Si se usa una huella fina más tradicional (de aspecto aleatorio) (como la huella 43-1 que se muestra en la Figura 6), es probable que el proceso anterior de generación de una huella basta a partir de la huella fina resulte en la pérdida de la mayor parte de la información contenida en la huella fina. Esto significa que la huella basta no será distintiva y, por lo tanto, cuando se compara con otras huellas bastas similares, es probable que muchas se consideren una posible concordancia. Esto puede frustrar el propósito de generar la huella basta, ya que la huella de consulta fina aún tendrá que concordar con una gran cantidad de entradas de base de datos potencialmente concordantes.
[0126] Unidad de concordancia de huellas bastas
[0128] Una vez que se ha generado la huella de consulta basta 309, la unidad de concordancia de huellas bastas 217 compara la huella de consulta basta 309 con las huellas de base de datos bastas almacenadas en la base de datos 15 para identificar un subconjunto de las entradas de base de datos que puede ser una posible concordancia.
[0130] [0050]La Figura 9 ilustra la estructura general de las entradas de la base de datos 320. Cada entrada tiene un identificador - DB n.º 1 para la primera entrada, DB n.º 2 para la segunda entrada, etc. Como se muestra en la Figura 9, hay D entradas en la base de datos 15. El valor de D puede ser muy grande dependiendo de la aplicación. Si el sistema de concordancia de audio es para su uso en un tipo de servicio "Shazam<®>", entonces D puede ser del orden de 10 a 20 millones. Sin embargo, si el sistema de concordancia de audio es parte de un sistema de estudio de audiencia que está diseñado para identificar el programa y el canal que el usuario está viendo, entonces el número de entradas (D) será mucho menor, aunque los clips de audio (o al menos las huellas que los representan) almacenados en la base de datos 15 serán mucho más largos. Por ejemplo, un sistema diseñado para monitorear las transmisiones de televisión realizadas durante los 30 días anteriores en 1000 canales de televisión contendrá aproximadamente 720000 horas de contenido, lo que es equivalente en tamaño a un sistema tipo Shazam<®>con 10 millones de
canciones.
[0131] Como se muestra en la Figura 9, cada entrada generalmente incluirá:
[0132] - el contenido de audio y/o vídeo 321 (aunque esto no es estrictamente necesario);
[0133] - metadatos 322 para ese contenido (como el nombre de la canción, artista, programa de televisión, canal de televisión, hora de emisión, director, etc.);
[0134] - una huella de base de datos fina 323 que se genera a partir del audio en el contenido de la misma manera que se genera la huella de consulta fina 43;
[0135] - una huella de base de datos basta 325 para el audio en el contenido que se genera a partir de la huella fina 323 de la misma manera que la huella de consulta basta 309 se generó a partir de la huella de consulta fina 43 (como se explicó anteriormente);
[0136] - los enlaces 327 y otra información relacionada con el contenido de audio y/o vídeo.
[0137] Por lo tanto, una vez que se ha generado la huella de consulta basta 309, la unidad de concordancia de huellas bastas 217 hace concordar (es decir, compara) la huella de consulta basta 309 con la huella de base de datos basta 325 almacenada en cada entrada 320 de la base de datos 15; para identificar una serie de posibles entradas concordantes. Este proceso de concordancia se ilustra en la Figura 10. En particular, la Figura 10a ilustra todas las huellas de base de datos bastas 325. La huella de base de datos basta para la primera entrada de la base de datos está etiquetada como 325-DB n.º 1, la huella de base de datos basta para la segunda entrada de la base de datos está etiquetada como 325-DB n.º 2, la huella de base de datos basta para la tercera entrada de la base de datos está etiquetada como 325-DB n.º 3, etc. La Figura 10a ilustra que estas huellas de base de datos bastas 325 tienen diferentes longitudes temporales. Esto se debe a que generalmente se generan a partir de contenido de audio que tiene diferentes duraciones.
[0138] La Figura 10a también ilustra la huella de consulta basta 309 que va a compararse con cada una de estas huellas de base de datos bastas 325. Típicamente (y como se muestra en la Figura 10a), la huella de consulta basta 309 tiene una duración mucho más corta que las huellas de base de datos bastas 325. Para hacer concordar la huella de consulta basta 309 con una huella de base de datos basta 325, la huella de consulta basta 309 se "avanza" a lo largo de la huella de base de datos basta 325 más larga de principio a fin. En cada etapa, se realiza una comparación por bits entre los bits en la huella de consulta basta 309 y los bits en una parte de tamaño correspondiente de la huella de base de datos basta 325. Como es bien sabido, esta comparación por bits puede realizarse usando un tipo de combinación XOR de los bits de las dos huellas, lo que resulta en un recuento del número de diferencias de bits entre las dos. Por lo tanto, este recuento representa la similitud entre la huella de consulta basta 309 y la parte actual de la huella de base de datos basta 325. La huella de consulta basta 309 se escalona a lo largo del eje temporal y se compara de una manera similar con la siguiente parte de la huella de base de datos basta 325. Por lo general, la huella de consulta basta 309 se desplaza a lo largo de un punto de tiempo a la vez en la huella de base de datos basta 325.
[0139] En esta realización, la comparación por bits considera el porcentaje de bits no concordantes. Por lo tanto, si no hay una concordancia, entonces el porcentaje esperado de bits no concordantes debe ser de alrededor del 50 % (o 0,5). Si hay una concordancia, entonces el porcentaje esperado de bits no concordantes debe ser cercano a cero. La Figura 10b ilustra el resultado de este proceso de concordancia cuando la huella de consulta basta 309 no hace concordar ninguna parte de una huella de base de datos basta 325; y la Figura 10c ilustra el resultado de este proceso de concordancia cuando la huella de consulta basta 309 hace concordar una parte de la huella de base de datos basta 325 (identificada por el pico 326 en el porcentaje de bits no concordantes). Por lo tanto, si la huella de consulta basta 309 es concordante o no con una parte de la huella de base de datos basta 325 se determina comparando los porcentajes calculados con un nivel de umbral (por ejemplo, 10 %). Por lo tanto, si el porcentaje de bits no concordantes cae por debajo de este umbral, entonces hay una concordancia, si no lo hace, entonces no hay concordancia. Como apreciarán los expertos en la materia, podrían usarse otras métricas de puntuación en su lugar.
[0140] El resultado de comparación para la comparación entre la huella de consulta basta 309 y las huellas de base de datos bastas 325 incluye una lista de entradas de base de datos 320 que podrían concordar con la huella de consulta basta 309. En la Figura 10a, esta lista de posibles entradas concordantes incluye las entradas DB n.º 10, DB n.º 15, DB n.º 260 y DB n.º 500. Los resultados de comparación también pueden incluir opcionalmente información de tiempo que identifica qué parte(s) dentro de la huella de base de datos basta 325 es concordante con la huella de consulta basta 309. Por lo tanto, por ejemplo, en la concordancia mostrada en la Figura 10c, la información de tiempo puede indicar que la concordancia se encontró alrededor de 135 segundos desde el inicio de la canción representada por la huella de la base de datos basta 325. Si se proporciona, esta información de tiempo puede usarse para reducir aún más la comparación entre la huella de consulta fina 43 y las huellas de base de datos finas 323 correspondientes.Unidad de concordancia de huellas finas
[0141] [0056]Los resultados de comparación obtenidos de la unidad de concordancia de huellas bastas 217 se pasan a continuación a la unidad de concordancia de huellas finas 219 que usa esta información para restringir la operación
de concordancia que realiza entre la huella de consulta fina 43 y las huellas de base de datos finas 323. En particular, la unidad de concordancia de huellas finas 219 usa la lista de posibles entradas de concordancia de modo que las comparaciones de huellas finas se restringen solo a las huellas finas en las entradas de base de datos identificadas en esta lista de posibles entradas de concordancia. Además, si los resultados de la comparación incluyen información de tiempo que indica el tiempo dentro del contenido de audio donde se encontró la concordancia en la huella de base de datos basta 325, entonces la unidad de concordancia de huellas finas 219 usa esta información de tiempo para restringir la comparación entre la huella de consulta fina 43 y la huella de base de datos fina 323 correspondiente a alrededor de este tiempo. Entonces, por ejemplo, si la concordancia se encontró a 135 segundos desde el inicio de la huella basta 325, entonces la unidad de concordancia fina 219 puede restringir el proceso de concordancia de modo que la huella de consulta fina 43 solo coincida con las partes de la huella de base de datos fina entre los tiempos 130 y 145 segundos desde el inicio.
[0143] La Figura 11 ilustra el proceso de concordancia que se realiza entre la huella de consulta fina 43 y cada una de las huellas de base de datos finas 323-DB n.º 10, 323-DB n.º 15, 323-DB n.º 260 y 323-DB n.º 500 (cuando dicha información de tiempo no está disponible). Como se ilustra mediante la flecha 313, el proceso de concordancia pasa la huella de consulta fina 43 a lo largo de cada una de estas huellas de base de datos fina, de la misma manera que la huella de consulta basta 309 se pasó a lo largo de las huellas de base de datos bastas 325. En cada etapa, se realiza una comparación similar por bits entre la huella de consulta fina 43 y la parte correspondiente de la huella de base de datos fina 323 para determinar el porcentaje de bits no concordantes. La unidad de concordancia de huellas finas 219 usa el porcentaje determinado de bits no concordantes para determinar si hay una concordancia, de nuevo comparando el porcentaje determinado de bits no concordantes con un umbral. Si la unidad de concordancia de huellas finas 219 identifica una única entrada de base de datos como una concordancia, entonces informa el identificador para la entrada de base de datos concordante (por ejemplo, DB n.º 260) a la unidad de informe de respuesta de concordancia 220. Sin embargo, si la unidad de concordancia de huellas finas 219 identifica más de una concordancia posible, entonces compara el porcentaje de bits no concordantes para cada concordancia sospechosa para identificar qué entrada de base de datos tiene el porcentaje más pequeño de bits no concordantes; y a continuación informa este como el resultado de la concordancia a la unidad de informe de respuesta de concordancia 220. Si, por otro lado, ninguna de las huellas de base de datos finas que posiblemente concuerden concuerda realmente con la huella de consulta fina 43, entonces la unidad de concordancia de huellas finas 219 puede devolver un resultado "nulo" a la unidad de informe de respuesta de concordancia 220 o puede realizar una concordancia completa entre la huella de consulta fina 43 y todas las demás huellas de base de datos fina 323 que se excluyeron del proceso de concordancia fina original debido a los resultados del proceso de concordancia basta.
[0145] Unidad de informe de respuesta de concordancia
[0147] La unidad de informe de respuesta de concordancia 220 recibe un informe "nulo" o el identificador para la entrada de base de datos 320 que hace concordar la huella de consulta fina. Si se recibe un informe "nulo", entonces la unidad de informe de respuesta de concordancia 220 devuelve una respuesta "nula" al dispositivo de usuario 1. Si se recibe un identificador de base de datos, entonces la unidad de informe de respuesta de concordancia 220 recupera información relevante de la entrada de base de datos 320 correspondiente. La información recuperada puede incluir los metadatos almacenados 322 y/o enlaces almacenados 327 de la entrada de base de datos 320 identificada. Esta información se devuelve al dispositivo de usuario 1 en un mensaje de respuesta de concordancia 46.
[0149] Entrenamiento
[0151] Identificación del primer conjunto optimizado de filtros
[0153] La descripción anterior describe el funcionamiento de un sistema de concordancia de audio que usa huellas de audio para identificar el audio capturado. Con el fin de generar la huella fina 43, se aplicó un primer conjunto 45 de filtros optimizados al espectrograma 35 del audio capturado. La forma en que se determina este primer conjunto 45 de filtros optimizados se explicará ahora. Este proceso ocurre de antemano durante una rutina de entrenamiento.
[0155] Como se discutió anteriormente con referencia a la Figura 5a, en esta realización, hay cinco tipos diferentes de filtro 47 que pueden usarse. Cada filtro 47 puede variar en altura y ancho. En el ejemplo de sistema explicado anteriormente, el espectrograma 35 tenía treinta y dos subbandas de frecuencia, por lo que la altura puede tener un valor de 1 a 32. Si bien el ancho podría ser, en teoría, cualquier valor hasta la longitud total del espectrograma 35, por simplicidad, también se permite que el ancho tenga un valor entre 1 y 32. Es posible aplicar cada filtro 47 en cualquier parte del espectrograma 35, es decir, puede tener cualquier valor de compensación entre 1 y 31. Tener en cuenta, sin embargo, que algunos filtros siempre deben tener un ancho que sea un múltiplo de dos, y algunos deben tener un ancho que sea un múltiplo de tres para garantizar la simetría. Además, un filtro que tenga un valor de desplazamiento de 10 solo puede tener, como máximo, una altura de 22. Teniendo en cuenta todas estas limitaciones, el número total de filtros posibles (N<f>) es 3x16x8x32 2x10x6x32=16128 filtros. El proceso de entrenamiento descrito a continuación permite identificar un conjunto (combinación) óptimo de filtros 47 sin tener que considerar todas las combinaciones posibles (16128<32>= 4x10<134>combinaciones).
[0156] La Figura 12 ilustra parte del proceso de entrenamiento. Como se muestra, el proceso usa una base de datos 351 de clips de audio originales y una base de datos 353 de clips de audio distorsionados. Los clips de audio distorsionados en la base de datos 353 son versiones distorsionadas de los clips de audio originales en la base de datos 351. Las distorsiones incluyen las que normalmente se encuentran a través de la transmisión de los clips de audio originales a través de un canal de comunicaciones (que incluye un canal acústico). Por lo tanto, la versión distorsionada podría representar el audio después de que se haya emitido como una señal de sonido y haya sido captada por el micrófono de un dispositivo de usuario. Como se describirá a continuación, el proceso de entrenamiento aplica cada uno de los aproximadamente 16.000 filtros posibles 47 a un conjunto de pares concordantes de las bases de datos 351 y 353 y también a un conjunto de pares no concordantes de las bases de datos 351 y 353 y usa los resultados para identificar un conjunto óptimo de filtros que generarán huellas distintivas.
[0158] La Figura 12a ilustra la parte inicial del proceso de entrenamiento donde un filtro actual en consideración (filtro F(i)) se aplica a un par de clips de audio concordantes y la Figura 12b ilustra el mismo proceso, pero cuando el filtro (F(i)) en consideración se aplica a un par de clips de audio no concordantes. En este contexto, un par concordante de clips de audio incluye el clip de audio original de la base de datos 351 y la versión distorsionada correspondiente de ese clip de audio original de la base de datos 353; y un par de clips de audio no concordantes incluye un clip de audio original de la base de datos 353 y una versión distorsionada de un clip de audio original diferente de la base de datos 353.
[0160] Con referencia a la Figura 12a, en la etapa s1, el clip de audio original se lee de la base de datos 351 y en la etapa s3 el clip de audio distorsionado (concordante) correspondiente se lee de la base de datos 353. En la etapa s5 se determina un espectrograma 357 para el clip de audio original y en la etapa s7 se determina un espectrograma 359 para el clip de audio distorsionado. Estos espectrogramas se determinan de la manera descrita anteriormente con referencia a la Figura 4. En la etapa s9, el filtro actual en consideración (F(i)) se aplica al espectrograma 357 y el resultado se binariza para generar el vector binario 361. De manera similar, en la etapa s11 se aplica el mismo filtro (F(i)) al espectrograma 359 y el resultado se binariza para generar el vector binario 363. En la etapa s13, se realiza una comparación por bits entre los vectores 361 y 363 para determinar el número de bits no concordantes. Esto puede lograrse usando una simple comparación XOR entre los dos vectores. En la etapa s15, el número determinado de bits no concordantes se normaliza mediante la longitud del espectrograma (Length, L), para tener en cuenta las diferentes longitudes de los pares concordantes de clips de audio almacenados en las bases de datos 351 y 353, para generar un valor B<M>(i) que define efectivamente el porcentaje de bits no concordantes (es decir, la tasa de error de bits) entre el par concordante de clips de audio.
[0162] Como puede observarse a partir de la Figura 12b, se lleva a cabo un proceso muy similar para un par de clips de audio no concordantes tomados de las bases de datos 351 y 353. En la etapa s21, se lee un clip de audio original de la base de datos 351 y en la etapa s23 se lee un clip de audio distorsionado no concordante de la base de datos 353. Si los dos clips de audio no concordantes tienen duraciones diferentes, entonces la duración del clip más largo puede truncarse para que coincida con la del clip más corto. En la etapa s25 se determina un espectrograma 365 para el clip de audio original y en la etapa s27 se determina un espectrograma 367 para el clip de audio distorsionado no concordante. Estos espectrogramas se determinan de la manera descrita anteriormente con referencia a la Figura 4. En la etapa s29, el filtro en consideración (F(i)) se aplica al espectrograma 365 y el resultado se binariza para generar el vector binario 369. De manera similar, en la etapa s31 se aplica el mismo filtro (F(i)) al espectrograma 367 y el resultado se binariza para generar el vector binario 371. En la etapa s33, se realiza una comparación por bits entre los vectores 369 y 371 para determinar el número de bits no concordantes. Como antes, esto puede lograrse usando una simple comparación XOR entre los dos vectores. En la etapa s35, el número determinado de bits no concordantes se normaliza por la longitud del espectrograma (Length, L), para tener en cuenta las diferentes longitudes de los pares concordantes de clips de audio almacenados en las bases de datos 351 y 353, para generar un valor B<N>(i) que define efectivamente el porcentaje de bits no concordantes (es decir, la tasa de error de bits) para el par no concordante de clips de audio.
[0164] El proceso ilustrado en la Figura 12a se lleva a cabo usando el mismo filtro (F(i)) en cada uno de un número (N<M>- por ejemplo 100) de pares concordantes de clips de audio; y el proceso ilustrado en la Figura 12b se lleva a cabo usando el mismo filtro (F(i)) en cada uno de un número (N<N>- que también puede ser 100) de pares no concordantes de clips de audio. Si los valores de N<M>así obtenidos para B<M>(i) y los valores de N<N>así obtenidos para B<N>(i) se representan en un histograma, cada uno de ellos exhibirá una distribución normal que se caracteriza por un valor medio y una varianza. Si el filtro actual en consideración es un buen candidato de filtro, entonces la distribución para los pares concordantes y la distribución para los pares no concordantes deben estar bastante bien separadas entre sí, como los ejemplos de distribuciones 401 y 403 que se muestran en la Figura 13a. La distribución 401 es la distribución obtenida para los pares concordantes y la distribución 403 es la distribución para los pares no concordantes. Mientras que, si el filtro en consideración es un candidato deficiente, entonces la distribución para los pares concordantes y la distribución para los pares no concordantes estarán más cerca entre sí y posiblemente se superpondrán, como los ejemplos de distribuciones 405 y 407 que se muestran en la Figura 13b.
[0166] [0066]Desafortunadamente, no es posible determinar solo las distribuciones para todos los 16000 filtros posibles y a continuación elegir los que tienen la mejor discriminación (separación entre las distribuciones
concordantes y no concordantes y las varianzas más pequeñas, etc.), ya que muchos de los filtros aislarán efectivamente el mismo rasgo característico en la señal de audio. Es decir, muchas de las distribuciones de los diferentes filtros estarán altamente correlacionadas entre sí. Es posible identificar estas correlaciones observando la covarianza entre las distribuciones de filtros y usar esta información en un proceso de optimización para encontrar la combinación óptima de filtros. El objetivo de esa optimización puede ser minimizar la posibilidad de "falsos positivos" (declarar falsamente un par como "concordante") y minimizar la posibilidad de falsos negativos (declarar falsamente un par como "no concordante"), cuando la huella generada se compara con las huellas de la base de datos. Estas son demandas contradictorias ya que, en general, reducir la posibilidad de falsos positivos aumenta la posibilidad de falsos negativos. Para abordar esto, podemos definir una cierta tasa aceptada de falsos positivos (P<FP,aceptar>) y a continuación, sujeto a esta restricción, podemos encontrar el conjunto óptimo de filtros que minimice la tasa de falsos negativos.
[0168] Para calcular P<FP,aceptar>, tener en cuenta que la distribución resultante de un conjunto de filtros es la suma de distribuciones normales y, por lo tanto, una distribución normal en sí misma. Por lo tanto, si las distribuciones para los pares concordantes y no concordantes están bien separadas (como la que se muestra en la Figura 13a), entonces puede definirse un umbral (γ) entre las dos distribuciones que puede usarse para definir si un par de clips de audio son concordantes o no concordantes. En particular, para un par dado de clips de audio, si la tasa de error de bits entre ellos es menor que el umbral (es decir, B<γ), entonces puede suponerse que el par es un par concordante; mientras que si la tasa de error de bits determinada está por encima del umbral (es decir, B>γ), entonces puede suponerse que el par es un par no concordante.
[0170] La posibilidad de un falso positivo se basa en la posibilidad de que la tasa de error de bits de un par no concordante caiga por debajo del umbral (γ), que, para una distribución normal, viene dada por:
[0173]
[0176] Donde µ<N>es la tasa media de error de bits para un par de huellas no concordantes, σ<N>es la desviación estándar de la tasa de error de bits para un par de huellas no concordantes y erfc es la función de error complementaria estándar.
[0178] Cuando una huella se compara con una gran base de datos de huellas, la probabilidad de un falso positivo depende del tamaño de la base de datos (D) y puede aproximarse como:
[0181]
[0184] que se establece en la tasa de aceptación. Esta ecuación puede invertirse para encontrar el valor umbral correspondiente que logrará esta tasa aceptada de falsos positivos:
[0187]
[0190] Por consiguiente, la tasa de falsos negativos ahora puede minimizarse (para maximizar así la tasa de reconocimiento), minimizando la posibilidad de un falso negativo, dado que el umbral se establece como se indicó anteriormente. El resultado es:
[0193]
[0196] Donde μ<M>es la tasa media de error de bits para un par de huellas concordantes, σ<M>es la desviación estándar de la tasa de error de bits para un par de huellas concordantes, μ<N>es la tasa media de error de bits para un par de huellas no concordantes, σ<N>es la desviación estándar de la tasa de error de bits para un par de huellas no concordantes y erfc es la función de error complementaria estándar.
[0198] Dado que la función de error complementario es una función monótonamente decreciente, minimizar la posibilidad de un falso negativo, es decir, minimizar la función anterior, es equivalente a maximizar el argumento de la función de error complementario, aquí llamada la primera 'Puntuación';S(1)
:
[0199]
[0202] Por lo tanto, el objetivo del proceso de optimización es encontrar el conjunto 45 de filtros con parámetros agregados(μM, μN, σM, σN)que dan como resultado la puntuación más altaS(1)
.
[0203] Estos parámetros agregados sobre el conjunto 45 de filtros están relacionados con los parámetros individuales de los filtros individuales en el conjunto 45 de la siguiente manera:
[0206]
[0208] Donde n es el número de filtros en el conjunto 45. La varianza agregada (cuadrado de la desviación estándar) se convierte en una combinación de las varianzas de los filtros individuales que pertenecen al conjunto 45, así como la covarianza entre pares de filtros en el conjunto 45, de la siguiente manera:
[0211]
[0214] Donde COV<(l,k)>es la covarianza entre el filtro 1 y el filtro k.
[0215] Las medias y las varianzas para los filtros individuales para los pares concordantes y no concordantes de los clips de audio pueden determinarse a partir del proceso de entrenamiento analizado anteriormente con referencia a las Figuras 12a y 12b. En particular, la tasa media de error de bits para los N<M>pares concordantes de clips de audio y la tasa media de error de bits para los N<N>pares no concordantes de clips de audio para cada filtro (i) pueden determinarse de la siguiente manera:
[0218]
[0220] Y las varianzas correspondientes de:
[0223]
[0226] Asimismo, el valor de covarianza
entre dos filtros (i y j) para pares concordantes de clips de audio puede determinarse a partir de:
[0227]
[0230] Y el valor de covarianza
entre dos filtros (i y j) para pares de clips de audio no concordantes puede determinarse a partir de:
[0233]
[0236] Esto implica el cálculo y almacenamiento deNf(el número de filtros considerados, que como se ha analizado anteriormente es aproximadamente 16.000) valores de (μ<M>(i), σ<M>(i)); valores deNfde (μ<N>(i), σ<N>(i)); y (la parte dominante) 2(Nf)2
valores de covarianza. A partir de estos valores, es posible calcular la puntuación anterior S<(1)>para cualquier combinación de filtros.
[0238] No es práctico calcular esta puntuación para cada combinación de n filtros de este conjunto de 16000 filtros posibles; el número de combinaciones lo prohíbe. Sin embargo, es posible usar una técnica de programación dinámica para dividir este problema en un problema de búsqueda de ruta iterativa a través de una estructura en celosía de nodos que se propaga y puntúa las rutas a través de la estructura en celosía de nodos. Esto significa que la ruta óptima puede encontrarse a través de la estructura en celosía sin tener que considerar y puntuar todas las rutas.
[0240] Dicha estructura en celosía 409 se ilustra en la Figura 14. En particular, los filtros N<f>están ordenados verticalmente y representados por un nodo 411 respectivo en la columna izquierda de la estructura en celosía 409. Esta columna de nodos 411 se repite n veces para que haya n columnas de nodos 411, donde n es el tamaño del conjunto de filtros a crear. Tal como se analizó anteriormente, en esta realización, n se establece en el valor 32 ya que esto facilita el cálculo usando una unidad de procesamiento central (Central Processing Unit,CPU) de 32 bits o 64 bits. Las conexiones (bordes) de cada nodo en la columna de la izquierda a cada nodo en la siguiente columna se realizan y califican usando la puntuación anterior (S<(1)>) que debe maximizarse. A continuación, se repite el mismo proceso con conexiones que se realizan desde la segunda columna a la tercera columna y se calculan nuevas puntuaciones. Dado que la única dirección permitida a través de la estructura en celosía es de izquierda a derecha, las mejores rutas de puntuación en cualquier columna pueden usarse para determinar las mejores rutas de puntuación en la siguiente columna. Esto significa que no deben considerarse todas las combinaciones posibles de filtros, ya que la mejor solución puede construirse de manera iterativa. Una vez que este proceso ha alcanzado la columna de la derecha, la ruta que tiene la puntuación máxima S<(1)>a través de la estructura en celosía 409 identifica el conjunto óptimo 45 de filtros. Por ejemplo, la trayectoria que tiene la puntuación máxima S<(1)>se ilustra como la trayectoria 415 que se muestra en negrita en la Figura 14. Esta ruta comienza en el nodo correspondiente al filtro F(2), a continuación, atraviesa el nodo correspondiente al filtro F(3) y a continuación a F(1), F(4) y F(6); y finalmente terminando en el nodo F(7). Estos son los filtros 47 que forman el primer conjunto optimizado 45 de filtros usados por la unidad de generación de huellas 41.
[0242] Una de las ventajas de usar una técnica de programación dinámica para encontrar la mejor ruta a través de la estructura en celosía es que las puntuaciones de cada ruta pueden acumularse durante el proceso de recorrido de la ruta. Específicamente, considerando la instancia donde una ruta candidata termina actualmente en el nodoqen el número de columnaKen la estructura en celosía (es decir, se han seleccionado filtrosKhasta ahora), que representa un conjunto de filtrosI= 1, 2, ...K.En este caso, tener en cuenta que las medias agregadasµMyμNpueden actualizarse hacia el nodoren la columnaK+1,al añadir las medias del nodor, µM(r) y,μN(r), es decir:
[0245]
[0248] donde son las medias agregadas en el nodoq,combinando filtrosl= 1, 2,...K(es decir, en la columnaK)y y son las medias agregadas en el nodor.Del mismo modo, las varianzas (σM)<2>y(σN)2pueden actualizarse de la columnaKa la columnaK+1de la siguiente manera:
[0249]
[0251] donde debe tenerse en cuenta la covarianza del filtro añadido en el nodorcon todos los filtros anteriores en la ruta. A continuación, las métricas actualizadas pueden usarse para recalcular la puntuaciónSen el nodor.
[0252] Como apreciarán los expertos en la materia, la estructura en celosía 409 ilustrada en la Figura 14 es una representación gráfica que facilita la comprensión de los cálculos de programación dinámica que realizará el ordenador de entrenamiento (que puede ser un ordenador de entrenamiento dedicado o, en algunos casos, puede ser el servidor de concordancia de audio 5) durante el proceso de entrenamiento anterior. Los cálculos reales se realizarán con estructuras de datos adecuadas dentro de la memoria del ordenador de entrenamiento. El conjunto optimizado 45 resultante de filtros se proporcionará a los dispositivos de usuario 1 para que puedan generar las huellas finas 43. También serán usados por el ordenador de entrenamiento (o por el servidor de concordancia de audio 5) para generar las huellas de base de datos finas 323.
[0253] Identificación del segundo conjunto optimizado de filtros
[0254] Como se comentó anteriormente, para que pueda generarse una huella basta 309 significativa a partir de la huella fina 43, las filas (o columnas) de la huella fina 43 deben ordenarse de modo que haya cierto nivel de coherencia en la huella fina, es decir, los filtros que tienden a producir resultados similares se ordenan uno al lado del otro. De esta manera, los filtros que generalmente están correlacionados entre sí están uno al lado del otro. Esto da como resultado una huella fina 43 que es menos aleatoria en apariencia, es decir, que tiene áreas más grandes del mismo valor binario (como se ilustra en la huella 43-2 que se muestra en la Figura 6).
[0255] Como se comentó anteriormente, los valores de covarianza que se determinan para dos filtros proporcionan información sobre la correlación entre los dos filtros. Por lo tanto, podemos determinar el orden de los filtros según los valores de covarianza calculados para los n filtros en el conjunto optimizado 45 de filtros. Esto puede lograrse, por ejemplo, usando una ordenación de Cuthill-McKee inversa en los valores de covarianza más grandes para los n filtros. La información de orden determinada también se proporciona a los dispositivos de usuario 1 con el primer conjunto optimizado 45 de filtros.
[0256] A continuación, puede aplicarse un proceso de entrenamiento similar para determinar el segundo conjunto 221 de filtros optimizados. La principal diferencia entre este proceso de entrenamiento y el proceso de entrenamiento discutido anteriormente es que los filtros se aplican a las huellas finas que se obtienen para los pares de clips de audio concordantes y no concordantes. Además, el proceso de optimización tiene un objetivo diferente.
[0257] Las Figuras 15a y 15b ilustran el procesamiento realizado para determinar los valores B<(i)>M
para pares concordantes de clips de audio y los valores B<(i)>N
para pares no concordantes de clips de audio. Como puede observarse comparando la Figura 15 con la Figura 12, después de que los espectrogramas se han calculado en las etapas s5, s7, s25 y s27, las huellas finas 441, 443, 445 y 447 se determinan en las etapas s41, s43, s45 y s47 respectivamente, usando el primer conjunto anterior 45 de filtros optimizados y usando la información de orden para definir cómo se forman las huellas finas. El filtro actual bajo prueba (F(i)) se aplica a las huellas finas y la comparación bit a bit se realiza como antes para determinar B<M>(i) y B<N>(i).
[0258] El objetivo de optimización para determinar el segundo conjunto 221 de filtros es encontrar los filtros que darán como resultado un subconjunto mínimo de posibles entradas de base de datos concordantes, sin excluir la entrada correcta en la base de datos 15 - lo que reducirá el número de comparaciones requeridas de la huella fina 43. Las entradas de la base de datos que deben buscarse con más detalle (es decir, aquellas para las que se realizará una comparación entre huellas finas) son aquellas que caen por debajo de algún segundo umbral γ<(2)>(que será diferente del umbral y usado anteriormente). El número esperado (N<r>) de entradas de base de datos por debajo del umbral viene dado por:
[0261]
[0263] donde todos los parámetros son representativos de las huellas bastas y no de las huellas finas, como lo indica el superíndice (2). Para cuantificarNr,debe establecerse el umbral γ<(2)>. Este umbral se establece definiendo una
probabilidad aceptable (P<aceptar>) de un falso negativo (clasificado falsamente una huella concordante como una huella no concordante) de:
[0266]
[0269] Esta ecuación puede invertirse para obtener:
[0272]
[0275] que proporciona el umbral γ<(2)>para una tasa de falsos negativos aceptable dada. Insertar este umbral en la ecuación para el número esperado (N<r>) de entradas de base de datos por debajo del umbral produce:
[0278]
[0281] Para minimizar este número, debemos encontrar la combinación de filtros que maximice el argumento de esta función de error complementaria. Así, la puntuación a maximizar en este segundo proceso de optimización viene dada por:
[0284]
[0287] Una vez más, la tarea es encontrar la combinación de filtros que maximice esta puntuación; donde la media agregada y las varianzas (μ<(2)>N
, μ(2)<M>, σ(2)<N>y σ(2)<M>) para cualquier combinación de filtros pueden calcularse usando las medias, varianzas y covarianzas determinadas para cada filtro de la combinación durante el proceso de entrenamiento ilustrado en la Figura 15. En otras palabras, estos parámetros agregados están relacionados con los parámetros individuales de los filtros individuales en el conjunto de la siguiente manera:
[0290]
[0293] Donde n es el número de filtros en el segundo conjunto 221 de filtros optimizados. La varianza agregada (cuadrado de la desviación estándar) se convierte en una combinación de las varianzas de los filtros individuales que pertenecen al conjunto 221, así como la covarianza entre pares de filtros, de la siguiente manera:
[0296]
[0299] Donde COV<(2)(l,k)>es la covarianza entre el filtro l y el filtro k.
[0301] [0097]Las medias, varianzas y covarianzas para filtros individuales para pares de clips de audio concordantes y no concordantes se determinan a partir del proceso de entrenamiento analizado anteriormente con referencia a las
Figuras 15a y 15b. En particular, la tasa media de error de bits para los N<M>pares concordantes de clips de audio y la tasa media de error de bits para los N<N>pares no concordantes de clips de audio para cada filtro (i) se determinan de la siguiente manera:
[0304]
[0307] Y las varianzas correspondientes de:
[0309]
[0312] Asimismo, el valor de covarianza (
) entre dos filtros (i y j) para pares concordantes de clips de audio puede determinarse a partir de:
[0315]
[0318] Y el valor de covarianza (
) entre dos filtros (i y j) para pares de clips de audio no concordantes puede determinarse a partir de:
[0321]
[0324] Como antes, no es práctico calcular la puntuación anterior (S<(2)>) para cada combinación posible de n filtros del conjunto de 16.000 filtros posibles: el número de combinaciones posibles es demasiado grande. Sin embargo, como antes, podemos usar la Programación Dinámica para encontrar la ruta que tenga la puntuación máxima (S<(2)>) usando la estructura en celosía 409 y las técnicas de propagación de ruta analizadas anteriormente. Este procedimiento de programación dinámica identificará la mejor ruta a través de la estructura en celosía 409, que a su vez identifica la mejor combinación de filtros para formar el segundo conjunto 221 de filtros optimizados que usa el servidor de concordancia de audio 5 para generar las huellas bastas a partir de huellas finas.
[0326] Como antes, la puntuación de la ruta puede acumularse durante la propagación de la ruta de programación dinámica para encontrar la mejor ruta a través de la estructura en celosía, por lo que no es necesario volver a calcular la puntuación S<(2)>cada vez que se añade un nuevo nodo (filtro) a una ruta candidata. En cambio, la puntuación se actualiza usando las estadísticas individuales para el filtro asociado con el nuevo nodor,columnaK+1,cuando proviene del nodoqen el número de columnaKcomo antes:
[0329]
[0330] donde
son las medias agregadas en el nodoqy
son las medias agregadas en el nodor.Del mismo modo, las varianzas
y
pueden actualizarse de la columnaKa la columnaK+1de la siguiente manera:
[0333]
[0336] A continuación, las métricas actualizadas pueden usarse para recalcular la puntuaciónS(2)
en el nodor.
[0337] Modificaciones y realizaciones adicionales
[0338] Se ha descrito anteriormente una realización que ilustra la forma en que pueden crearse huellas para la identificación de una señal de audio en una base de datos de audio. Como bien saben los expertos en la materia, pueden realizarse diversas modificaciones y mejoras a la configuración anterior, y algunas de estas modificaciones se describirán a continuación.
[0339] En la realización anterior, el dispositivo de usuario generó una huella fina que transmitió al servidor de concordancia de audio que generó una huella basta a partir de la huella fina. En otra realización, el propio dispositivo de usuario puede calcular la huella basta y enviarla junto con la huella fina al servidor de concordancia de audio.
[0340] En las realizaciones anteriores, se generó una huella basta a partir de la huella fina. Esto es particularmente beneficioso en el escenario donde un dispositivo de usuario determina la huella fina y la envía a un servidor remoto para su comparación con las entradas de la base de datos. En otros ejemplos donde el dispositivo de usuario calcula tanto la huella basta como la huella fina, la huella basta puede determinarse a partir del espectrograma del audio capturado en lugar de a partir de la huella fina. En este caso, el segundo conjunto 221 de filtros optimizados se entrenaría usando la segunda puntuación descrita anteriormente, pero según vectores binarizados obtenidos aplicando los filtros al espectrograma en lugar de a la huella fina. Este también sería el caso si el dispositivo de usuario transmitiera la huella fina y el espectrograma al servidor remoto, que a continuación calculó la huella basta a partir del espectrograma recibido. Sin embargo, esta última posibilidad no se prefiere, ya que requiere que el espectrograma (que es una gran estructura de datos) se transmita desde el dispositivo de usuario al servidor.
[0341] En las realizaciones anteriores, el dispositivo de usuario o el servidor de concordancia de audio generaron una huella basta a partir de una huella fina usando un conjunto de filtros optimizados que se aplican a la huella fina. En otros ejemplos, la huella basta podría generarse simplemente submuestreando la huella fina o promediando la huella fina. Sin embargo, se prefiere aplicar el segundo conjunto de filtros optimizados descrito con anterioridad a la huella fina, ya que se ha descubierto que la huella basta resultante es mejor para minimizar el número de entradas de la base de datos que se encuentra que posiblemente son concordantes mientras se minimizan los falsos positivos y falsos negativos.
[0342] En realizaciones donde el tamaño de la base de datos es relativamente pequeño, el servidor de concordancia de audio y la base de datos pueden formar parte del propio dispositivo de usuario. En este caso, no es necesario que el dispositivo de usuario transmita ningún dato de huella a través de la red de telecomunicaciones o de la red informática. Estos datos simplemente se enviarían entre los diferentes componentes de software que se ejecutan en el dispositivo de usuario (aunque cualquier resultado de la concordancia puede transmitirse a través de la red a un servidor).
[0343] [0109]Las Figuras 12 y 15 ilustran dos bases de datos, una para muestras de audio originales y la otra para versiones distorsionadas de las muestras de audio. Como apreciarán los expertos en la materia, todas estas muestras de audio pueden almacenarse en una sola base de datos en lugar de en dos bases de datos separadas. De manera similar, estas figuras ilustran que los espectrogramas se determinan para cada muestra de audio en un par concordante y para cada muestra de audio en un par no concordante. Como apreciarán los expertos en la materia, las mismas muestras de audio pueden incluirse en un par de muestras de audio concordantes y en un par de muestras de audio no concordantes. En este caso claramente no es necesario determinar el espectrograma para la misma
muestra de audio dos veces. Es decir, el proceso de optimización solo necesita determinar el espectrograma para cada muestra de audio en la base de datos y a continuación aplicar cada filtro a cada espectrograma.
[0344] En las realizaciones anteriores, el proceso de optimización estableció una tasa de falsos positivos aceptable y a continuación encontró el conjunto de filtros que minimizaban la tasa de falsos negativos. En otra realización, el proceso de optimización puede establecer una tasa de falsos negativos aceptable y a continuación encontrar el conjunto de filtros que minimiza la tasa de falsos positivos. En una realización adicional, el proceso de optimización puede establecer una tasa de falsos positivos aceptable y una tasa de falsos negativos aceptable y a continuación encontrar el conjunto de filtros que minimiza alguna otra función de coste.
[0345] En la realización anterior, los procesos de programación dinámica seleccionaron la ruta a través de la estructura en celosía 409 que tiene la puntuación más alta. Como apreciarán los expertos en la materia, la mejor ruta u óptima que se elija no tiene que ser la que tenga la puntuación más alta; por ejemplo, podría usarse en su lugar la ruta que tenga la segunda puntuación más alta o la tercera puntuación más alta.
[0346] En la realización anterior, un dispositivo de usuario capturó sonidos usando un micrófono y las muestras de audio se procesaron usando una aplicación de software almacenada en el dispositivo de usuario. Como apreciarán los expertos en la materia, parte o la totalidad de este procesamiento puede estar formado por circuitos de hardware dedicados, aunque se prefiere el software debido a su capacidad para añadirse al dispositivo de usuario portátil después de la fabricación y su capacidad para actualizarse una vez cargado. El software para hacer que el dispositivo de usuario portátil funcione de la manera anterior puede proporcionarse como una señal o en un soporte tal como un disco compacto u otro medio de soporte. Adicionalmente, puede usarse una gama de otros dispositivos portátiles, tales como ordenadores portátiles, PDA, tabletas y similares. Del mismo modo, el software que forma parte del servidor de concordancia de audio puede reemplazarse por circuitos de hardware adecuados, como los circuitos integrados específicos de la aplicación.
[0347] Las realizaciones anteriores han descrito un sistema de concordancia de audio basado en huellas. Este sistema también puede usarse junto con un sistema de concordancia de audio de tipo marca de agua que detecta marcas de agua ocultas que se han ocultado en el audio. En particular, si no puede encontrarse una marca de agua en algún audio capturado, entonces el reconocimiento de audio de huellas anterior puede usarse para identificar el audio capturado.
[0348] En las realizaciones anteriores, los conjuntos de filtros optimizados usaron cinco tipos diferentes de filtro. En otras realizaciones, pueden usarse más o menos tipos de filtros. Además, no es esencial usar filtros de forma rectangular; podrían usarse otras formas irregulares de filtros (como filtros en forma de "L"). La forma del filtro solo define los valores vecinos en el espectrograma (o en la huella fina) que se ponderan por el coeficiente correspondiente en el filtro y a continuación se combinan.
[0349] En la realización anterior, al generar la huella fina, cada filtro del primer conjunto de filtros optimizados se escalonó a lo largo del espectrograma etapa por etapa. Esto significaba que la huella fina tenía la misma dimensión temporal que el espectrograma original. Como apreciarán los expertos en la materia, la huella fina podría omitir algunos de estos puntos de datos, al principio o al final del espectrograma. Además, también podría usarse un tamaño de etapa más grande, por ejemplo, podría omitirse un punto de tiempo en cada etapa. En este caso, la huella fina tendría una duración temporal de la mitad de la del espectrograma. Entonces, si el espectrograma tuviera 500 puntos de tiempo, la huella fina generada tendría 250 puntos de tiempo.
[0350] En la realización descrita anteriormente, la huella basta se generó con una resolución de tiempo de una décima parte de la del espectrograma. Es decir, se omitieron 10 puntos de tiempo entre las etapas cuando el segundo conjunto de filtros optimizados se pasó por el espectrograma. Como apreciarán los expertos en la materia, por supuesto, podrían usarse otros tamaños de etapas para lograr una compresión diferente de los datos en la dimensión de tiempo.
[0351] En las realizaciones anteriores, la señal de audio capturada por el dispositivo de usuario era una señal acústica. En otras realizaciones, el dispositivo de usuario puede capturar la señal de audio como una señal electromagnética recibida a través de la antena del dispositivo de usuario; o en el caso de que el dispositivo de usuario no sea un dispositivo portátil y sea, por ejemplo, un ordenador personal o un decodificador o un televisor inteligente, la señal de audio puede capturarse a través de una señal recibida a través de una red de televisión de difusión (por ejemplo, una red satelital, una red de cable, una red ADSL o similares), Internet o alguna otra red informática.
[0352] [0118]En las realizaciones anteriores, cada entrada en la base de datos contenía una huella basta y una huella fina. En otra realización, cada entrada de la base de datos puede no contener la huella basta, que en cambio puede generarse cuando sea necesario a partir de la huella de base de datos fina. La huella de base de datos basta puede generarse a partir de la huella de base de datos fina de varias maneras diferentes, al igual que la huella de consulta basta puede determinarse de varias maneras diferentes a partir de la huella de consulta fina. Estas diferentes formas de determinar la huella basta a partir de la huella fina se analizaron anteriormente y no se repetirán de nuevo. Huelga
decir que la técnica usada para generar la huella de consulta basta debe ser la misma que la técnica que se usa para generar la huella de base de datos basta.
Claims (12)
1. REIVINDICACIONES
1. Un sistema de concordancia de audio que comprende:
medios para capturar una señal de audio;
medios para procesar la señal de audio capturada para generar un espectrograma bidimensional que representa un contenido de frecuencia de la señal de audio capturada en una pluralidad de subbandas de frecuencia en puntos de tiempo sucesivos dentro de la señal de audio capturada;
medios para procesar el espectrograma para generar una huella acústica de consulta fina representativa de la señal de audio capturada, la huella acústica de consulta fina que comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un primer número de bits por segundo de la señal de audio capturada;
medios para generar una huella acústica de consulta basta representativa de la señal de audio capturada, la huella acústica de consulta basta que comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un segundo número de bits por segundo de la señal de audio capturada que es menor que el primer número de bits por segundo de la señal de audio capturada;
una base de datos de audio que comprende una pluralidad de entradas de base de datos, estando asociada cada entrada con contenido de audio, y cada entrada que comprende:
i) una huella acústica de base de datos fina representativa del contenido de audio asociado;
ii) información relacionada con el contenido de audio asociado;
medios para hacer concordar la huella acústica de consulta basta con las huellas acústicas de base de datos basta asociadas con dicha pluralidad de entradas de base de datos para identificar un subconjunto de entradas de base de datos posiblemente concordantes;
medios para emitir la huella acústica de consulta fina con las huellas acústicas de base de datos fina de las entradas de base de datos en dicho subconjunto de entradas de base de datos posiblemente concordantes para identificar una entrada de base de datos concordante; y
medios para emitir una respuesta de concordancia que comprende dicha información de la entrada de base de datos concordante identificada;
donde los medios para generar la huella acústica de consulta fina están configurados para generar la huella acústica de consulta fina a partir del espectrograma aplicando un primer conjunto de filtros diferentes al espectrograma, para cada filtro en el primer conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes del espectrograma, cada parte que comprende valores de espectrograma de al menos una subbanda de frecuencia en uno o más puntos de tiempo adyacentes, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta fina bidimensional; donde cada filtro del primer conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde el medio para generar la huella acústica de consulta fina está configurado para aplicar cada filtro a una parte del espectrograma ponderando cada valor de espectrograma de la parte con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta fina;
donde los medios para generar la huella acústica de consulta fina están configurados para ordenar las filas o columnas de la huella acústica de consulta fina que se generan aplicando el primer conjunto de filtros al espectrograma de modo que filas o columnas similares sean adyacentes entre sí;
donde los medios para generar la huella acústica de consulta basta están configurados para generar la huella acústica de consulta basta a partir de la huella acústica de consulta fina aplicando un segundo conjunto de filtros diferentes a la huella acústica de consulta fina, para cada filtro del segundo conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes de la huella acústica de consulta fina bidimensional, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta basta bidimensional;
donde cada filtro del segundo conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde los medios para generar la huella acústica de consulta basta están configurados para aplicar cada filtro a una parte de la huella acústica de consulta fina ponderando cada valor de la parte de la huella acústica de consulta fina con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta basta.
2. Un sistema de concordancia de audio según la reivindicación 1, donde cada entrada comprende la huella acústica de base de datos basta asociada o donde el sistema comprende además medios para generar la huella acústica de base de datos basta asociada con una entrada de base de datos.
3. Un sistema de concordancia de audio según cualquiera de las reivindicaciones anteriores, donde el primer conjunto de filtros es diferente al segundo conjunto de filtros.
4. Un sistema de concordancia de audio según cualquiera de las reivindicaciones anteriores, donde los medios para generar la huella acústica de consulta fina están configurados para ordenar las filas o columnas de la huella acústica de consulta fina con el fin de aumentar la coherencia entre las filas o columnas vecinas de la huella
acústica de consulta fina.
5. Un sistema de concordancia de audio según cualquiera de las reivindicaciones anteriores, donde cada filtro del primer conjunto de filtros y cada filtro del segundo conjunto de filtros tiene un desplazamiento asociado que define partes del espectrograma o partes de la huella acústica de consulta fina a la que se aplica el filtro.
6. Un sistema de concordancia de audio según cualquiera de las reivindicaciones anteriores, donde los medios para capturar una señal de audio están configurados para capturar uno de: una señal acústica y una señal electromagnética.
7. Un sistema de concordancia de audio según cualquiera de las reivindicaciones anteriores, donde el medio para procesar la señal de audio capturada para generar un espectrograma bidimensional está configurado para generar el espectrograma tomando una transformada de ondícula de la señal de audio capturada.
8. Un procedimiento de concordancia de audio realizado por uno o más procesadores, el procedimiento que comprende:
capturar una señal de audio;
procesar la señal de audio capturada para generar un espectrograma bidimensional que representa un contenido de frecuencia de la señal de audio capturada en una pluralidad de subbandas de frecuencia en puntos de tiempo sucesivos dentro de la señal de audio capturada;
procesar el espectrograma para generar una huella acústica de consulta fina representativa de la señal de audio capturada, la huella acústica de consulta fina comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un primer número de bits por segundo de la señal de audio capturada; generar una huella acústica de consulta basta representativa de la señal de audio capturada, la huella acústica de consulta basta comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un segundo número de bits por segundo de la señal de audio capturada que es menor que el primer número de bits por segundo de la señal de audio capturada;
hacer concordar la huella acústica de consulta basta con huellas acústicas de base de datos basta de una pluralidad de entradas de base de datos para identificar un subconjunto de entradas de base de datos posiblemente concordantes;
hacer concordar la huella acústica de consulta fina con las huellas acústicas de base de datos fina de las entradas de base de datos en dicho subconjunto de entradas de base de datos posiblemente concordantes para identificar una entrada de base de datos concordante; y
emitir una respuesta de concordancia que comprende información relacionada con la entrada de base de datos de concordancia identificada;
donde la huella acústica de consulta fina se genera a partir del espectrograma aplicando un primer conjunto de filtros diferentes al espectrograma, para cada filtro en el primer conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes del espectrograma, cada parte que comprende valores de espectrograma de al menos una subbanda de frecuencia en uno o más puntos de tiempo adyacentes, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta fina bidimensional;
donde cada filtro del primer conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde cada filtro se aplica a una parte del espectrograma ponderando cada valor de espectrograma de la parte con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta fina;
donde los medios para generar la huella acústica de consulta fina están configurados para ordenar las filas o columnas de la huella acústica de consulta fina que se generan aplicando el primer conjunto de filtros al espectrograma de modo que filas o columnas similares sean adyacentes entre sí;
el procedimiento comprende además generar la huella acústica de consulta basta a partir de la huella acústica de consulta fina aplicando un segundo conjunto de filtros diferentes a la huella acústica de consulta fina, para cada filtro del segundo conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes de la huella acústica de consulta fina, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta basta bidimensional;
donde cada filtro del segundo conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde cada filtro se aplica a una parte de la huella acústica de consulta fina ponderando cada valor de la parte de la huella acústica de consulta fina con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta basta.
9. Un dispositivo de usuario para su uso en un sistema de concordancia de audio, el dispositivo de usuario que comprende:
medios para capturar una señal de audio;
medios para procesar la señal de audio capturada para generar un espectrograma bidimensional que representa un contenido de frecuencia de la señal de audio capturada en una pluralidad de subbandas de frecuencia en puntos
de tiempo sucesivos dentro de la señal de audio capturada;
medios para procesar el espectrograma para generar una huella acústica de consulta fina representativa de la señal de audio capturada, la huella acústica de consulta fina comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un primer número de bits por segundo de la señal de audio capturada;
medios para generar una huella acústica de consulta basta representativa de la señal de audio capturada, la huella acústica de consulta basta que comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un segundo número de bits por segundo de la señal de audio capturada que es menor que el primer número de bits por segundo de la señal de audio capturada;
medios para emitir la huella acústica de consulta basta y la huella acústica de consulta fina a un servidor de concordancia de audio; y
medios para recibir una respuesta de concordancia que comprende información relacionada con el audio capturado;
donde los medios para generar la huella acústica de consulta fina están configurados para generar la huella acústica de consulta fina a partir del espectrograma aplicando un primer conjunto de filtros diferentes al espectrograma, para cada filtro en el primer conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes del espectrograma, cada parte que comprende valores de espectrograma de al menos una subbanda de frecuencia en uno o más puntos de tiempo adyacentes, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta fina bidimensional; donde cada filtro del primer conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde el medio para generar la huella acústica de consulta fina está configurado para aplicar cada filtro a una parte del espectrograma ponderando cada valor de espectrograma de la parte con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta fina;
donde los medios para generar la huella acústica de consulta fina están configurados para ordenar las filas o columnas de la huella acústica de consulta fina que se generan aplicando el primer conjunto de filtros al espectrograma de modo que filas o columnas similares sean adyacentes entre sí;
donde los medios para generar la huella acústica de consulta basta están configurados para generar la huella acústica de consulta basta a partir de la huella acústica de consulta fina aplicando un segundo conjunto de filtros diferentes a la huella acústica de consulta fina, para cada filtro del segundo conjunto de filtros diferentes, aplicando el filtro a una pluralidad de partes temporalmente adyacentes de la huella acústica de consulta fina, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta basta bidimensional;
donde cada filtro del segundo conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde los medios para generar la huella acústica de consulta basta están configurados para aplicar cada filtro a una parte de la huella acústica de consulta fina ponderando cada valor de la parte de la huella acústica de consulta fina con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta basta.
10. Un dispositivo de usuario según la reivindicación 9, donde el medio para procesar la señal de audio capturada para generar un espectrograma bidimensional está configurado para generar el espectrograma tomando una transformada de ondícula de la señal de audio capturada.
11. Un servidor de concordancia de audio para su uso en un sistema de concordancia de audio, el servidor de concordancia de audio que comprende:
medios para recibir una huella acústica de consulta fina representativa de una señal de audio capturada, la huella acústica de consulta fina que comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un primer número de bits por segundo de la señal de audio capturada y generándose a partir de un espectrograma de la señal de audio capturada aplicando un primer conjunto de filtros diferentes al espectrograma y ordenando las filas o columnas de la huella acústica de consulta fina que se generan aplicando el primer conjunto de filtros al espectrograma de modo que filas o columnas similares sean adyacentes entre sí; medios para generar una huella acústica de consulta basta representativa de la señal de audio capturada, la huella acústica de consulta basta que comprende una matriz bidimensional de valores que representan el contenido de la señal de audio capturada en un segundo número de bits por segundo de la señal de audio capturada que es menor que el primer número de bits por segundo de la señal de audio capturada;
medios para hacer concordar la huella acústica de consulta basta con las huellas acústicas de base de datos basta asociadas con una pluralidad de entradas de base de datos para identificar un subconjunto de entradas de base de datos posiblemente concordantes;
medios para hacer concordar la huella acústica de consulta fina con las huellas acústicas de base de datos fina de las entradas de base de datos en dicho subconjunto de entradas de base de datos posiblemente concordantes para identificar una entrada de base de datos concordante; y
medios para emitir una respuesta de concordancia que comprende información relacionada con el audio capturado; donde los medios para generar la huella acústica de consulta basta están configurados para generar la huella acústica de consulta basta a partir de la huella acústica de consulta fina aplicando un segundo conjunto de filtros diferentes a la huella acústica de consulta fina, para cada filtro del segundo conjunto de filtros diferentes, aplicando
el filtro a una pluralidad de partes temporalmente adyacentes de la huella acústica de consulta fina, para generar una pluralidad correspondiente de valores que forman una fila o columna de la huella acústica de consulta basta bidimensional;
donde cada filtro del segundo conjunto de filtros diferentes comprende una pluralidad de coeficientes de filtro y donde los medios para generar la huella acústica de consulta basta están configurados para aplicar cada filtro a una parte de la huella acústica de consulta fina ponderando cada valor de la parte de la huella acústica de consulta fina con un coeficiente de filtro respectivo y combinando los valores ponderados para generar el valor de la huella acústica de consulta basta.
12. Un producto de instrucciones implementables por ordenador que comprenden instrucciones implementables por ordenador para hacer que un dispositivo informático programable se configure como el dispositivo de usuario según la reivindicación 9 o el servidor de concordancia de audio según la reivindicación 11.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1613960.2A GB2556023B (en) | 2016-08-15 | 2016-08-15 | Audio matching |
| PCT/GB2017/052219 WO2018033696A1 (en) | 2016-08-15 | 2017-07-28 | Audio matching |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3073785T3 true ES3073785T3 (en) | 2026-07-15 |
Family
ID=56985973
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17758252T Active ES3073785T3 (en) | 2016-08-15 | 2017-07-28 | Audio matching |
| ES22151836T Active ES2987078T3 (es) | 2016-08-15 | 2017-07-28 | Coincidencia de audio |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES22151836T Active ES2987078T3 (es) | 2016-08-15 | 2017-07-28 | Coincidencia de audio |
Country Status (7)
| Country | Link |
|---|---|
| US (2) | US11106730B2 (es) |
| EP (2) | EP3497587B1 (es) |
| CN (1) | CN109891404B (es) |
| ES (2) | ES3073785T3 (es) |
| GB (1) | GB2556023B (es) |
| PL (1) | PL4006748T3 (es) |
| WO (1) | WO2018033696A1 (es) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019137897A1 (en) * | 2018-01-10 | 2019-07-18 | Rezzonation B.V. | Content matching system |
| CN110047515B (zh) * | 2019-04-04 | 2021-04-20 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种音频识别方法、装置、设备及存储介质 |
| IT202000015781A1 (it) * | 2020-06-30 | 2021-12-30 | Telecom Italia Spa | Monitoraggio dell’audience pubblicitaria in un sistema di distribuzione di contenuti |
| KR102380540B1 (ko) * | 2020-09-14 | 2022-04-01 | 네이버 주식회사 | 음원을 검출하기 위한 전자 장치 및 그의 동작 방법 |
| US20220351425A1 (en) * | 2021-04-30 | 2022-11-03 | Mobeus Industries, Inc. | Integrating overlaid digital content into data via processing circuitry using an audio buffer |
| US11508395B1 (en) * | 2021-05-03 | 2022-11-22 | Dell Products, L.P. | Intelligent selection of audio signatures based upon contextual information to perform management actions |
| CN113889146B (zh) * | 2021-09-22 | 2025-05-27 | 北京小米移动软件有限公司 | 音频识别方法、装置、电子设备和存储介质 |
| US12586552B2 (en) | 2021-10-11 | 2026-03-24 | Adobe Inc. | Multi-level audio segmentation using deep embeddings |
| US20230129350A1 (en) * | 2021-10-25 | 2023-04-27 | Adobe Inc. | Section-based music similarity searching |
| US11417099B1 (en) | 2021-11-08 | 2022-08-16 | 9219-1568 Quebec Inc. | System and method for digital fingerprinting of media content |
| CN118825917B (zh) * | 2024-06-27 | 2025-02-14 | 成都新创界自动化设备有限公司 | 一种基于物联网的高压开关柜在线监测装置 |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7013301B2 (en) * | 2003-09-23 | 2006-03-14 | Predixis Corporation | Audio fingerprinting system and method |
| EP2288121A3 (en) | 2000-11-30 | 2011-06-22 | Intrasonics S.A.R.L. | Telecommunications apparatus operable to interact with an audio transmission |
| BRPI0619388A2 (pt) * | 2005-11-29 | 2011-10-04 | Google Inc | aplicações sociais e interativas para mìdia de massa |
| GB0710211D0 (en) | 2007-05-29 | 2007-07-11 | Intrasonics Ltd | AMR Spectrography |
| WO2009107049A2 (en) * | 2008-02-26 | 2009-09-03 | Koninklijke Philips Electronics N.V. | Content identification method |
| GB2460306B (en) | 2008-05-29 | 2013-02-13 | Intrasonics Sarl | Data embedding system |
| EP2323046A1 (en) * | 2009-10-16 | 2011-05-18 | Telefónica, S.A. | Method for detecting audio and video copy in multimedia streams |
| CN101882439B (zh) * | 2010-06-10 | 2012-02-08 | 复旦大学 | 一种基于Zernike矩的压缩域音频指纹方法 |
| CN101980197B (zh) * | 2010-10-29 | 2012-10-31 | 北京邮电大学 | 一种基于长时结构声纹的多层滤波音频检索方法和装置 |
| US8584197B2 (en) * | 2010-11-12 | 2013-11-12 | Google Inc. | Media rights management using melody identification |
| US9093120B2 (en) * | 2011-02-10 | 2015-07-28 | Yahoo! Inc. | Audio fingerprint extraction by scaling in time and resampling |
| CN102314875B (zh) * | 2011-08-01 | 2016-04-27 | 北京音之邦文化科技有限公司 | 一种音频文件的识别方法和装置 |
| US8949872B2 (en) * | 2011-12-20 | 2015-02-03 | Yahoo! Inc. | Audio fingerprint for content identification |
| US8681950B2 (en) * | 2012-03-28 | 2014-03-25 | Interactive Intelligence, Inc. | System and method for fingerprinting datasets |
| US9159327B1 (en) * | 2012-12-20 | 2015-10-13 | Google Inc. | System and method for adding pitch shift resistance to an audio fingerprint |
| US9390727B2 (en) * | 2014-01-13 | 2016-07-12 | Facebook, Inc. | Detecting distorted audio signals based on audio fingerprinting |
| JP6587625B2 (ja) * | 2014-03-04 | 2019-10-09 | インタラクティブ・インテリジェンス・グループ・インコーポレイテッド | オーディオ指紋探索の最適化のためのシステムおよび方法 |
| WO2015134579A1 (en) * | 2014-03-04 | 2015-09-11 | Interactive Intelligence Group, Inc. | System and method to correct for packet loss in asr systems |
| CN105551485B (zh) * | 2015-11-30 | 2020-04-21 | 讯飞智元信息科技有限公司 | 语音文件检索方法及系统 |
-
2016
- 2016-08-15 GB GB1613960.2A patent/GB2556023B/en active Active
-
2017
- 2017-07-28 EP EP17758252.5A patent/EP3497587B1/en active Active
- 2017-07-28 WO PCT/GB2017/052219 patent/WO2018033696A1/en not_active Ceased
- 2017-07-28 ES ES17758252T patent/ES3073785T3/es active Active
- 2017-07-28 PL PL22151836.8T patent/PL4006748T3/pl unknown
- 2017-07-28 EP EP22151836.8A patent/EP4006748B1/en active Active
- 2017-07-28 CN CN201780063352.3A patent/CN109891404B/zh active Active
- 2017-07-28 ES ES22151836T patent/ES2987078T3/es active Active
- 2017-07-28 US US16/325,692 patent/US11106730B2/en active Active
-
2021
- 2021-04-09 US US17/227,001 patent/US11556587B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3497587B1 (en) | 2026-06-24 |
| GB2556023B (en) | 2022-02-09 |
| US20210224318A1 (en) | 2021-07-22 |
| PL4006748T3 (pl) | 2024-10-28 |
| CN109891404A (zh) | 2019-06-14 |
| US11556587B2 (en) | 2023-01-17 |
| GB201613960D0 (en) | 2016-09-28 |
| EP3497587A1 (en) | 2019-06-19 |
| EP4006748B1 (en) | 2024-06-19 |
| ES2987078T3 (es) | 2024-11-13 |
| CN109891404B (zh) | 2023-10-24 |
| WO2018033696A1 (en) | 2018-02-22 |
| EP4006748C0 (en) | 2024-06-19 |
| EP3497587C0 (en) | 2026-06-24 |
| US11106730B2 (en) | 2021-08-31 |
| GB2556023A (en) | 2018-05-23 |
| US20190213214A1 (en) | 2019-07-11 |
| EP4006748A1 (en) | 2022-06-01 |