Milvusに基づく音声検索

音は情報密度の高いデータタイプである。動画コンテンツの時代には時代遅れに感じるかもしれないが、音声は多くの人にとって主要な情報源であり続けている。リスナーが長期的に減少しているにもかかわらず、2020年には12歳以上のアメリカ人の83%がある週に地上波(AM/FM)ラジオを聴いている(2019年の89%から減少)。逆に、オンライン・オーディオのリスナーは過去20年間で着実に増加しており、同じ【ピュー・リサーチ・センターの調査】(https://www.journalism.org/fact-sheet/audio-and-podcasting/)によれば、アメリカ人の62%が何らかの形で毎週聴いていると報告されている。
波としての音には、周波数、振幅、波形、持続時間の4つの性質がある。音楽用語では、これらはピッチ、ダイナミック、トーン、デュレーションと呼ばれる。また、音は人間や他の動物が環境を認識し理解するのに役立ち、周囲の物体の位置や動きを知る手がかりとなる。
情報キャリアとして、オーディオは3つのカテゴリーに分類することができます:
1.音声:* 単語と文法で構成されるコミュニケーション媒体。音声認識アルゴリズムにより、音声をテキストに変換することができる。 2.**音楽(Music): 旋律、和声、リズム、音色から構成される楽曲を生み出すために、声楽および/または器楽の音が組み合わされたもの。音楽は楽譜で表すことができる。 3.アナログ音をデジタル化して得られるデジタル音声信号。波形は音声、音楽、自然音または合成音を表すことができる。
音声検索は、オンラインメディアをリアルタイムで検索・監視し、知的財産権の侵害を取り締まるために利用できる。また、音声データの分類や統計分析においても重要な役割を担っている。
##処理技術
音声、音楽、その他の一般的な音にはそれぞれ固有の特性があり、異なる処理方法が要求されます。通常、音声は音声を含むグループと含まないグループに分けられます:
- 音声は自動音声認識によって処理されます。
- 音楽音声、効果音、デジタル化された音声信号を含む非音声音声は、音声検索システムを使って処理されます。
この記事では、音声検索システムを使って、音声以外のオーディオデータを処理する方法を取り上げます。音声認識は、この記事では扱いません。
音声特徴抽出
音声の特徴抽出は、音声の類似検索を可能にするため、音声検索システムにおいて最も重要な技術である。音声の特徴を抽出する方法は2つに分類される:
- ガウス混合モデル(GMM)や隠れマルコフモデル(HMM)などの伝統的な音声特徴抽出モデル;
- リカレントニューラルネットワーク(RNN)、長期短期記憶(LSTM)ネットワーク、符号化・復号化フレームワーク、注意メカニズムなどのディープラーニングに基づく音声特徴抽出モデル。
ディープラーニングに基づくモデルは、従来のモデルよりもエラー率が桁違いに低いため、オーディオ信号処理分野の中核技術として勢いを増している。
オーディオデータは通常、抽出されたオーディオ特徴によって表現される。検索プロセスでは、オーディオデータそのものではなく、これらの特徴や属性を検索・比較する。したがって、音声類似検索の有効性は、特徴抽出の品質に大きく依存する。
この記事では、大規模なオーディオパターン認識のための事前訓練されたオーディオニューラルネットワーク(PANNs)が、その平均平均精度(mAP)0.439の特徴ベクトルを抽出するために使用されている(Hershey et al., 2017)。
オーディオデータの特徴ベクトルを抽出した後、Milvusを用いて高性能な特徴ベクトル解析を実装することができる。
ベクトル類似度検索
Milvusは、機械学習モデルやニューラルネットワークによって生成された埋め込みベクトルを管理するために構築された、クラウドネイティブでオープンソースのベクトルデータベースである。コンピュータビジョン、自然言語処理、計算化学、パーソナライズされたレコメンダーシステムなどのシナリオで広く使用されています。
以下の図は、Milvusを使用した一般的な類似検索プロセスを表しています:
Milvusのベクトル類似検索プロセス](https://assets.zilliz.com/how_does_milvus_work_6926180543.png)
1.非構造化データは、ディープラーニングモデルによって特徴ベクトルに変換され、Milvusに挿入される。 2.Milvusはこれらの特徴ベクトルを保存し、インデックスを作成する。 3.リクエストに応じて、Milvusはクエリ・ベクトルに最も近いベクトルを検索して返す。
システム概要
音声検索システムは、主に挿入(黒線)と検索(赤線)の2つの部分から構成される。
音声検索システム powered by Milvus.](https://assets.zilliz.com/audio_retrieval_system_663a911c95.png)
サンプルデータセットにはオープンソースのゲームサウンドを使用しており、コードの詳細はMilvus bootcampに記載されています。
ステップ 1: データの挿入
以下は、事前に学習したPANNs推論モデルを用いて音声埋め込みデータを生成し、Milvusに挿入するサンプルコードです。
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]] 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による音声検索デモ](https://assets.zilliz.com/audio_search_demo_cae60625db.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アーキテクチャ。In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp.131-135, 2017
よそ者になるな
GitHub](https://github.com/milvus-io/milvus/)でMilvusを見つけたり、貢献してください。
Slack](https://join.slack.com/t/milvusio/shared_invite/zt-e0u4qu3k-bI2GDNys3ZqX1YCJ9OM~GQ)でコミュニティと交流する。
Twitter](https://twitter.com/milvusio)でつながりましょう。
読み続けて

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.

Legal Document Analysis: Harnessing Zilliz Cloud's Semantic Search and RAG for Legal Insights
Zilliz Cloud transforms legal document analysis with AI-driven Semantic Search and Retrieval-Augmented Generation (RAG). By combining keyword and vector search, it enables faster, more accurate contract analysis, case law research, and regulatory tracking.
