AIB ファイルを Azure Media Indexer および SQL Server で使用する
このポストは、11 月 3 日に投稿された Using AIB Files with Azure Media Indexer and SQL Server の翻訳です。
はじめに
Azure Media Indexer は強力なメディア プロセッサで、マルチメディア ファイルから意味のあるメタデータを抽出します。前回の記事では、このプロセッサの基本的な使用方法、および出力ファイル (主に XML ベースのファイル) の概要について説明しました。
今回は、インデックス作成ジョブで作成される、強力なオーディオ インデックス作成 BLOB (AIB) ファイルの用途について説明します。
オーディオ インデックス作成 BLOB
AIB ファイルは、格子構造を持つマルチメディア ファイルのテキスト インデックスです。
概して、TTML 形式または SAMI 形式の出力ファイルを対象とするシナリオと比較すると、下記の特徴があります。
- 検出漏れが少ない: 格子構造により、句 (または部分句) と 'AND' 一致を使用した検索が可能です。この場合、個々の単語の信頼性は低いですが、これらが同時にクエリされたという事実から、この句が正しいだろうと推察することができます。単語格子は、認識機能でも検討されていながら高スコアの候補としては扱われない、代替の認識候補を表しています。
- 誤検知が少ない: 格子構造を使用して、各単語の一致について信頼性スコアが計算され、信頼性の低い一致は無視されます。
- タイムスタンプが記録される: 格子構造では、テキストとは異なり、単語が出現した開始時刻のタイム スタンプが記録されます。これはナビゲーションの際に役立ちます。
AIB の技術的な背景について、ここに掲載している情報およびさらに詳細な情報をご覧になりたい場合は、Microsoft Research の Web サイト (英語) でお読みいただけます。
現時点では、AIB ファイルを使用するにはカスタムの Indexer SQL IFilter アドオンが必要です。
SQL Server 仮想マシンのセットアップ
IFilter を使用するには、SQL Server (2008 またはそれ以降) がインストールされている Windows Server マシンが必要です。Azure VM ギャラリーには、今回の用途に適した、SQL Server が事前にセットアップされているものがあります。
まず Azure 管理ポータルに移動し、画面左下隅の [New] を選択します。このチュートリアルでは、下図のとおり、ギャラリーにある SQL Server 2012 SP1 Web イメージを使用します。
注: 仮想マシンを作成するときに使用したログイン資格情報は、忘れないようにしてください。
次に、ポータルの [Connect] ボタンを使用して、新しく作成したマシンへのリモート デスクトップ接続を確立します。その後、AIB ファイルを処理するための SQL Server インスタンスの構成を開始します。
SQL Server を構成する
新しくプロビジョニングした仮想マシンで Internet Explorer を開き、https://aka.ms/indexersql にアクセスします。
注: 場合によっては、上記の Web サイトを許可リストに追加する必要があります (下図参照)。
カスタムの Indexer SQL IFilter アドオンを仮想マシンにダウンロードしたら、アーカイブからすべてのファイルを展開し、セットアップ スクリプト (32 ビット マシンの場合は setup32.msi、64 ビット マシンの場合は setup64.msi) を実行します。この操作で、必要な実行ファイル、DLL、ドキュメント、およびサンプル コードが、インストール時に選択したディレクトリにすべてコピーされます。
次に、オーディオ検索に使用するデータベースを新規作成する必要があります。
- SQL Server Management Studio を開いて、完全な管理者特権を持つユーザーとしてサーバーにログインする
- AudioSearch データベースを作成する
- オブジェクト エクスプローラーで [Databases] を右クリックし、次に [New Database…] を選択します。
- [Database name] フィールドに「AudioSearch」と入力します。
- [Full-Text Indexing] チェックボックスを選択し、このデータベースで有効化する
- オブジェクト エクスプローラーで AudioSearch データベースを右クリックし、次に [Properties] を選択します。
- [Select a page] ツリーで [Files] ノードをクリックし、[Files] のプロパティ ページを開きます。
- [Use full-text indexing] チェックボックスが選択されていることを確認します。
- "Files" テーブルとフルテキスト インデックスを作成する
- SQL スクリプト ([インストール ディレクトリ]\code\Setup.sql) を開きます。
- 上部のコマンド バーにあるデータベースのドロップダウン メニューで適切なデータベースが選択されていることを確認します ([master] などが選択されている場合は [AudioSearch] に変更します)。
- スクリプトを実行します。
これで Files テーブルの作成、および AIB 列でオーディオのフルテキスト インデックスを作成するための構成が完了しました。フルテキスト インデックスは、Files テーブルに新しいレコードが挿入されるたびに自動的に更新されます。
データベースで実際に試す
以上で環境のセットアップはすべて完了しました。最後に、AIB ファイルを使用して SQL Server のフルテキスト検索を実行します。[インストール ディレクトリ]\data に移動すると、sample_video.wmv というビデオ ファイルと sample_video.wmv.aib という AIB ファイルがあります。このビデオ ファイルに対するインデックス作成ジョブの実行については、この記事では扱いません。詳細情報をご覧になりたい方は前回の記事をご参照ください (前回の記事のビデオを再利用して、結果を比較していただくことも可能です)。
最後の手順で Files テーブルを作成しましたが、これを利用して、sqlcmd コマンドライン ユーティリティでこのサンプル AIB ファイルを Files テーブルに挿入することができます。
sqlcmd -d AudioSearch -Q "insert into files (Title, Description, Duration,
FilePath,Ext,AIB) values ('Bill Gates: Windows and the Cloud', 'Interview with
Bill Gates on Channel9 about his transition out of Microsoft and his views on
cloud computing.', 79, '[InstallDir]\data\sample_video.wmv','.aib',(select *
from openrowset(bulk '[InstallDir]\data\sample_video.wmv.aib', SINGLE_BLOB) as
X) )
次に、SQL Server Management Studio を使用して、SQL Server により AIB のインデックスが適切に作成されたことを確認します。
1. SQL Server Management Studio を開いて、完全な管理者特権を持つユーザーとしてサーバーにログインします。
2. コマンド バーで [New Query] を選択し、サーバーへの接続を求めるメッセージが表示された場合は同一のサーバーに接続します。
3. 次の SQL クエリを実行します。
select filepath from files where contains(AIB,'spoken:cloud')
結果テーブルにファイル パスを含む 1 行のテキストが表示されます。
[InstallDir]\data\sample_video.wmv
4. 次に、下記のクエリを実行して、結果が 0 件であることを確認します。
select filepath from files where contains(AIB,'spoken:washington')
期待どおりの結果が得られたら、Indexer SQL Server IFilter によるビデオ ファイルのインデックス作成が成功したことになります。
次回の記事では、Azure Media Indexer を開発ワークフローに統合する方法について説明します。ぜひご期待ください。
関連情報
写真提供: adesigna (英語)