Recherche audio basée sur Milvus
Le son est un type de données dense en information. Bien qu’il puisse sembler désuet à l’ère du contenu vidéo, l’audio reste une source d’information principale pour de nombreuses personnes. Malgré une baisse à long terme du nombre d’auditeurs, 83 % des Américains âgés de 12 ans ou plus ont écouté la radio terrestre (AM/FM) au cours d’une semaine donnée en 2020 (contre 89 % en 2019). À l’inverse, l’audio en ligne a connu une augmentation constante du nombre d’auditeurs au cours des deux dernières décennies, 62 % des Américains déclarant en écouter une forme quelconque chaque semaine selon la même étude du Pew Research Center.
En tant qu’onde, le son comprend quatre propriétés : la fréquence, l’amplitude, la forme d’onde et la durée. Dans la terminologie musicale, on les appelle hauteur, dynamique, timbre et durée. Les sons aident également les humains et les autres animaux à percevoir et à comprendre notre environnement, en fournissant des indices contextuels sur l’emplacement et le mouvement des objets qui nous entourent.
En tant que support d’information, l’audio peut être classé en trois catégories :
- Parole : Un support de communication composé de mots et de grammaire. Grâce aux algorithmes de reconnaissance vocale, la parole peut être convertie en texte.
- Musique : Sons vocaux et/ou instrumentaux combinés pour produire une composition comprenant mélodie, harmonie, rythme et timbre. La musique peut être représentée par une partition.
- Forme d’onde : Un signal audio numérique obtenu en numérisant des sons analogiques. Les formes d’onde peuvent représenter la parole, la musique et des sons naturels ou synthétisés.
La recherche audio peut être utilisée pour rechercher et surveiller les médias en ligne en temps réel afin de lutter contre les violations des droits de propriété intellectuelle. Elle joue également un rôle important dans la classification et l’analyse statistique des données audio.
Technologies de traitement
La parole, la musique et les autres sons génériques possèdent chacun des caractéristiques uniques et nécessitent des méthodes de traitement différentes. Généralement, l’audio est séparé en groupes contenant de la parole et en groupes qui n’en contiennent pas :
- L’audio vocal est traité par reconnaissance automatique de la parole.
- L’audio non vocal, y compris l’audio musical, les effets sonores et les signaux vocaux numérisés, est traité à l’aide de systèmes de recherche audio.
Cet article se concentre sur l’utilisation d’un système de recherche audio pour traiter des données audio non vocales. La reconnaissance vocale n’est pas abordée dans cet article
Extraction de caractéristiques audio
L’extraction de caractéristiques est la technologie la plus importante dans les systèmes de recherche audio, car elle permet la recherche de similarité audio. Les méthodes d’extraction des caractéristiques audio sont divisées en deux catégories :
- Les modèles traditionnels d’extraction de caractéristiques audio tels que les modèles de mélange gaussien (GMM) et les modèles de Markov cachés (HMM) ;
- Les modèles d’extraction de caractéristiques audio basés sur l’apprentissage profond, tels que les réseaux neuronaux récurrents (RNN), les réseaux à mémoire à long court terme (LSTM), les cadres d’encodage-décodage, les mécanismes d’attention, etc.
Les modèles basés sur l’apprentissage profond ont un taux d’erreur inférieur d’un ordre de grandeur à celui des modèles traditionnels et gagnent donc en importance en tant que technologie centrale dans le domaine du traitement du signal audio.
Les données audio sont généralement représentées par les caractéristiques audio extraites. Le processus de recherche analyse et compare ces caractéristiques et attributs plutôt que les données audio elles-mêmes. Par conséquent, l’efficacité de la recherche de similarité audio dépend largement de la qualité de l’extraction des caractéristiques.
Dans cet article, des réseaux neuronaux audio pré-entraînés à grande échelle pour la reconnaissance de motifs audio (PANNs) sont utilisés pour extraire des vecteurs de caractéristiques en raison de leur précision moyenne moyenne (mAP) de 0,439 (Hershey et al., 2017).
Après avoir extrait les vecteurs de caractéristiques des données audio, nous pouvons mettre en œuvre une analyse de vecteurs de caractéristiques haute performance à l’aide de Milvus.
Recherche de similarité vectorielle
Milvus est une base de données vectorielle cloud-native et open source, conçue pour gérer les vecteurs d’embedding générés par des modèles de machine learning et des réseaux de neurones. Elle est largement utilisée dans des scénarios tels que la vision par ordinateur, le traitement du langage naturel, la chimie computationnelle, les systèmes de recommandation personnalisés, et bien plus encore.
Le diagramme suivant illustre le processus général de recherche de similarité avec Milvus :
Processus de recherche de similarité vectorielle de Milvus.
- Les données non structurées sont converties en vecteurs de caractéristiques par des modèles de deep learning et insérées dans Milvus.
- Milvus stocke et indexe ces vecteurs de caractéristiques.
- Sur demande, Milvus recherche et renvoie les vecteurs les plus similaires au vecteur de requête.
Vue d’ensemble du système
Le système de recherche audio se compose principalement de deux parties : l’insertion (ligne noire) et la recherche (ligne rouge).
Système de recherche audio alimenté par Milvus.
Le jeu de données d’exemple utilisé dans ce projet contient des sons de jeux open source, et le code est détaillé dans le Milvus bootcamp.
Étape 1 : Insérer les données
Voici l’exemple de code pour générer des embeddings audio avec le modèle pré-entraîné PANNs-inference et les insérer dans Milvus, qui attribue un ID unique à chaque embedding vectoriel.
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
Ensuite, les ids_milvus renvoyés sont stockés avec d’autres informations pertinentes (par exemple wav_name) pour les données audio conservées dans une base de données MySQL en vue d’un traitement ultérieur.
1 get_ids_correlation(ids_milvus, wav_name)
2 load_data_to_mysql(conn, cursor, table_name)
3
Étape 2 : Recherche audio
Milvus calcule la distance du produit interne entre les vecteurs de caractéristiques préalablement stockés et les vecteurs de caractéristiques d’entrée, extraits des données audio de requête à l’aide du modèle PANNs-inference, puis renvoie les ids_milvus des vecteurs de caractéristiques similaires, qui correspondent aux données audio recherchées.
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
Référence de l’API et démo
API
Ce système de recherche audio est construit avec du code open source. Ses principales fonctionnalités sont l’insertion et la suppression de données audio. Toutes les API peuvent être consultées en saisissant 127.0.0.1:
Démo
Nous hébergeons en ligne une démo en direct du système de recherche audio basé sur Milvus, que vous pouvez essayer avec vos propres données audio.
Démo de recherche audio alimentée par Milvus.
Conclusion
À l’ère du big data, les gens constatent que leur vie regorge de toutes sortes d’informations. Pour mieux leur donner du sens, la recherche textuelle traditionnelle ne suffit plus. Les technologies actuelles de recherche d’informations ont un besoin urgent de pouvoir rechercher divers types de données non structurées, tels que les vidéos, les images et l’audio.
Les données non structurées, difficiles à traiter pour les ordinateurs, peuvent être converties en vecteurs de caractéristiques à l’aide de modèles de deep learning. Ces données converties peuvent être facilement traitées par des machines, ce qui nous permet d’analyser les données non structurées d’une manière que nos prédécesseurs n’auraient jamais pu envisager. Milvus, une base de données vectorielle open source, peut traiter efficacement les vecteurs de caractéristiques extraits par des modèles d’IA et fournit divers calculs courants de similarité vectorielle.
Références
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, mars. Architectures CNN pour la classification audio à grande échelle. Dans 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 131-135, 2017
Ne soyez pas un inconnu
Continuer à lire

From Vector Database to Vector Lakebase
Zilliz offers a fully managed Vector Lakebase powered by Milvus, unifying real-time vector search, lake-scale discovery, and Al data operations.

Zilliz Skills Breakdown: How AI Agents Master Vector Databases
Zilliz's Milvus Skill (pymilvus, 7 files) and Zilliz Cloud Skill (zilliz-cli, 14 modules) bring vector-DB dev and ops into one Claude Code session.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.



