JP2006196003A - ボイス処理方法、オーディオプロセッサ、ボイス処理プログラム、およびボイス処理プログラムを記録した記録媒体 - Google Patents
ボイス処理方法、オーディオプロセッサ、ボイス処理プログラム、およびボイス処理プログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP2006196003A JP2006196003A JP2006005663A JP2006005663A JP2006196003A JP 2006196003 A JP2006196003 A JP 2006196003A JP 2006005663 A JP2006005663 A JP 2006005663A JP 2006005663 A JP2006005663 A JP 2006005663A JP 2006196003 A JP2006196003 A JP 2006196003A
- Authority
- JP
- Japan
- Prior art keywords
- voice
- processor
- resource
- voices
- parameter
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims 25
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 78
- 238000012545 processing Methods 0.000 claims abstract description 72
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 89
- 239000013598 vector Substances 0.000 claims description 84
- 238000013468 resource allocation Methods 0.000 claims description 17
- 238000007726 management method Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 73
- 230000000694 effects Effects 0.000 description 23
- 238000011084 recovery Methods 0.000 description 15
- 241000238876 Acari Species 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000007774 longterm Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000012913 prioritisation Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000001020 rhythmical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
- G10L13/04—Details of speech synthesis systems, e.g. synthesiser structure or memory management
- G10L13/047—Architecture of speech synthesisers
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
【解決手段】ベクトル方式のボイス生成アルゴリズムの少なくとも1つのインスタンスは、N個のボイスを生成するように設定する。イベントに応答して実行される新しいボイスを識別する。新しいボイスおよび発音中のボイスに割り当てられる必要があるプロセッサリソースを判定する処理では、新しいボイスが、少なくとも1つのインスタンスによって生成されることができるかどうかを解明する。必要とされるプロセッサリソースを満たすプロセッサリソースが利用できる場合は、新しいボイスのためのボイス生成アルゴリズムにプロセッサリソースを割り当て、プロセッサリソースが利用できない場合は、少なくとも1つの発音中のボイスに割り当て済みプロセッサリソースの割り当てを解除する。
【選択図】図15
Description
特許文献3は、動的なボイス割り当てのためのソフトウェアシンセサイザおよびシステムを記載する。記載されるシステムは、そのシンセサイザの特定のアーキテクチャに非常に固有のものである。しかし、同特許は、メモリとCPU処理の固定された制限を前提とした、新しいリソースの割り当ての基本と、ボイスの減少を伴うボイス回収の基本について述べている(特許文献3の図14〜17参照)。同特許は、ベクトル処理およびボイス割り当ての関与については記載していない。また、イベントのコスト(要求されるボイスの数以外)を求める方法も、回収されるボイスの階層的な優先順位付けについても、1つのフレーム内の過度のコスト影響を回避するための時間差開始についても論じていない。
最大プロセッサリソースパラメータが、新しく割り当てられたボイスクラスタのコストの基準としても用いられる実施形態が本明細書に記載される。新たに割り当てられたボイスクラスタが、最大プロセッサリソースパラメータを超えるリソースコストパラメータを有する場合は、新たに割り当てられたクラスタを削減することができる。
合計コストをリアルタイムの制限を超えさせる新しいボイスまたは効果が要求される時には、ボイスの回収が必要となる。新しい効果またはボイスの追加は、アルゴリズムが異なるサイズである場合には、2つ以上のボイスの回収を必要とする可能性がある。
[第1実施形態]
図1は、音声シンセサイザとして構成された基本コンピュータシステム100を表すブロック図である。コンピュータシステム100は、データ処理リソースによる実行に適合されたプログラムを記録するメモリを含む。コンピュータシステム100は、単一命令多重データSIMD CPUなど、ベクトル処理のために構成された1つまたは複数の中央演算処理部CPU110、プログラム記録部101、データ記録部102、オーディオ部103、英数文字キーボード、マウス、音楽用キーボードなどのユーザ入力部104、グラフィカルユーザインタフェースや他のユーザ対話に対応するディスプレイ105、MIDIインタフェース106、ディスクドライブ107または他の不揮発性大容量メモリ、および、コンピュータとミュージックシンセサイザの技術分野でよく知られる他のコンポーネント108からなる。プログラム記録部101は、ランダムアクセスメモリ、不揮発性フラッシュメモリ、磁気ディスクドライブメモリ、磁気テープメモリ、他のデータ記憶媒体、または各種の取り外し可能および取り外し不能の記憶媒体の組合せなど、機械可読データ記憶媒体からなる。プログラム記録部101は、CPU110によって実行されるコンピュータプログラムを記録する。図1では、プログラム記録部101は、シンセサイザインタフェースプロセス、ボイス生成アルゴリズムVGA(Voice Generation Algorithm)、特定の音声のためにVGAを設定するパッチ、および他のシンセサイザプロセスのためのコンピュータ命令を記録している。ボイス生成アルゴリズムは、PCM、アナログ、はじかれた弦、オルガンなどの個々の音源モデルを実現する。
また、図1のプログラム記録部101は、動的ボイス割り当て(ボイスアロケータ)のコンピュータプログラムおよび、リアルタイムオーディオ合成のための他のデータ処理リソース管理のためのコンピュータプログラムを含む。ボイスアロケータは、ここに記載されるリソースコスト管理、リソース割り当て、ボイス回収のアルゴリズムを行うルーチンを含む。ボイスアロケータは、一部の実施形態では、ポリフォニー/モノフォニー、ユニゾン、弱音ペダルおよびダンパーペダル、ポリリトリッガ(poly retrigger)、排他的グループなどを含む、あらゆるシンセサイザボイスモードを管理するように構成される。
2.AmpEGがリリース段階にあるボイス。これらのボイスにはノートオフが受け取られており、AmpEGがリリース中である。
3.ダンパーペダルまたはホールド機能によって保持されているボイス。これらのボイスにはノートオフが受け取られているが、このボイスは、ダンパーペダルまたはホールド機能によって維持されている。
4.「アクティブ」なボイス。これらのボイスにはノートオフは受け取られていない。
イベントが発生する、あるいは他の変化が生じると、ボイスクラスタあるいはボイスが、リストからリストへ移動される。リストは、新しいクラスタのために余地を作るために回収するクラスタを決定するために下記のように使用される。
ボイスのクラスタは、プログラムスロットの特定のノートオンイベントに対応するボイスまたは保留ボイスレコードのセットからなる。ボイスをクラスタとしてグループ化することにより、複数のボイス層からなる複雑な音が、1つのグループとして開始、停止、および回収される。このようにして、シンセサイザによっていくつかの成分の合計として作られた複雑な音は、他の成分が発音し続けている間に、一部の成分を回収させない。ある組み合わせについての1つのノートオンイベントは、複数のクラスタを作り出すことができ、各クラスタは、その組み合わせ中の1つのスロットに対応する。
2.ボイスを計算する。フレームごとに、エンジンは、そのフレームで発音するすべてのボイスを計算し、その後行われる可能性のあるさらなる効果処理のために、結果をバッファに書きこまなければならない。
3.効果処理を計算する。フレームごとに、エンジンは、そのフレームについての計算されたボイスデータを含むバッファを読み取り、ユーザによって選択された効果設定に応じて、そのデータを処理しなければならない。処理された音声データは、次いで出力バッファに書き込まれる。
ボイスアロケータは、固定されたリソースのセットを前提として、利用可能なリソースの制限内で発音中のボイスと新しいボイスを管理する。制限のあるリソースには、CPU速度とメモリの両方が含まれる。つまり、以下が含まれる。
2.総キャッシュ使用量を制限するための制限された数のボイスクワッド。
3.任意の1ティックに開始することができる限られた数のボイス。
ノートオンイベントのコストは、そのイベントに関連付けられたボイスクラスタの割り当てに先立って計算され、現在のコストおよび最大コストと比較される。コストが過大の場合には、そのノートオンイベントに関連付けられたクラスのためにリソースを解放するためにボイスを回収することができる。そのイベントで必要とされる各ボイスについて、ボイスアロケータは、そのボイスを開始するコストを求める。ボイスのボイスモデルが部分クワッドを有する場合は、新しいクワッドを割り当てるコストなしに、その部分クワッドがあるボイスを使用することができる。しかし、利用できる部分クワッドボイスがない場合は、モデルクワッドコストによって指定されるコストで、新しいクワッドを割り当てられなければならない。また、各ボイスが、モデルクワッドコストに含まれない追加的なコストを指定する場合があり、イベントの総コストを計算する際にはそのコストも計算に入れられる。
すべてのボイスモデルは常に、以下の状況の1つにある。
1.発音中のクワッドがない。
2.満たされた、または部分的に満たされた1つのみの発音中クワッドがある。
3.1つまたは複数の満たされたクワッドがあり、部分クワッドはない。
4.1つまたは複数の満たされたクワッドと正確に1つの部分クワッドがある。
ボイスが解放されるときには、図9に示す処理を行う。
1.ボイスアロケータ自身のボイスリスト中の2つのボイス構造を入れ替え、それらのボイス構造中の内部ボイス番号を入れ替える。
2.サブレートおよびオーディオレート両方のベクトルデータについて、ベクトルデータのソーススライスからターゲットスライスにコピーする。
3.古いスライスから新しいスライスまでの距離だけアドレスをオフセットすることにより、ベクトルデータに含まれる内部構造ポインタのアドレスを修正する。
4.クワッドが現在空いていれば、それを解放する。
ノートオンイベントが見つかると、ボイスアロケータは、そのノートオンイベントに応答して必要となる各ボイスモデルのボイスの数を判定し、総イベントコストを計算する。新しいノートオンイベントを開始するために必要な処理力が利用可能な処理力を上回る場合には、ボイスは、必要に応じて回収される。新しいボイスクラスタが構築されると、時間差開始リストに入れられるか、ボイスが回収された場合には遅延開始リストに入れられる。ボイスは、経過時間と優先度の順に回収される。ただし、ここに記載される実施形態では、ボイスモデルは優先されない。モデルBのための余裕を作るために、モデルAのボイスを回収することができる。好ましい実施形態では、新しいイベントのボイスの必要条件のための余裕を生むために、最小限の数のボイスが回収される。好ましい実施形態では、ボイスのクラスタは常にともに回収される。
イベントコストが利用可能システムコストパラメータを超える場合、図6Bの点Bから、ステップS312に進む。ボイスアロケータは、1つまたは複数の発音中クラスタを回収し、新しいクラスタに必要とされるリソースを解放するプロセスを開始する(S312)。次に、ボイスアロケータは、保留ボイスレコードを使用してボイスクラスタのデータ構造を構築する(S313)。そして、新しいクラスタのボイスを遅延リストに移す(S314)。遅延リストの新しいクラスタのボイスレコードは、遅延パラメータに関連付けられ、その遅延パラメータは、図5のプロセスを通じて次のサイクルで調べられる。遅延パラメータが終了すると、クラスタのボイスは、上記のように遅延リストから時間差開始リストに移される。遅延パラメータは、ボイスアロケータがステップS312のクラスタを回収するプロセスを完了するのに十分な時間を持てるような長さに設定される。新しいクラスタを遅延リストに入れると、終了する(S311)。
次に、ステップS302で表すように、ボイスアロケータがこのリストに繰り返されて、ボイスモデル別に構成された、イベント要件の第2の概要を構築する。「モデルAは4つのボイスを必要とし、モデルBは6つのボイスを必要とする。」
ここで、モデルごとに処理される必要がある新しいクワッドの数を求め、その数に各ボイスモデルのクワッドコストを乗算することにより、実際のイベントコストを計算することができる。モデルコストの合計とすべてのボイス追加コストの合計が、ステップS304の総イベントコストになる。
ボイスアロケータは、イベントの要件をシステムの最大コストと比較することができる。イベントが、システムが行うことができるボイスクワッドより多くのボイスクワッド(発音している他のボイスがない場合であっても)を必要とするか、または、CPUが処理できるより多くのコストを必要とする場合は、イベントは、縮小されなければならない。一例は、システムの最大コスト制限を超える何百ものボイスを必要とする複雑な組み合わせの場合である。この縮小は、プログラムスロットごとに行われて、イベントコストがシステムの制限より小さくなるまで要件を減らす。
ステップS312で音声が回収されており、ステップS313で新しいノートオンイベントについてボイスクラスタが構築されるとき、そのクラスタは、ステップS314で遅延リストに移されて、回収アルゴリズムが完了するための時間に対処する。ボイスが回収されるときには、そのオーディオは、いくらかの期間にわたって減少される。ボイスが直ちに解放された場合は、可聴の「プチッ」という音が生じる可能性がある。この回収の減少のために、減少期間の後までは、ボイスレコードは解放されず、回収を必要とした新しいイベントに利用できるようにならない。新しいボイスレコードは、減少期間の終わりまで割り当てられることができない。リズミカルなパターンでは、一部のイベントが回収を必要とし、一部のイベントは必要としない場合は、ジッタの恐れがあり、その場合一部のボイスは即座に開始し、他のボイスは(回収のために)遅延の後開始する。
遅延時間が完了すると、ボイスアロケータは、クラスタにある保留レコードを処理し、実際のボイスを割り当て、そしてクラスタを遅延リストから時間差開始リストに移す。すべてのサブレートティック(図5のステップS201参照)で、遅延されたボイスは、図12ように処理される。
時間差開始機構は、ステレオのボイス対が同じティックに開始することを保証する。上記の例では、リスト中の2番目と3番目のボイスがステレオの対である場合は、最初のティックに1つのボイスのみが開始する。そして、次のティックに2番目と3番目のボイスがともに開始することができる。結果として、全イベントは、完全に開始するために4ティックを要することになる。時間差リスト処理のための典型的な擬似コードを、図13に示す。
図6BのステップS312に対応するボイス回収アルゴリズムの基本的な流れを、図7A、図7Bに示す。このアルゴリズムの最初のステップは、発音中のボイスの優先順位リストからクラスタを選択することである(S400)。発音中のボイスは、図4を参照して説明したように、優先順位リスト中ではクラスタ別に編成されている。
新しいイベントのコストを判定する手法の1つは、モデルごとの、必須のベクトル数と追加コストの配列を含んだModelRequirementsクラスを確立することに基づく。このクラスは、総コスト要件(すべてのモデルクワッドコスト+追加コスト)も保持する。初期の要件は、モデル部分クワッドの空ベクトルの現在の数で調整されない。モデルAが3つのボイスを必要し、モデルコストが4000である場合、そのモデルは、4000のコストを有し、3つのボイスを必要とする。回収アルゴリズムは、ステップS407に対応するプロセスによって、必要に応じてこの要件を調整する。
回収の際に、プロセスは、0で開始するstolenCostを追跡する。あるモデルについてボイスが回収されるたびに、解放されたボイスベクトルの数だけnumFreeModelVoices[model]を増す。numFreeModelVoices[model]が4に達した場合は、stolenCostをmodelQuadCostだけ増す。
1.ノートオンC4。リスト4がアクティブなボイスなので、発音リスト4に新しいクラスタを追加する。
2.ノートオンD4。リスト4がアクティブなボイスなので、発音リスト4に新しいクラスタを追加する。
3.ノートオンE4。リスト4がアクティブなボイスなので、発音リスト4に新しいクラスタを追加する。
4.ノートオンF4。リスト4がアクティブなボイスなので、発音リスト4に新しいクラスタを追加する。
5.ノートオンG4。コスト>最大コストなので回収しなければならない。
6.ノートオフE4。発音リスト4から発音中リスト2にクラスタが移される。
7.ノートオンA4。再度コスト>最大コストなので回収しなければならない。
したがって、C4のクラスタが回収され、G4がアクティブなリスト4の最後に追加される。この例における次のイベントを考えてみたい。
この時点でリスト2(音声をリリースしている)は、1つの項目E4のみを有する。アクティブボイスのリスト4は、D4、F4、G4を有する。
回収アルゴリズムはまずリスト1を調べるが、リスト1は空である。しかし、リスト2には1つの項目E4がある。このボイスが回収され、新しい音A4がアクティブリスト4に加えられる。
この時点で、D4、F4、G4、A4を有するアクティブボイスリスト以外は、すべてのリストが空になっている。
D4がより古いボイスであったとしても、A4に対する要求が処理された時にE4が回収されたことに留意されたい。E4はリリース段階にあったので、E4には、より低い回収の優先順位が与えられ、そのため最初に回収された。E4のボイスがリリース段階を完了している場合、そのボイスは、リスト2から取り除かれている。そして新しいノートオン要求は、回収を全く必要としない。
ユーザは、特定のスロットを優先度で特徴付けることができることに留意されたい。これは単に、そのスロットのボイスクラスタを、番号が高い回収リスト5〜7(または8〜10など)にロードさせ、それらのクラスタがより回収の対象にされないようにする。
過負荷防御アルゴリズムは、各サブレートティックにおける全CPU使用率を監視し、長期間にわたる移動平均と、割り込みの失敗に基づく短期間の指標の両方を監視する。これは、UIのアクティビティ、ネットワーキングの割り込みなど、ボイスアロケータに考慮されない要因がバッファのアンダーランや可聴のグリッチを発生させないことを保証するためである。
1.ボイスアロケータがいくらかのコストを回収して、発音システムのコストを下げるように要求する。ボイスアロケータは、通常の経過時間/優先順位に従って、総クワッドコストが要求されるコストになる、または要求されるコストを上回るボイスモデルのクワッドを解放するまで回収する。
2.ある期間にわたり少しだけ音声アロケータの総システム最大コストを下げて、発音コストが通常よりわずかに低く保たれる「回復」期間を保証する。最大コストは、元の値に戻されるまで、再びいくらかの時間にわたって上げられる。
短期間の過負荷の急上昇に対して、上記のステップ1および2が発生し、ボイスアロケータの最大コストが回復されるまで、最大コストが数ティックにわたり全ティックで少量だけ上げられる。長期間の過負荷については、より長い期間にわたって最大コストが下げられて、システムが回復できるようにする。
[第2実施形態]
本実施形態では、第1実施形態で示した発明を、異なる視点から説明する。本発明のボイス生成アルゴリズムは、オーディオ用のプロセッサ内で実行される。図15に、オーディオプロセッサの機能構成例を示す。オーディオプロセッサ600は、少なくともデータ処理手段610、ボイス識別手段620、リソース判定手段630、リソース割り当て手段640から構成される。
次に、パラメータ取得手段625を追加した場合の変更例を示す。パラメータ取得手段625は、ボイス(またはボイスクラスタ)へ割り当てるために必要なプロセッサリソースの量を示すパラメータ(リソースコストパラメータ)と、プロセッサが割り当てられる最大値を示すパラメータ(最大プロセッサリソースパラメータ)を求める。なお、最大プロセッサリソースパラメータは、物理的な最大値である必要はなく、リソースを多少残すように設定した値を最大値としてもよい。パラメータ取得手段625は、さらに、発音中のボイス(またはボイスクラスタ)および効果に割り当て済みのリソースを示すパラメータ(割り当て済みプロセッサリソースパラメータ)を計算する(ステップS625)。ステップS625の処理の後、リソース判定手段630は、割り当て済みプロセッサリソースパラメータとリソースコストパラメータとの合計が、最大プロセッサリソースパラメータを超えるかどうかも判定する(ステップS630’)。そして、ボイス取り除き手段632を追加すれば、ステップS630’の結果に応じて、ボイスクラスタからボイスを取り除くことができる(ステップS632)。また、最大プロセッサリソースパラメータ変更手段634を追加すれば、最大プロセッサリソースパラメータの設定値を変更することができる(ステップS634)。
ここに記載されるボイス割り当ては、最新技術を用いたSIMDプロセッサ、または他のベクトルプロセッサを利用したアーキテクチャを利用する、固有のミュージックシンセサイザに適用される。
上記で詳述した好ましい実施形態と例を参照して本発明を開示したが、これらの例は制限的な意味ではなく例示的な意味であることを理解されたい。
Claims (30)
- 複数のボイスを生成するオーディオプロセッサのために、複数のボイスを実行中にプロセッサリソースに動的にボイスを割り当てるボイス処理方法であって、
前記オーディオプロセッサのプロセッサリソースを利用して、ベクトル方式のボイス生成アルゴリズムの少なくとも1つのインスタンスを含み、ボイスを発音させるデータ処理ステップであって、前記ベクトル方式のボイス生成アルゴリズムの少なくとも1つのインスタンスは、N個のボイスを生成するように設定することができ、Nは、2以上の整数であるデータ処理ステップと、
イベントに応答して実行される新しいボイスを識別するボイス識別ステップと、
前記新しいボイスおよび発音中のボイスに割り当てられる必要があるプロセッサリソースを判定するリソース判定ステップであって、前記判定は、前記新しいボイスが、前記少なくとも1つのインスタンスによって生成されることができるかどうかを解明することを含むリソース判定ステップと、
前記必要とされるプロセッサリソースを満たすプロセッサリソースが利用できる場合は、前記新しいボイスのためのボイス生成アルゴリズムにプロセッサリソースを割り当て、プロセッサリソースが利用できない場合は、少なくとも1つの発音中のボイスに割り当て済みプロセッサリソースの割り当てを解除するリソース割り当てステップと
を有するボイス処理方法。 - 請求項1記載のボイス処理方法であって、
前記リソース割り当てステップの割り当ての解除の後、前記リソース判定ステップを繰り返す
ことを特徴とするボイス処理方法。 - 請求項1または2記載のボイス処理方法であって、
開始待ち行列と遅延待ち行列を管理する待ち行列管理ステップも有し、
前記リソース割り当てステップは、前記開始待ち行列に前記新しいボイスを加えることを含み、プロセッサリソースが利用できない場合は、前記新しいボイスを前記遅延待ち行列に加え、遅延の後に前記新しいボイスを前記遅延待ち行列から前記開始待ち行列に移動する
ことを特徴とするボイス処理方法。 - 請求項1〜3のいずれかに記載のボイス処理方法であって、
前記少なくとも1つのインスタンスは、単一命令多重データである
ことを特徴とするボイス処理方法。 - 請求項1〜4のいずれかに記載のボイス処理方法であって、
前記ボイス識別ステップは、前記新しいボイスを含むボイスクラスタを識別することを含み、
前記リソース判定ステップは、前記ボイスクラスタにプロセッサリソースが利用できるかどうかを判定することを含む
ことを特徴とするボイス処理方法。 - 請求項5記載のボイス処理方法であって、
前記リソース割り当てステップは、前記少なくとも1つの発音中のボイスを含む発音中のボイスクラスタに割り当て済みプロセッサリソースの割り当てを解除することを含む
ことを特徴とするボイス処理方法。 - 請求項1〜6のいずれかに記載のボイス処理方法であって、
前記プロセッサリソースは、複数のボイスを実行しているベクトル方式ボイス生成アルゴリズムの複数のインスタンスを含み、前記複数のインスタンスの各インスタンスは、前記複数のボイスのうちN個のボイスを実行するように設定することができ、かつ、前記割り当ての解除により、前記複数のインスタンスの1つから前記発音中のボイスが解放される場合は、前記複数のインスタンスのうち多くとも1つがN個未満のボイスを実行するように設定されるように、前記複数のインスタンスを再構成するインスタンス再構成ステップ
も有するボイス処理方法。 - 請求項1〜7のいずれかに記載のボイス処理方法であって、
前記少なくとも1つのインスタンスはN個のボイスを実行するように設定することができ、前記新しいボイスは前記少なくとも1つのインスタンスによって実行することができ、かつ、前記少なくとも1つのインスタンスがN個未満のボイスを実行するように設定される場合は、前記リソース割り当てステップでは、前記少なくとも1つのインスタンスに前記新しいボイスを割り当てる
ことを特徴とするボイス処理方法。 - 請求項1〜4のいずれかに記載のボイス処理方法であって、
ボイスへ割り当てられるプロセッサリソースを示すリソースコストパラメータを求め、最大プロセッサリソースパラメータを求め、発音中のボイスおよび効果に割り当て済みのリソースを示す割り当て済みプロセッサリソースパラメータを計算するパラメータ取得ステップも有し、
前記リソース判定ステップは、前記割り当て済みプロセッサリソースパラメータと前記新しいボイスのためのリソースコストパラメータとの合計が、前記最大プロセッサリソースパラメータを超えるかどうかを判定することも含む
ことを特徴とするボイス処理方法。 - 請求項5または6記載のボイス処理方法であって、
ボイスクラスタのためのプロセッサリソースを示すリソースコストパラメータを求め、最大プロセッサリソースパラメータを求め、割り当て済みのプロセッサリソースパラメータを計算するパラメータ取得ステップも有し、
前記リソース判定ステップは、前記割り当て済みプロセッサリソースパラメータと、前記ボイスクラスタのためのリソースコストパラメータとの合計が、前記最大プロセッサリソースパラメータを超えるかどうかを判定することを含む
ことを特徴とするボイス処理方法。 - 請求項10記載のボイス処理方法であって、
前記リソース判定ステップの結果に応じて、前記ボイスクラスタからボイスを取り除くボイス取り除きステップ
も有するボイス処理方法。 - 請求項9〜11のいずれかに記載のボイス処理方法であって、
前記リソース判定ステップの結果に応じて、前記最大プロセッサリソースパラメータを変更する最大プロセッサリソースパラメータ変更ステップ
も有するボイス処理方法。 - 請求項1〜12のいずれかに記載のボイス処理方法であって、
前記ベクトル方式のボイス生成アルゴリズムは、SIMDプロセッサのためのPCMボイスモデルアルゴリズムである
ことを特徴とするボイス処理方法。 - 請求項1〜12のいずれかに記載のボイス処理方法であって、
前記ベクトル方式のボイス生成アルゴリズムは、SIMDプロセッサのためのアナログボイスモデルアルゴリズムである
ことを特徴とするボイス処理方法。 - 複数のボイスを生成するオーディオプロセッサであって、
ベクトルボイス生成アルゴリズムの少なくとも1つのインスタンスを含み、ボイスを発音させるボイス生成アルゴリズムを実行するプロセッサリソースを有し、前記ベクトル方式ボイス生成アルゴリズムの少なくとも1つのインスタンスは、N個のボイスを生成するように設定でき、Nは2以上の整数であるデータ処理手段と、
イベントに応答して実行される新しいボイスを識別するボイス識別手段と、
前記新しいボイスが前記少なくとも1つのインスタンスによって生成されることができるかどうかを解明することを含めて、前記新しいボイスと前記発音中のボイスに割り当てられる必要があるプロセッサリソースを判定するリソース判定手段と、
前記必要とされるリソースを満たすプロセッサリソースが利用できる場合は、前記選択されたボイスのためのボイス生成アルゴリズムにプロセッサリソースを割り当て、プロセッサリソースが利用できない場合は、少なくとも1つの発音中のボイスに割り当てられたプロセッサリソースの割り当てを解除するリソース割り当て手段と
を備えるオーディオプロセッサ。 - 請求項15記載のオーディオプロセッサであって、
前記リソース割り当て手段でのプロセッサリソースの割り当て解除の後に、前記リソース判定手段の処理を繰り返す
をことを特徴とするオーディオプロセッサ。 - 請求項15または16記載のオーディオプロセッサであって、
開始待ち行列と遅延待ち行列を記録し、管理する待ち行列管理手段も有し、
前記リソース割り当て手段は、前記開始待ち行列に前記新しいボイスを加えることを含み、プロセッサリソースが利用できない場合は、前記新しいボイスを前記遅延待ち行列に加え、遅延の後に前記新しいボイスを前記遅延待ち行列から前記開始待ち行列に移動する
をことを特徴とするオーディオプロセッサ。 - 請求項15〜17のいずれかに記載のオーディオプロセッサであって、
前記少なくとも1つのインスタンスは、単一命令多重データである
をことを特徴とするオーディオプロセッサ。 - 請求項15〜18のいずれかに記載のオーディオプロセッサであって、
前記ボイス識別手段の処理には、前記新しいボイスを含むボイスクラスタを識別することを含み、
前記リソース判定手段の処理には、前記ボイスクラスタにプロセッサリソースが利用できるかどうかを判定することを含む
ことを特徴とするオーディオプロセッサ。 - 請求項19記載のオーディオプロセッサであって、
前記リソース割り当て手段の処理には、前記少なくとも1つの発音中のボイスを含む発音中のボイスクラスタに割り当て済みプロセッサリソースの割り当てを解除することを含む
ことを特徴とするオーディオプロセッサ。 - 請求項15〜20のいずれかに記載のオーディオプロセッサであって、
前記プロセッサリソースは、複数のボイスを実行しているベクトル方式ボイス生成アルゴリズムの複数のインスタンスを含み、前記複数のインスタンスの各インスタンスは、前記複数のボイスのうちN個のボイスを実行するように設定することができ、かつ、前記割り当ての解除により、前記複数のインスタンスの1つから前記発音中のボイスが解放される場合は、前記複数のインスタンスのうち多くとも1つがN個未満のボイスを実行するように設定されるように、前記複数のインスタンスを再構成するインスタンス再構成手段
も備えるオーディオプロセッサ。 - 請求項15〜21のいずれかに記載のオーディオプロセッサであって、
前記少なくとも1つのインスタンスはN個のボイスを実行するように設定することができ、前記新しいボイスは前記少なくとも1つのインスタンスによって実行することができ、かつ、前記少なくとも1つのインスタンスがN個未満のボイスを実行するように設定される場合は、前記リソース割り当て手段では、前記少なくとも1つのインスタンスに前記新しいボイスを割り当てる
ことを特徴とするオーディオプロセッサ。 - 請求項15〜18のいずれかに記載のオーディオプロセッサであって、
ボイスへ割り当てられるプロセッサリソースを示すリソースコストパラメータを求め、最大プロセッサリソースパラメータを求め、発音中のボイスおよび効果に割り当て済みのリソースを示す割り当て済みプロセッサリソースパラメータを計算するパラメータ取得手段も有し、
前記リソース判定手段の処理には、前記割り当て済みプロセッサリソースパラメータと前記新しいボイスのためのリソースコストパラメータとの合計が、前記最大プロセッサリソースパラメータを超えるかどうかを判定することも含む
ことを特徴とするオーディオプロセッサ。 - 請求項19または20記載のオーディオプロセッサであって、
ボイスクラスタのためのプロセッサリソースを示すリソースコストパラメータを求め、最大プロセッサリソースパラメータを求め、割り当て済みのプロセッサリソースパラメータを計算するパラメータ取得手段も有し、
前記リソース判定手段の処理には、前記割り当て済みプロセッサリソースパラメータと、前記ボイスクラスタのためのリソースコストパラメータとの合計が、前記最大プロセッサリソースパラメータを超えるかどうかを判定することを含む
ことを特徴とするオーディオプロセッサ。 - 請求項24記載のオーディオプロセッサであって、
前記リソース判定手段の処理結果に応じて、前記ボイスクラスタからボイスを取り除くボイス取り除き手段
も備えるオーディオプロセッサ。 - 請求項23〜25のいずれかに記載のオーディオプロセッサであって、
前記リソース判定手段の処理結果に応じて、前記最大プロセッサリソースパラメータを変更する最大プロセッサリソースパラメータ変更手段
も備えるオーディオプロセッサ。 - 請求項15〜26のいずれかに記載のオーディオプロセッサであって、
前記ベクトル方式のボイス生成アルゴリズムは、SIMDプロセッサのためのPCMボイスモデルアルゴリズムである
ことを特徴とするオーディオプロセッサ。 - 請求項15〜26のいずれかに記載のオーディオプロセッサであって、
前記ベクトル方式のボイス生成アルゴリズムは、SIMDプロセッサのためのアナログボイスモデルアルゴリズムである
ことを特徴とするオーディオプロセッサ。 - 請求項1〜14のいずれかに記載のボイス処理方法をコンピュータにより実行させるボイス処理プログラム。
- 請求項29記載のボイス処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US64353205P | 2005-01-13 | 2005-01-13 | |
US11/187,070 US20060155543A1 (en) | 2005-01-13 | 2005-07-22 | Dynamic voice allocation in a vector processor based audio processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006196003A true JP2006196003A (ja) | 2006-07-27 |
Family
ID=36654357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006005663A Pending JP2006196003A (ja) | 2005-01-13 | 2006-01-13 | ボイス処理方法、オーディオプロセッサ、ボイス処理プログラム、およびボイス処理プログラムを記録した記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060155543A1 (ja) |
JP (1) | JP2006196003A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010256408A (ja) * | 2009-04-21 | 2010-11-11 | Yamaha Corp | 電子打楽器 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7778822B2 (en) * | 2006-05-19 | 2010-08-17 | Sony Ericsson Mobile Communications Ab | Allocating audio processing among a plurality of processing units with a global synchronization pulse |
US8594816B2 (en) * | 2008-06-11 | 2013-11-26 | Qualcomm Incorporated | Method and system for measuring task load |
US9002713B2 (en) | 2009-06-09 | 2015-04-07 | At&T Intellectual Property I, L.P. | System and method for speech personalization by need |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6134633A (ja) * | 1984-07-27 | 1986-02-18 | Hitachi Ltd | 情報処理システムにおけるタイミング方式 |
JPH04264947A (ja) * | 1990-10-26 | 1992-09-21 | Internatl Business Mach Corp <Ibm> | マルチタスキング・データ処理システム |
JPH05268286A (ja) * | 1992-03-19 | 1993-10-15 | Hitachi Ltd | 通信データ情報処理方式 |
JPH05336032A (ja) * | 1992-06-03 | 1993-12-17 | Kokusai Electric Co Ltd | コードレス電話器システム及びその呼出方法 |
JPH06308966A (ja) * | 1993-02-10 | 1994-11-04 | Korugu:Kk | 動的ボイス割当をおこなうオープンアーキテクチャー構成のミュージックシンセサイザー |
JPH10105175A (ja) * | 1996-08-05 | 1998-04-24 | Yamaha Corp | 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 |
JP2000330959A (ja) * | 1999-05-18 | 2000-11-30 | Nec Corp | 問合せ並列処理システム及びプログラムを記録した機械読み取り可能な記録媒体 |
JP2005005926A (ja) * | 2003-06-11 | 2005-01-06 | Mitsubishi Electric Corp | 情報処理システム及び資源利用制御方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5657476A (en) * | 1993-02-10 | 1997-08-12 | Korg, Inc. | Signal processor with delay line management logic |
JP2998612B2 (ja) * | 1995-06-06 | 2000-01-11 | ヤマハ株式会社 | 楽音発生装置 |
US5596159A (en) * | 1995-11-22 | 1997-01-21 | Invision Interactive, Inc. | Software sound synthesis system |
JP2970526B2 (ja) * | 1996-01-17 | 1999-11-02 | ヤマハ株式会社 | コンピュータソフトウェアを用いた音源システム |
DE69704996T2 (de) * | 1996-08-05 | 2002-04-04 | Yamaha Corp | Software-Tonerzeuger |
SG67993A1 (en) * | 1996-08-30 | 1999-10-19 | Yamaha Corp | Sound source system based on computer software and method of generating acoustic waveform data |
US5744739A (en) * | 1996-09-13 | 1998-04-28 | Crystal Semiconductor | Wavetable synthesizer and operating method using a variable sampling rate approximation |
US5930158A (en) * | 1997-07-02 | 1999-07-27 | Creative Technology, Ltd | Processor with instruction set for audio effects |
US7096471B2 (en) * | 2001-06-01 | 2006-08-22 | Texas Instruments Incorporated | Apparatus for resource management in a real-time embedded system |
US6912648B2 (en) * | 2001-12-31 | 2005-06-28 | Intel Corporation | Stick and spoke replay with selectable delays |
US7003461B2 (en) * | 2002-07-09 | 2006-02-21 | Renesas Technology Corporation | Method and apparatus for an adaptive codebook search in a speech processing system |
US7389508B2 (en) * | 2003-09-25 | 2008-06-17 | International Business Machines Corporation | System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment |
JP4186851B2 (ja) * | 2004-03-18 | 2008-11-26 | ヤマハ株式会社 | 演奏情報表示装置およびプログラム |
-
2005
- 2005-07-22 US US11/187,070 patent/US20060155543A1/en not_active Abandoned
-
2006
- 2006-01-13 JP JP2006005663A patent/JP2006196003A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6134633A (ja) * | 1984-07-27 | 1986-02-18 | Hitachi Ltd | 情報処理システムにおけるタイミング方式 |
JPH04264947A (ja) * | 1990-10-26 | 1992-09-21 | Internatl Business Mach Corp <Ibm> | マルチタスキング・データ処理システム |
JPH05268286A (ja) * | 1992-03-19 | 1993-10-15 | Hitachi Ltd | 通信データ情報処理方式 |
JPH05336032A (ja) * | 1992-06-03 | 1993-12-17 | Kokusai Electric Co Ltd | コードレス電話器システム及びその呼出方法 |
JPH06308966A (ja) * | 1993-02-10 | 1994-11-04 | Korugu:Kk | 動的ボイス割当をおこなうオープンアーキテクチャー構成のミュージックシンセサイザー |
JPH10105175A (ja) * | 1996-08-05 | 1998-04-24 | Yamaha Corp | 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 |
JP2000330959A (ja) * | 1999-05-18 | 2000-11-30 | Nec Corp | 問合せ並列処理システム及びプログラムを記録した機械読み取り可能な記録媒体 |
JP2005005926A (ja) * | 2003-06-11 | 2005-01-06 | Mitsubishi Electric Corp | 情報処理システム及び資源利用制御方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010256408A (ja) * | 2009-04-21 | 2010-11-11 | Yamaha Corp | 電子打楽器 |
Also Published As
Publication number | Publication date |
---|---|
US20060155543A1 (en) | 2006-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2369581B1 (en) | Tone generation apparatus | |
US6140566A (en) | Music tone generating method by waveform synthesis with advance parameter computation | |
US8035021B2 (en) | Tone generation apparatus | |
KR101166735B1 (ko) | 악기 디지털 인터페이스 하드웨어 명령 | |
US8450589B2 (en) | Nonvolatile storage module, access module, musical sound data file generation module and musical sound generation system | |
JP2006196003A (ja) | ボイス処理方法、オーディオプロセッサ、ボイス処理プログラム、およびボイス処理プログラムを記録した記録媒体 | |
JPWO2010137312A1 (ja) | 不揮発性記憶システムおよび楽音生成システム | |
KR101120968B1 (ko) | 악기 디지털 인터페이스 하드웨어 명령 세트 | |
JP4036233B2 (ja) | 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 | |
JP3918817B2 (ja) | 楽音生成装置 | |
JP4089688B2 (ja) | 楽音信号生成装置 | |
JP2000276172A (ja) | 楽音生成装置および記憶媒体 | |
WO2010010646A1 (ja) | アクセスモジュール、記憶モジュール、楽音生成システム、及びデータ書き込みモジュール | |
JP5510813B2 (ja) | 楽音生成装置 | |
JP5839156B2 (ja) | 楽音信号発生装置 | |
JP3852634B2 (ja) | 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 | |
JP2004093732A (ja) | 楽音発生装置及び楽音発生処理のプログラム | |
JP3050779B2 (ja) | 信号処理装置 | |
JP5360474B2 (ja) | 楽音生成装置 | |
JP3915725B2 (ja) | 楽音合成装置 | |
JP5510814B2 (ja) | 楽音生成装置 | |
JP5510815B2 (ja) | 楽音生成装置 | |
JP3760905B2 (ja) | 発音割当プログラム | |
JPH03113499A (ja) | 電子楽器 | |
JP2011186262A (ja) | 楽音信号発生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080924 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100511 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100709 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100810 |