JP4692682B1 - 音声処理装置 - Google Patents

音声処理装置 Download PDF

Info

Publication number
JP4692682B1
JP4692682B1 JP2010014246A JP2010014246A JP4692682B1 JP 4692682 B1 JP4692682 B1 JP 4692682B1 JP 2010014246 A JP2010014246 A JP 2010014246A JP 2010014246 A JP2010014246 A JP 2010014246A JP 4692682 B1 JP4692682 B1 JP 4692682B1
Authority
JP
Japan
Prior art keywords
command
circuit
track
song
pulse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010014246A
Other languages
English (en)
Other versions
JP2011154091A (ja
Inventor
隆行 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axell Corp
Original Assignee
Axell Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Axell Corp filed Critical Axell Corp
Priority to JP2010014246A priority Critical patent/JP4692682B1/ja
Application granted granted Critical
Publication of JP4692682B1 publication Critical patent/JP4692682B1/ja
Publication of JP2011154091A publication Critical patent/JP2011154091A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】音声の再生開始タイミングをフレームよりも細かい分解能で高精度に制御可能な音声処理装置を提供する。
【解決手段】カウント回路10は、1フレームよりも細かいサブフレーム単位で指定された待機時間の経過を単位パルスに基づいてカウントする。単位パルスは、サブフレームの期間を規定し、かつ、画像表示装置における1フレームの表示期間と同期している。コマンド解析回路6は、実行スロット5から読み出されたコマンドが待機コマンドの場合、カウント回路10によってカウントされた時間が待機時間に到達するまで、実行スロット5に格納された待機コマンド以降のコマンドの解析を中断する一方、待機時間への到達後に、それ以降のコマンドの解析を再開する。
【選択図】図2

Description

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

Claims (5)

  1. 音声の時系列的な再生手順を規定するコマンド群に基づいて、音声の再生処理を行い、この音声の再生処理を、画像表示装置における1フレームの表示期間と同期した単位パルスに基づいて制御する音声処理装置において、
    画像の1フレームの表示期間を複数に分割したサブフレーム単位で前記画像表示装置での前記画像の開始から音声の再生処理開始までの時間を反映して設定された待機時間を指定する待機コマンドを含む前記コマンド群を時系列的な順序で格納する記憶部と、
    前記記憶部に格納された前記コマンド群をコマンド毎に順次読み出し、当該読み出されたコマンドを解析するコマンド解析回路と、
    前記コマンド解析回路の解析結果に応じて、音声の再生処理を行う再生処理回路と、
    前記記憶部から読み出された前記待機コマンドによって起動されるとともに、当該待機コマンドによってサブフレーム単位で指定された前記待機時間を、前記単位パルスに基づいてカウントするカウント回路とを有し、
    前記サブフレームの期間は、前記単位パルスにより規定され、
    前記コマンド解析回路は、
    前記記憶部から読み出されたコマンドが前記待機コマンドの場合、前記カウント回路によってカウントされた時間が前記待機時間に到達するまで、前記記憶部に格納された前記待機コマンド以降のコマンドの解析を中断するとともに、前記カウント回路によってカウントされた時間が前記待機時間に到達した場合、前記記憶部に格納された前記待機コマンド以降のコマンドの解析を再開することを特徴とする音声処理装置。
  2. 複数の前記記憶部と、
    前記記憶部のそれぞれに対応付けられ、当該対応付けられた記憶部から読み出された前記待機コマンドによって個別に起動される複数の前記カウント回路と、
    再生すべき音声に関する前記コマンド群を、前記記憶部のいずれかに割り当てて書き込む書込調停回路とをさらに有し、
    前記コマンド解析回路は、前記記憶部のそれぞれからのコマンドの読み出しを同期かつ並行して行うことを特徴とする請求項1に記載された音声処理装置。
  3. 前記画像表示装置の垂直同期信号および水平同期信号に基づいて、水平走査期間の整数倍相当の前記単位パルスを生成するパルス生成回路をさらに有することを特徴とする請求項1または2に記載された音声処理装置。
  4. 前記画像表示装置のドットクロック信号を分周することによって、前記単位パルスを生成するパルス生成回路をさらに有することを特徴とする請求項1または2に記載された音声処理装置。
  5. 記単位パルスを生成するパルス生成回路をさらに有し、
    前記単位パルスは、音声の再生処理におけるサンプリング周波数の整数倍相当のパルスであって、
    該単位パルスを生成する前記パルス生成回路は、前記サンプリング周波数と前記画像表示装置の垂直走査信号との非同期に起因した前記サブフレームの時間的な端数がフレームを跨って累積しないように、前記生成する単位パルスを、フレーム毎に前記端数が解消するように補正することを特徴とする請求項1または2に記載された音声処理装置。
JP2010014246A 2010-01-26 2010-01-26 音声処理装置 Expired - Fee Related JP4692682B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010014246A JP4692682B1 (ja) 2010-01-26 2010-01-26 音声処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010014246A JP4692682B1 (ja) 2010-01-26 2010-01-26 音声処理装置

Publications (2)

Publication Number Publication Date
JP4692682B1 true JP4692682B1 (ja) 2011-06-01
JP2011154091A JP2011154091A (ja) 2011-08-11

Family

ID=44236992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010014246A Expired - Fee Related JP4692682B1 (ja) 2010-01-26 2010-01-26 音声処理装置

Country Status (1)

Country Link
JP (1) JP4692682B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020502553A (ja) * 2016-10-31 2020-01-23 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6078729B2 (ja) * 2011-11-29 2017-02-15 株式会社アクセル 音声処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020502553A (ja) * 2016-10-31 2020-01-23 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置
JP7198202B2 (ja) 2016-10-31 2022-12-28 エーティーアイ・テクノロジーズ・ユーエルシー デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置

Also Published As

Publication number Publication date
JP2011154091A (ja) 2011-08-11

Similar Documents

Publication Publication Date Title
US6098126A (en) Method and apparatus for synchronization of data retrieval and presentation
JP3476462B2 (ja) 同期クロック及びメディアプレーヤー
JPH056172A (ja) 拍検出装置及びそれを用いた同期制御装置
US7332666B2 (en) Performance control system, performance control apparatus, performance control method, program for implementing the method, and storage medium storing the program
WO2019177095A1 (ja) 表示装置、マルチディスプレイシステム
JP2979101B2 (ja) 自動演奏装置
JP4692682B1 (ja) 音声処理装置
JP4115497B2 (ja) グラフィックlsiおよび同期再生方法
KR101280137B1 (ko) 실시간 동기화된 로봇 공연 시스템
JP2009283020A (ja) 記録装置、再生装置、及びプログラム
JP3796752B2 (ja) 音楽演奏プログラム
JP5176065B2 (ja) 音声処理装置
JP2022099341A5 (ja) 不具合解析支援装置、不具合解析支援方法および不具合解析支援プログラム
KR20010010504A (ko) 문자 또는 그래픽 정보와 동기화된 엠피3 플레이어용 디지탈 오디오 데이터의 생성 및 재생 방법
CN106601218A (zh) 一种音视频与钢琴动作同步装置及方法
AU2003255316A1 (en) Method and system for depicting digital display elements
JP2003076349A (ja) データ再生装置
KR101893798B1 (ko) 음원의 연속 연주 연출 방법 및 음악 게임 시스템
US20240146499A1 (en) Precise event scheduling with high-latency signaling server
KR102524870B1 (ko) 미디 음악 기반의 안무 영상 콘텐츠 서비스 장치 및 방법과, 이를 기록한 컴퓨팅 장치에 의해 판독 가능한 기록매체
JP4115499B2 (ja) 同期再生方法
JP4115498B2 (ja) グラフィックlsiおよび同期再生方法
JP4259423B2 (ja) 同期演奏制御システム、方法及びプログラム
JP4259422B2 (ja) 演奏制御装置及びプログラム
JP2001318672A (ja) 楽音発生装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4692682

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees