ELANによる動画解析の手順
Last-modified: 2016-10-20 (木) 19:22:18
Top / ELANによる動画解析の手順
ELAN (EUDICO Linguistic ANnotator) †
- 目次
ELANとは? †
- 近年広く使われつつあるフリーの動画解析(アノテーション)ツールです。
- ELAN(エラン)は、動画と音声資源に注釈を作成するための専門的ツールである(ELAN Descriptionより)。
- 無制限の数の注釈を加えることができる。
- 注釈は相互接続な複数の階層で作成することができる。
- XMLフォーマットで保存される。
- メディア再生を既存のメディアフレームワークに委任する(多種多様な音声およびビデオフォーマットがサポートされる)
- Javaプログラミング言語で書かれ、ソースは非商業利用可能
- 異なるステップサイズのメディア間を接続可能
- ユーザーが語彙を定義可能
- Praatに対応、TextGridファイルを読み込むことができる
- Max Planck Institute for Psycholinguistics(マックスプランク心理言語学研究所)開発
参考 †
準備 †
インストール †
- Download ELAN より、OSの種類にあったELANをダウンロードしてください。
- ダウンロードしたファイルをダブルクリックして、インストールを実行します。
- インストール設定の画面では、全てそのまま「next」を押します。
- インストールが終わったら、デスクトップのELANアイコンをダブルクリックして、実行します。
- 以下のような画面が表示されたら、インストール成功です。
解析ファイルの準備 †
- 以下は音声波形と動画を同期させたい場合のみ、行ってください。
- 音声波形と動画を同期させて表示したい場合、以下のフリーソフトウェアを使って、分析したい動画ファイルから音声ファイルを抽出します。
- AVI形式の動画ファイルからWAV形式の音声ファイルを抽出したい場合、AoA Audio Extractor を使います。
- MPEG形式の動画などは「えこでこツール」を使ってもWAVにできます。
- http://sourceforge.jp/projects/ecodecotool/releases/ の「EcoDecoTooL114.zip」をクリックしてダウンロードしてください。
- 動画ファイルをドラッグするだけで、自動的にWAVファイルが作られます。
起動 †
- ELANの初期画面から、「ファイル」→「新規作成」を選びます。
- 下図のような画面が出るので、左のウインドウで分析対象の動画を選び、中央の「>>」ボタンを押します(右のウインドウに表示されます)。
- 音声波形を同期させたい場合は、続いて左のウインドウで音声ファイルを選び、中央の「>>」ボタンを押します。
- ファイルの選択が終わったら、右下の「OK」ボタンを押します。
- Initializing..という表示の後、以下のような画面が表示されます。
ラベルをつける †
注釈層に書き込む †
複数の注釈層を作る †
- ELANの上部のメニューから「注釈層」→「新規追加」を選びます。
- 「注釈層の追加」ウインドウが開くので、「注釈層名」に適当な名前をつけて「追加」を選択します。
- 注意! 注釈層の名前に日本語をつけた場合、ラベル書き出し→再読み込みの際に文字化けするようです。
- 新しい注釈層ができます。
- 上の層と同じ範囲を指定して新規層にラベルをつけたいときは、上の層をシングルクリック→範囲が選択されるので、新規層の選択された部分をダブルクリック
- 上の層とは異なる範囲を指定して新規層にラベルをつけたいときは、新規層のラベルをつけたい範囲を選択してダブルクリック
ユーザ定義ラベルの設定と呼び出し †
- ユーザ定義ラベルを設定する
- 決まったラベルをあらかじめ定義しておくには、ELANの上部のメニューから「編集」→「管理語の編集」を選びます。
- 「管理語を編集する」ウインドウが開きます。
- まずは「管理語名」と「管理語の説明」を入力して、横の「追加」ボタンを押します。
- すでにある管理語を編集した場合は、「変更」ボタンを押します。
- 続いて「エントリの値」にラベルの名前を入力して、「エントリの説明」を入力して、 「追加」を押していきます。
- 全てのラベルを追加したら、「閉じる」を押します。
- 続いて、ELANの上部のメニューから「言語タイプ」→「新規言語タイプの追加」を選びます。
- 「管理」→「管理語を使う」の横の矢印をクリック→上で定義した管理語名を選択して「変更」→「閉じる」
- これで、ユーザ定義ラベルの中から選択してラベルをつけることができるようになります。
- ユーザ定義ラベルを保存する
- ELANの上部のメニューから「ファイル」→「テンプレートとして保存」を選びます。
- ELANテンプレート形式(.etf)で保存されます。
- ELANの上部のメニューから「ファイル」→「テンプレートとして保存」を選びます。
- ユーザ定義ラベルを読み込む
- 定義ラベルを読み込むには、ELANの上部のメニューから「編集」→「管理語の編集」→「読み込み」を選び、ELANテンプレート形式(.etf)のファイルを選択します。
ラベルをテキストファイルで保存する †
- 以下のようなラベルを保存するとします。
- タブ区切り文書ファイルで保存するには、ELANの上部のメニューから「ファイル」→「別ファイル形式で保存」→「タブ区切り文書ファイル形式で...」を選択してください。
- 「注釈層の選択」で、出力したい層にチェックを入れます。
- 「次の時間を列に含める」「次の時間形式を含む」にチェックを入れて「OK」を押します。
- 開始時間・終了時間、時:分:秒.ミリ秒 にチェックを入れておけば再読み込みも可能です。
- 以下のような形式で出力されます。
テキストで保存したラベルを編集して再読み込み †
- 上で書き出されたelan_label_1.txtに新しい情報を追記して、再度ELANで読み込みたいとします。
- まず、elan_label_1.txt にはなぜか、1列目と2列目の間にタブ記号が二つ挿入されてしまっていて、このままではELANで読み込むことが出来ません。
- 一度 Microsoft Excel などで elan_label_1.txt を読み込んで、空白列を削除します。
- Excel を起動 → 「ファイル」 → 「開く」 → 「ファイルを開く」のダイアログが出てくるので、「ファイルの種類」を「全てのファイル(*.*)」に変更して、elan_label_1.txt を指定
- ここで、ファイルが開けなかったときの対処法 → elan_error_excel.txt
- 「テキストファイル ウィザード」が開くので、「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択して「次へ」 → 「完了」
- Excel の画面が開くので、空白列を削除して「ファイル」→「上書き保存」
- 一度 Microsoft Excel などで elan_label_1.txt を読み込んで、空白列を削除します。
- 空白列を削除した elan_label_1.txt にデータを追記します。
- ここでは以下の二行を追記しました。
1 00:00:03.900 00:00:04.710 ee 1 00:00:04.890 00:00:05.850 oo
- ここでは以下の二行を追記しました。
- elan_label_2.txt をELANで読み込みます。
- ELANを開いて、「ファイル」→ 「読み込み」 → 「カンマ区切り/タブ区切りファイル」 → elan_label_2.txt を選んで「開く」
- 空白列がない、データがずれていないなど、正しいフォーマットのファイルを指定していたら、以下のウインドウが開きます(フォーマットが間違っていたら何も起こりません)。
- 各列が何の情報なのかを選択してから、「OK」を押します。
- ELANに新しいラベルが読み込まれました。
- elan_label_2.txt には動画ファイルの情報が含まれていないので、画面に動画が表示されていません。
- 新しいラベル情報と動画をリンクさせます。
- 上の状態のELANで、「ファイル」 → 「名前をつけて保存」
- .eaf 形式のテキストファイルが保存されます。
- 保存された .eaf ファイルをテキストエディタで開きます。
- 3行目と4行目の間に、以下の行を書き加えます。
<MEDIA_DESCRIPTOR MEDIA_URL="file:///(動画ファイルの絶対パス)" MIME_TYPE="video/*" RELATIVE_MEDIA_URL="file:/(動画ファイルの相対パス)"/>
- 動画ファイルを読み込んだ ELAN を .eaf 形式で保存して、その4行目をそのままコピー&ペーストするのが確実です。
- 3行目と4行目の間に、以下の行を書き加えます。
- 上の状態のELANで、「ファイル」 → 「名前をつけて保存」
- 再びELANを起動して、「ファイル」 → 「開く」 → 上で動画のパスを追記した .eafファイルを指定します。
- これで、追記したラベル情報と動画がリンクされます。
検索 †
ラベルの一覧を表示する †
- ELAN画面右上の「格子」タブを選択します。
- 「Empty」の右の矢印を選択して、一覧を出したい注釈層を選択します。
特定の文字列を含むラベルを検索する †
- ELANの上部のメニューから「検索」→「検索(および置換)」を選び、「該当文字列」のところに検索したい文字を入れて「検索」を押します。
特定のラベル連続を検索する †
- default 層の検索語にa,b,cがあったとして、b,a,aの順でタグが時間的に並んでいる区間を検索したい場合
- ELAN上部の「検索」から、検索(および置換)を選んでください。
- 「次の条件:」の「該当文字列」のところに b を入れて、「条件の追加」を押してください。
- 下に続けてウインドウが出てきますので、「該当文字列」のところに a を入れて、「上で選択した注釈から次の注釈数以内:」のところに 「1 から 1」と入力して、「条件の追加」を押してください。
- 同じように、下にウインドウが出てきますので、「該当文字列」のところに a を入れて、「上で選択した注釈から次の注釈数以内:」のところに 「1 から 1」と入力してください。
- 左上の三角ボタン(実行ボタン)を押してください。
- これで、「b」「a」「a」の順に出現する「b」の開始位置が、検索結果として表示されます。
動画再生 †
指定したラベルに対応する部分の動画を再生する †
- 指定したラベルの部分を選択して、「選択部分を再生」ボタンを押します。
再生速度を変える †
- ELAN右上の「再生調整」→「再生スピード」を変えます。
【注意】
- Windows Vista では動画と音声ファイルの相性によってうまくいかない場合があります。
- 元動画をそのままスロー再生しようとしたら、音声が消える(無音の動画がスロー再生される)
- MMname2を使って元動画のフォーマットを調べたら、MPEG2/System-PS 、720x480(サイズ)、1800Kbps(色ビット数)、29.97fps(ビットレート)だった。
- FreeVideoConverterを使って*1動画をAVI形式に変換したら、うまくいく
- ただし、動画ファイルの容量が莫大になる(30GB)、再生には支障なし
- FreeVideoConverterを使って動画をwmv形式に変換したら、再生できるがスローにならない
- FreeVideoConverterを使って動画をmpeg1形式に変換したら、再生できない+フリーズ+CPU100%になる
- FreeVideoConverterを使って動画をmpeg2形式に変換したら、スローにしたとき音声が消える(動画はスローになる)
- 元動画をそのままスロー再生しようとしたら、音声が消える(無音の動画がスロー再生される)
表示 †
画像ファイルを出力する †
- 今表示されているELANの画面を画像ファイルにして出力するには、ELANの上部のメニューから「ファイル」→「別ファイル形式で保存」→「ELANのウインドウ画像...」を選択してください。
- 選択した部分の動画と音声をフレームごとに出力するには、ELANの上部のメニューから「ファイル」→「別ファイル形式で保存」→「Filmstrip Image...」を選択してください。
外部の数値データ系列をインポートして、時間軸に同期表示する †
- ELANヘルプ「USER'S GUIDE」>「ELAN documents」>「Screen display and navigation through a document」>「The Timeseries Viewer」を参照
- 例として、ピッチ(基本周波数)データ*2を記述したテキストファイルを読み込んで表示してみます。
- 以下のようなカンマ(もしくは、タブ)区切りのテキストファイルを用意します。
- Pitch.csv
- 1列目はタイムスケール[秒]で、その行のデータの値が、動画開始後何秒の位置の値かを示したものです。
- 2列目がピッチの値[Hz]です。
- サンプリング周波数やデータ数は音声データと一致していなくても問題ないです。
- Pitch.csv
- 動画を読み込んだELANの画面上で、「編集」>「リンクファイル」を選びます。
- 「リンクされたファイル」ウインドウが開くので、「リンクされている二次的ファイル」>「追加」で上記のテキストファイルを選択し、「適用」を押します。
- ELANの画面下に新しいパネルが現れるので、そこで右クリック >「トラックの環境設定」を選びます。
- 「トラックの環境設定」ウインドウが開くので、以下のように設定します。
- 「時間の列番号」を1に
- 「追加」タブの「トラック名」に任意のデータ名を入れる(ここでは「Pitch」)
- 「追加」タブの「列」を2に
- 「追加」タブの「(優先する)範囲」を「データから範囲を算出」に
- 以上の設定をして、「追加」を押し、「閉じる」を押します。
- 「トラックの環境設定」ウインドウが開くので、以下のように設定します。
- データのグラフが同期されて表示されます。
- もう一段データプロット層を作り、第一フォルマント(F1)と第二フォルマント(F2)を色分けして表示してみます。
- 以下のようなカンマ(もしくは、タブ)区切りのテキストファイルを用意します*3。
- Formant.csv
- 1列目はタイムスケール[秒]、2列目はフォルマントデータの数、3列目がF1[Hz]、4列目がB1[Hz]、5列目がF2[Hz]、...と続いていきます。
- 「編集」→「リンクファイル」→「リンクされている二次的ファイル」→「追加」で、Formant.txt を選んで「適用」
- ピッチデータがプロットされている層で右クリック→「トラックパネルを追加」を選びます。
- ピッチデータの上段に、新しい層が追加されますので、そこで右クリックして「トラックの環境設定」を押します。
- 「元データを選択して環境設定」のウインドウが出てくるので、Formant.csvを選んで「了解」
- 「トラックの環境設定」ウインドウが出てきます。
- 「時間の列番号」は1に設定
- F1を設定するときは、「追加」タブの「トラック名」に「F1」、「列」に「3」、「(優先する)範囲」に「マニュアル設定」の最小値、最大値を適当な値に設定します。また、「トラックの色」を設定します。最後に「追加」ボタンを押します。
- F2を設定するときは、「追加」タブの「トラック名」に「F2」、「列」に「5」、「(優先する)範囲」は適当な最小値、最大値を設定します。「トラックの色」を設定して「追加」ボタンを押します。
- 「閉じる」を押してウインドウを閉じます。
- 最後に、新しい層で右クリック→「トラックパネル」→「トラックの追加」で、F1とF2を順番に指定します。
- 新しい層に、F1とF2が表示されました。
フレーム数を表示する †
バックアップ †
自動バックアップの設定 †
その他Tips †
ソナグラム(スペクトログラム)は表示できますか? †
- Spectrograms in ELAN or similar software? によれば、ELANでスペクトログラムを表示することはできません。
- スペクトログラムを見ながらラベル付けをする必要がある場合は、音声解析ソフトウェア Praat でラベリング → Praat形式のラベルファイルをELANで読み込み、とするのが適当なようです。
Dimensional plot tool for ELAN †
*1 エクスプローラが落ち続ける場合あり、FreeVideoConverterをアンインストールして入れなおしたら直ったが、原因不明
*2 Praat/ピッチ(基本周波数)解析で解析した結果です
*3 Praat/フォルマント解析 の結果です。
*4 有本様にお教えいただきました。ありがとうございました。
添付ファイル: elan28.png 2632件 [詳細] elan26.jpg 2569件 [詳細] elan19.jpg 2516件 [詳細] elan17.jpg 2571件 [詳細] elan3.jpg 2709件 [詳細] elan29.png 2468件 [詳細] elan27.jpg 2356件 [詳細] elan25.jpg 2488件 [詳細] elan20.jpg 2480件 [詳細] Formant.csv 1808件 [詳細] Pitch.csv 2176件 [詳細] elan_error_excel.txt 2086件 [詳細] sample.eaf 2024件 [詳細] elan24.jpg 2369件 [詳細] elan23.jpg 2576件 [詳細] elan_label_2.txt 1727件 [詳細] elan22.jpg 2418件 [詳細] elan_label_1.txt 2276件 [詳細] elan21.jpg 2531件 [詳細] elan13.jpg 2497件 [詳細] elan18.jpg 2372件 [詳細] elan15.jpg 2444件 [詳細] elan14.jpg 2501件 [詳細] elan12.jpg 2391件 [詳細] elan11.jpg 2562件 [詳細] elan10.jpg 2731件 [詳細] elan9.jpg 2464件 [詳細] elan8.jpg 2410件 [詳細] elan7.jpg 2395件 [詳細] elan6.jpg 2701件 [詳細] elan5.jpg 2627件 [詳細] elan4.jpg 2857件 [詳細] ekodeko.jpg 2620件 [詳細] elan2.jpg 2690件 [詳細] elan1.jpg 2603件 [詳細]