285 Views
November 11, 24
スライド概要
2024.11.06 - Microsoft Developer Day - LT大会でのスライド
https://microsoft-events.connpass.com/event/334308/
name: - いけだしんのすけ work: - インフラ・情シス like: - バイク - 読書 - 映画 - アニメ - ゲーム
Azure AI Search & CLAPを用いた 音声の類似検索
CLAP https://github.com/microsoft/CLAP CLAP(Contrastive Language-Audio Pretraining)は、音声とテキストのマルチモーダルモデル。 CLAPを活用することで例えば、音声ファイルからその内容に合った文章を推測したり、テキストに基づいて関連する音声を見つけたりできる。 今回、LAION-AI CLAPを活用 https://github.com/LAION-AI/CLAP
Azure AI Search https://learn.microsoft.com/en-us/azure/search/ フルマネージドの検索サービス。 テキストデータに対する高度な全文検索機能や意味的な類似性に基づくベクトル検索等。 Azure Blob StorageやCosmos DB、SQL Databaseなどの多様なデータソースからデータをインデックス化でき、Microsoft WordやPDF、 PNGなどさまざまなファイル形式を処理することが可能。 さらに、Azure AI SearchはAI機能を活用しており、OCRやテキスト翻訳、キーフレーズ抽出などのデータエンリッチメントが行える。また、 Azure OpenAI Serviceとの連携も可能。 ベクトルデータベースとして活用
Azure AI Search カスタム WebAPI ベクタライザー https://learn.microsoft.com/ja-jp/azure/search/vector-search-vectorizer-custom-web-api Azure AI Searchのカスタムベクタライザーは、ユーザーが独自のベクトル化ロジックを実装し、検索インデックスに統合できる機能。 この機能により、特定のドメインや用途に最適化されたベクトル表現を生成することが可能に。 独自のAPI呼び出しをAzure AI Searchのインデックス定義に組み込める。 独自APIをAI Searchから呼べる
まずはCLAPでオーディオデータセットをベクトル化 512次元のベクトルに
Azure AI Searchを準備しておく 512次元の埋め込みフィールドを 持つインデックスを作成 価格レベルは FreeでもOK
ベクトル化する処理をおこなうAPIをつくる https://github.com/Azure-Samples/azure-search-power-skills/tree/main/Vector/EmbeddingGenerator この部分の実装
デプロイして動作確認 Azure Container Apps にデプロイ APIの動作確認 動作確認OK
ベクトルプロファイルを修正する Azure AI Search > Index > 作成したインデックスを選択 > Jsonの編集 カスタムベクタライザーの名前 cusomWebApi指定 APIエンドポイント ここから Jsonの該当箇所を修正
自然言語で検索してみた結果 ちゃんと検索できました!
検索結果 トップだった音声はこんなかんじ たしかに 「静かで優しい音楽」です!
まとめと感想 ● WebAPIベクタライザーを使えばクエリのベクトル処理だけを分離 できる ● 今回省略しているが、音声同士の類似検索も可能 ● 音の感性ってひとそれぞれなので評価難しい 甲本ヒロトはパンクを「やさしい」言うてますし
ご清聴有難うございました。