砂漠の旅人(たびと)

UNIX / MS-DOS 時代から電脳砂漠を旅しています

【Video Analyzer】Microsoft Azure AI サービスを利用する

こんにちは、たびとです。

以前、Microsoft Azure AI サービスを用いて、動画ファイルを AI 解析する C# アプリケーションを開発したことがありますが、 最初は Azure AI サービスのボリュームが多すぎて何から手を付けて良いのかわかりませんでした。

今回は、Microsoft の Azure AI サービスを使って動画ファイルを解析した時の概要を紹介したいと思います。 使ったのは、学習済みの AI サービスである Video Analyzer (旧: Video Indexer) 、 Computer Vision Speech to Text です。

Microsoft Azure AI サービスですが、最初に使い始めたときは、 どうやって、C# から利用すればよいかのか、 情報が多すぎて、さっぱり理解できませんでした。

今回は、Video Analyzer に関しての概要を説明したいと思います。

この記事の対象者

  • Microsoft Azure AI サービスに興味のある方
  • 動画ファイルを AI で解析してみたい方

なぜ Azure AI サービスなのか

当時、GoogleAmazon の AI サービスも比較したのですが、 Microsoft Azure AI サービスのスコアが一番でした。

今でも Microsoft Azure AI サービスが最適とは限らないため、 色々と調べてみることをお勧めします。

Video Analyzer (旧: Video Indexer)

Microsoft のアカウントを作っていれば、2,400 分の解析が無料で利用できます。 また、Video Analyzer は Web サイト上でも解析結果を見ることができるようになっています。 映像解析の取り掛かりとしては、これが一番良いと思います。

www.videoindexer.ai

まずは、Web サイトに動画ファイルをアップロードして、どのように解析されるのかを確認することで、 アプリを使ったときのイメージが掴みやすいと思います。

Video Analyzer アップロード画面

適当な動画ファイルを用意できなくても、上記赤枠の「サンプル」タブをクリックすると、 解析済みのサンプルで、どのように解析されるのかを確認することができます。

サンプルのひとつを選択

映像を確認しながら、どのように解析されたのかが右側に表示されます。 ここまでは誰でも簡単にできると思います。

アプリから制御する前の準備

前述の動画ファイルのアップロードから解析、解析結果の取得はアプリからも操作可能です。 アプリから操作するためには、3 つの情報が必要になります。 通常は Azure Portal の中にすべての情報が格納されていますが、 なぜか Video Analyzer だけは別サイトで管理されているため、注意が必要です。

  • Video Analyzer の アカウント ID
  • ロケーション名 (試用期間中は trial )
  • API Key (Video Analyzer Subscriptions の Primary Key または Secondary Key)

アカウント ID は、Video Analyzer の Web サイトで確認します。 モザイクの赤枠が ID です。無料期間中は Trial と表示された箇所をロケーションとして利用します。 たびとは、このロケーションに Trial を入れることに気付くまで、かなりの時間を浪費しました。

Video Analyzer アカウント情報

最後の API Key は、 Azure Video Indexer Developer Portal (名称がまだ古いまま) サイトの右上の Sign in ボタンからサインインします。

api-portal.videoindexer.ai

サインイン後、Sign out ボタン横の Profile ボタンをクリックします。 ユーザプロファイル情報が表示されるので、Subscriptions の Primary key を表示させます。 これで、アプリから操作するための 3 つの情報が入手できました。

最初にアカウント トークンを取得する

Video Analyzer の操作には、アカウント トークンが必要になります。 API の一覧を見ようとすると、 Get Account Access Token が最初に表示されます。

api-portal.videoindexer.ai

このとき、緑色で表示されている Try it ボタンを押すと、Web 上で実際に動作を確認することができます。

Get Account Access Token の Try it ボタン

Try it ボタンを押すと、パラメータを入力する画面が表示されます。 既に必要な情報は入力済みなので、accountId の箇所だけを入力し、Send ボタンをクリックします。 ちなみに、Ocp-Apim-Subscription-Key パラメータに入力されている値が API Key なので、 ここから確認することもできます。

Web サイト上で Get Account Access Token を確認する

入力が正しければ、HTTP ステータス 200 OK が表示されます。

Get Account Access Token の実行結果

ここに表示された値は、他の REST API を利用するとき、 accessToken として指定する必要があります。

Linux から確認する

Windows であれば、WSL Ubuntu などから curl コマンドを使って、 Get Account Access Token を実行することができます。

$ curl -k -v \
> https://api.videoindexer.ai/Auth/trial/Accounts/<アカウントID>/AccessToken?allowEdit=true \
> -H 'x-ms-client-request-id:' \
> -H 'Ocp-Apim-Subscription-Key:<API Key>'| jq

途中省略

{ [5 bytes data]
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Length: 505
< Content-Type: application/json; charset=utf-8
< x-ms-request-id: 16dc9f85-485f-4a92-8cf1-997b8dbc0886
< X-Content-Type-Options: nosniff
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< api-supported-versions: 2.0
< Access-Control-Allow-Credentials: true
< Date: Mon, 09 May 2022 14:26:20 GMT
<
{ [505 bytes data]
100   505  100   505    0     0    553      0 --:--:-- --:--:-- --:--:--   553
* Connection #0 to host api.videoindexer.ai left intact
"eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiJmNDE1Y2YwNC0wZmZhLTQ2ZjctYTA5ZS05Y2IwMTQ4YWQ1NGUiLCJQZXJtaXNzaW9uIjoiQ29udHJpYnV0b3IiLCJFeHRlcm5hbFVzZXJJZCI6IjJjYzJhODQwODJkY2MwZDMiLCJVc2VyVHlwZSI6Ik1pY3Jvc29mdCIsIklzc3VlckxvY4F0aW9uIjoiVHJpYWwiLCJuYmYiOjE2NTIxMDYwODAsImV4cCI6MTY1MjEwOTk4MCwiaXNzIjoiaHR0cHM6Ly9hcGkudmlkZW9pbmRleGVyLmFpLyIsImF1ZCI6Imh0dHBzOi8vYXBpLnZpZGVvaW5kZXhlci5haS8ifQ.7OFeQSdnPa3rRsOGOMqcIbqZQpMmSgSQY4dOXobW3Kg"

主な REST API

API を利用するには、前述のアクセストークンが必要になります。 また、アクセストークンの取得と同様に Try it ボタンが付いています。 ここでは「ビデオ=動画ファイル」と同じ意味で使っています。

API 説明
Get Access Token Video Analyzer を利用するためのトークンを取得します。
Upload Video ビデオをアップロードし、学習済みAIで解析します。
List Video アップロードしたビデオの一覧をJSON形式で取得します。
Get Video Index 学習済みAIで解析した情報をJSON形式で取得します。
Get Video Captions 音声認識により音声をテキストに変換した文字列を取得します。
Get Video Thumbnail 解析データに格納されている サムネイルID に該当するビデオを取得します。
Get Video Source File Download Url 解析データに格納されている サムネイルID に該当する画像ファイルを取得します。

まとめ

今回は Video Analyzer (旧: Video Indexer) を利用するとき、何から始めたらよいのか迷わないように最初の一歩を説明しました。 Video Analyzer は他の Azure AI サービスとは異なり、Microsoft Azure Portal サイトからは確認できないため、 使えるようになるまでに、あれこれと探すことの方が多かったので、まとめてみました。

思ったよりも字数が多くなったので、後半は概要のみでさらっと紹介するだけに留めました。 ただし、アクセストークンが取得できるようになれば、後は API を使ってみるだけなので、 ハードルはぐっと下がると思います。

この記事の続きで、C# アプリから REST API を利用する方法を紹介しています。

sabakunotabito.hatenablog.com

では、皆さん、よい旅を。