(57)【要約】【課題】音声の再生開始タイミングをフレームよりも細かい分解能で高精度に制御可能な音声処理装置を提供する。【解決手段】カウント回路１０は、１フレームよりも細かいサブフレーム単位で指定された待機時間の経過を単位パルスに基づいてカウントする。単位パルスは、サブフレームの期間を規定し、かつ、画像表示装置における１フレームの表示期間と同期している。コマンド解析回路６は、実行スロット５から読み出されたコマンドが待機コマンドの場合、カウント回路１０によってカウントされた時間が待機時間に到達するまで、実行スロット５に格納された待機コマンド以降のコマンドの解析を中断する一方、待機時間への到達後に、それ以降のコマンドの解析を再開する。【選択図】図２
2011154091.tif 000002
【特許請求の範囲】
【請求項１】
音声の時系列的な再生手順を規定するコマンド群に基づいて、音声の再生処理を行う音声処理装置において、
画像の１フレームの表示期間を複数に分割したサブフレーム単位で待機時間を指定する待機コマンドを含むコマンド群を時系列的な順序で格納する記憶部と、
前記記憶部に格納された前記コマンド群をコマンド毎に順次読み出し、当該読み出されたコマンドを解析するコマンド解析回路と、
前記コマンド解析回路の解析結果に応じて、音声の再生処理を行う再生処理回路と、
前記記憶部から読み出された前記待機コマンドによって起動されるとともに、当該待機コマンドによってサブフレーム単位で指定された前記待機時間を、前記サブフレームの期間を規定し、かつ、画像表示装置における１フレームの表示期間と同期した単位パルスに基づいてカウントするカウント回路とを有し、
前記コマンド解析回路は、
前記記憶部から読み出されたコマンドが前記待機コマンドの場合、前記カウント回路によってカウントされた時間が前記待機時間に到達するまで、前記記憶部に格納された前記待機コマンド以降のコマンドの解析を中断するとともに、前記カウント回路によってカウントされた時間が前記待機時間に到達した場合、前記記憶部に格納された前記待機コマンド以降のコマンドの解析を再開することを特徴とする音声処理装置。
【請求項２】
複数の前記記憶部と、
前記記憶部のそれぞれに対応付けられ、当該対応付けられた記憶部から読み出された前記待機コマンドによって個別に起動される複数の前記カウント回路と、
再生すべき音声に関するコマンド群を、前記記憶部のいずれかに割り当てて書き込む書込調停回路とをさらに有し、
前記コマンド解析回路は、前記記憶部のそれぞれからのコマンドの読み出しを同期かつ並行して行うことを特徴とする請求項１に記載された音声処理装置。
【請求項３】
前記画像表示装置の垂直同期信号および水平同期信号に基づいて、水平走査期間の整数倍相当の前記単位パルスを生成するパルス生成回路をさらに有することを特徴とする請求項１または２に記載された音声処理装置。
【請求項４】
前記画像表示装置のドットクロック信号を分周することによって、前記単位パルスを生成するパルス生成回路をさらに有することを特徴とする請求項１または２に記載された音声処理装置。
【請求項５】
音声の再生処理におけるサンプリング周波数の整数倍相当で、かつ、前記サンプリング周波数および前記画像表示装置の垂直走査信号の非同期に起因した前記サブフレームの時間的な端数がフレーム毎に補正された前記単位パルスを生成するパルス生成回路をさらに有することを特徴とする請求項１または２に記載された音声処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声の時系列的な再生手順を規定するコマンド群に基づいて、音声の再生処理を行う音声処理装置に係り、特に動画と同期した音声再生に関する。
【背景技術】
【０００２】
例えば、特許文献１には、動画と同期した音声の編集を編集画面上で行う編集アプリケーションが開示されている。音製作者は、簡略化された動画のシンボルが時間軸上に表示された編集画面を見ながら、時間軸上の所望の位置に音声の再生単位となるフレーズを配置する。これにより、フレーズの再生開始タイミングは、このフレーズの先頭位置に対応する画像フレームの先頭と一致するように設定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２７８２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来技術では、１画面の表示期間であるフレームを最小単位として実行され、フレームの途中で音声を再生するといったように、１フレームよりも細かい分解能で実行することはできなかった。しかしながら、近年、音声の再生開始タイミングを１フレームよりも細かな分解能で設定したいという音製作者側のニーズが高まっている。これに応えるためには、編集アプリケーションの仕様のみならず、実際に再生処理を行うハードウェアの仕様も変更する必要がある。
【０００５】
そこで、本発明は、音声の再生開始タイミングをフレームよりも細かい分解能で高精度に制御可能な音声処理装置を提供することである。
【課題を解決するための手段】
【０００６】
かかる課題を解決すべく、本発明は、記憶部と、コマンド解析回路と、再生処理回路と、カウント回路とを有し、音声の時系列的な再生手順を規定するコマンド群に基づいて、音声の再生処理を行う音声処理装置を提供する。記憶部は、待機コマンドを含むコマンド群を時系列的な順序で格納する。待機コマンドは、画像の１フレームの表示期間を複数に分割したサブフレーム単位で待機時間を指定する。コマンド解析回路は、記憶部に格納されたコマンド群をコマンド毎に順次読み出し、読み出されたコマンドを解析する。再生処理回路は、コマンド解析回路の解析結果に応じて、音声の再生処理を行う。カウント回路は、記憶部から読み出された待機コマンドによって起動されるとともに、待機コマンドによってサブフレーム単位で指定された待機時間を単位パルスに基づいてカウントする。単位パルスは、サブフレームの期間を規定し、かつ、画像表示装置における１フレームの表示期間と同期している。ここで、コマンド解析回路は、記憶部から読み出されたコマンドが待機コマンドの場合、カウント回路によってカウントされた時間が待機時間に到達するまで、記憶部に格納された待機コマンド以降のコマンドの解析を中断する。そして、コマンド解析回路は、カウント回路によってカウントされた時間が待機時間に到達した場合、記憶部に格納された待機コマンド以降のコマンドの解析を再開する。
【０００７】
ここで、本発明において、上記記憶部および上記カウント回路をそれぞれ複数設けてもよい。複数のカウント回路のそれぞれは、記憶部のそれぞれに対応付けられ、この対応付けられた記憶部から読み出された待機コマンドによって個別に起動される。また、再生すべき音声に関するコマンド群を、記憶部のいずれかに割り当てて書き込む書込調停回路をさらに設けてもよい。この場合、コマンド解析回路は、記憶部のそれぞれからのコマンドの読み出しを同期かつ並行して行う。
【０００８】
また、本発明において、画像表示装置の垂直同期信号および水平同期信号に基づいて、水平走査期間の整数倍相当の単位パルスを生成するパルス生成回路を設けることが好ましい。これに代えて、画像表示装置のドットクロック信号を分周することによって、単位パルスを生成するパルス生成回路を設けてもよい。また、これらに代えて、音声の再生処理におけるサンプリング周波数の整数倍相当で、かつ、サンプリング周波数および画像表示装置の垂直走査信号の非同期に起因したサブフレームの時間的な端数がフレーム毎に補正された単位パルスを生成するパルス生成回路を設けてもよい。
【発明の効果】
【０００９】
本発明によれば、１フレームよりも細かいサブフレーム単位で指定された待機時間の経過を、サブフレームを規定する単位パルスに基づいてカウントする。単位パルスとして、画像表示装置における１フレームの表示期間と同期した高精度なものを用いることによって、音声処理装置における音声の再生開始タイミングを高精度に制御できる。
【図面の簡単な説明】
【００１０】
【図１】フレーズグループ（ソング）の編集の一例を示す図
【図２】音声処理装置のブロック構成図
【図３】トラック割当テーブルの説明図
【図４】第１の例におけるパルス生成回路の説明図
【図５】第１の例における単位パルスの説明図
【図６】第２の例におけるパルス生成回路の説明図
【図７】第２の例における単位パルスの説明図
【図８】第３の例におけるパルス生成回路の説明図
【図９】第３の例における単位パルスの説明図
【図１０】ソングのコマンド群の説明図
【図１１】動画と同期した音声の再生処理のフローチャート
【図１２】動画と同期した音声の再生処理のフローチャート
【発明を実施するための形態】
【００１１】
まず、本実施形態に係る音声処理装置が取り扱うことができるフレーズグループである「ソング」の概念について説明する。ソングとは、音声の再生単位であるフレーズをまとめたフレーズグループの時系列的な再生順序を規定するシナリオ（曲）である。ソングは、複数のフレーズで構成してもよいし、単一のフレーズで構成してもよい。図１は、ソング編集の一例を示す図である。図１は、ソングは、遊技やゲームの展開に応じて、車の走行シーンを再現した動画と同期して再生される。ここに例示したソングは、ある車の走行音を発音するフレーズＡと、この車と併走する別の車の走行音を発音するフレーズＢとで構成されている。ソング番号#８は、フレーズグループ（ソング）を識別するグループ番号である。
【００１２】
ソングの作成・編集は、音声編集アプリケーションを用いて、音製作者によって行われる。扱うことができるソング数の上限は、製品仕様として予め決められている。ハードウェアでは、通常、ソングを識別するインデックス（ソング番号）のビット長が予め決められている。したがって、インデックスが12ビットならば最大4096種類といった如く、ソングの上限数は有限となる。また、個々のフレーズには音製作者によって仮想トラックが割り当てられる。扱うことができる仮想トラック数の上限は、テーブルメモリのビット幅に依存し、音製作者の作業利便性を考慮した上で製品仕様として予め決められている（例えば64仮想トラック）。音声を作成する音製作者、および、音製作者の作成物を素材として遊技やゲームのプログラムを作成するプログラマの双方は、ハードウェアの実トラック数が有限で、同時再生できるフレーズ数に制限があることに留意する。
【００１３】
音製作者は、音声編集アプリケーションといった開発環境上で、一例として最大4096種類のソングを任意に作成することができる。１つのソングでは、仮想トラックを例えば64種類まで自由に扱うことができる。特定の仮想トラック番号を効果音や警告音に使うことで、フレーズの配置を柔軟かつ効率的に行うことができる。音製作者は、あるソングを作成・編集する際、他のソングでどの仮想トラックを使用しているかを気にする必要はない。フレーズの再生、フレーズに対する発音開始タイミングの調整、ボリューム調整、音像調整などの作業は、すべて仮想トラックベースで行われる。音製作者によって作成されたソングは、次工程の作業を担当するプログラマに提供される。プログラマは、ＢＧＭはソング#6、走行音はソング#8といった曲情報を音製作者から受け取り、これに基づいてハードウェアを制御するプログラムを作成する。ソングを格納するハードウェア上の実行スロットは、ソングの再生に十分な数が用意されている（例えば64スロット）。したがって、通常、プログラマは、スロット不足に起因してソングが実行できない状況や、ソングがどの実行スロットで実行されているのかといった事項を意識する必要はない。
【００１４】
フレーズＡ，Ｂの再生開始タイミングの設定は、１画面の表示期間であるフレームを複数に分割したサブフレーム単位で行うことができる。図１の例では、１フレームが２０個に均等に分割されており、１フレームの１／２０の表示期間に相当するサブフレームが設定されている。音製作者は、簡略化された動画のシンボルが時間軸上に表示された編集画面を見ながら、時間軸上の所望の位置に音声の再生単位となるフレーズＡ，Ｂをサブフレーム単位で配置する。サブフレーム単位での配置を許容することで、フレーズの再生開始タイミングを規定するフレーズ開始点をフレームの途中に設定することもできる。フレーズ開始点は、動画およびソングの双方の開始位置である基準点からの待機時間として特定することができる。この場合、待機時間は、基準点からのサブフレーム数によって指定される。フレーズＡ，Ｂの待機時間のそれぞれは（ｉa，ｊa），（ｉb，ｊb）で表すことができる。ｉa，ｉbは基準点からのフレーム数を表し、ｊa，ｊbは、このフレーム数の余りの小数部分、すなわちサブフレーム数を表す。したがって、例えば待機時間（ｉa，ｊa）は、ｉa個分のフレームにｊa個分のサブフレームを加えた時間を意味し、これはｉa×２０＋ｊa個分のサブフレームと等価である。音声編集アプリケーションは、音製作者によって作成された内容に基づいて、音声処理装置に供給すべきソングのコマンド群を生成・出力する。このコマンド群の中には、待機時間をサブフレーム単位で指定する待機コマンドも含まれる。なお、編集画面上で指定された基準点ベースの待機時間（ｉa，ｊa），（ｉb，ｊb）は、後述する音声処理装置における待機コマンドの実行時点を基準とした待機時間（Ｆa，ｓｆa），（Ｆb，ｓｆb）に変換され、これが待機コマンドの引数として音声処理装置に供給される。音声処理装置の動作周波数および単位時間当たりのコマンドの実行数が既知であることを前提に、待機コマンドの実行時点からの待機時間（Ｆa，ｓｆa），（Ｆb，ｓｆb）は、待機コマンドよりも時系列的に前に位置するコマンド群を基準点まで遡ることによって一義的に算出することができる。
【００１５】
図２は、上述したソングを再生する音声処理装置のブロック構成図である。この音声処理装置１は、外部システムとの間のデータ転送を調停するインターフェース群２，３と、コマンド処理系４〜７と、再生処理系８，９と、画像同期系１０，１１とを主体に構成されている。ＭＰＵインターフェース２は、音声処理装置１の外部に接続されたＭＰＵ（図示せず）との間のデータ転送を調停し、ＭＰＵによって発行されたコマンド（例えばソングの起動コマンド）をコマンド解析回路６に供給する。また、ＲＯＭインターフェース３は、音声処理装置１の外部に接続された外部ＲＯＭ（図示せず）との間のデータ転送を調停し、ＲＯＭから読み出されたソングのコマンド群を書込調停回路４に供給するとともに、ＲＯＭから読み出されたフレーズデータをシーケンサ８に供給する。音声処理装置１は、ソングのコマンド群に基づいて、仮想トラック付のフレーズを有限な実トラックＴｒ1〜Ｔｒ8に割り当てながら音声をフレーズ単位で再生・出力する。本実施形態では、一例として、仮想トラック数が64個であるのに対して、実トラック数はそれよりも少ない8個である。
【００１６】
コマンド処理系は、書込調停回路４と、複数の実行スロット５と、コマンド解析回路６と、トラック管理回路７とによって構成されている。並列に設けられた実行スロット５の個数は、実トラック数（8個）よりも多ければ制御上支障はないが、処理過程でスロット不足が生じないような十分な数であることが好ましく、本実施形態では64個存在する。それぞれの実行スロット５は、ＲＯＭから読み出されたソングのコマンド群を時系列な順序で格納する。実行スロット５に格納されたコマンド群は、時系列的に早く書き込まれたものほど早く読み出され、コマンド毎に後段のコマンド解析回路６に順次供給される。64個の実行スロット５のそれぞれにはスロット番号#1〜#64のいずれかが割り当てられている。これらの実行スロット５からのコマンド群の読み出しは互いに同期かつ並行して行われ、具体的には、読み出すべき実行スロット５を順次シフトしながら１コマンドずつ順番に読み出される。また、それぞれの実行スロット５は、自己に格納されたソングを特定するために、ソング番号を記憶するソング番号記憶領域を備えている。この記憶領域に対するソング番号の書き込みは、ソングのコマンド群の格納時に書込調停回路４によって行われ、書き込まれたソングは、コマンド解析回路６によって随時読み出される。
【００１７】
ソングの起動は、ＭＰＵがコマンド解析回路６に直接指示することによって、或いは、実行スロット５内のコマンドをコマンド解析回路６が読み込むことによって行われる。これに応じて、コマンド解析回路６は、再生対象となるソングのソング番号を書込調停回路４に指示する。この指示を受けた書込調停回路４は、指定されたソングの読み出しをＲＯＭインターフェース３に要求する。それとともに、書込調停回路４は、ＲＯＭから読み出されたソングのコマンド群を実行スロット５のいずれかに割り当てて書き込む。その際、書込対象となる実行スロット５のソング番号記憶領域には、今回書き込まれるソングのソング番号が書き込まれる。書込調停回路４は、全ての実行スロット５の使用状況をリアルタイムで管理しており、コマンド群の書き込みは空きスロットに対して行われる。
【００１８】
ソングのデータサイズが実行スロット５の記憶容量よりも大きい場合には、ソングのコマンド群を複数に分割し、実行スロット５への書き込みを複数回行ってもよい。また、ＲＯＭへのアクセスが十分に高速な場合には、実行スロット５の記憶容量は少なくてよく、単なるバッファのようなものであってもよい。ただし、実行スロット５をどのように構成した場合であっても、あるソングを構成する一連のコマンド群は同じ実行スロット５に割り当てる必要がある。
【００１９】
コマンド解析回路６は、それぞれの実行スロット５に格納されたコマンド群を同期かつ並行して読み出してコマンドの内容を解析するとともに、その解析結果に応じて、実トラックＴｒを割り当てながらフレーズの再生処理をフレーズ処理系８，９に指示する。コマンドの解析および実トラック検索は仮想トラックベースで行われるが、フレーズ処理系８，９に対する指示は実トラックベースで行われる。
【００２０】
トラック管理回路７は、それぞれの実トラックＴｒ1〜Ｔｒ8の使用状況を管理するとともに、あるフレーズに関する実トラックＴｒへの割り当てを、このフレーズに付加されている仮想トラックのみならず、実行スロット５にも対応付けて行う。このような管理および対応付けを行うために、トラック管理回路７はトラック割当テーブル７ａを有する。
【００２１】
図３は、トラック割当テーブル７ａの説明図である。それぞれの実トラックＴｒ1〜Ｔｒ8に関する現在の使用状況は「使用フラグ（Flag）」によって管理され、実トラックＴｒが空き状態の場合には「空き」、使用状態の場合には「使用中」となる。「使用フラグ（Flag）」の内容は、実トラックＴｒの割り当てや、フレーズの再生終了（ＭＰＵによる強制終了を含む）によって随時更新される。また、トラック割当テーブル７ａは、それぞれの実トラックＴｒ1〜Ｔｒ8に関する管理内容として、「「スロット番号（Slot）」と、「ソング番号（Song）」と、「仮想トラック番号（仮想Tr）」とを対応付けて管理する。ここで、「スロット番号（Slot）」には、実行スロット毎に予め割り当てられたスロット番号のいずれか、「ソング番号（Song）」には、ソング毎に予め割り当てられたソング番号のいずれか、「仮想トラック番号（仮想Tr）」には、フレーズ毎に予め割り当てられた仮想トラック番号のいずれかがそれぞれ記述される。これにより、ある実トラックＴｒは、特定の仮想トラックのみならず、特定の実行スロット５および特定のソングにも対応付けられる。ただし、トラック割当という点だけに着目すると、仮想トラックおよび実行スロットへの対応付けは必須であるが、ソングへの対応付けは必ずしも必要ではない。ソングへの対応付けを行う理由は、ソング番号を検索キーとしたトラック割当テーブル７ａの検索を可能にするためである。同図に示した例において、「使用中」である実トラックＴｒ6は、実行スロット#37、ソング#3154および仮想トラック#32という３つの管理内容に対応付けられている。特定の実行スロット５への対応付けを行う理由は、仮想トラックが同じでも実行スロット５が異なれば、別個の実トラックＴｒに割り当てるべきものとして処理し、同じ仮想トラックの同時再生を可能にするためである。なお、実トラックＴｒに関する管理内容は、その実トラックＴｒの「使用フラグ（Flag）」が「使用中」の場合のみ有効とされる。したがって、「使用フラグ（Flag）」が「使用中」から「空き」に変更された時点で管理内容が無効または消去され、これにより、実トラックＴｒとの対応付けが解消される。
【００２２】
トラック管理回路７は、コマンド解析回路６の解析結果に応じて、再生すべきフレーズの実トラックＴｒへの割り当てを行う場合、空き状態にある実トラックＴｒに関する「使用フラグ（Flag）」を「使用中」に変更し、管理内容を更新する。これにより、この実トラックＴｒは、このコマンドを読み出した実行スロット５と、再生すべきフレーズに付加されている仮想トラックとに対応付けられる。また、シーケンサ８におけるフレーズの再生処理が終了した場合等において、トラック管理回路７は、このフレーズによって使用状態にある実トラックＴｒに関する「使用フラグ（Flag）」を「空き」に変更して、この実トラックＴｒを解放する。これにより、この実トラックＴｒに関する上記対応付けが解消される。
【００２３】
再生処理系は、シーケンサ８やフェード／パン回路９といった各種の再生処理回路によって構成されており、コマンド解析回路６の解析結果に応じた音声の再生処理を行う。シーケンサ８は、コマンド解析回路６によって指定されたフレーズ番号のフレーズデータをＲＯＭから読み出す。本実施形態において、ＲＯＭに格納されたフレーズデータは所定の圧縮形式に圧縮されているため、シーケンサ８は、ＲＯＭから読み出された圧縮フレーズデータを伸長するためのデコーダ８ａを内蔵している。シーケンサ８によって生成されたフレーズ（音声信号）は、コマンド解析回路６によって指示された実トラックＴｒにフレーズ単位で出力される。また、フェード・パン回路９は、フレーズに対するボリューム／音像定位の調整を行う。具体的には、コマンド解析回路６から実トラックＴｒの指定付でボリューム演算の適用指示を受け、これに基づいて実トラックＴｒ1〜Ｔｒ8のボリューム／音像定位の処理が行われる。そして、実トラックＴｒ1〜Ｔｒ8の複数フレーズは、スピーカー出力の単位にミキシングされ、更にイコライザ等のエフェクトが施された後、音声出力回路（図示せず）を介して外部に出力される。
【００２４】
画像同期系は、複数のカウント回路１０と、パルス生成回路１１とによって構成されている。カウント回路１０は、実行スロット５相互の実行時間を調整するために、或いは、動画再生との同期を取るために設けられており、実行スロット５と１対１で対応付けられている。ある実行スロット５に対応付けられたカウント回路１０は、その実行スロット５から読み出された待機コマンドによって個別に起動される。この起動されたカウント回路１０は、待機コマンドによってサブフレーム単位で指定された待機時間の経過を単位パルスに基づいてカウントする。待機時間のカウントのベースとなる単位パルスは、サブフレームの期間を規定し、かつ、画像表示装置における１フレームの表示期間と同期したパルスであり、パルス生成回路１１によって生成される。コマンド解析回路６は、ある実行スロット５のカウント回路１０が動作状態に応じて、その実行スロット５に関するコマンド解析を実行／停止する。具体的には、ある実行スロット５から読み出されたコマンドが待機コマンドの場合、その実行スロット５のカウント回路１０によってカウントされた時間が待機時間に到達するまで、その実行スロット５に格納された待機コマンド以降のコマンドの解析が一時的に中断される。そして、カウント回路１０によってカウントされた時間が待機時間に到達した場合、その実行スロット５に格納された待機コマンド以降のコマンドの解析が再開される。
【００２５】
単位パルスを生成するパルス生成回路１１の構成には、以下に例示するようなバリエーションが考えられる。図４は、第１の例としてのパルス生成回路１１の説明図であり、図５は、このパルス生成回路１１によって生成される単位パルスの説明図である。このパルス生成回路１１は、音声と同期させるべき動画を表示する画像表示装置１２の垂直同期信号ＶＳＹＮＣおよび水平同期信号ＨＳＹＮＣに基づいて、水平走査期間（ＨＳＹＮＣ時間）の整数倍に相当する単位パルスを生成する。これらの同期信号ＶＳＹＮＣ，ＨＳＹＮＣは、図示しないドットクロック発信器からのドットクロック信号ＤＣＫＬに基づいて生成される。同期信号ＶＳＹＮＣ，ＨＳＹＮＣに基づいて生成された単位パルスは、画像表示装置１２の同期信号と高精度に同期する。１サブフレームは水平走査期間（ＨＳＹＮＣ時間）、１フレームは垂直走査期間（ＶＳＹＮＣ時間）を単位として設定される。
【００２６】
図６は、第２の例としてのパルス生成回路の説明図であり、図７は、このパルス生成回路１１によって生成される単位パルスの説明図である。このパルス生成回路１１は、音声と同期させるべき動画を表示する画像表示装置１２のドットクロック信号ＤＣＬＫを分周することによって、単位パルスを生成する。ドットクロック信号ＤＣＬＫは、ドットクロック発振器１３によって生成され、上述した垂直同期信号ＶＳＹＮＣおよび水平同期信号ＨＳＹＮＣを生成する際のベース信号となる。その結果、単位パルスは、画像表示装置１２の同期信号と高精度に同期する。１サブフレーム／１フレームは、ドットクロック信号ＤＣＬＫを分周した「フレーム相当」／「１／Ｎフレーム相当」を単位として設定される。
【００２７】
図８は、第３の例としてのパルス生成回路の説明図であり、図９は、このパルス生成回路１１によって生成される単位パルスの説明図である。このパルス生成回路１１は、音声と同期させるべき動画を表示する画像表示装置１２の垂直同期信号ＶＳＹＮＣと、サウンドクロック発振器１４によって生成されたサウンドクロック信号ＳＣＬＫとに基づいて、単位パルスを生成する。サウンドクロック信号ＳＣＬＫは、音声の再生処理におけるサンプリング周波数Ｆs相当のベース信号である。この場合、サウンドクロック信号ＳＣＫＬを分周したサンプリング周波数Ｆsの整数倍相当を１サブフレームとし、垂直同期信号ＶＳＹＮＣによって規定されるＶＳＹＮＣ時間を１フレームとする。ただし、垂直同期信号ＶＳＹＮＣおよびサウンドクロック信号ＳＣＬＫは、通常、異なる発振器によって生成され、互いに非同期であるがゆえに、サブフレームの整数倍とフレームとの間に時間的な端数（ずれ）が生じる。そこで、非同期に起因したサブフレームの端数をフレーム毎に補正し、誤差としての端数がフレームを跨って累積しないようにする。具体的には、１フレーム中の特定のサブフレーム（例えば、最後のフレーム）のみ、端数が解消するような時間調整を行えばよい（それ以外のサブフレームについては同一期間とする）。
【００２８】
つぎに、図１に示したソング#8を一例に、動画と同期した音声再生について詳述する。図１０は、ソング#8のコマンド群の説明図であり、時系列的に先に実行すべきコマンドから順番に記述されている。ここで、「待機（wait）」は、カウント回路１０に指定値（Ｆa，ｓｆa）をセットしてカウントダウンを行う待機コマンドである。この指定値としての待機時間は待機コマンドの引数であり、待機コマンドの実行時からの待機時間がＦａ個のフレームにｓｆa個のサブフレームを加算した時間相当であることを示す。「Ｔｒ割当」は、指定された仮想トラックを実トラックＴｒに割り当て、トラック割当テーブル７ａを更新するコマンドである。仮想トラックの指定は、このコマンドの引数（仮想トラック番号）によって行われる。「フレーズ登録」は、指定された仮想トラックに割り当てられている実トラックＴｒを検索し、その実トラックＴｒに対して、指定されたフレーズを登録するコマンドである。仮想トラックおよびフレーズの指定は、このコマンドの引数（仮想トラック番号およびフレーズ番号）によって行われる。「再生実行」は、指定された仮想トラックに割り当てられている実トラックＴｒを検索し、その実トラックＴｒでの再生をシーケンサ８に開始させるコマンドである。仮想トラックの指定は、このコマンドの引数（仮想トラック番号）によって行われる。「フェード」および「パン」は、指定された仮想トラックに割り当てられている実トラックＴｒを検索し、その実トラックＴｒでフェード／パンを行うコマンドであり、処理に必要なパラメータを含む。仮想トラックの指定は、このコマンドの引数（仮想トラック番号）によって行われる。
【００２９】
図１１から図１２は、図１０のコマンド群に基づく音声再生処理のフローチャートである。まず、図１１において、遊技やゲームの進行により、動画と同期してソング#8を再生すべき状況になると、ＭＰＵによってソング#8の起動が指示される（ステップ１）。この指示を受けたコマンド解析回路６は、書込調停回路４にソング#8を格納すべき実行スロット５の確保を指示する。実行スロット５の空き状況を随時モニタリングしている書込調停回路４は、64個の実行スロット５の中から現時点での空スロットを一つ特定し（例えば#64）、このスロット#64にソング#8を割り当てる（ステップ２）。空スロットの検索方法としては、例えば、直前に割り当てられたスロット番号をポインタで保持しておき、今回の検索時に、ポインタによって示されたスロット番号以降における直近の空スロット（昇順の場合）を選択するといった手法が挙げられる。そして、書込調停回路４は、ＲＯＭインターフェイス３に対して、ソング#8のコマンド群の読み出しを要求し、これによって、ソング#8のコマンド群がＲＯＭから読み出される（ステップ３）。書込調停回路４は、読み出されたソング#8のコマンド群を実行スロット#64に格納するとともに、この実行スロット#64が備えるソング番号記憶領域にソング#8を書き込む（ステップ４）。コマンド解析回路６は、実行スロット#1〜#64を順番に探索し、実行可能なスロット（ソングの割り当てがあり、かつ、カウント回路１０の値が０のもの）から１コマンドずつ同期かつ並行して読み出し、読み出したコマンドを解析する。
【００３０】
ソング#8の格納直後の読出タイミングで、実行スロット#64から最先の待機コマンド（wait）が読み出されると、その実行スロット#64のカウント回路１０に待機時間（Ｆa，ｓｆa）がセットされ、カウントダウンが開始する（ステップ５）。カウントダウン中の（Ｆa，ｓｆa）時間は、実行スロット#64から２番目以降のコマンドが読み出されない待機状態となる。
【００３１】
なお、上記ステップ１〜４の処理時間は、フレームやサブフレームの期間に比べれば無視できるほど短い。したがって、カウントの開始と動画の再生開始とは、タイミング的にほぼ一致する。この点は、後述するステップ７〜１１についても同様である。
【００３２】
図１２において、実行スロット#64の経過時間が待機時間（Ｆa，ｓｆa）に到達、すなわち、（ｉa＋１）番目のフレームにおけるｊ番目のサブフレームに到達すると、待機状態にあった実行スロット#64からのコマンドの読み出しが再開される（ステップ６）。これにより、実行スロット#64から２番目の「Ｔｒ割当」コマンドが読み出される（ステップ７）。コマンド解析回路６は、このコマンドの解析結果に基づき、再生処理を開始すべきフレーズＡ（仮想Ｔｒ＝#1）に関する実トラックＴｒへの割り当てをトラック管理回路７に依頼する。この依頼を受けたトラック管理回路７は、図３に示したトラック割当テーブル７ａを参照して、使用トラックＴｒ6を除く空トラックのいずれを特定する（例えば実トラックＴｒ7）。空トラックの検索方法としては、例えば、直前に割り当てられた実トラックＴｒの位置をポインタで保持しておき、今回の検索時に、ポインタによって示された実トラックＴｒ以降における直近の空きトラック（昇順の場合）を選択するといった手法が挙げられる。そして、この実トラックＴｒ7の「使用フラグ（Flag）」が「空き」から「使用中」に変更されるとともに、その管理内容が「Ｔｒ割当」コマンドを読み出した実行スロット番号#64と、「Ｔｒ割当」コマンドが属するソング番号#8と、再生処理を開始すべきフレーズの仮想トラック番号#1とに更新される。ソング番号#8の特定は、引数によるコマンド指定ではなく、実行スロット#64のソング番号記憶領域から記憶内容を読み出すことによって行われる。
【００３３】
つぎに、実行スロット#64から３番目の「フレーズ登録」コマンドが読み出される（ステップ８）。コマンド解析回路６は、このコマンドの解析結果に基づき、トラック割当テーブル７ａの検索をトラック管理回路７に依頼する。この依頼を受けたトラック管理回路７は、「フレーズ登録」コマンドによって指定された仮想トラック#1と、「フレーズ登録」コマンドが読み出された実行スロット#64とを検索キーとしてトラック割当テーブル７ａを検索し、実トラックＴｒ7を特定する。実トラックＴｒの通知を受けたコマンド解析回路６は、「フレーズ登録」コマンドによって指定されたフレーズＡを実トラックＴｒ7で再生すべき旨をシーケンサ８に指示する。これにより、シーケンサ８において、実トラックＴｒ7にフレーズＡが登録される。
【００３４】
つぎに、実行スロット#64から４番目の「再生実行」コマンドが読み出される（ステップ９）。コマンド解析回路６は、このコマンドの解析結果に基づき、トラック割当テーブル７ａの検索をトラック管理回路７に依頼する。この依頼を受けたトラック管理回路７は、「再生実行」コマンドによって指定された仮想トラック#1と、「再生実行」コマンドが読み出された実行スロット#64とを検索キーとしてトラック割当テーブル７ａを検索し、実トラックＴｒ7を特定する。実トラックＴｒの通知を受けたコマンド解析回路６は、実トラックＴｒ7の再生開始をシーケンサ８に指示する。これにより、シーケンサ８は、実トラックＴｒ7に登録されているフレーズデータＡをＲＯＭインターフェイス３を介してＲＯＭから取得し、このフレーズデータＡの再生処理を実行し、実トラックＴｒ7に出力する。
【００３５】
つぎに、実行スロット#64から５番目の「フェード」コマンドが読み出される（ステップ１０）。コマンド解析回路６は、このコマンドの解析結果に基づき、トラック割当テーブル７ａの検索をトラック管理回路７に依頼する。この依頼を受けたトラック管理回路７は、「フェード」コマンドによって指定された仮想トラック#1と、「フェード」コマンドが読み出された実行スロット#64とを検索キーとしてトラック割当テーブル７ａを検索し、実トラックＴｒ7を特定する。実トラックＴｒ7の通知を受けたコマンド解析回路６は、実トラックＴｒ7のフェード処理をフェード／パン回路９に指示する。これにより、フェード／パン回路９は、フレーズデータＡが出力される実トラックＴｒ7のフェード処理を実行する。
【００３６】
つぎに、実行スロット#64から６番目の「パン」コマンドが読み出される（ステップ１１）。コマンド解析回路６は、このコマンドの解析結果に基づき、トラック割当テーブル７ａの検索をトラック管理回路７に依頼する。この依頼を受けたトラック管理回路７は、「パン」コマンドによって指定された仮想トラック#1と、「パン」コマンドが読み出された実行スロット#64とを検索キーとしてトラック割当テーブル７ａを検索し、実トラックＴｒ7を特定する。実トラックＴｒ7の通知を受けたコマンド解析回路６は、実トラックＴｒ7のパン処理をフェード／パン回路９に指示する。これにより、フェード／パン回路９は、フレーズデータＡが出力される実トラックＴｒ7のパン処理を実行する。なお、遊技やゲームの展開によりシーンチェンジが生じた場合には、ＭＰＵからの指示によって、再生途中のソングを強制的に終了させることもできる。
【００３７】
このように、本実施形態によれば、１フレームよりも細かいサブフレーム単位で指定された待機時間（Ｆ，ｓｆ）の経過を、実際のサブフレームを規定する単位パルスに基づいてカウントする。単位パルスとして、画像表示装置における１フレームの表示期間と同期した高精度なものを用いることによって、音声処理装置１における音声の再生開始タイミングを高精度に制御できる。なお、待機時間の到達（ステップ６）をトリガとして実行される一連の処理（ステップ７〜９）はサブフレームの期間と比べると極短時間で実行されるので、音声と動画の同期性は何ら阻害されるものではない。例えば、１フレームを２０個のサブフレームに分割した場合、１サブフレームは16/20ｍ秒となる。これに対して、例えば100MHzで動作する音声処理装置（ＬＳＩ）では、１マイクロ秒で100個のコマンドを実行可能である。したがって、コマンドの実行に要する時間は、サブフレームの期間の1/1000程度にすぎず、サブフレームの期間と比べると無視できる程度に小さいことがわかる。
【００３８】
また、本実施形態によれば、あるソングに関するコマンド群は、いずれかの実行スロット５に割り当てて書き込まれる。このソングに属するフレーズの実トラックＴｒへの割り当ては、フレーズ自体に割り当てられた仮想トラックのみならず、実行スロット５にも対応付けて行われる。したがって、同一のソングを複数の実トラックでオーバーラップ再生する場合、フレーズの仮想トラックが同じであったとしても、実行スロット５の違いを以て、それぞれを異なる実トラックＴｒに割り当てるべきものとして処理できる。その結果、同一ソングのオーバーラップ再生時における仮想トラックのコンフリクトを解消できる。また、仮想トラックのコンフリクトの問題をハードウェア側で解消することにより、音編集ソフトウェア上で作業する音製作者の利便性の向上を図ることが可能になる。さらに、オーバーラップするフレーズ毎に別個の仮想トラックを割り当てる必要がないので、仮想トラックのリソースの浪費を抑制できる。
【００３９】
また、本実施形態によれば、フレーズの再生処理が終了した時点で実トラックＴｒが解放されるので、解放後の仮想トラックベースの指示に対しては何も処理されないことが保証されるという効果がある。一般に、ＭＰＵは、ポーリングによって実トラックＴｒの使用状況を一定の間隔で随時取得している。ポーリングでは、トラック割当テーブル７ａが更新されてからＭＰＵがそれを取得するまでに時間差が生じる。この時間差に起因して、例えば、実際には再生が終了したフレーズに対して、ＭＰＵがボリューム調整やパン移動などを指示してしまうといった如く、ＭＰＵの指示と実際の状況との間に一時的な不整合が生じることがある。ここで、比較例として、ＭＰＵからの指示を実トラックベースで行う場合、たとえＭＰＵの指示に係るフレーズの再生が既に終了し、これに続く別のフレーズの処理が始まっていたとしても、指定された実トラックＴｒの処理が一律に実行されてしまう。このような誤った処理の実行を防止するためには、ポーリングを高頻度で行う必要がある。これに対して、本実施形態のように、ＭＰＵからの指示を仮想トラックベースで行う場合、フレーズの再生が終了した時点で実トラックＴｒとの対応付けが解消されるので、その後に、仮想トラックを指定しても、該当する実トラックＴｒが存在しないことになる。したがって、上述した誤った処理が実行されてしまうことを防止できる。その結果、ポーリングを高頻度で行う必要がないので、ポーリングに要するＭＰＵの負荷の軽減を図ることができるとともに、プログラマが実トラックＴｒの利用状況の詳細を把握することの煩雑さも解消できる。
【００４０】
なお、上述した実施形態では、ソングの起動を指示するＭＰＵ、および、ソングのコマンド群やフレーズデータを格納するＲＯＭが音声処理装置１の外部に存在するシステム構成について説明したが、音声処理装置１自体がＭＰＵやＲＯＭを内蔵していてもよい。
【００４１】
また、上述した実施形態では、トラック割当テーブル７ａで「「スロット番号（Slot）」、「ソング番号（Song）」および「仮想トラック番号（仮想Tr）」の３項目を管理しているが、「ソング番号（Song）」および「仮想トラック番号（仮想Tr）」の２項目で本発明の目的は達成されるので、「ソング番号（Song）」については省略しても構わない。ただし、管理内容に「ソング番号（Song）」を含めた場合には、ソング番号を検索キーとした実トラックＴｒの検索が可能になる。このような検索は、例えば、複数の実行スロット５で実行されている同一のソングを、ＭＰＵからのソング番号の指定にて強制終了させたい場合に実行される。この場合、ＭＰＵによって指定されたソング番号を検索キーにトラック割当テーブル７ａを検索することによって、同一のソングが割り当てられている実トラックＴｒを特定することができる。
【００４２】
さらに、待機コマンドの待機時間は、待機コマンドの実行時からの経過時間（Ｆa，ｓｆa）という形ではなく、基準点からの経過時間（ｉa，ｊa）という形で指定してもよい。
【産業上の利用可能性】
【００４３】
以上のように、本発明に係る音声処理装置は、フレーズグループに含まれる個々の仮想トラック付フレーズを実トラックに割り当てながら、フレーズ単位で音声を再生する処理に対して広く適用できる。
【符号の説明】
【００４４】
１  音声処理装置
２  ＭＰＵインターフェイス
３  ＲＯＭインターフェス
４  書込調停回路
５  実行スロット
６  コマンド解析回路
７  トラック管理回路
７ａ  トラック割当テーブル
８  シーケンサ
８ａ  デコーダ
９  フェード／パン回路
１０  カウント回路
１１  パルス生成回路
１２  画像表示装置
１３  ドットクロック発振器
１４  サウンドクロック発振器
【図１】
2011154091.tif 000003
【図２】
2011154091.tif 000004
【図３】
2011154091.tif 000005
【図４】
2011154091.tif 000006
【図５】
2011154091.tif 000007
【図６】
2011154091.tif 000008
【図７】
2011154091.tif 000009
【図８】
2011154091.tif 000010
【図９】
2011154091.tif 000011
【図１０】
2011154091.tif 000012
【図１１】
2011154091.tif 000013
【図１２】
2011154091.tif 000014
【手続補正書】
【提出日】平成22年11月22日(2010.11.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
音声の時系列的な再生手順を規定するコマンド群に基づいて、音声の再生処理を行い、この音声の再生処理を、画像表示装置における１フレームの表示期間と同期した単位パルスに基づいて制御する音声処理装置において、
画像の１フレームの表示期間を複数に分割したサブフレーム単位で前記画像表示装置での前記画像の開始から音声の再生処理開始までの時間を反映して設定された待機時間を指定する待機コマンドを含む前記コマンド群を時系列的な順序で格納する記憶部と、
前記記憶部に格納された前記コマンド群をコマンド毎に順次読み出し、当該読み出されたコマンドを解析するコマンド解析回路と、
前記コマンド解析回路の解析結果に応じて、音声の再生処理を行う再生処理回路と、
前記記憶部から読み出された前記待機コマンドによって起動されるとともに、当該待機コマンドによってサブフレーム単位で指定された前記待機時間を、前記単位パルスに基づいてカウントするカウント回路とを有し、
前記サブフレームの期間は、前記単位パルスにより規定され、
前記コマンド解析回路は、
前記記憶部から読み出されたコマンドが前記待機コマンドの場合、前記カウント回路によってカウントされた時間が前記待機時間に到達するまで、前記記憶部に格納された前記待機コマンド以降のコマンドの解析を中断するとともに、前記カウント回路によってカウントされた時間が前記待機時間に到達した場合、前記記憶部に格納された前記待機コマンド以降のコマンドの解析を再開することを特徴とする音声処理装置。
【請求項２】
複数の前記記憶部と、
前記記憶部のそれぞれに対応付けられ、当該対応付けられた記憶部から読み出された前記待機コマンドによって個別に起動される複数の前記カウント回路と、
再生すべき音声に関する前記コマンド群を、前記記憶部のいずれかに割り当てて書き込む書込調停回路とをさらに有し、
前記コマンド解析回路は、前記記憶部のそれぞれからのコマンドの読み出しを同期かつ並行して行うことを特徴とする請求項１に記載された音声処理装置。
【請求項３】
前記画像表示装置の垂直同期信号および水平同期信号に基づいて、水平走査期間の整数倍相当の前記単位パルスを生成するパルス生成回路をさらに有することを特徴とする請求項１または２に記載された音声処理装置。
【請求項４】
前記画像表示装置のドットクロック信号を分周することによって、前記単位パルスを生成するパルス生成回路をさらに有することを特徴とする請求項１または２に記載された音声処理装置。
【請求項５】
前記単位パルスを生成するパルス生成回路をさらに有し、
前記単位パルスは、音声の再生処理におけるサンプリング周波数の整数倍相当のパルスであって、
該単位パルスを生成する前記パルス生成回路は、前記サンプリング周波数と前記画像表示装置の垂直走査信号との非同期に起因した前記サブフレームの時間的な端数がフレームを跨って累積しないように、前記生成する単位パルスを、フレーム毎に前記端数が解消するように補正することを特徴とする請求項１または２に記載された音声処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
かかる課題を解決すべく、本発明は、記憶部と、コマンド解析回路と、再生処理回路と、カウント回路とを有し、音声の時系列的な再生手順を規定するコマンド群に基づいて、音声の再生処理を行い、この音声の再生処理を、画像表示装置における１フレームの表示期間と同期した単位パルスに基づいて制御する音声処理装置を提供する。記憶部は、待機コマンドを含むコマンド群を時系列的な順序で格納する。待機コマンドは、画像の１フレームの表示期間を複数に分割したサブフレーム単位で画像表示装置での画像の開始から音声の再生処理開始までの時間を反映して設定された待機時間を指定する。コマンド解析回路は、記憶部に格納されたコマンド群をコマンド毎に順次読み出し、読み出されたコマンドを解析する。再生処理回路は、コマンド解析回路の解析結果に応じて、音声の再生処理を行う。カウント回路は、記憶部から読み出された待機コマンドによって起動されるとともに、待機コマンドによってサブフレーム単位で指定された待機時間を単位パルスに基づいてカウントする。単位パルスは、サブフレームの期間を規定し、かつ、画像表示装置における１フレームの表示期間と同期している。ここで、コマンド解析回路は、記憶部から読み出されたコマンドが待機コマンドの場合、カウント回路によってカウントされた時間が待機時間に到達するまで、記憶部に格納された待機コマンド以降のコマンドの解析を中断する。そして、コマンド解析回路は、カウント回路によってカウントされた時間が待機時間に到達した場合、記憶部に格納された待機コマンド以降のコマンドの解析を再開する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
また、本発明において、画像表示装置の垂直同期信号および水平同期信号に基づいて、水平走査期間の整数倍相当の単位パルスを生成するパルス生成回路を設けることが好ましい。これに代えて、画像表示装置のドットクロック信号を分周することによって、単位パルスを生成するパルス生成回路を設けてもよい。また、これらに代えて、音声の再生処理におけるサンプリング周波数の整数倍相当の単位パルスを生成するパルス生成回路を設けてもよい。ここで、このパルス生成回路は、サンプリング周波数と画像表示装置の垂直走査信号との非同期に起因したサブフレームの時間的な端数がフレームを跨って累積しないように、生成する単位パルスを、フレーム毎に端数が解消するように補正する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
図８は、第３の例としてのパルス生成回路の説明図であり、図９は、このパルス生成回路１１によって生成される単位パルスの説明図である。このパルス生成回路１１は、音声と同期させるべき動画を表示する画像表示装置１２の垂直同期信号ＶＳＹＮＣと、サウンドクロック発振器１４によって生成されたサウンドクロック信号ＳＣＬＫとに基づいて、単位パルスを生成する。サウンドクロック信号ＳＣＬＫは、音声の再生処理におけるサンプリング周波数Ｆs相当のベース信号である。この場合、サウンドクロック信号ＳＣＬＫを分周したサンプリング周波数Ｆsの整数倍相当を１サブフレームとし、垂直同期信号ＶＳＹＮＣによって規定されるＶＳＹＮＣ時間を１フレームとする。ただし、垂直同期信号ＶＳＹＮＣおよびサウンドクロック信号ＳＣＬＫは、通常、異なる発振器によって生成され、互いに非同期であるがゆえに、サブフレームの整数倍とフレームとの間に時間的な端数（ずれ）が生じる。そこで、非同期に起因したサブフレームの端数をフレーム毎に補正し、誤差としての端数がフレームを跨って累積しないようにする。具体的には、１フレーム中の特定のサブフレーム（例えば、最後のフレーム）のみ、端数が解消するような時間調整を行えばよい（それ以外のサブフレームについては同一期間とする）。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
また、上述した実施形態では、トラック割当テーブル７ａで「スロット番号（Slot）」、「ソング番号（Song）」および「仮想トラック番号（仮想Tr）」の３項目を管理しているが、「スロット番号（Slot）」および「仮想トラック番号（仮想Tr）」の２項目で本発明の目的は達成されるので、「ソング番号（Song）」については省略しても構わない。ただし、管理内容に「ソング番号（Song）」を含めた場合には、ソング番号を検索キーとした実トラックＴｒの検索が可能になる。このような検索は、例えば、複数の実行スロット５で実行されている同一のソングを、ＭＰＵからのソング番号の指定にて強制終了させたい場合に実行される。この場合、ＭＰＵによって指定されたソング番号を検索キーにトラック割当テーブル７ａを検索することによって、同一のソングが割り当てられている実トラックＴｒを特定することができる。