처리 기술
소리는 정보 밀도가 높은 데이터 유형입니다. 비디오 콘텐츠 시대에 구식으로 느껴질 수도 있지만, 오디오는 여전히 많은 사람들에게 주요 정보 소스입니다. 청취자의 장기적인 감소에도 불구하고, 12세 이상 미국인의 83%가 2020년 한 주 동안 지상파(AM/FM) 라디오를 청취했습니다(2019년의 89%에서 감소). 반면, 온라인 오디오는 지난 20년 동안 청취자가 꾸준히 증가하여 동일한 퓨 리서치 센터의 조사에 따르면 미국인의 62%가 매주 어떤 형태로든 오디오를 듣는 것으로 나타났습니다.
파동으로서 소리는 주파수, 진폭, 파형, 지속 시간이라는 네 가지 속성을 포함합니다. 음악 용어로는 이를 피치, 다이나믹, 톤, 지속 시간이라고 합니다. 또한 소리는 인간과 다른 동물이 주변 환경을 인식하고 이해하는 데 도움을 주며, 주변 사물의 위치와 움직임에 대한 맥락적 단서를 제공합니다.
정보 전달자로서 오디오는 세 가지 범주로 분류할 수 있습니다:
- 음성: 단어와 문법으로 구성된 커뮤니케이션 매체. 음성 인식 알고리즘을 사용하면 음성을 텍스트로 변환할 수 있습니다.
- 음악: 음악: 멜로디, 화음, 리듬, 음색으로 구성된 구성을 만들기 위해 보컬 및/또는 악기 소리를 결합한 것입니다. 음악은 악보로 표현할 수 있습니다.
- 파형: 아날로그 사운드를 디지털화하여 얻은 디지털 오디오 신호입니다. 파형은 음성, 음악, 자연음 또는 합성음을 나타낼 수 있습니다.
오디오 검색은 온라인 미디어를 실시간으로 검색하고 모니터링하여 지적 재산권 침해를 단속하는 데 사용할 수 있습니다. 또한 오디오 데이터의 분류 및 통계 분석에서도 중요한 역할을 담당합니다.
처리 기술
음성, 음악 및 기타 일반적인 소리는 각각 고유한 특성을 가지고 있으며 다양한 처리 방법이 필요합니다. 일반적으로 오디오는 음성이 포함된 그룹과 그렇지 않은 그룹으로 구분됩니다:
- 음성 오디오는 자동 음성 인식을 통해 처리됩니다.
- 음악 오디오, 음향 효과 및 디지털화된 음성 신호를 포함한 비음성 오디오는 오디오 검색 시스템을 사용하여 처리됩니다.
이 문서에서는 오디오 검색 시스템을 사용하여 비음성 오디오 데이터를 처리하는 방법에 대해 중점적으로 설명합니다. 음성 인식은 이 문서에서 다루지 않습니다.
오디오 특징 추출
특징 추출은 오디오 유사성 검색을 가능하게 하는 오디오 검색 시스템에서 가장 중요한 기술입니다. 오디오 특징을 추출하는 방법은 크게 두 가지로 나뉩니다:
- 가우스 혼합 모델(GMM)과 숨겨진 마르코프 모델(HMM)과 같은 전통적인 오디오 특징 추출 모델;
- 순환 신경망(RNN), 장단기 기억(LSTM) 네트워크, 인코딩-디코딩 프레임워크, 주의 메커니즘 등과 같은 딥러닝 기반 오디오 특징 추출 모델.
딥러닝 기반 모델은 기존 모델보다 오류율이 훨씬 낮기 때문에 오디오 신호 처리 분야의 핵심 기술로 각광받고 있습니다.
오디오 데이터는 일반적으로 추출된 오디오 피처로 표현됩니다. 검색 프로세스는 오디오 데이터 자체보다는 이러한 특징과 속성을 검색하고 비교합니다. 따라서 오디오 유사도 검색의 효율성은 특징 추출 품질에 따라 크게 좌우됩니다.
이 기사에서는 오디오 패턴 인식을 위해 사전 훈련된 대규모 오디오 신경망(PANN) 을 사용하여 평균 평균 정확도(mAP)가 0.439인 특징 벡터를 추출합니다(Hershey et al., 2017).
오디오 데이터의 특징 벡터를 추출한 후 Milvus를 사용하여 고성능 특징 벡터 분석을 구현할 수 있습니다.
벡터 유사도 검색
Milvus는 머신러닝 모델과 신경망에서 생성된 임베딩 벡터를 관리하기 위해 구축된 클라우드 네이티브 오픈 소스 벡터 데이터베이스입니다. 컴퓨터 비전, 자연어 처리, 계산 화학, 개인화된 추천 시스템 등과 같은 시나리오에서 널리 사용됩니다.
다음 다이어그램은 Milvus를 사용한 일반적인 유사도 검색 프로세스를 보여줍니다: how-does-milvus-work.png
- 비정형 데이터는 딥러닝 모델에 의해 특징 벡터로 변환되어 Milvus에 삽입됩니다.
- Milvus는 이러한 특징 벡터를 저장하고 인덱싱합니다.
- 요청이 들어오면 Milvus는 쿼리 벡터와 가장 유사한 벡터를 검색하여 반환합니다.
시스템 개요
오디오 검색 시스템은 크게 삽입(검은색 선)과 검색(빨간색 선)의 두 부분으로 구성됩니다.
오디오 검색 시스템.png
이 프로젝트에 사용된 샘플 데이터 세트에는 오픈 소스 게임 사운드가 포함되어 있으며, 코드는 Milvus 부트캠프에 자세히 설명되어 있습니다.
1단계: 데이터 삽입
아래는 사전 학습된 PANN 추론 모델로 오디오 임베딩을 생성하고 이를 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 추론 모델을 사용하여 검색된 오디오 데이터에 해당하는 유사한 특징 벡터의 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
이 오디오 검색 시스템은 오픈 소스 코드로 구축되었습니다. 주요 기능은 오디오 데이터 삽입과 삭제입니다. 브라우저에서 127.0.0.1:
데모
자신의 오디오 데이터로 사용해 볼 수 있는 Milvus 기반 오디오 검색 시스템의 라이브 데모를 온라인에서 호스팅합니다.
오디오 검색 데모.png
결론
빅 데이터 시대에 살고 있는 사람들은 온갖 종류의 정보로 가득한 삶을 살고 있습니다. 이를 더 잘 이해하기 위해서는 기존의 텍스트 검색으로는 더 이상 충분하지 않습니다. 오늘날의 정보 검색 기술은 동영상, 이미지, 오디오 등 다양한 비정형 데이터 유형의 검색이 절실히 요구되고 있습니다.
컴퓨터가 처리하기 어려운 비정형 데이터는 딥러닝 모델을 사용하여 특징 벡터로 변환할 수 있습니다. 이렇게 변환된 데이터는 기계가 쉽게 처리할 수 있어 이전에는 불가능했던 방식으로 비정형 데이터를 분석할 수 있습니다. 오픈소스 벡터 데이터베이스인 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 아키텍처. 2017 IEEE 국제 음향, 음성 및 신호 처리 컨퍼런스(ICASSP), 131-135쪽, 2017.
낯선 사람이 되지 마세요
- 시스템 개요
- API 참조 및 데모
- 결론
- 참고 자료
- 낯선 사람이 되지 마세요
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