(57)【特許請求の範囲】
【請求項１】
ユーザが指定した所望の位置で映像を停止させる映像再生装置と、映像の音声トラックに記録された音声信号をディジタル信号として時系列に入力する音声入力装置と、入力した音声信号から有音区間の始終点を検出する音声処理装置とから成り、該音声処理装置には該音声信号の波形の包絡線を算出する包絡線算出手段と、該包絡線の値に対して閾値のレベルを予め設定する閾値設定手段と、該包絡線が該閾値のレベルを初めて上回る時点を有音区間の開始点として検出する開始点検出手段と、該包絡線が該閾値のレベルを初めて下回る時点を有音区間の終了点として検出する終了点検出手段と、該開始点および終了点を検出した時点の映像のフレーム位置を決めるフレーム位置決定手段と、該開始点および終了点のフレーム位置を個別に記憶するフレーム位置記憶手段と、該開始点および終了点のフレーム位置を個別に表示するディスプレイ手段と、予め定めた有音区間の時間長の上限と許容範囲を設定する時間長設定手段と、検出した有音区間の開始点から終了点までの検出時間長と該設定時間長を比較する時間長比較手段とを有し、該検出時間長が該設定時間長に比べて短い場合は有音区間の開始点を保持したまま次の有音区間の終了点を検出させ、該設定時間長に比べて長い場合は検出を終了して検出結果を却下させ、該設定時間長の許容範囲である場合は検出を終了して検出結果を保持させ、規定の時間を超えても終了点が検出されない場合は検出を終了させることを特徴とする映像中の有音区間の始終点の検出装置。
【請求項２】
請求の範囲第１項において、前記規定時間とは、前記設定時間長の２倍の時間とすることを特徴とする映像中の有音区間の始終点の検出装置。
【請求項３】
請求の範囲第１項において、上記有音区間の時間長の上限を１５秒または３０秒とし、該許容範囲は１または２秒とし、検出処理対象の映像をコマーシャル映像としたことを特徴とする映像中の有音区間の始終点の検出装置。
【請求項４】
請求の範囲第１項において、上記音声処理装置は、有音区間の開始点の前方および終了点の後方に対してマージンを設定するマージン設定手段を有し、
有音区間の検出時間長が該設定時間長の該許容範囲内である場合に、検出した開始点および終了点を前方および後方に時間をずらせた結果を有音区間の開始点および終了点とさせるようにしたことを特徴とする映像中の有音区間の始終点の検出装置。
【発明の詳細な説明】
技術分野
本発明はビデオテープやディスクに格納されたビデオ等の映像中に含まれる音声データの有音区間を検出する方法及び装置に係り、映像中の音声の頭出しを簡単にする方法及び装置に関わる。
背景技術
近年、計算機の高速化と記憶装置の大容量化を背景にして、映像中の動画像、音声情報をディジタル化して扱うことができるようになってきた。特に映像編集や映像管理の分野においては、テレビ放送制作、ビデオ制作のための撮影装置や編集装置、管理装置でディジタル化された映像を扱えるようになってきた。このような装置の一つに、数千種類のコマーシャル(以下CM)映像を管理して、任意のCM映像を放送順に準備するCM管理装置(通称CMバンク)がある。従来は複数のCM素材を放送前にビデオテープに一本化していたが、最近ではビデオテープを用いずにCM素材のファイルを直接に放送するCM管理装置も利用されている。CM管理装置には、広告代理店等の素材制作元から供給されたCM素材が登録される。従来、CM素材はCM毎に個別にビデオテープで供給され、素材の映像にはCM以外にも制作元の名称や制作日時を記した画像等が撮影されている。また、CMの前後には送出のタイミングを合わせるための遊びの映像が数秒間入っている。そのため、CM素材を管理装置に登録する際には、製作もと〜供給されたマザー素材を別のテープやディスク等の記録媒体にコピーして格納するのに加えて、放送すべきCMの始まりと終わりを登録する必要がある。
CM映像の始まりと終わりをチェックする作業は、現状、すべて人手で行われ、作業者にとって大きな負担があった。遊びの映像はCM映像本体の始まりと終わりに連続して撮影されているため、画像を見ただけではどこからどこまでが放送すべきCM映像なのかわからない場合が多い。しかし、音と映像の組み合わせで構成されるCM映像等において、遊びの部分には音声は録音されないため、作業者は映像中の遊びの区間における音を聞いて始まりと終わりを判断している。このような判断を行う際、従来技術では、作業者が映像の再生、停止、逆再生等の操作を繰り返しながら、聴覚で音の有無を判断するしか方法がなかった。これらの操作は映像再生装置のジョグ、シャトル等のダイヤルあるいは計算機画面のスクロールバーを利用することで改善されているが、依然として手間のかかる作業であった。
本発明は、CM素材を管理装置に登録する際、CMの始まりと終わりを音の有無によって聴覚で判断する作業を自動化し、登録操作を自動化して簡単にする方法および装置を提供することを目的としている。
本発明の他の目的は、CM映像本体の始終点を実時間で検出し、その位置を登録する方法および装置を提供することにある。
発明の開示
本発明は、映像管理装置への対話的登録処理において、時系列に入力した音声信号波形の包絡線を算出する包絡線算出手段と、該包絡線の値に対して音響レベルの閾値を予め設定する音響レベルの閾値設定手段と、該閾値のレベルと該包絡線が交差する時点を有音区間の開始点もしくは終了点として検出する始終点検出手段とを設け、従来聴覚によって判断していた音の有無を定量的かつ自動的に判断することができるようにする。
また本発明は、素材映像を再生する映像再生手段と、再生映像の音声トラックに記録された音声信号をディジタル信号として時系列に入力する音声入力手段と、入力した音声信号から有音区間の始終点を検出する音声処理手段と、検出結果を表示するディスプレイ手段を設け、素材映像中の有音区間の始終点の位置を作業者に提示できるようにする。該音声処理手段には、上記包絡線算出手段、音響レベルの閾値設定手段、始終点検出手段に加えて、有音区間の始終点を検出した時点の映像のフレーム位置を決めるフレーム位置決定手段を設ける。
さらに処理対象の映像をCM素材として、CM本体は一本あたり１５秒または３０秒の長さを持つという一般的なルールを利用して、これら一定時間の有音区間の時間長の上限と１または２秒の許容範囲を予め設定する時間長設定手段と、検出した有音区間の開始点から終了点までの検出時間長と該設定時間長を比較する時間長比較手段とを設け、CM映像の一定の時間長の有音区間だけを検出できるようにする。また、検出した有音区間前後にマージンを設定するマージン設定手段を設け、CM素材から一定時間長の放送用のCM映像をCM管理装置に登録できるようにする。
【図面の簡単な説明】
第１図は、本発明の実施例を実現するためのシステム構成図であり、第２図は、本発明の有音区間検出方法の概念図であり、第３図は、本発明の有音区間検出方法のフローチャートであり、第４図は、本発明の有音区間の始終点判定条件を示した図であり、第５図は、本発明を実現するための操作画面例を示した図であり、第６図は、全体の処理の流れを示したフローチャートであり、第７図は、本発明の有音区間検出の制御方式を示した図であり、第８図は、本発明のフィルタリング処理の入出力データの位置関係を示した図であり、第９図は、CMの時間長ルールを用いた有音区間検出処理の流れを示したフローチャートであり、第１０図は、本発明の有音区間検出を実現するためのデータ構造例を示した図である。
発明を実施するための最良の形態
以下、本発明の実施例を図面をもちいて説明する。
第１図は、本発明を実現するためのシステム構成図の一例である。１０１はＣＲＴ等のディスプレイ装置であり、音声処理装置１０４の出力画面を表示する。音声処理装置１０４に対する命令および閾値等の設定は、マウス等のポインティング・デバイスおよびテンキー等の数値入力デバイスからなる入力装置１０５を使って行う。映像再生装置１１０は、ビデオテープや光ディスク等に記録された映像を再生する装置である。映像再生装置１１０から再生出力される映像信号中の音声信号は、逐次、音声入力装置１０３によってディジタル信号に変換され、音声処理装置１０４に入力される。ディジタル信号に変換する際のサンプリング周波数、サンプリング・ビッド数、およびモノラル又はステレオを示すチャンネル数（モノラルは１、ステレオは２）といった情報も音声入力装置１０３から音声処理装置１０４に受け渡される。もちろん、これらの情報は１０４で設定した数値を１０３に与えるようにしてもよい。音声処理装置１０４は受け取った信号を処理して映像再生装置１１０を制御する。音声処理装置１０４と映像再生装置１１０は通信線１０２を通じて制御命令や応答の送受信をする。映像再生装置１１０の扱う映像の各フレームに映像の先頭から順にフレーム番号（タイムコード）が割り付けられている場合には、該フレーム番号及び検索命令を音声処理装置１０４から映像再生装置１１０に送信することで、当該フレーム番号の画像を検索できる。同様に音声処理装置１０４は映像再生装置１１０にフレーム番号を要求して映像の現在のフレーム番号を受け取ることもできる。音声処理装置１０４内部では、音声のディジタル信号はインタフェース１０８を介して一旦メモリ１０９に入力され、メモリ１０９に格納された処理プログラムに従って、ＣＰＵ１０７によって処理される。処理プログラムは補助記憶装置１０６に格納されており、ＣＰＵ１０７の命令に応じてメモリ１０９に適宜転送される。メモリ１０９には、以下に説明する処理によって作成される各種のデータが蓄積され、必要に応じて参照される。また音声のディジタル信号や処理結果等の各種情報は１０６に格納することもできる。スピーカ１１１は音声信号入力装置１０３から音声処理装置１０４に入力された音声信号を入力に合わせて再生したり、メモリ１０９に蓄積された音声信号をユーザの要求に応じて再生したりする。
以下では、まず最初に、ユーザが映像を確認しながら映像中の音声の有音区間を簡便に検出できる映像中の有音区間検出方法について説明する。次いで、この方法を用いて構成する有音区間検出装置について説明し、CM素材映像から一定時間長の放送用CM映像を見つけ出す方法について説明する。
第２図は本発明の映像中の有音区間の検出方法の概要を示す模式図である。
動画像２０１と音声波形２０２は、映像中に含まれる画像および音声の信号を示している。ここでは簡単のため音声波形２０２はモノラルで示しているが、ステレオであっても構わない。対象とする映像がCM素材の場合、素材の映像にはCM本体の前後に遊びの映像が数秒間入っている。遊びの映像はCM本体の前後に同じ映像が連続して撮影されているため、動画像２０１を見ただけではどこからどこまで放送すべきCM映像なのかわからない場合が多い。但し、遊びの部分には音声は録音されない。そのため従来は、作業者が映像の再生、停止、逆再生等の操作を繰り返しながら映像中の音の有無を判断してCM映像の先頭や末尾を決めている。本発明では有音区間を検出することによってこのような聴覚による判断を自動化する。
音声波形２０２の振幅値は正負の値が交互に頻繁に現れ、瞬間的に大きさが零となっていることも非常に多い。そのため、単にある瞬間の振幅の大きさを調べたのではその近傍での音の有無は必ずしもわからない。ここでは音の大きさを音声波形２０２の包絡線の値で判定する。包絡線の値には近傍の音の有無が反映される。包絡線の値が予め定めた音響レベルの閾値を上回った点を有音区間２０３の開始点（IN）、下回った点を終了点（OUT）として検出する。該開始点から該終了点までの音声データをメモリ１０９や補助記憶装置１０６に蓄え該データを再生することで、有音区間２０３の音声内容を確認することも容易である。これらの検出点の映像中での位置はフレーム番号として求める。有音区間２０３の該開始点、該終了点といった変化点を検出したとき、映像再生装置１１０は既に該変化点以降の映像を再生している。そのため映像再生装置１１０から検出時点でのフレーム番号を読み取り、読み取った時刻と該変化点の時刻の差分を用いて該フレーム番号を換算し、該変化点のフレーム番号を算出する。該換算方法については後ほど第７図で説明する。包絡線を利用して有音区間を検出し、フレーム番号を利用して元の映像を有音区間を対応づけることによって、音が連続してある一定の音響レベルを上回っている映像区間を抽出できる。また、該開始点のフレーム番号と検索要求を映像再生装置１１０に送信することによって、音の立ち上がりフレームの頭だしが容易に実現できる。さらに、該開始点から該終了点までの時間長がわかるため、放送用CM映像に仕上げるのに必要なマージンを抽出した映像区間の前後に設定することも容易である。これによって、時間長にばらつきのない品質の良いCM映像をCM管理装置に登録できる。
本発明によれば、ユーザは第１図に示したシステムを使って、素材の入ったビデオテープ等を映像再生装置１１０にセットし、ディスプレイ１０１に表示される音声処理装置１０４のコンソールのボタンを操作するだけでよい。コンソールの画面例は後ほど第５図で説明する。ユーザはジョグ、シャトル等を使った手作業で映像中の有音区間の先頭や末尾を見つけ出さなくともよくなる。それゆえ、操作の簡単化の効果がある。
次に第３図、第４図を用いて、有音区間の検出方法の詳細について説明する。
第３図は本発明の映像中の有音区間の始終点検出方法のフローチャートである。
３０１から３０６はそれぞれプログラムスイッチを、３１１から３１６は各ステップの出力データを示している。これらプログラムやデータはすべてメモリ１０９に置かれ、ＣＰＵ１０７によって処理する。ここでは説明を簡単にするために音声波形をモノラル（チャンネル数１）で示しているが、ステレオ（チャンネル数２）の場合も同様に扱うことができる。ステレオの場合は左右各チャンネルの音声波形に対して以下に示すモノラルの処理を実行し、両チャンネルの結果のAND(論理積)を取って重なりを判定したりOR(論理和)を取って全体を判定すればよい。
まずステップ３０１では映像中の音声データを音声入力装置１０３から受け取る。３１１は受け取った音声データの波形である。ステップ３０２では、３１１の各データの絶対値を求め、音声波形の折り返し処理を行う。ここでは、音声の意味内容に関わらず、音響レベルだけを扱うためである。３１２は３１１の正に折り返した音声波形である。次にステップ３０３、３０４では最大最小型フィルタリングによって波形３１２の包絡線を求める。各フィルタリングではフィルタサイズ３２１および３２２のフィルタを準備し、入力データを順次フィルタに読み込んで、フィルタ内の最大値、最小値を求めて出力する。ステップ３０３では波形３１２に対してフィルタ中の最大値を各データ毎に出力する。ステップ３０４では最大値波形３１３に対してフィルタ中の最小値を各データ毎に出力する。３１４は結果として得られた包絡線である。ステップ３０５では、包絡線３１４の各データを予め定めた音響レベルの閾値３２３と比較する閾値処理を行う。包絡線３１４が閾値３２３を上回るときには有音として１を、下回るときには無音として０を出力する。３１５はステップ３０５で出力した有音、無音の２値データである。最後にステップ３０６では該２値データ３１５の有音、無音の連続性を調べて有音区間３２４を検出し、有音区間の始終点３１６を出力する。すなわち該有音区間の立ち上がり点を音の開始点３２５（IN）として、また該有音区間の立ち下がり点を音の終了点３２６（OUT）として出力する。このステップ３０６については第４図でダイミングチャートを用いながら説明する。
最大最小型フィルタリングによって包絡線を算出する方法は、音声波形のパワースペクトルを算出して０次のパワーを包絡線とする方法よりも計算量を格段に少なくすることができる。それゆえＣＰＵの能力があまり高くなくても実現できる。
ステップ３０３、３０４に記した１次元の最大最小値フィルタリングについては、例えば「最大最小型画像フィルタリングの高速演算手法」（電子情報通信学会論文誌D-II，Vol.J78-D-II，No.11，pp.1598-1607，1995年11月）に記載されたフィルタリング手法を用いればよい。フィルタサイズnに対して、n+1個のデータが格納できるリングバッファを利用したデータ順次処理方式である。この手法では、データ性質やフィルタサイズに関わらず、一つのデータあたり平均演算回数３回程度で最大値や最小値を求めることができる。それゆえ、今回のように大量のデータを高速に処理したい場合に適している。
第４図は有音区間の始終点判定方法を示した図である。
有音区間の始終点の判定にあたっては、始終点判定条件を、
開始点：無音状態がTn以上続いた後、有音状態がTs以上続いたときの状態変化点
終了点：有音状態がTs以上続いた後、無音状態がTn以上続いたときの状態変化点
と定める。ここでTs[msec]は有音状態の経過時間長の下限であり、Tn[msec]は無音状態の経過時間長の下限である。TsやTnの値は、音声中の一音節の時間長や発話文の間の休止の時間長を基準にして予め設定しておく。これによって、Ts未満の有音状態やTn無音状態を検出しないようにできるので、単発的なノイズや発話中の句の継ぎ目のような微少時間の音の途切れに影響されない、安定した有音区間の検出方法を実現できる。
４０１は、ステップ３０６にて入力データ３１５から有音区間の始終点３１６が得られるまでを示したタイミングチャートである。状態を判定するフラグとして無音フラグ、有音フラグ、開始フラグ、終了フラグの４つのフラグを設ける。
ステップ３０６では、有音、無音の２値状態を示す入力データ３１５を順次調べ、各状態の経過時間として０（無音）と１（有音）のデータ個数を計数する。音声信号のディジタル化の際のサンプリング周波数は音声入力装置１０３から音声処理装置１０４に渡されているので、時間条件TsおよびTnをデータ個数の条件に置き換えることは容易である。なお、有音状態のデータ個数は無音フラグがONになった時点でクリアし、無音状態のデータ個数は有音フラグがONになった時点でクリアする。最初、フラグはすべてOFFに設定し、各状態のデータ個数を０に設定する。まず無音状態がTnだけ続いた時点で無音フラグをONにする（４０２）。無音フラグがONであるとき、無音から有音に変化した点はすべて開始点の候補とし、そのデータ位置をメモリ１０９に格納する。まず有音状態４０３の立ち上がりを開始点の候補とするが、有音状態４０３は経過時間がTsに満たないため４０３のデータ個数は無音状態のデータ個数（経過時間）に組み込み、単発的なノイズとしてキャンセルする。次に有音状態４０４の立ち上がりを開始点の候補とし、有音状態がTsだけ続いた時点で有音フラグをONにする（４０５）。これによって無音フラグ、有音フラグともONとなって開始点の条件を満たすので、開始フラグをONにして開始点３２５（IN）に決定する。ONになった開始フラグはセンスした時点でOFFに戻す。以上時間軸上４２０までが開始点検出である。
開始点を検出すると引き続いて終了点の検出を開始する。まず無音フラグはOFFにする（４０６）。有音フラグがONであるとき、有音から無音に変化した点はすべて終了点の候補とし、そのデータ位置をメモリ１０９に格納する。無音状態４０７は経過時間がTnに満たないため４０７のデータ個数は有音状態のデータ個数に組み込み、微少時間の途切れとしてキャンセルする。次に無音状態４０８がTnだけ続いた時点で無音フラグをONにする（４０９）。これによって有音フラグ、無音フラグともONとなって終了点の条件を満たすので、終了フラグをONにして終了点３２６（OUT）に決定する。ONになった終了フラグはセンスした時点でOFFに戻す。また、有音フラグも次の開始点検出に備えてOFFにする（４１０）。以上時間軸上４２１までが終了点検出である。
以上、第４図のようにフラグを操作することによって継続的に有音区間の始終点を検出することができるので、一本の映像に複数の有音区間が含まれている場合でも各々を検出できる。それゆえ、本発明の有音区間検出方法はCM素材やビデオ映像に限らずTV放送映像やアーカイブ映像等の一般的な映像に対しても適用可能である。また処理映像がCM素材の場合には「CMは一歩あたり１５秒もしくは３０秒の時間長で構成される」という一般的なCMの時間長ルールを利用できるので、複数の有音区間を検出してもルールによって区間をひとまとめにすることで、適切なCM本体の始終点を決定できる。CMのルールを用いた始終点の検出方法については後ほど第９図で説明する。
次いで、以上の有音区間検出方法を用いて構成する有音区間検出装置について説明する。
第５図は本発明を実現する有音区間検出装置の操作画面の一例である。操作ウィンドウ５０１は音声処理装置１０４のコンソールとしてディスプレイ装置１０１に表示され、ユーザに操作環境を提供する。５０１にはQUITボタン５０２、DETECTボタン５０３、検出結果表示パネル５０４、音声波形モニタ５０５、有音区間表示パネル５０６、PLAYボタン５０９、映像再生装置操作パネル５１０、パラメータ設定パネル５１３を配置する。ユーザは５０１上に配置された命令ボタンを入力装置１０５のマウスでクリックして自分の要求を音声処理装置１０４に伝える。QUITボタン５０２は操作処理を終了し操作ウィンドウ５０１を閉じるための命令ボタンである。
DETECTボタン５０３は有音区間検出処理を実行するための命令ボタンである。ユーザが５０３をクリックすると、音声処理装置１０４は検出結果表示パネル５０４をクリアして、プログラム３００に従って有音区間の検出を開始し、処理途中の結果を音声波形モニタ５０５に表示する。モニタ５０５には算出した包絡線３１４や音響レベルの閾値３２３を表示する。有音区間の始終点が検出されると、検出したフレーム番号をタイムコード形式でパネル５０４表示する。タイムコードはhh:mm:ss:ff(hh:時間、mm:分、ss:秒、ff:フレーム)という構成で位置や長さを直観的に把握しやすいため、ユーザにとって都合がよい。
有音区間表示パネル５０６には有音区間検出の始終点を検出するまでに入力した音声データの波形５０７および有音区間５０８を表示する。有音区間５０８は検出結果表示パネル５０４のINフレームからOUTフレームまでに対応している。一般にCM映像は一本あたり最長３０秒なので、ここでは４０秒分の音声波形を表示するようにしている。PLAYボタン５０９は有音区間５０８の音声データを再生するためのボタンである。ユーザは音声データ波形５０７によって、映像中の音声信号を視覚的に確認できる。また５０９をクリックして音声を再生することで聴覚によっても確認することができる。これによって、ユーザは有音区間検出後すぐに検出状況を確認することができ、確認作業を省力化することができる。
ユーザが有音区間にマージンを設ける場合、有音区間５０８の端をドラッグして区間を広げることによって設定すればよい。検出結果表示パネル５０４に表示しているように有音区間の始終点は既にわかっているので区間長は計算できる。ユーザは該区間長の前後にマージンを設定して全体の時間長が所望の長さになるようにする。システムは設定されたマージンの長さに応じてパネル５０４のフレーム番号を変更し、変更後のフレーム番号をCM管理装置に登録するCM映像の始終点にする。これによって、ユーザは簡単にCM管理装置への登録作業を進めることができる。また、該映像の始終点に挟まれた映像を切り出すことで、ユーザは所望の長さの放送用のCM映像を作成できる。
映像再生装置操作パネル５１０には映像再生装置操作ボタン群５１１を配置する。操作ボタン群５１１は映像の早送り、巻き戻し、再生、コマ送りや一時停止を実行するための命令ボタンである。ユーザが操作ボタン群５１１から必要な命令ボタンをクリックすると、音声処理装置１０４は該当する操作命令を映像再生装置１１０に送信する。映像のフレーム位置はタイムコードとして映像位置表示ボックス５１２に表示する。
パラメータ設定パネル５１３には有音区間検出のためのパラメータを設定するパラメータ設定ボックス５１４を配置する。パネル５１３には変更可能なパラメータとして、音響レベルの閾値（Threshhold Value）、フィルタの時間長（Filterlength）、有音状態の経過時間長の下限（Noise Limt）、無音状態の経過時間長の下限（Silence）の４つを配置している。ユーザがパラメータを変更したい場合、５１４をクリックして入力装置１０５から数値を入力する。このとき、音響レベルの閾値（図中のThreshold Value）の設定にあたっては、入力装置１０５から数値を入力する他に、別方式として次のように設定するようにしてもよい。まず該音響レベルの閾値のパラメータ設定ボックスがクリックされると、映像再生装置１１０は停止もしくは一時停止状態にしておき、その状態で音声入力装置１０３から音声処理装置１０４に音声データを数秒間入力する。次いで、数秒間入力した該音声データの音響レベルの最大値を音響レベルの閾値とする。このとき、数秒間入力することによって、映像再生装置１１０や音声入力装置１０３で生じる音声信号のランダムノイズが音声処理装置１０４に入力できる。また最大値を音響レベルの閾値とすることによって、１１０や１０３で生じるノイズが再生映像中の音声信号に影響するのを押さえることができるようになる。
第６図は処理の全体の流れを示したフローチャートである。ユーザからプログラムの起動要求があるとＣＰＵ１０７は補助記憶装置１０６からプログラム６００を読み出し、メモリ１０９に格納して実行する。このときメモリ１０９には音声データや処理データも各種格納されるが、これらデータの構造については後ほど第１０図で説明する。
ステップ６０１は処理開始にあたっての初期化処理である。まず、ＣＰＵ１０７はメモリ１０９上に処理に必要なメモリ領域を確保してクリアし、音響レベルの閾値等のパラメータのデフォルト値をセットする。次いで、ディスプレイ装置１０１に音声処理装置１０４の操作ウィンドウ５０１を表示する。また、映像再生装置１１０との通信の設定を初期化し、通信ポートを開く。次に映像再生装置１１０に制御命令を送信して、映像再生装置１１０の再生を一時停止状態（STAND BY ON）にする。映像再生装置１１０を停止状態ではなく一時停止状態にしておくことで、別の制御命令が送られたときに映像再生装置１１０を即座に動作させることができ、音声信号やフレーム番号を素早く読み出すことができるようになる。
ステップ６０２ではユーザの終了要求の有無を判定し、要求がない間、ステップ６０３の画面制御を繰り返して実行する。
ステップ６０３ではユーザに指定された命令ボタンに対応して処理を分岐させる。例えば、ユーザが操作ウィンドウ５０１のDETECTボタン５０３をクリックした場合にはステップ６０８と６０９を実行してユーザの入力を待つ。操作ウィンドウ５０１に配置される命令ボタンの個数、種類の増減に応じて分岐数、分岐判断を増減し、常に最適な処理が選択できるようにすればよい。
ステップ６０４から６０９は各命令ボタンに応じた処理である。
ステップ６０４は映像再生装置操作ボタン群５１１が指定されたときの処理である。この制御処理は、操作ボタン群５１１がクリックされた時ばかりでなく、映像再生装置１１０を制御する処理として利用可能である。まず映像再生装置１１０に制御命令を送信し、映像再生装置１１０の応答ステータスを受信する。次に応答ステータスを判定し、エラーが発生した場合にはエラーメッセージをディスプレイ装置１０１に表示して処理を中断する。正常に制御できた場合はフレーム番号を読み出して表示ボックス５１２に表示してステップ６０３に戻る。
ステップ６０５はパラメータ設定ボックス５１４が指定されたときのパラメータ設定処理である。ユーザが入力装置１０５から数値を入力して設定パラメータを変更するとメモリ１０９に格納された該当パラメータを書き換える。また時間長に関するパラメータが変更されると、音声データのサンプリング周波数に従って変更後の時間長をデータ個数に換算する。
ステップ６０６は検出した有音区間５０８の入力音声データをスピーカ１１１で再生する音声再生処理である。検出結果表示パネル５０４に有音区間の始終点がセットされていれば、５０４のINフレームからOUTフレームまでの音声データを再生する。すなわち音声蓄積データバッファ１０５０の音声データをデータ位置１０５２からデータ位置１０５３までで再生する。これによって、ユーザは検出結果を聴覚で確認できる。
ステップ６０７は検出した有音区間にマージンを設けるマージン設定処理である。ユーザは有音区間５０８の端をドラッグして区間を広げることによって設定する。まず、検出結果表示パネル５０４のINフレームからOUTフレームまでの有音区間の時間長を計算する。一本あたりのCM映像の時間長を一定長に定めておくと、該有音区間の時間長からマージンの上限は一意に決まる。該上限を越えないようにユーザの操作を監視しながらマージンを決定し、始終点のフレーム番号を補正する。これによって、時間長にばらつきのない品質の良いCM映像を管理装置に登録できるようになる。別の方式としては、該上限を満たす適切なマージンを区間の前後に自動的に付加してもよい。時間長を限定しないのであれば、ユーザの要求通りにマージンを付加する。また逆に有音区間長を短くすることも可能である。
ステップ６０８は有音区間の始終点検出処理である。DETECTボタン５０３が指定されると、映像再生装置１１０の映像を再生し、音声入力装置１０３から音声データを入力し、有音区間の始終点を検出して検出結果表示パネル５０４に表示する。詳細については後ほどプログラム９００（第９図）で説明する。プログラム９００はプログラム３００で示した有音区間の始終点検出方法を有音区間検出装置に適用した例である。このとき、別の方式として、有音区間の始終点を検出した後に、映像再生装置１１０の映像を有音区間の開始点に頭出しするようにしてもよい。該頭出しは音声処理装置１０４から映像再生装置１１０に有音区間の開始点のフレーム番号と検索命令を送信することによって実現できる。
ステップ６０９では波形５０７と有音区間５０８をパネル５０６に表示する。有音区間検出の始終点を検出するまでに入力した音声データを波形５０７として表示し、検出結果表示パネル５０４のINフレームからOUTフレームまでを有音区間５０８として表示する。すなわち、音声蓄積リングバッファ１０５０の音声データをオフセット１０５４からリングバッファを一巡して波形表示する。また１０５２と１０５３に挟まれるデータ区間を５０８として表示する。これによって、ユーザは検出結果を視覚的に確認できる。
ステップ６１０は終了処理である。まず映像再生装置１１０に制御命令を送信して映像再生装置１１０を停止状態（STAND BY OFF）にした後に通信ポートを閉じる。次いでディスプレイ装置１０１上の操作ウィンドウ５０１を閉じる。最後に確保していたメモリ領域を開放し、処理を終了する。
ここで、プログラム３００に示した有音区間の始終点検出方法を有音区間検出装置に適用する際の制御方式とフィルタリング処理方式を開示する。
プログラム３００では、映像全体の音声データを入力してから始終点を検出することもできるが、長時間の音声データを一度に入力すると検出までのタイムラグが長くなり、検出のリアルタイム性が損なわれる。検出のリアルタイム性を保持するためには、音声データを短い時間毎に分割して入力処理および検出処理を行った方がよい。
まずリアルタイム検出を実現するための制御方式を示す。第７図は本発明の有音区間検出装置の制御方式を示した図であり、有音区間の開始点を検出するまでを示している。図中の各矩形は制御対象の処理を示し、該矩形の幅は処理時間長を示す。
７０２は音声入力装置１０３での音声データ入力処理である。入力音声は一定時間長の音声バッファが一杯になるまで音声入力装置１０３に蓄積し、一杯になった時点で音声処理装置１０４に該音声バッファが一杯になったことを示す割り込み信号を送る。７０２の時間長は音声バッファの大きさを示している。１０４では該割り込み信号を受け取ると該音声バッファのデータをメモリ１０９に転送する。７０３は音声処理装置１０４での音響解析処理であり、プログラム３００を実行する。１０４は該割り込み信号が届いた時点から７０３を開始し、次の該割り込み信号が届くまでに実行する。例えば該音声バッファの時間長を１秒に設定すると、７０３の処理には最大１秒まで時間をかけることができるので処理時間として十分である。また、Tsを200msec、Tnを500msecに設定すると、音の開始点や終了点は最大２回分の音声データを処理することで検出できる。このとき、１０３への入力開始から１０４での検出までのタイムラグは最大３秒程度に抑えることができ、ほぼリアルタイムに検出できる。ここでTsやTnは第４図で説明した有音／無音状態の経過時間長の下限であり、これらの数値は音声中の一音節の時間長や、発話文の間の休止の時間長を基準に設定する。メモリ１０９に転送されるデータ量は、サンプリング周波数を１１kHz、サンプリングビット数を８ビット、チャンネル数を１（モノラル）に設定すれば１秒のバッファでは１１kバイトであるため、転送時間は問題にならない。
開始点検出までの処理の流れを示す。DETECTボタン５０３がクリックされると、まず全体制御処理によって映像再生装置１１０で映像を再生し、音声入力処理７０２を起動し、有音区間検出処理を準備し、処理の経過時間をタイマによって数え始める（７０１）。７０２の音声入力処理によって音声データを入力すると、７０３の音響解析処理ではデータ到着時刻T1をメモリ１０９に記録する（７０４）。また音響解析処理によって音の開始点を検出するとメモリ１０９上の検出フラグをONに設定する（７０５）。７０３の音響解析処理が済むと、全体制御処理では検出フラグをセンスする。検出フラグがOFFの場合、途中結果を音声波形モニタ５０５に表示する（７０６）。一方、ONの場合、映像再生装置１１０から現在のフレーム番号を読み出し、タイマからフレーム番号読み取り時刻T2を取得し、該フレーム番号および該読み取り時間をメモリ１０９に格納する。またT1、T2を利用して該フレーム番号を音の開始点の時点のフレーム番号に換算してメモリ１０９に格納する（７０７）。音の終了点を引き続き検出する場合は、７０２から７０７の処理を終了点検出まで繰り返し実行する。７０２から７０７の処理は何度でも繰り返し実行できるので、一本の映像に複数の有音区間が含まれている場合でも各々を検出できる。
次に処理７０７での該開始点のフレーム番号の換算方法について説明する。７０８の音声入力処理で得られた音声データ中の位置Xに音の開始点が含まれていたとする。このとき、データ到着時刻T1、フレーム番号取得時刻T2、フレーム番号TC2から音の開始点の時刻T0を推定し、TC2を開始点のフレーム番号TC0に換算する。この換算方法は次式で表せる。
T0=T1-dT(L-X)/L[msec]・・・・・・・・・・・・・・・・・・（数１）
TCO=TC2-1000(T2-T0)/30[フレーム]・・・・・・・・・・・・（数２）
ここで、Lは音声バッファサイズ（データ個数）であり、dTは音声バッファの時間長である。音声データが８ビット、モノラルの場合、Lは音声バッファのバイト数そのものとなる。数２で分母に３０とあるのは、NTSCの映像信号が１秒間に３０フレームで構成されるためである。音の終了点についても同様に計算できる。
以上の制御方式によって、ほぼリアルタイムに有音区間の始終点を検出できる。
次に分割入力した音声データを連続的にフィルタリング処理する方式について説明する。第８図はステップ３０３もしくは３０４のフィルタリング処理における入出力データの位置関係を示した図である。図中の矩形はそれぞれデータ配列を示す。８０１は入力データ配列（データ個数L[個]）、８０２はフィルタバッファ（データ個数Lf[個]）である。８０２はステップ３０３では３２１のフィルタに該当し、ステップ３０４では３２２のフィルタに該当する。
ステップ３０３と３０４の各フィルタリング処理では、フィルタバッファ８０２に８０１のデータを順次読み込み、８０２の全データから最大値または最小値を求め、フィルタサイズの中央の位置のデータとして出力する。このとき、８０１全体の入力データから８０３の部分の出力データが得られる。L個の入力データのうち、フィルタサイズ分のLf個は８０２の初期化に使うため、出力データ配列の最初８０４と最後８０５の部分については出力データが得られない。第７図の制御方式で音声入力装置１０３からデータを受け取る度に８０２を初期化したのでは、フィルタリング結果の包絡線が途切れ途切れになってしまう。
ここではフィルタバッファ８０２は７０１で一回だけ初期化し、その後は途中でクリアしないで、次に入力データを読み込む位置やデータ内容を絶えず保持しておく。これによって、（ｎ＋１）回目の音響解析処理に、ｎ回目から継承した８０２のデータLf個と（ｎ＋１）回目の入力データ８０６のL個を利用できるようになり、８０５の部分と８０７の部分の合計L個の出力データが得られるようになる。すなわちL個の入力データに対してL個の出力データが得られるようになるので、分割入力した音声データを連続的にフィルタリング処理できるようになる。
但しこのとき、ｎ回目の８０５の部分の出力データが得られるのは、（ｎ＋１）回目の８０６が入力されてからになる。第７図の制御方式では音の始終点のフレーム番号を算出するとき、数１に示したように始終点のデータ位置Xとタイマから読み取った入力データ到着時刻T1を使う。そのため、ｎ回目と（ｎ＋１）回目の２回分のデータ到着時刻をメモリ１０９に記録しておく。音の始終点が８０５で見つかった場合にはｎ回目の到着時刻を、８０７で見つかった場合には（ｎ＋１）回目の到着時刻を使うようにする。
なお、フィルタサイズLfはL-Lfが正になるような値を設定しておけばよい。人間の音声の基本周波数は一般に100Hz以上であるから、その逆数の10msec以上の時間長（例えば１フレーム時間33mec）に含まれるデータ個数を設定しておけば包絡線を算出するのに問題はない。該データ個数は時間長にサンプリング周波数を乗ずることで算出できる。
以上によって、処理する音声データに途切れを生ずることなく検出処理を実行できる。
以上の制御方式、フィルタリング方式を反映した有音区間の始終点検出処理のフローチャートを第９図に示し、メモリ１０９に格納する音声データや制御データのデータ構造を第１図０に示す。
第９図はCMの時間長ルールを用いた有音区間検出処理の流れを示したフローチャートである。プログラム９００は有音区間の始終点を一組検出する処理プログラムであり、ステップ６０８で実行する。９００は大きく分けて次の４つの処理から構成される。(1)有音区間の開始点検出処理、(2)有音区間の終了点検出処理、(3)CMの時間長ルールを用いた判定処理、(4)規定時間を経過すると検出を打ち切る検出時間制限処理、である。(1)の処理はステップ９０２から９０４であり、(2)の処理はステップ９０６、９０７と９１０である。これらによって、第７図に示した処理７０３から７０７の制御を実行する。(3)の処理はステップ９０５と９１１から９１５である。これらによって、予め定めた一定時間の有音区間のみをふるい分ける。(4)の処理はステップ９０８と９０９である。これらによって、検出処理の実行時間に上限を設け終了点が見つからない場合のエラー処理を実行する。但し、ここで有音区間の検出に最低限必要なのは(1)の処理と(2)の処理であり、(3)と(4)の処理は省略可能である。
以下、各ステップを順に説明する。
ステップ９０１は初期化処理である。メモリ１０９に格納する音声データや制御データを初期化し、第７図の制御処理７０１を実行する。すなわち音声バッファ１０３０や音声蓄積バッファ１０５０、制御パラメータ１０１０を初期化し、フィルタバッファ１０４０の空フラグ１０４２をTRUEにする。
ステップ９０２では有音区間の開始点の検出状況を判定する。制御パラメータ１０１０の開始点フラグflagIN１０１７がTRUEになるまでステップ９０３を実行する。
ステップ９０３では有音区間の開始点を検出する。プログラム３００を実行し、途中結果を音声波形モニタ５０５に表示する。開始点を検出するとflagIN１０１７をTRUEにし、映像再生装置１１０から現在のフレーム番号を読み取り、フレーム番号取得時刻T2をタイマから読み取る。
ステップ９０４では検出した開始点のフレーム番号を算出する。数１で開始点の時刻T0を算出し、数２で開始点のフレーム番号TC0を算出する。開始点のTC0は検出結果表示パネル５０４に表示し、またflagINをFALSEに戻す。
ステップ９０５では有音区間の検出状況を判定する。一定時間長の有音区間を検出するまで以下のステップを実行する。
ステップ９０６では有音区間の終了点の検出状況を判定する。制御パラメータ１０１０の終了点フラグflagOUT１０１８がTRUEになるまでステップ９０７から９０９を実行する。
ステップ９０７では有音区間の終了点を検出する。プログラム３００を実行し、途中結果を音声波形モニタ５０５に表示する。終了点を検出するとflagOUT１０１８をTRUEにし、映像再生装置１１０から現在のフレーム番号を読み取り、フレーム番号取得時刻T2をタイマから読み取る。この時の終了点のフレーム番号はステップ９１０で算出する。
ステップ９０８では検出処理の経過時間を判定する。ステップ９０３で開始点を検出してからの経過時間が規定の検出時間よりも長くなると、処理中の映像には適切な時間長の映像が含まれていないと判定してステップ９０９を実行する。該規定の検出時間としては、例えばCMの時間長３０秒の２倍として６０秒にすればよい。現在の入力データ到着時刻T1１０２２がステップ９０３で取得したT2に対してT1>T2+60[sec]となれば、適切な時間長の映像はないと判定する。
ステップ９０９では検出結果を棄却して、検出処理を中断する。先に検出した開始点をキャンセルする。また音声入力装置１０３からデータ入力するのを止め、映像再生装置１１０での映像再生を一時停止し、音声バッファ１０３０やフィルタバッファ１０４０をクリアする。
ステップ９１０では検出した終了点のフレーム番号を算出する。数１で終了点の時刻T0を算出し、数２で終了点のフレーム番号TC0を算出する。終了点のTC0は検出結果表示パネル５０４に表示し、またflagOUTをFALSEに戻す。
ステップ９１１では有音区間の時間長Tを算出する。ステップ９０４で求めた開始点の時刻とステップ９１０で検出した終了点の時刻の差分としてTを求める。
ステップ９１２はCMの時間長ルールを用いた判定処理である。検出した有音区間の時間長が予め定めた一定時間長を満足すれば、ステップ９１３、９１４を実行し、該一定時間長を超過するとステップ９１５を実行する。該一定時間長に満たない場合は、次の有音区間の終了点検出に戻る。これによって、一定時間長の有音区間を含む映像のみ検出できるようになる。ここでは「CMは一本あたり１５秒もしくは３０秒の時間長で構成される」という一般的なルールを用いて一定時間長を１５秒と３０秒とし、許容範囲を１５秒に対しては１秒、３０秒に対しては２秒に設定しているが、これらの値は用途に応じて適当に変更しても構わない。
ステップ９１３、９１４では検出した始終点を有音区間の始終点として採用する。また音声入力装置１０３からデータ入力するのを止め、映像再生装置１１０での映像再生を一時停止し、音声バッファ１０３０やフィルタバッファ１０４０をクリアする。
ステップ９１５では検出結果を棄却して、検出処理を中断する。検出した始終点をキャンセルし、パネル５０４の表示をクリアする。また音声入力装置１０３からデータ入力するのを止め、映像再生装置１１０での映像再生を一時停止し、音声バッファ１０３０やフィルタバッファ１０４０をクリアする。
以上の方法によって、一定時間長の有音区間のみを検出できる。
最後に、メモリ１０９に格納する音声データや制御データのデータ構造を説明する。第１図０は本発明の有音区間検出を実現するためのデータ構造例を示した図である。処理データはメモリ１０９に格納し、必要に応じてＣＰＵ１０７に読み出す。
１０００は音声信号情報である。音声入力装置１０３で音声信号をディジタル化する際に使用しているサンプリング周波数１００１、サンプリング・ビット数１００２、およびチャンネル数１００３（モノラルは１、ステレオは２）を格納する。
１０１０は制御用パラメータである。有音区間検出処理で用いる各種パラメータやフラグを格納する。１０１１から１０１４はパラメータ設定パネル５１３で変更可能な可変パラメータである。１０１５から１０１８は第４図で説明した有音区間始終点判定時の状態を示す４つのフラグであり、１０１９と１０２０は有音／無音状態を計数するためのカウンタである。開始点フラグ１０１７と終了点１０１８は始終点が未検出ならFALSE、検出済みならTRUEにする。１０２１は第７図で示した入力音声データ中の始終点のデータ位置Xである。１０２２と１０２３は第８図で説明したデータ到着時間T1と前回のデータ到着時刻である。フラグ１０１７、１０１８がONになったことを検出した時点のフレーム番号を読み出して数１、数２に従って始終点のフレーム番号は算出できる。該始終点のフレーム番号もメモリ１０９に格納する。別方式としては、該算出したフレーム番号を補助記憶装置１０６に順次書き込むようにしてもよい。１０６の容量が許す限り有音区間を検出するようにできる。
音声バッファ１０３０は、プログラム３００の各ステップ間で受け渡される処理データ３１１から３１５を格納するバッファのデータ構造である。メモリ１０９には入力用、作業用、出力用に３つ用意する。各々のバッファサイズ１０３１にはすべて同じ値を設定する。データ個数１０３２は該バッファ１０３０に格納されるデータの個数である。第８図で説明したように最初の入力バッファデータだけでは８０４、８０５部分の出力データが得られないので出力バッファのデータ個数が減少する。そのため１０３１とは別に１０３２を設ける。１０３３は処理データである。
フィルタバッファ１０４０は、ステップ３０３と３０４の最大最小型フィルタリングに用いるリングバッファのデータ構造である。メモリ１０９にはMAXフィルタリング用とMINフィルタリング用に２つ用意する。バッファサイズ１０４１は１０１２のTLfから算出する。空フラグ１０４２はフィルタバッファの初期化状況を示し、バッファが空である初期状態でTRUEにし、いったんデータで満たされるとFALSEにする。入力音声バッファ１０３０を処理するとき、１０４２がTRUEならば入力データをサイズ１０４１分だけ複写することで初期化する。FALSEならば初期化しない。これによって途切れなく包絡線を算出することができる。１０４３は次の入力データを読み込む位置を指し示すオフセットである。１０４４は読み込んだ入力データであり、フィルタリング処理の対象データである。
１０５０は音声入力装置１０３から入力される音声データを複写して絶えず過去何秒分か保持する音声蓄積リングバッファである。１０５０の蓄積データは、音声データ波形５０７を表示したり、PLAYボタン５０９で音声を再生したりするのに利用する。１０５１はバッファサイズである。バッファサイズ１０５１は１０３１の整数倍にすると複写が容易になる。１０５２は第７図の有音区間の開始点のデータ位置Ｘに対応するリングバッファ上のデータ位置である。１０５３は同様に終了点に対応するリングバッファ上のデータ位置である。１０５２と１０５３には最初、負の値を設定し、始終点の検出に応じてデータ位置の値と置き換える。１０５４は次の入力データ複写位置の先頭を指し示すオフセットである。１０５５は音声データである。
ここで、有音区間検出処理に用いるデータのメモリ量を見積もる。例えば音声信号情報１０００が１１kHz、８ビット、モノラルの音声データを扱う場合、入力バッファに記録できる時間長を１秒にすると音声バッファ１０３０の必要容量は１１kバイト程度になり、３つのバッファの合計は３３kバイト程度になる。音声を蓄積する時間長を４０秒とすると音声蓄積リングバッファ１０５０の必要容量は４４０kバイト程度である。フィルタ時間長を３０msecとするとフィルタバッファ１０４０の必要容量は０．３kバイト程度になり、２つでも１kバイトに満たない。その他のパラメータと合わせてもデータに関して必要なメモリ量は全部で５００kバイト程度である。それゆえ、メモリ量が比較的少ない安価な計算機でも本発明の方法は十分に実装可能である。
本発明の構成は、従来聴覚によって判断していた音の有無を定量的かつ自動的に検出できるので、有音区間の検出作業の省力化効果である。作業者はCM素材を映像再生機にセットして、音声処理装置画面のボタンを操作するだけでよい。この操作には、映像の再生、停止、逆再生を頻繁に繰り返すといった煩雑な操作は一切不要であるので、操作の簡単化の効果がある。また音声信号を短時間毎に分割入力するようにしているためリアルタイムに有音区間を検出でき、作業性能向上の効果がある。確認作業の観点からは、検出した有音区間の音声を波形表示したり再生したりするようにしているので、検出結果を視覚および聴覚ですぐに確認することができ、確認作業の省力化の効果がある。CM映像の時間長ルールを利用して有音区間を検出しているので、長すぎたり短すぎたりする不適当な素材は却下でき、CM映像の時間長を別途検査する必要がなくなる。さらに検出した有音区間にマージンを設定できるようにしているので、時間長にばらつきのない品質の良いCM映像を管理装置に登録でき、登録映像の品質向上の効果がある。
また本発明の包絡線の算出に用いたフィルタリング処理はパワースペクトルの計算よりも計算量が少ないので、パソコン等の小型の計算機で実現でき、音声信号入力のサンプリング・レートが高くても計算が速く行える効果がある。
このような映像中の有音区間の検出方法を実現する装置は、パソコンのような小型の計算機で実現でき、安価な検出装置が達成できる。
産業上の利用可能性
以上のように本発明に係る有音区間の検出方法及び装置は、映像と音声とで構成されるCM画像の開始点と終了点を検出してCM画像を登録するCM登録装置に利用するのに適している。
また、映画やＴＶ番組に挿入されたCM映像の区間を検出するCM検出装置に利用することができる。
【図１】
0003753384.tif 000002
【図２】
0003753384.tif 000003
【図３】
0003753384.tif 000004
【図４】
0003753384.tif 000005
【図５】
0003753384.tif 000006
【図６】
0003753384.tif 000007
【図７】
0003753384.tif 000008
【図８】
0003753384.tif 000009
【図９】
0003753384.tif 000010
【図１０】
0003753384.tif 000011