Technologies de traitement
Le son est un type de données dense en informations. Bien qu'il puisse sembler désuet à l'ère du contenu vidéo, l'audio reste une source d'information primaire pour de nombreuses personnes. Malgré un déclin à 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 ou une autre sur une base hebdomadaire, 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 de l'onde et la durée. Dans la terminologie musicale, ces propriétés sont appelées hauteur, dynamique, ton 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 vecteur d'information, le son peut être classé en trois catégories :
- La parole : Un moyen de communication composé de mots et de grammaire. Les algorithmes de reconnaissance vocale permettent de convertir la parole en texte.
- La musique : Sons vocaux et/ou instrumentaux combinés pour produire une composition composée de mélodie, d'harmonie, de rythme et de timbre. La musique peut être représentée par une partition.
- Forme d'onde : Signal audio numérique obtenu par numérisation de sons analogiques. Les formes d'onde peuvent représenter la parole, la musique et les 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 réprimer 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 ont chacun des caractéristiques uniques et nécessitent des méthodes de traitement différentes. En règle générale, les données audio sont séparées en groupes contenant de la parole et en groupes n'en contenant pas :
- Les sons vocaux sont traités par la reconnaissance automatique de la parole.
- Les sons non vocaux, y compris les sons musicaux, les effets sonores et les signaux vocaux numérisés, sont traités à l'aide de systèmes de recherche audio.
Cet article explique comment utiliser 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és 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 de mémoire à long 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 de base dans le domaine du traitement des signaux audio.
Les données audio sont généralement représentées par les caractéristiques audio extraites. Le processus d'extraction recherche 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és audio dépend largement de la qualité de l'extraction des caractéristiques.
Dans cet article, les réseaux neuronaux audio pré-entraînés à grande échelle pour la reconnaissance des formes audio (PANN) sont utilisés pour extraire les vecteurs de caractéristiques pour sa précision 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 vectorielles open-source native dans le cloud, construite pour gérer les vecteurs d'intégration générés par des modèles d'apprentissage automatique et des réseaux neuronaux. Elle est largement utilisée dans des scénarios tels que la vision artificielle, le traitement du langage naturel, la chimie informatique, les systèmes de recommandation personnalisés, etc.
Le diagramme suivant illustre le processus général de recherche de similarités à l'aide de Milvus : how-does-milvus-work.png
- Les données non structurées sont converties en vecteurs de caractéristiques par des modèles d'apprentissage profond 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 la 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).
audio-retrieval-system.png
L'échantillon de données utilisé dans ce projet contient des sons de jeux open-source, et le code est détaillé dans le bootcamp Milvus.
Étape 1 : Insérer des données
Vous trouverez ci-dessous un exemple de code permettant de générer des embeddings audio à l'aide du modèle d'inférence PANNs pré-entraîné et de 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
Les ids_milvus renvoyés sont ensuite 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 intérieur entre les vecteurs de caractéristiques préenregistrés et les vecteurs de caractéristiques d'entrée, extraits des données audio de la requête à l'aide du modèle d'inférence PANNs, et 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 API et démo
API
Ce système de recherche audio est construit à partir d'un code source ouvert. Ses principales fonctionnalités sont l'insertion et la suppression de données audio. Toutes les API peuvent être consultées en tapant 127.0.0.1 :
Démonstration
Nous hébergeons une démo en ligne du système de recherche audio basé sur Milvus que vous pouvez essayer avec vos propres données audio.
audio-search-demo.png
Conclusion
À l'ère du big data, les gens découvrent que leur vie regorge de toutes sortes d'informations. Pour en tirer le meilleur parti, la recherche de texte traditionnelle ne suffit plus. Aujourd'hui, la technologie de recherche d'informations a un besoin urgent de récupérer différents types de données non structurées, telles que les vidéos, les images et les sons.
Les données non structurées, difficiles à traiter par les ordinateurs, peuvent être converties en vecteurs de caractéristiques à l'aide de modèles d'apprentissage profond. Ces données converties peuvent facilement être traitées par des machines, ce qui nous permet d'analyser des données non structurées comme nos prédécesseurs n'ont jamais pu le faire. Milvus, une base de données vectorielle open-source, peut traiter efficacement les vecteurs caractéristiques extraits par les modèles d'IA et fournit une variété de calculs de similarité vectorielle courants.
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. et Slaney, M., 2017, mars. CNN architectures for large-scale audio classification. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 131-135, 2017
Ne soyez pas un inconnu
- Vue d'ensemble du système
- Référence API et démo
- Conclusion
- Références
- Ne soyez pas un inconnu
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word