Поиск аудио на основе Milvus
Звук — это тип данных с высокой информационной плотностью. Хотя в эпоху видеоконтента он может казаться устаревшим, аудио остается основным источником информации для многих людей. Несмотря на долгосрочное снижение числа слушателей, 83% американцев в возрасте 12 лет и старше слушали эфирное (AM/FM) радио в течение данной недели в 2020 году (по сравнению с 89% в 2019 году). Напротив, онлайн-аудио демонстрировало устойчивый рост числа слушателей за последние два десятилетия: согласно тому же исследованию Pew Research Center, 62% американцев, как сообщается, еженедельно слушают его в той или иной форме.
Как волна, звук включает четыре свойства: частоту, амплитуду, форму волны и длительность. В музыкальной терминологии они называются высотой звука, динамикой, тембром и длительностью. Звуки также помогают людям и другим животным воспринимать и понимать нашу среду, предоставляя контекстные подсказки о местоположении и движении объектов вокруг нас.
Как носитель информации, аудио можно классифицировать на три категории:
- Речь: Средство коммуникации, состоящее из слов и грамматики. С помощью алгоритмов распознавания речи речь может быть преобразована в текст.
- Музыка: Вокальные и/или инструментальные звуки, объединенные для создания композиции, состоящей из мелодии, гармонии, ритма и тембра. Музыка может быть представлена партитурой.
- Волновая форма: Цифровой аудиосигнал, полученный путем оцифровки аналоговых звуков. Волновые формы могут представлять речь, музыку, а также естественные или синтезированные звуки.
Поиск аудио может использоваться для поиска и мониторинга онлайн-медиа в реальном времени с целью пресечения нарушений прав интеллектуальной собственности. Он также играет важную роль в классификации и статистическом анализе аудиоданных.
Технологии обработки
Речь, музыка и другие общие звуки обладают уникальными характеристиками и требуют разных методов обработки. Обычно аудио разделяют на группы, содержащие речь, и группы, которые ее не содержат:
- Речевое аудио обрабатывается автоматическим распознаванием речи.
- Неречевое аудио, включая музыкальное аудио, звуковые эффекты и оцифрованные речевые сигналы, обрабатывается с использованием систем поиска аудио.
Эта статья посвящена тому, как использовать систему поиска аудио для обработки неречевых аудиоданных. Распознавание речи в этой статье не рассматривается
Извлечение аудиопризнаков
Извлечение признаков — самая важная технология в системах поиска аудио, поскольку она обеспечивает поиск аудио по сходству. Методы извлечения аудиопризнаков делятся на две категории:
- Традиционные модели извлечения аудиопризнаков, такие как гауссовы смеси (GMM) и скрытые марковские модели (HMM);
- Модели извлечения аудиопризнаков на основе глубокого обучения, такие как рекуррентные нейронные сети (RNN), сети долгой краткосрочной памяти (LSTM), фреймворки кодирования-декодирования, механизмы внимания и т. д.
Модели на основе глубокого обучения имеют уровень ошибок на порядок ниже, чем традиционные модели, и поэтому набирают популярность как ключевая технология в области обработки аудиосигналов.
Аудиоданные обычно представлены извлеченными аудиопризнаками. Процесс поиска ищет и сравнивает эти признаки и атрибуты, а не сами аудиоданные. Поэтому эффективность поиска аудио по сходству в значительной степени зависит от качества извлечения признаков.
В этой статье крупномасштабные предварительно обученные аудионейронные сети для распознавания аудиошаблонов (PANNs) используются для извлечения векторов признаков благодаря их средней точности (mAP) 0,439 (Hershey et al., 2017).
После извлечения векторов признаков аудиоданных мы можем реализовать высокопроизводительный анализ векторов признаков с использованием Milvus.
Поиск по векторному сходству
Milvus — это облачная нативная векторная база данных с открытым исходным кодом, созданная для управления векторами вложений, генерируемыми моделями машинного обучения и нейронными сетями. Она широко используется в таких сценариях, как компьютерное зрение, обработка естественного языка, вычислительная химия, персонализированные рекомендательные системы и многое другое.
Следующая диаграмма показывает общий процесс поиска по сходству с использованием Milvus:
Процесс поиска векторного сходства Milvus.
- Неструктурированные данные преобразуются моделями глубокого обучения в векторы признаков и вставляются в Milvus.
- Milvus хранит и индексирует эти векторы признаков.
- По запросу Milvus ищет и возвращает векторы, наиболее похожие на вектор запроса.
Обзор системы
Система поиска аудио в основном состоит из двух частей: вставки (черная линия) и поиска (красная линия).
Система поиска аудио на базе Milvus.
Пример набора данных, используемый в этом проекте, содержит игровые звуки с открытым исходным кодом, а код подробно описан в Milvus bootcamp.
Шаг 1: Вставка данных
Ниже приведен пример кода для генерации аудиовложений с помощью предварительно обученной модели PANNs-inference и их вставки в Milvus, который присваивает уникальный ID каждому векторному вложению.
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
Затем возвращенные ids_milvus сохраняются вместе с другой релевантной информацией (например, wav_name) для аудиоданных, хранящихся в базе данных MySQL, для последующей обработки.
1 get_ids_correlation(ids_milvus, wav_name)
2 load_data_to_mysql(conn, cursor, table_name)
3
Шаг 2: Поиск аудио
Milvus вычисляет расстояние внутреннего произведения между заранее сохраненными векторами признаков и входными векторами признаков, извлеченными из аудиоданных запроса с помощью модели PANNs-inference, и возвращает ids_milvus похожих векторов признаков, которые соответствуют искомым аудиоданным.
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
Справочник API и демо
API
Эта система поиска аудио создана на основе кода с открытым исходным кодом. Ее основные функции — вставка и удаление аудиоданных. Все API можно просмотреть, введя 127.0.0.1:
Демо
Мы размещаем онлайн живую демонстрацию системы поиска аудио на базе Milvus, которую вы можете попробовать со своими собственными аудиоданными.
Демо поиска аудио на базе Milvus.
Заключение
Живя в эпоху больших данных, люди обнаруживают, что их жизнь изобилует всевозможной информацией. Чтобы лучше в ней разбираться, традиционного текстового поиска уже недостаточно. Современная технология поиска информации остро нуждается в поиске различных типов неструктурированных данных, таких как видео, изображения и аудио.
Неструктурированные данные, которые компьютерам трудно обрабатывать, можно преобразовать в векторы признаков с помощью моделей глубокого обучения. Эти преобразованные данные легко обрабатываются машинами, позволяя нам анализировать неструктурированные данные способами, которые были недоступны нашим предшественникам. Milvus, векторная база данных с открытым исходным кодом, может эффективно обрабатывать векторы признаков, извлеченные моделями ИИ, и предоставляет различные распространенные методы вычисления векторного сходства.
Ссылки
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, March. CNN architectures for large-scale audio classification. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 131-135, 2017
Не будьте чужаком
Читать далее

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.

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.



