🚀 Prueba Zilliz Cloud, el Milvus completamente gestionado, gratis—¡experimenta un rendimiento 10 veces más rápido! Prueba Ahora>>

milvus-logo
LFAI

Tecnologías de procesamiento

  • Scenarios
July 27, 2021
Shiyu Chen

El sonido es un tipo de datos con gran densidad de información. Aunque pueda parecer anticuado en la era de los contenidos de vídeo, el audio sigue siendo una fuente de información primaria para muchas personas. A pesar de la disminución a largo plazo de los oyentes, el 83% de los estadounidenses de 12 años o más escucharon la radio terrestre (AM / FM) en una semana determinada en 2020 (por debajo del 89% en 2019). Por el contrario, el audio en línea ha experimentado un aumento constante de oyentes en las últimas dos décadas, con el 62% de los estadounidenses escuchando alguna forma de él semanalmente, según el mismo estudio del Pew Research Center.

Como onda, el sonido incluye cuatro propiedades: frecuencia, amplitud, forma de onda y duración. En terminología musical, se denominan tono, dinámica, sonido y duración. Los sonidos también ayudan a los humanos y a otros animales a percibir y comprender nuestro entorno, proporcionando pistas contextuales sobre la ubicación y el movimiento de los objetos que nos rodean.

Como portador de información, el audio puede clasificarse en tres categorías:

  1. El habla: Medio de comunicación compuesto por palabras y gramática. Los algoritmos de reconocimiento del habla permiten convertirla en texto.
  2. Música: Sonidos vocales y/o instrumentales combinados para producir una composición compuesta de melodía, armonía, ritmo y timbre. La música puede representarse mediante una partitura.
  3. Forma de onda: Señal de audio digital obtenida mediante la digitalización de sonidos analógicos. Las formas de onda pueden representar voz, música y sonidos naturales o sintetizados.

La recuperación de audio puede utilizarse para buscar y supervisar medios en línea en tiempo real con el fin de reprimir la infracción de los derechos de propiedad intelectual. También desempeña un papel importante en la clasificación y el análisis estadístico de datos de audio.

Tecnologías de procesamiento

El habla, la música y otros sonidos genéricos tienen características únicas y exigen distintos métodos de procesamiento. Normalmente, el audio se separa en grupos que contienen habla y grupos que no la contienen:

  • El audio hablado se procesa mediante reconocimiento automático del habla.
  • El audio que no contiene habla, como el musical, los efectos de sonido y las señales de voz digitalizadas, se procesa mediante sistemas de recuperación de audio.

Este artículo se centra en cómo utilizar un sistema de recuperación de audio para procesar datos de audio no vocal. En este artículo no se trata el reconocimiento de voz.

Extracción de características de audio

La extracción de características es la tecnología más importante en los sistemas de recuperación de audio, ya que permite la búsqueda de similitudes de audio. Los métodos de extracción de características de audio se dividen en dos categorías:

  • Modelos tradicionales de extracción de características de audio, como los modelos de mezcla gaussiana (GMM) y los modelos de Markov ocultos (HMM);
  • Modelos de extracción de características de audio basados en el aprendizaje profundo, como redes neuronales recurrentes (RNN), redes de memoria a corto plazo (LSTM), marcos de codificación y descodificación, mecanismos de atención, etc.

Los modelos basados en aprendizaje profundo tienen una tasa de error que es un orden de magnitud menor que los modelos tradicionales, y por lo tanto están ganando impulso como tecnología central en el campo del procesamiento de señales de audio.

Los datos de audio suelen estar representados por las características de audio extraídas. El proceso de recuperación busca y compara estas características y atributos en lugar de los propios datos de audio. Por lo tanto, la eficacia de la recuperación de similitudes de audio depende en gran medida de la calidad de la extracción de características.

En este artículo, se utilizan redes neuronales de audio preentrenadas a gran escala para el reconocimiento de patrones de audio (PANN) con el fin de extraer vectores de características para su precisión media media (mAP) de 0,439 (Hershey et al., 2017).

Después de extraer los vectores de características de los datos de audio, podemos implementar un análisis de vectores de características de alto rendimiento utilizando Milvus.

Milvus es una base de datos de vectores nativa de la nube y de código abierto construida para gestionar vectores de incrustación generados por modelos de aprendizaje automático y redes neuronales. Se utiliza ampliamente en escenarios como la visión por ordenador, el procesamiento del lenguaje natural, la química computacional, los sistemas de recomendación personalizados, etc.

El siguiente diagrama muestra el proceso general de búsqueda de similitudes utilizando Milvus: how-does-milvus-work.pnghow-does-milvus-work.png

  1. Los datos no estructurados se convierten en vectores de características mediante modelos de aprendizaje profundo y se insertan en Milvus.
  2. Milvus almacena e indexa estos vectores de características.
  3. A petición, Milvus busca y devuelve los vectores más similares al vector de consulta.

Visión general del sistema

El sistema de recuperación de audio consta principalmente de dos partes: inserción (línea negra) y búsqueda (línea roja).

audio-retrieval-system.png audio-retrieval-system.png

El conjunto de datos de muestra utilizado en este proyecto contiene sonidos de juegos de código abierto, y el código se detalla en el Milvus bootcamp.

Paso 1: Insertar datos

A continuación se muestra el código de ejemplo para generar incrustaciones de audio con el modelo PANNs-inference preentrenado e insertarlas en Milvus, que asigna un ID único a cada incrustación vectorial.

1 wav_name, vectors_audio = get_audio_embedding(audio_path)  
2 if vectors_audio:    
3     embeddings.append(vectors_audio)  
4     wav_names.append(wav_name)  
5 ids_milvus = insert_vectors(milvus_client, table_name, embeddings)  
6 

A continuación, los ids_milvus devueltos se almacenan junto con otra información relevante (por ejemplo, wav_name) para los datos de audio almacenados en una base de datos MySQL para su posterior procesamiento.

1 get_ids_correlation(ids_milvus, wav_name)  
2 load_data_to_mysql(conn, cursor, table_name)    
3  

Milvus calcula la distancia del producto interior entre los vectores de características prealmacenados y los vectores de características de entrada, extraídos de los datos de audio de la consulta utilizando el modelo de inferencia PANNs, y devuelve los ids_milvus de vectores de características similares, que corresponden a los datos de audio buscados.

1 _, vectors_audio = get_audio_embedding(audio_filename)    
2 results = search_vectors(milvus_client, table_name, [vectors_audio], METRIC_TYPE, TOP_K)  
3 ids_milvus = [x.idfor x in results[0]]  
4 audio_name = search_by_milvus_ids(conn, cursor, ids_milvus, table_name)    
5

Referencia de la API y demostración

API

Este sistema de recuperación de audio está construido con código abierto. Sus principales características son la inserción y eliminación de datos de audio. Todas las API pueden consultarse escribiendo 127.0.0.1: /docs en el navegador.

Demo

Tenemos en línea una demostración en vivo del sistema de recuperación de audio basado en Milvus que puede probar con sus propios datos de audio.

audio-search-demo.png audio-search-demo.png

Conclusión

En la era de los macrodatos, la vida de las personas está repleta de todo tipo de información. Para entenderla mejor, la recuperación de texto tradicional ya no es suficiente. La tecnología actual de recuperación de información necesita urgentemente recuperar diversos tipos de datos no estructurados, como vídeos, imágenes y audio.

Los datos no estructurados, difíciles de procesar por los ordenadores, pueden convertirse en vectores de características mediante modelos de aprendizaje profundo. Estos datos convertidos pueden ser procesados fácilmente por máquinas, lo que nos permite analizar datos no estructurados de formas que nuestros predecesores nunca pudieron. Milvus, una base de datos de vectores de código abierto, puede procesar eficientemente los vectores de características extraídos por modelos de IA y proporciona una variedad de cálculos comunes de similitud de vectores.

Referencias

Hershey, S., Chaudhuri, S., Ellis, D.P., Gemmeke, J.F., Jansen, A., Moore, R.C., Plakal, M., Platt, D., Saurous, R.A., Seybold, B. y Slaney, M., 2017, marzo. Arquitecturas CNN para clasificación de audio a gran escala. En 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 131-135, 2017.

No sea un extraño

  • Encuentra o contribuye a Milvus en GitHub.

  • Interactúa con la comunidad a través de Slack.

  • Conecta con nosotros en Twitter.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

Sigue Leyendo