Recuperación de audio basada en Milvus
El sonido es un tipo de dato denso en información. Aunque pueda parecer anticuado en la era del contenido de video, el audio sigue siendo una fuente primaria de información para muchas personas. A pesar del descenso a largo plazo en oyentes, el 83% de los estadounidenses de 12 años o más escucharon radio terrestre (AM/FM) en una semana determinada en 2020 (frente al 89% en 2019). Por el contrario, el audio en línea ha experimentado un aumento constante de oyentes durante las últimas dos décadas, con un 62% de estadounidenses que, según se informa, escuchan alguna forma de este semanalmente de acuerdo con 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, estas se denominan tono, dinámica, timbre y duración. Los sonidos también ayudan a los seres humanos y a otros animales a percibir y comprender nuestro entorno, proporcionando pistas contextuales sobre la ubicación y el movimiento de los objetos en nuestro alrededor.
Como portador de información, el audio se puede clasificar en tres categorías:
- Habla: Un medio de comunicación compuesto por palabras y gramática. Con algoritmos de reconocimiento de voz, el habla puede convertirse en texto.
- 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.
- Forma de onda: Una señal de audio digital obtenida al digitalizar sonidos analógicos. Las formas de onda pueden representar habla, música y sonidos naturales o sintetizados.
La recuperación de audio puede utilizarse para buscar y monitorear medios en línea en tiempo real con el fin de combatir la infracción de los derechos de propiedad intelectual. También asume 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 cada uno características únicas y exigen diferentes métodos de procesamiento. Normalmente, el audio se separa en grupos que contienen habla y grupos que no:
- El audio de habla se procesa mediante reconocimiento automático de voz.
- El audio no hablado, incluido el audio musical, los efectos de sonido y las señales de habla digitalizadas, se procesa mediante sistemas de recuperación de audio.
Este artículo se centra en cómo usar un sistema de recuperación de audio para procesar datos de audio no hablado. El reconocimiento de voz no se cubre en este artículo
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 similitud de audio. Los métodos para extraer 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 ocultos de Markov (HMM);
- Modelos de extracción de características de audio basados en aprendizaje profundo, como redes neuronales recurrentes (RNN), redes de memoria a corto y largo plazo (LSTM), marcos de codificación-decodificación, mecanismos de atención, etc.
Los modelos basados en aprendizaje profundo tienen una tasa de error que es un orden de magnitud inferior a la de 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 representarse mediante las características de audio extraídas. El proceso de recuperación busca y compara estas características y atributos en lugar de los datos de audio en sí. Por lo tanto, la eficacia de la recuperación por similitud 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 (PANNs) para extraer vectores de características por su precisión media promedio (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.
Búsqueda por similitud vectorial
Milvus es una base de datos vectorial nativa de la nube y de código abierto, creada para gestionar vectores de incrustación generados por modelos de aprendizaje automático y redes neuronales. Se utiliza ampliamente en escenarios como visión por computadora, procesamiento del lenguaje natural, química computacional, sistemas de recomendación personalizados y más.
El siguiente diagrama muestra el proceso general de búsqueda por similitud usando Milvus:
Proceso de búsqueda por similitud vectorial de Milvus.
- Los datos no estructurados se convierten en vectores de características mediante modelos de aprendizaje profundo y se insertan en Milvus.
- Milvus almacena e indexa estos vectores de características.
- Tras una solicitud, Milvus busca y devuelve los vectores más similares al vector de consulta.
Descripció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).
Sistema de recuperación de audio impulsado por Milvus.
El conjunto de datos de ejemplo 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
Luego, los ids_milvus devueltos se almacenan junto con otra información relevante (p. ej., wav_name) para los datos de audio guardados en una base de datos MySQL para su procesamiento posterior.
1 get_ids_correlation(ids_milvus, wav_name)
2 load_data_to_mysql(conn, cursor, table_name)
3
Paso 2: Búsqueda de audio
Milvus calcula la distancia de producto interno entre los vectores de características almacenados previamente y los vectores de características de entrada, extraídos de los datos de audio de consulta mediante el modelo PANNs-inference, 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.id for x in results[0]]
4 audio_name = search_by_milvus_ids(conn, cursor, ids_milvus, table_name)
5
Referencia de API y demo
API
Este sistema de recuperación de audio está creado con código de código abierto. Sus principales funciones son la inserción y eliminación de datos de audio. Todas las API se pueden ver escribiendo 127.0.0.1:
Demo
Alojamos en línea una demo en vivo del sistema de recuperación de audio basado en Milvus que puedes probar con tus propios datos de audio.
Demo de búsqueda de audio impulsada por Milvus.
Conclusión
Al vivir en la era del big data, las personas encuentran que sus vidas están repletas 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 varios tipos de datos no estructurados, como videos, imágenes y audio.
Los datos no estructurados, que son difíciles de procesar para las computadoras, pueden convertirse en vectores de características mediante modelos de aprendizaje profundo. Estos datos convertidos pueden ser procesados fácilmente por las máquinas, lo que nos permite analizar datos no estructurados de formas que nuestros predecesores nunca pudieron. Milvus, una base de datos vectorial 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 vectorial.
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. and Slaney, M., 2017, marzo. Arquitecturas CNN para la clasificación de audio a gran escala. En 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 131-135, 2017
No seas un desconocido
Sigue leyendo

Will Amazon S3 Vectors Kill Vector Databases—or Save Them?
AWS S3 Vectors aims for 90% cost savings for vector storage. But will it kill vectordbs like Milvus? A deep dive into costs, limits, and the future of tiered storage.

Bringing AI to Legal Tech: The Role of Vector Databases in Enhancing LLM Guardrails
Discover how vector databases enhance AI reliability in legal tech, ensuring accurate, compliant, and trustworthy AI-powered legal solutions.

DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding
Explore DeepSeek-VL2, the open-source MoE vision-language model. Discover its architecture, efficient training pipeline, and top-tier performance.



