Limovieの音声信号解析機能を利用した時刻決定の方法

Mar.18 2007

タイムインサータの故障等により時刻をインポーズできない場合でも、GPS時計の音声信号をビデオに録音しておけば、タイムインサータに劣らない精度で時刻決定をすることができます。以下は、掩蔽同報メールJOINで話題になった内容をまとめたものです。方法を順を追って説明します。

1.ビデオカメラの時計をできるだけ正確に合わせておく。

録音されるのは音だけですから、数字が目で見えるようにしておくことは、正確なデータを得るという意味でも、解析を効率的に行うという意味でも大切なことです。1秒の単位(整数)までは、ビデオレコーダー(カムコーダー)で再生しながら現象時刻を読み取っておくと、それ以降の解析作業が効率的に行えます。Limovieは、小数点以下の秒の数字を読み取るために使います。

2.キャプチャソフト

ソフトウエアとしては、 Area61 DVビデオキャプチャ  をお奨めします。フリーソフトです。
 http://www.area61.net/support.php
から、上記ソフト名をクリックすると、ダウンロードページになります。

3.AVI TYPE-2でキャプチャする

Limovieで音声信号の解析を行うためには、AVI Type2のファイルである必要があります。

(1) Area61 DVビデオキャプチャ を起動し、AVI-T2を選択する。
(2)
録画ボタン(赤○) → 停止ボタン(黒□)

* キャプチャ時間は、440秒以下にしてください。Type2では、それ以上の長さの画像を扱うことができません。
*
以下の処理のためには、キャプチャ時間は15秒程度あればよいと思いますが、フレームと時刻のタイミングにより異なりますので、用途に合うようにお試しください。

4.Limovieを使った時刻測定

Step 1 音声信号解析グラフの表示

(1) AVIファイルを読み込む

(2) Audio Channel Display ボタンをクリック

(3) Creating wavfile. From several soconds to several minutes are required to this processing. Starting this process?
ここで、 はい(Y) をクリック

(4) WAV-file being create now ... Please wait for a while
が表示され、しばらくすると、音声波形のグラフが現れる。

(5) ここで、ビデオの再生ボタン(黒三角)を押すと、GPSの音声信号が、グラフに表示され、それが右から左に移動していく。中央の、水色の部分が現在のフレーム。それより右が、「未来」のフレームで、左が「過去」のフレームを表す。

(6) WideからExpandに切り替え、グラフを横方向に拡大する。

(7) 信号が現在のフレームに「かかりはじめた」状態になるよう、コマ送りで調整する。

(8) Volumeを調整し、振れ幅の最低が、黄色いラインを超えるようにする。
これで、「フレームに占める音声信号の長さの割合(Length/CurrentFrame)」が測れるようになる。

(9) フレームに占める音声信号の長さの割合(Length/CurrentFrame) とフレームの「時刻合わせ」
*
次のようにして、正秒の信号が記録されているフレームを時刻の基準にする。

Step 2 高精度な時刻の求め方

(1) 増減光の起こったフレームを探す。
 そのフレーム番号を Ne とする。

(2) そこから、コマ送りで、(前後どちらでもよい)、次の図のようになっているフレームを探す。
 そのフレーム番号を No とする。

<注意>
これから行う時刻決定には、図のように、時刻信号の先頭部のみ現在のフレームにかかっている必要がる。後述するように、信号すべてがフレームに「はまり込んでいる」場合には適用できないので、注意すること。

ここで、

Tp : フレームの露光が開始された時間(VSYNC)
To :
時刻信号の開始時刻(=正秒)
Tn :
フレーム露光の終了時刻(VSYNC)



(3) 計算式と導出過程
R :
フレームに占める音声信号の長さの割合(Length/CurrentFrame) (%) は
R = S / F * 100
で求められる数値を表す。これより、
S = F * R / 100
となり、
NTSC(
日本のテレビ、ビデオの規格)の場合、
F = 1 / 29.97
秒 だから、
S = R / 2997
 秒 となる。
同様に、
P = (100-R) / 2997
秒 となる。
現在のフレームの開始時刻は、信号の始まる P秒前 だから、
信号の開始時刻を To とすると、現在のフレームの露光時刻 Tp は、
Tp = To - P ......................... (i)
「現在のフレームの次のフレーム」の露光開始時刻 Tn は、
Tn = To + S ......................... (ii)
となる。
これより、現在フレームの露光中央時刻 Tc
Tc = (Tp + Tn) / 2
 = To + (S - P) / 2
 = To + (R/2997 - (100-R)/2997)/2
Tc = To + (2R-100)/5994 ............. (iii)
以上より、現象時刻 Te は、
Te = Tc + (Ne - No) / 29.97 ......... (iv)
で求められる。
*ビデオのフレームレートはきわめて安定しており、できるだけ近くの正秒を基準にすれば、iv式で精度の高い時刻を求めることができる。

5.解析例

 例として、次のような場合を考える。

* 減光を示すフレーム
フレームナンバー(Ne) : 368

* 現象時刻から至近の(解析可能な)正秒のフレーム
フレームナンバー(No) : 354
正秒の時刻(To)    : 19h23m16.000s(JST)
フレームに占める音声信号の長さの割合(Length/CurrentFrame) (R) : 71.80 (%)


【計算】

iii より、
Tc = To + (2R-100)/5994
= 16.000 + (71.80*2-100)/5994
= 16.007

iv より
Te = Tc + (Ne - No) / 29.97
= 16.007 + (368-354)/29.97
= 16.007 + 0.467
= 16.474

以上より、現象の記録されたフレームの中央時刻は、
19h23m16.474s(JST)
となる。この時刻を報告に用いる。

* 音声時刻信号の記録精度は、1ミリ秒程度であることが確かめられていることから、小数点以下3桁として計算例を示した。TIViの場合、表示が小数点以下2桁であることから、2桁の計算でよい。

. 注意事項

次のように「フレームにはまり込んだ」音声信号、あるいは「信号後半のみがかかったフレーム」の場合は、「時刻合わせ」に使うことができません。別のフレームを探してください。


例2の場合には、コマ戻しして、1つ前のフレームを基準に使えばよいので簡単です。
例1の場合には、1secボタンをクリックして、数秒前に戻る必要があります。