Azure Media Analytics は、メディアサービスが提供する分析機能です。
https://docs.microsoft.com/ja-jp/azure/media-services/media-services-analytics-overview
さんざんいろんな人が試してるとは思いますが、もちろんWindowsは使わない方向で考えて、Pythonで以下のライブラリを使ってみました。
amspy
https://github.com/msleal/amspy
試したところ、Python3で動作し、REST API をラップしているようです。
では、まずはUbuntuへの導入方法を。
最初にライブラリを導入するための、Python3用setuptoolsとpipをaptでインストールします。
$ sudo apt install python3-pip python3-setuptools
次に、pipを最新版にして、ストレージに接続するための Azure SDK for Python をインストールします。
$ sudo pip3 install —upgrade pip
$ sudo pip3 install azure
githubより、amspyをクローンしてインストールします。
$ git clone https://github.com/msleal/amspy.git
$ cd amspy
$ sudo python3 setup.py install
次は、exampleを使って、Indexer v2 を使って解析する準備をします。
ポータルよりメディアサービスのアカウントキーとストレージのアカウントキーよりアクセス情報を確認して設定ファイルに保存します。
$ cd amspy/example
$ vi config.json
設定ファイルの中身はこのように設定します。
{
"accountName": "メディアサービスのアカウント名",
"accountKey": "メディアサービスの主キー",
"sto_accountName": "ストレージ アカウント名",
"sto_accountKey": "ストレージのキー",
"logName": "log/indexer.txt",
"logLevel": "DEBUG",
"purgeLog": "Yes"
}
Indexer v2 のサンプルを設定します。
$ cd analytics/indexer_v2
$ vi indexerv2.json
今回は空耳なので、設定ファイルのLanguageを日本語(jaJP)にします。
{
"version":"1.0",
"Features":
[
{
"Options": {
"Formats":["WebVtt","ttml"],
"Language":"jaJP",
"Type":"RecoOptions"
},
"Type":"SpReco"
}]
}
なお、空耳ということで今回は独断と偏見で Prince の Batdance にしました。
https://youtu.be/0wbtLYPTCug
さて、農協牛乳はどうなるのでしょうか?(再生時間で5:14のあたり)
本当はボーカルトラックだけ抜き出してやりたいところですが、大変なのでそのまま楽曲を解析します。
ファイルを置いて、プログラムを多少変更します。
$ mv /home/xxx/Batdance.mp3 .
$ vi indexer_v2.py
プログラムは、76行目を読み込むファイル名、ファイルの相対パスに変更します。
VIDEO_NAME = "Batdance.mp3"
VIDEO_PATH = "./Batdance.mp3"
また、最終行に以下の2行を追加すると、メディアサービスで使ったストレージを自動的に削除するのでお財布に優しいです。
response = amspy.delete_media_asset(access_token, asset_id)
response = amspy.delete_media_asset(access_token, output_asset_id)
では実行します。結果は、同じディレクトリのoutput以下に保存されます。
$ python3 indexer_v2.py
$ cat output/Batdance_aud_SpReco.vtt
中身をみてみましょう。
WEBVTT
00:00:03.200 --> 00:00:05.070
王への愛*にいる
00:00:06.150 --> 00:00:12.010
アプリ
00:00:47.350 --> 00:00:49.510
H 島
00:00:50.330 --> 00:00:53.360
H
00:01:05.540 --> 00:01:09.900
Pro キッズ店
00:01:24.720 --> 00:01:27.480
V
00:01:32.670 --> 00:01:35.350
アプリ
00:01:38.810 --> 00:01:40.070
V
00:02:42.860 --> 00:02:44.280
アピタ
00:02:45.800 --> 00:02:51.990
V
00:02:52.540 --> 00:02:54.520
V
00:03:04.500 --> 00:03:05.250
そうね
00:03:06.740 --> 00:03:10.640
ハイト保証ですからねやってるからな
00:03:11.400 --> 00:03:21.570
Z
00:03:27.170 --> 00:03:30.280
このパスタ
00:03:31.150 --> 00:03:43.680
プレステ零
00:03:46.660 --> 00:03:49.000
V
00:03:50.010 --> 00:03:51.450
果実は行くってなんです
00:03:53.010 --> 00:03:57.610
Pro
00:04:21.250 --> 00:04:26.050
ステージ v だよね
00:04:27.090 --> 00:04:29.480
V
00:04:30.610 --> 00:04:32.380
ええ
00:04:42.630 --> 00:04:45.360
で
00:04:53.890 --> 00:04:54.910
見つめるます
00:05:03.130 --> 00:05:04.170
V
00:05:06.740 --> 00:05:08.130
作品
00:05:53.780 --> 00:05:57.410
V
00:06:06.770 --> 00:06:08.020
V
00:06:09.110 --> 00:06:13.890
プラチナメンバー
農協牛乳はありませんでしたが、さらに謎な言葉が並んでいます...
(2017.08.19追記)
ついでに手元にあったコンテスト用のGetWildのボーカルトラックを解析してみたら、こんなことになってました。
00:00:00.090 --> 00:00:06.530
あぁスパルタは大変大きいり続けんだ
上がらんくらい army 発信いる犬系るんだ
00:00:07.360 --> 00:00:13.680
シンプルな種類に意味じゃなきゃ野生でも明日に怯えて言ってあげよう
00:00:14.780 --> 00:00:26.440
撃ち合点はまあペンはサーバーありサイン誰からのために行きらんだえるなら一
アーチは今まあちょいはサーバーある人に何も
00:00:27.360 --> 00:00:30.360
時間は食うわない
00:00:32.940 --> 00:00:59.270
ジャムはじゃあきっと売り電話解けない愛の parser ウォーターにて客はじゃあ
買うのマーチで優しいスターに甘えていたクーガーないがてっちゃんせんがけんいだけが
守られるものがどこかにあんうるさてっちゃんせんが一人でも傷ついた
00:00:59.310 --> 00:01:02.020
あ有名を取り戻すやを