Milvus 기반 오디오 검색
소리는 정보 밀도가 높은 데이터 유형입니다. 동영상 콘텐츠의 시대에는 구식처럼 느껴질 수 있지만, 오디오는 여전히 많은 사람들에게 주요 정보원입니다. 청취자의 장기적인 감소에도 불구하고, 2020년에는 12세 이상 미국인의 83%가 특정 주에 지상파(AM/FM) 라디오를 청취했습니다(2019년 89%에서 감소). 반대로, 온라인 오디오는 지난 20년 동안 청취자가 꾸준히 증가했으며, 동일한 Pew Research Center study에 따르면 미국인의 62%가 매주 어떤 형태로든 온라인 오디오를 듣는 것으로 보고되었습니다.
파동으로서 소리는 네 가지 속성을 포함합니다: 주파수, 진폭, 파형, 지속 시간. 음악 용어로는 이를 음높이, 셈여림, 음색, 지속 시간이라고 합니다. 소리는 또한 인간과 다른 동물들이 환경을 지각하고 이해하도록 도와주며, 주변에 있는 물체의 위치와 움직임에 대한 맥락 단서를 제공합니다.
정보 전달 매체로서 오디오는 세 가지 범주로 분류될 수 있습니다:
- 음성: 단어와 문법으로 구성된 커뮤니케이션 매체입니다. 음성 인식 알고리즘을 사용하면 음성을 텍스트로 변환할 수 있습니다.
- 음악: 멜로디, 화성, 리듬, 음색으로 이루어진 구성을 만들기 위해 결합된 보컬 및/또는 악기 소리입니다. 음악은 악보로 표현될 수 있습니다.
- 파형: 아날로그 소리를 디지털화하여 얻은 디지털 오디오 신호입니다. 파형은 음성, 음악, 자연음 또는 합성음을 표현할 수 있습니다.
오디오 검색은 지적 재산권 침해를 단속하기 위해 온라인 미디어를 실시간으로 검색하고 모니터링하는 데 사용될 수 있습니다. 또한 오디오 데이터의 분류와 통계 분석에서 중요한 역할을 합니다.
처리 기술
음성, 음악 및 기타 일반적인 소리는 각각 고유한 특성을 가지고 있으며 서로 다른 처리 방법을 요구합니다. 일반적으로 오디오는 음성을 포함하는 그룹과 포함하지 않는 그룹으로 분리됩니다:
- 음성 오디오는 자동 음성 인식으로 처리됩니다.
- 음악 오디오, 음향 효과, 디지털화된 음성 신호를 포함한 비음성 오디오는 오디오 검색 시스템을 사용하여 처리됩니다.
이 글은 오디오 검색 시스템을 사용하여 비음성 오디오 데이터를 처리하는 방법에 초점을 맞춥니다. 음성 인식은 이 글에서 다루지 않습니다
오디오 특징 추출
특징 추출은 오디오 유사도 검색을 가능하게 하므로 오디오 검색 시스템에서 가장 중요한 기술입니다. 오디오 특징을 추출하는 방법은 두 가지 범주로 나뉩니다:
- Gaussian mixture models(GMMs) 및 hidden Markov models(HMMs)와 같은 전통적인 오디오 특징 추출 모델;
- recurrent neural networks(RNNs), long short-term memory(LSTM) networks, encoding-decoding frameworks, attention mechanisms 등과 같은 딥러닝 기반 오디오 특징 추출 모델.
딥러닝 기반 모델은 전통적인 모델보다 오류율이 한 자릿수 규모로 낮으므로, 오디오 신호 처리 분야에서 핵심 기술로 주목을 받고 있습니다.
오디오 데이터는 일반적으로 추출된 오디오 특징으로 표현됩니다. 검색 과정은 오디오 데이터 자체가 아니라 이러한 특징과 속성을 검색하고 비교합니다. 따라서 오디오 유사도 검색의 효과는 특징 추출 품질에 크게 좌우됩니다.
이 글에서는 large-scale pre-trained audio neural networks for audio pattern recognition (PANNs)를 사용하여 0.439의 mean average accuracy(mAP)(Hershey et al., 2017)를 가진 특징 벡터를 추출합니다.
오디오 데이터의 특징 벡터를 추출한 후, Milvus를 사용하여 고성능 특징 벡터 분석을 구현할 수 있습니다.
벡터 유사도 검색
Milvus는 머신 러닝 모델과 신경망에서 생성된 임베딩 벡터를 관리하도록 구축된 클라우드 네이티브 오픈 소스 벡터 데이터베이스입니다. 컴퓨터 비전, 자연어 처리, 계산화학, 개인화 추천 시스템 등과 같은 시나리오에서 널리 사용됩니다.
다음 다이어그램은 Milvus를 사용한 일반적인 유사도 검색 프로세스를 보여줍니다:
Milvus의 벡터 유사도 검색 프로세스.
- 비정형 데이터는 딥 러닝 모델에 의해 특성 벡터로 변환되어 Milvus에 삽입됩니다.
- Milvus는 이러한 특성 벡터를 저장하고 인덱싱합니다.
- 요청이 있을 때, Milvus는 쿼리 벡터와 가장 유사한 벡터를 검색하고 반환합니다.
시스템 개요
오디오 검색 시스템은 주로 두 부분, 즉 삽입(검은색 선)과 검색(빨간색 선)으로 구성됩니다.
Milvus 기반 오디오 검색 시스템.
이 프로젝트에서 사용된 샘플 데이터셋에는 오픈 소스 게임 사운드가 포함되어 있으며, 코드는 Milvus bootcamp에 자세히 설명되어 있습니다.
1단계: 데이터 삽입
아래는 사전 학습된 PANNs-inference 모델로 오디오 임베딩을 생성하고 이를 Milvus에 삽입하는 예제 코드입니다. 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는 후속 처리를 위해 MySQL 데이터베이스에 보관된 오디오 데이터의 다른 관련 정보(예: wav_name)와 함께 저장됩니다.
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는 AI 모델에서 추출된 특성 벡터를 효율적으로 처리할 수 있으며, 다양한 일반적인 벡터 유사도 계산을 제공합니다.
참고 문헌
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 아키텍처. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 131-135, 2017
언제든지 찾아주세요
계속 읽기

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.

Expanding Our Global Reach: Zilliz Cloud Launches in Azure Central India
Zilliz Cloud expands to Azure Central India. This new region helps customers meet compliance, reduce latency, and optimize cloud costs when building AI applications.

Milvus WebUI: A Visual Management Tool for Your Vector Database
Explore Milvus WebUI to monitor, manage, and optimize your vector database with real-time insights, performance tracking, and system health monitoring.



