(57)【特許請求の範囲】
【請求項１】
オーディオ・フレーム内の音声についてオーディオ情報を生成するためにオーディオ・ハードウェア・ユニットによって使用される参照波形をメモリから取得するために必要な帯域幅を推定することと、
前記帯域幅推定値が割り当てられた帯域幅を超過するとき、前記オーディオ情報から削除する前記音声の１つ又は複数を選択することと、
削除するように選択された前記音声の前記１つ又は複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の１つ又は複数を取得することと、
前記取得された参照波形を使用して前記オーディオ・ハードウェア・ユニットを介して前記オーディオ情報を生成することと、
を備える方法。
【請求項２】
前記削除する前記音声の１つ又は複数を選択することは、前記音声の最小振幅を有する少なくとも１つを選択することを備える、請求項１に記載の方法。
【請求項３】
前記削除する前記音声の１つ又は複数を選択することは、前記音声の最も長い時間オンにされていた少なくとも１つを選択することを備える、請求項１に記載の方法。
【請求項４】
前記選択された音声が音声の複数の層を有する音符に対応するかどうかを判定することと、
削除する前記選択された音声のいずれかに対応する前記複数層音符の他の層の前記音声の１つ又は複数を選択することと、
を更に備える、請求項１に記載の方法。
【請求項５】
前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析することを更に備え、
前記削除する前記音声の１つ又は複数を選択することは、前記優先順位値の最小のものに対応する前記オーディオ・チャネルに関連づけられた１つ又は複数の音声を選択することを備える、
請求項１に記載の方法。
【請求項６】
前記音声の各々に関連づけられたＡＤＳＲエンベロープの状態を判定することを更に備え、
前記削除する前記音声の１つ又は複数を選択することは、前記対応するＡＤＳＲエンベロープのアタック状態にない１つ又は複数の音声を選択することを備える、
請求項１に記載の方法。
【請求項７】
前記音声の各々に対応する楽器のタイプを判定することを更に備え、
前記削除する前記音声の１つ又は複数を選択することは、打楽器に対応しない１つ又は複数の音声を選択することを備える、
請求項１に記載の方法。
【請求項８】
選択されなかった音声について前記帯域幅推定値を再計算することと、
前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する１つ又は複数の追加の音声を選択することと、
を更に備える、請求項１に記載の方法。
【請求項９】
前記帯域幅推定値を再計算することは、前記選択された音声に関連づけられた帯域幅推定値を前記オーディオ・フレームの前記帯域幅推定値から減算することを備える、請求項８に記載の方法。
【請求項１０】
前記帯域幅を推定することは、前記オーディオ・フレームの前記音声に対応する前記参照波形のサンプルの総数を推定することを備える、請求項１に記載の方法。
【請求項１１】
前記参照波形を取得するために必要な前記帯域幅を推定することは、
前記オーディオ・フレームの前記音声の各々について再生位置を決定することと、
前記対応する再生位置が前記関連づけられた参照波形のループ・セクション内にある音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形の前記ループ・セクションのサンプルの数として推定することと、
を備える、請求項１に記載の方法。
【請求項１２】
前記参照波形を取得するために必要な前記帯域幅を推定することは、
前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算することと、
前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較することと、
前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの数として推定することと、
を備える、請求項１に記載の方法。
【請求項１３】
参照波形を取得するために必要な前記帯域幅を推定することは、ディジタル信号プロセッサ（ＤＳＰ）内で、メモリから前記参照波形を取得するために前記オーディオ・ハードウェア・ユニットに必要な帯域幅を推定することを備え、
前記方法は、
前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記オーディオ・ハードウェア・ユニット内で、選択されなかった音声に関連づけられた合成パラメータを受け取ることと、
前記オーディオ・ハードウェア・ユニット内で、前記受け取られた合成パラメータを使用してオーディオ情報を生成することと、
を更に備える、請求項１に記載の方法。
【請求項１４】
前記選択されない音声について前記ハードウェア・ユニットの合成パラメータを通過させることを更に備える、請求項１３に記載の方法。
【請求項１５】
オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を記憶するメモリと、
前記参照波形を前記メモリから取得するために必要な帯域幅を推定する帯域幅推定モジュールと、
前記帯域幅推定値が割り当てられた帯域幅を超過するとき、前記オーディオ情報から削除する前記音声の１つ又は複数を選択する音声選択モジュールと、
消去するように選択される前記音声の前記１つ又は複数に関係する参照波形を取得しないで前記参照波形の１つ又は複数を前記メモリから取得し、前記取得される参照波形を使用して前記オーディオ情報を生成するオーディオ・ユニットと、
を備えるデバイス。
【請求項１６】
前記音声選択モジュールは前記音声の最小振幅を有する少なくとも１つを選択する、請求項１５に記載のデバイス。
【請求項１７】
前記音声選択モジュールは、前記音声の最も長い時間オンにされていた少なくとも１つを、削除する前記音声として選択する、請求項１５に記載のデバイス。
【請求項１８】
前記音声選択モジュールは、前記選択された音声が音声の複数層を有する音符に対応するかどうかを判定し、削除する前記選択された音声のいずれかに対応する前記音符の他の層と関連する前記音声の１つ又は複数を選択する、請求項１５に記載のデバイス。
【請求項１９】
前記音声選択モジュールは、前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析し、前記優先順位値の最小のものに対応する前記オーディオ・チャネルの１つに関連づけられた前記音声の１つ又は複数を選択する、請求項１５に記載のデバイス。
【請求項２０】
前記音声選択モジュールは、前記音声の各々に関連づけられたＡＤＳＲエンベロープの状態を判定し、前記対応するＡＤＳＲエンベロープのアタック状態にない前記音声の１つ又は複数を選択する、請求項１５に記載のデバイス。
【請求項２１】
前記音声選択モジュールは、前記音声の各々に対応する楽器のタイプを判定し、打楽器に対応しない前記音声の１つ又は複数を選択する、請求項１５に記載のデバイス。
【請求項２２】
前記帯域幅推定モジュールは、選択されなかった音声について前記帯域幅推定値を再計算し、
前記音声選択モジュールは、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する１つ又は複数の追加の音声を選択する、請求項１５に記載のデバイス。
【請求項２３】
前記帯域幅推定モジュールは、前記選択された音声に関連づけられた帯域幅推定値を前記帯域幅推定値から減算して前記帯域幅推定値を再計算する、請求項２２に記載のデバイス。
【請求項２４】
前記帯域幅推定モジュールは、前記オーディオ・フレームの音声について前記参照波形のサンプルの総数を推定する、請求項１５に記載のデバイス。
【請求項２５】
前記帯域幅推定モジュールは、前記音声の各々について再生位置を決定し、前記再生位置が前記それぞれの参照波形のループ・セクション内にある前記音声について、前記音声の各々に関連づけられた前記参照波形を取得するために必要な前記帯域幅を前記それぞれの参照波形の前記ループ・セクションのサンプルの数として推定する、請求項１５に記載のデバイス。
【請求項２６】
前記帯域幅推定モジュールは、前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声の各々に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声の各々に関連づけられた波形サンプル・インデックスとの間の差を計算し、前記差の各々をそれぞれの参照波形内のサンプルの総数と比較し、前記対応する差がサンプルの前記総数よりも小さいとき、前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの数として推定する、請求項１５に記載のデバイス。
【請求項２７】
ソフトウェアを実行して前記オーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、
前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ（ＤＳＰ）と、
前記合成パラメータに基づいてオーディオ情報を生成するハードウェア・ユニットと、
を更に備え、前記オーディオ・ユニットは前記ハードウェア・ユニットである、請求項１５に記載のデバイス。
【請求項２８】
前記帯域幅推定モジュール及び前記音声選択モジュールは前記ＤＳＰ内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットに必要な前記帯域幅を制御する、請求項２７に記載のデバイス。
【請求項２９】
前記ＤＳＰは選択されなかった音声について合成パラメータを前記ハードウェア・ユニットへ提供する、請求項２８に記載のデバイス。
【請求項３０】
前記帯域幅推定モジュール及び前記音声選択モジュールは前記ハードウェア・ユニット内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットによって使用される前記帯域幅を制御する、請求項２７に記載のデバイス。
【請求項３１】
前記プロセッサ、前記ＤＳＰ、及び前記ハードウェア・ユニットは、パイプライン方式で動作する、請求項２７に記載のデバイス。
【請求項３２】
楽器ディジタル・インタフェース（ＭＩＤＩ）ファイルを構文解析して前記ＭＩＤＩファイルに関連づけられたＭＩＤＩ事象をスケジュールする第１のスレッド、前記ＭＩＤＩ事象を処理してＭＩＤＩ合成パラメータを生成する第２のスレッド、及び前記帯域幅推定モジュール及び前記音声選択モジュールを実現する第３のスレッドを含むマルチスレッド・ディジタル信号プロセッサ（ＤＳＰ）と、
前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア・ユニットと、
を更に備え、前記オーディオ・ユニットは前記ハードウェア・ユニットである、請求項２７に記載のデバイス。
【請求項３３】
前記オーディオ・フレームは楽器ディジタル・インタフェース（ＭＩＤＩ）フレームを備える、請求項１５に記載のデバイス。
【請求項３４】
メモリからオーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定する手段と、
前記帯域幅推定値が、割り当てられた帯域幅を超過するとき、前記オーディオ情報から削除する前記音声の１つ又は複数を選択する手段と、
削除するように選択された前記音声の前記１つ又は複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の１つ又は複数を取得するための手段と、
前記取得された参照波形を使用して前記オーディオ情報を生成するための手段と、
を備えるデバイス。
【請求項３５】
前記音声選択手段は、
前記音声の最小振幅を有する少なくとも１つと、
前記音声の最も長い時間オンにされていた少なくとも１つと、
前記音声の最小の優先順位値に対応するオーディオ・チャネルに関連づけられた少なくとも１つと、
のうちの１つを選択する、請求項３４に記載のデバイス。
【請求項３６】
前記音声の各々に関連づけられたＡＤＳＲエンベロープの状態を判定する手段を更に備え、
前記音声選択手段は、前記対応するＡＤＳＲエンベロープのアタック状態にない前記音声の１つ又は複数を選択する、
請求項３４に記載のデバイス。
【請求項３７】
前記音声の各々に対応する楽器のタイプを判定する手段を更に備え、
前記音声選択手段は、打楽器に対応しない前記音声の１つ又は複数を選択する、
請求項３４に記載のデバイス。
【請求項３８】
前記推定手段は、選択されなかった音声について前記帯域幅推定値を再計算し、
前記音声選択手段は、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する１つ又は複数の追加の音声を選択する、
請求項３４に記載のデバイス。
【請求項３９】
前記帯域幅推定手段は、前記オーディオ・フレームの前記音声の各々について再生位置を決定し、前記再生位置がループ・セクション内にある前記音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形の前記ループ・セクションのサンプルの数として推定する、請求項３４に記載のデバイス。
【請求項４０】
前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算する手段と、
前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較する手段と、
を更に備え、
前記推定手段は、前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの数として推定する、請求項３４に記載のデバイス。
【請求項４１】
前記オーディオ・フレームを構文解析して前記オーディオ・フレームに関連づけられた事象をスケジュールするソフトウェア手段と、
前記事象を処理して合成パラメータを生成するファームウェア手段と、
前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア手段であって、前記ハードウェア手段は前記オーディオ情報を生成する手段を備える、ハードウェア手段と、
を更に備え、
前記ファームウェア手段は、
前記オーディオ・フレーム内の前記音声について前記参照波形をメモリから取得するために前記ハードウェア手段に必要な前記帯域幅を推定する前記推定手段と、
前記帯域幅推定値が前記ハードウェア手段へ割り当てられた帯域幅を超過するとき、削除する前記音声の１つ又は複数を選択する前記音声選択手段と、
を含む、請求項３４に記載のデバイス。
【請求項４２】
命令を記憶するコンピュータ読み取り可能記憶媒体であって、前記命令は、
オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定することと、
前記帯域幅推定値が割り当てられた帯域幅を超過するとき、前記オーディオ情報から削除する前記音声の１つ又は複数を選択することと、
削除する選択された前記音声の前記１つ又は複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の１つ又は複数を取得することと、
前記取得された参照波形を使用して前記オーディオ情報を生成することと、
をプロセッサに行わせるコンピュータ読み取り可能記憶媒体。
【請求項４３】
選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供することを前記プロセッサに行わせる命令を更に記憶する、請求項４２に記載のコンピュータ読み取り可能記憶媒体。
【請求項４４】
ソフトウェアを実行してオーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、
前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ（ＤＳＰ）と、
前記合成パラメータの少なくとも一部分に基づいてオーディオ情報を生成するハードウェア・ユニットと、
メモリ・ユニットと、
を備え、
前記ＤＳＰは、前記オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を前記メモリ・ユニットから取得するために前記ハードウェア・ユニットに必要な帯域幅の量を推定し、前記帯域幅推定値が前記ハードウェア・ユニットへ割り当てられた帯域幅の量を超過するとき、前記オーディオ情報から削除する前記音声の１つ又は複数を選択し、前記ハードウェア・ユニットは、削除するように選択された前記音声の前記１つ又は複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の１つ又は複数を取得し、前記取得された参照波形を使用して前記オーディオ情報を生成する、デバイス。
【請求項４５】
前記ＤＳＰは、選択されなかった音声に関連づけられた前記合成パラメータを前記ハードウェア・ユニットへ提供する、請求項４４に記載のデバイス。
【請求項４６】
オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定し、
前記帯域幅推定値が割り当てられた帯域幅を超過するとき、前記オーディオ情報から削除する前記音声の１つ又は複数を選択し、
削除するように選択された前記音声の前記１つ又は複数に関係する参照波形を取得しないで、前記メモリから前記参照波形の１つ又は複数を取得し、
前記取得された参照波形を使用してオーディオ・ハードウェア・ユニットを介して前記オーディオ情報を生成する、
ように構成された回路。
【請求項４７】
選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供するように構成され、前記ハードウェア・ユニットは前記オーディオ・ユニットである、請求項４６に記載の回路。
【発明の詳細な説明】
【関連出願】
【０００１】
本特許出願は、２００７年３月２２日に出願され、発明の名称が「オーディオ・デバイスおける参照波形の取得のための帯域幅制御（BANDWIDTH CONTROL FOR RETRIEVAL OF REFERENCE WAVEFORMS IN AN AUDIO DEVICE）」であり、本願の譲受人に譲渡された仮特許出願第６０／８９６,４３８号への優先権を主張する。上記仮特許出願は、参照によって本明細書に明示的に組み入れられる。
【技術分野】
【０００２】
この開示は電子デバイスに関し、具体的には、オーディオを生成する電子デバイスに関する。
【背景技術】
【０００３】
楽器ディジタル・インタフェース（ＭＩＤＩ）は、例えば、音楽、スピーチ、トーン、アラートなどのオーディオ・サウンドの創出、通信、及び／又は再生で使用されるフォーマットである。ＭＩＤＩフォーマットの再生をサポートするデバイスは、様々な「音声」を創出するために使用されるオーディオ情報の集合を記憶する。各音声は、例えば、特定の楽器による音符のような１つ又は複数のサウンドに対応する。例えば、第１の音声はピアノによって演奏される中央ハ音（Ｃ）に対応し、第２の音声はトロンボーンによって演奏される中央ハ音（Ｃ）に対応し、第３の音声はトロンボーンによって演奏されるニ音シャープ（Ｄ＃）に対応し、以下同様である。特定の楽器によって演奏される音符を複製するために、ＭＩＤＩ準拠デバイスは、様々なオーディオ特性、例えば、低周波発振器の振る舞い、ビブラートのような効果、及びサウンドの知覚に影響し得る多数の他のオーディオ特性を特定する音声情報の集合を含む。ほとんど全てのサウンドが定義され、ＭＩＤＩファイルで伝達され、及びＭＩＤＩフォーマットをサポートするデバイスによって再生される。
【０００４】
ＭＩＤＩフォーマットをサポートするデバイスは、このデバイスが音符の生成を開始すべきことを示す事象が生じると、この音符（又は他のサウンド）を生成する。同様に、デバイスは、このデバイスが音符の生成を停止すべきことを示す事象が生じると、この音符の生成を停止する。全体の楽曲は、或る音声がいつ開始及び停止すべきかを示す事象を指定することによって、ＭＩＤＩフォーマットに従って符号化される。このようにして、楽曲は、ＭＩＤＩフォーマットに従って、コンパクトなファイル・フォーマットで記憶及び伝送される。
【０００５】
ＭＩＤＩは、多種多様なデバイスでサポートされる。例えば、無線電話機のような無線通信デバイスは、ダウンロード可能なサウンド、例えば、着信音又は他のオーディオ出力のためのＭＩＤＩファイルをサポートする。ディジタル音楽プレーヤ、例えば、アップル・コンピュータ社（Apple Computer, Inc）によって販売された「ｉＰｏｄ」デバイス及びマイクロソフト社（Microsoft Corporation）によって販売された「Ｚｕｎｅ」デバイスもＭＩＤＩファイル・フォーマットをサポートする。ＭＩＤＩフォーマットをサポートする他のデバイスは、様々な音楽シンセサイザ、無線移動デバイス、直接双方向通信デバイス（ウォーキー・トーキー（walkie-talkies）と呼ばれる場合もある）、ネットワーク電話、パーソナル・コンピュータ、デスクトップ及びラップトップ・コンピュータ、ワークステーション、衛星無線デバイス、インターコム・デバイス、無線放送デバイス、ハンドヘルド・ゲーム用デバイス、デバイス内に設けられた回路基板、情報キオスク、ビデオゲーム・コンソール、様々な子供用コンピュータ化玩具、自動車、船、飛行機で使用されるオンボード・コンピュータ、及び多種多様な他のデバイスを含むことができる。
【発明の概要】
【０００６】
一般的に、この開示はオーディオ・ファイルを処理する技術を説明する。これらの技術は、楽器ディジタル・インタフェース（ＭＩＤＩ）フォーマットに準拠するオーディオ・ファイルの再生に特に有用である。もっとも、これらの技術は、他のオーディオ・フォーマット、技術、又は標準の場合にも有用である。本明細書で使用される場合、ＭＩＤＩファイルという用語は、ＭＩＤＩフォーマットに対応する少なくとも１つのオーディオ・トラックを含む任意のファイルを意味する。
【０００７】
具体的には、この開示の技術は、オーディオ処理・モジュールへ割り当てられた帯域幅の使用を制御するために使用される。例えば、様々なオーディオ合成パラメータを処理するために、オーディオ処理モジュールは、オーディオ・フレーム、例えば、ＭＩＤＩフレーム内の音声についてオーディオ情報を生成するために使用される参照波形サンプルを取得する。幾つかの場合、メモリから参照波形を取得するために使用可能な帯域幅の量は制限される。オーディオ・ハードウェア・ユニットが参照波形を取得するために使用可能な帯域幅の量は、例えば、オーディオ処理モジュールの他のコンポーネントへ割り当てられた帯域幅の量に基づいて制限される。割り当てられた帯域幅の使用を管理するために、帯域幅制御モジュールは、オーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅を推定し、帯域幅推定値が、割り当てられた帯域幅を超過するとき、本明細書で説明された技術に従って、生成されたオーディオ情報から削除する音声の１つ又は複数を選択する。
【０００８】
一態様において、方法は、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定することと、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の１つ又は複数を選択することとを備える。
【０００９】
他の態様において、デバイスは、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定する帯域幅推定モジュールと、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の１つ又は複数を選択する音声選択モジュールとを備える。
【００１０】
更なる態様において、デバイスは、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定する手段と、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の１つ又は複数を選択する手段とを備える。
【００１１】
更に他の態様において、コンピュータ読み取り可能媒体は命令を備える。前記命令は、プログラム可能プロセッサに、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定させ、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の１つ又は複数を選択させる。
【００１２】
他の態様において、デバイスは、ソフトウェアを実行してオーディオ・フレームを構文解析し、オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、事象を処理して合成パラメータを生成するディジタル信号プロセッサ（ＤＳＰ）、合成パラメータの少なくとも一部分に基づいてオーディオ情報を生成するハードウェア・ユニットと、メモリ・ユニットとを備える。ＤＳＰは、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するためにハードウェア・ユニットに必要な帯域幅の量を推定し、帯域幅推定値がハードウェア・ユニットへ割り当てられた帯域幅の量を超過するとき、生成されたオーディオ情報から除去する音声の１つ又は複数を選択する。
【００１３】
他の態様において、回路は、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定し、帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から除去する音声の１つ又は複数を選択するように構成される。
【００１４】
この開示の１つ又は複数の態様の詳細は、添付の図面及び以下の説明に記述される。他の特徴、目的、及び利点は、明細書及び図面、及び特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００１５】
【図１】この開示の技術を実現する例示的なオーディオ・デバイスを示すブロック図である。
【図２】オーディオ・デバイスで使用される例示的なオーディオ・ハードウェア・ユニットを示すブロック図である。
【図３】例示的帯域幅制御モジュールを示すブロック図である。
【図４】この開示の帯域幅制御技術を実現するオーディオ・デバイスの例示的な動作を示すフロー図である。
【発明の詳細な説明】
【００１６】
一般的に、この開示はオーディオ・ファイルを処理する技術を説明する。これらの技術は、楽器ディジタル・インタフェース（ＭＩＤＩ）フォーマットに準拠するオーディオ・ファイルの再生に特に有用である。もっとも、これらの技術は、他のオーディオ・フォーマット、技術、又は標準についても有用である。本明細書で使用される場合、ＭＩＤＩファイルという用語は、ＭＩＤＩフォーマットに対応する少なくとも１つのオーディオ・トラックを含むファイルを意味する。
【００１７】
具体的には、この開示の技術は、オーディオ処理モジュールへ割り当てられた帯域幅の使用を制御するために用いられる。例えば、様々なオーディオ合成パラメータを処理するために、オーディオ処理モジュールは、例えば、ＭＩＤＩフレームのようなオーディオ・フレーム内の音声についてオーディオ情報を生成する際に使用するための参照波形サンプルを取得する。幾つかの場合、メモリから参照波形を取得するために使用可能な帯域幅の量は制限される。オーディオ・ハードウェア・ユニットが参照波形を取得するために使用可能な帯域幅の量は、例えば、オーディオ処理モジュールの他のコンポーネントへ割り当てられた帯域幅の量に基づいて制限される。割り当てられた帯域幅の使用を管理するために、帯域幅制御モジュールは、オーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅を推定し、推定された帯域幅が割り当てられた帯域幅を超過するとき、本明細書で説明される技術に従って、生成されたオーディオ情報から削除する音声の１つ又は複数を選択する。このようにして、選択された音声は、人間の聴取者へのオーディオ出力から本質的に除かれる。
【００１８】
図１は、例示的なオーディオ・デバイス４を示すブロック図である。オーディオ・デバイス４は、ＭＩＤＩファイル、例えば、少なくとも１つのＭＩＤＩトラックを含むファイルを処理することができるデバイスを備える。オーディオ・デバイス４の例としては、無線通信デバイス、例えば、無線電話機、ネットワーク電話、ディジタル音楽プレーヤ、音楽シンセサイザ、無線移動デバイス、直接双方向通信デバイス（ウォーキー・トーキーと呼ばれる場合もある）、パーソナル・コンピュータ、デスクトップ又はラップトップ・コンピュータ、ワークステーション、衛星無線デバイス、インターコム・デバイス、無線放送デバイス、ハンドヘルド・ゲーム用デバイス、デバイス内に設けられた回路基板、キオスク・デバイス、様々な子供用コンピュータ化玩具、ビデオゲーム・コンソール、自動車、船、又は飛行機で使用されるオンボード・コンピュータ、又は多種多様な他のデバイスが含まれる。加えて、オーディオ・デバイス４は、楽器、例えば、電子キーボード、ドラム・マシン、又は他の電子楽器である。
【００１９】
オーディオ・デバイス４は、ＭＩＤＩファイルを記憶するオーディオ記憶ユニット６を含む。オーディオ記憶ユニット６は、他のタイプのデータを追加的に記憶してもよい。例えば、オーディオ・デバイス４が移動電話機である場合、オーディオ記憶ユニット６は、個人連絡先のリスト、写真、及び他のタイプのデータを備えるデータを記憶してもよい。オーディオ記憶ユニット６は、揮発性又は不揮発性メモリ又は記憶装置、例えば、ハードディスク・ドライブ、フラッシュ・メモリ・ユニット、コンパクト・ディスク、フロッピー（登録商標）ディスク、ディジタル万能ディスク、読み出し専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、又は他の情報記憶媒体を備える。もちろん、オーディオ記憶ユニット６は、ディジタル音楽プレーヤに関連づけられた記憶ユニット又は他のデバイスからの情報転送に関連づけられた一時記憶ユニットであってもよい。オーディオ記憶ユニット６は、データ・バス又は他の接続を経由してプロセッサ８へ接続された別個の揮発性メモリ・チップ又は不揮発性記憶デバイスであってもよい。
【００２０】
オーディオ・デバイス４は、プロセッサ８、ディジタル信号プロセッサ（ＤＳＰ）１２、及びオーディオ・ハードウェア・ユニット１４を更に含む。これらは協動してＭＩＤＩファイルを処理し、ＭＩＤＩファイルの内容に基づき、オーディオ情報、例えば、オーディオ・サンプルのディジタル波形を生成する。言い換えれば、プロセッサ８、ＤＳＰ１２、及びオーディオ・ハードウェア・ユニット１４は協動してシンセサイザとして機能する。図１に示された例において、オーディオ・デバイス４は、プロセッサ８、ＤＳＰ１２、及びオーディオ・ハードウェア・ユニット１４の間でＭＩＤＩ処理タスクを分割するアーキテクチャを実現する。しかしながら、ＭＩＤＩ処理タスクのこのような分割は、本明細書で説明される帯域幅制御技術の実現には不必要である。従って、幾つかの実現において、プロセッサ８、ＤＳＰ１２、及びオーディオ・ハードウェア・ユニット１４の処理タスクは単一のモジュールへ接続される。例えば、ＭＩＤＩファイル処理に関連づけられたタスクは、ＤＳＰ１２及びオーディオ・ハードウェア・ユニット１４の２つの異なるスレッドの間で委任される。即ち、（本明細書で説明されるような）汎用プロセッサ８に関連づけられたタスクは、マルチスレッドＤＳＰ、例えば、ＤＳＰ１２の第１のスレッドによって代替的に実行される。この場合、ＤＳＰ１２の第１のスレッドはスケジューリングを実行し、ＤＳＰ１２の第２のスレッドは合成パラメータを生成し、ハードウェア・ユニット１４は合成パラメータに基づいてオーディオ・サンプルを生成する。ＤＳＰ１２は、他のタスク、例えば、本明細書で開示される帯域幅推定技術を行うために追加のスレッドを更に含む。
【００２１】
一態様において、プロセッサ８、ＤＳＰ１２、及びオーディオ・ハードウェア・ユニット１４は、オーディオ・フレーム方式によってオーディオ・フレーム内のＭＩＤＩファイルを処理する。本明細書で使用されるように、「オーディオ・フレーム」という表現は、幾つかのオーディオ・サンプルを含む時間ブロックを意味する。一例として、オーディオ・フレームは、４８ｋＨｚのサンプリング・レートで動作しているデバイスについて４８０サンプルを含む１０ミリ秒（ｍｓ）区間に対応する。多くの事象は、１つの時間インスタンスに対応し、多くの音声又はサウンドは、ＭＩＤＩフォーマットに従って１つの時間インスタンス内に含まれる。もちろん、任意のオーディオ・フレームへ委任される時間の量、並びにフレーム当たりのサンプルの数は、実施ごとに異なっている。
【００２２】
プロセッサ８は、オーディオ記憶ユニット６からデータを読み出し、オーディオ記憶ユニット６へデータを書き込む。更に、プロセッサ８は、メモリ・ユニット１０からデータを読み出し、メモリ・ユニット１０へデータを書き込む。例えば、プロセッサ８は、オーディオ記憶モジュール６からＭＩＤＩファイルを読み出し、メモリ・ユニット１０へＭＩＤＩファイルを書き込む。各オーディオ・フレームについて、プロセッサ８は１つ又は複数のＭＩＤＩファイルを取得し、ＭＩＤＩファイルを構文解析して、１つ又は複数のＭＩＤＩ命令を抽出する。ＭＩＤＩファイル内のＭＩＤＩ命令は、特定のＭＩＤＩ音声が開始又は停止することを命令する。他のＭＩＤＩ命令は、アフタータッチ効果、呼吸制御効果、プログラム変更、ピッチ・ベンド効果、例えばパン・レフト又はパン・ライトなどの制御メッセージ、サステイン・ペダル効果、主音量制御、例えばタイミング・パラメータなどのシステム・メッセージ、例えば照明効果キューなどのＭＩＤＩ制御メッセージ、及び／又は他のサウンド効果に関係する。
【００２３】
これらのＭＩＤＩ命令に基づいて、プロセッサ８は、ＤＳＰ１２による処理のために、ＭＩＤＩファイルに関連づけられたＭＩＤＩ事象をスケジュールする。プロセッサ８は、ＭＩＤＩ事象のスケジューリングをＤＳＰ１２によってアクセスされるようにメモリ・ユニット１０へ提供し、これにより、ＤＳＰ１２はＭＩＤＩ命令を処理することができる。あるいは、プロセッサ８は、時間同期方式でＭＩＤＩ命令をＤＳＰ１２へ直接送ることによって、スケジューリングを実行する。具体的には、プロセッサ８によるスケジューリングは、ＭＩＤＩ命令に関連づけられたタイミングの同期化を含み、ＭＩＤＩ命令はＭＩＤＩファイル内で指定されたタイミング・パラメータに基づいて識別される。
【００２４】
ＤＳＰ１２は、プロセッサ８によって創出されたスケジューリングに従ってＭＩＤＩ命令を処理する。具体的には、ＤＳＰ１２は、ＭＩＤＩ命令内に指定された新しい音声を、開始する音声として割り当てるとともに、ＭＩＤＩ命令内に指定された音声を、停止する音声として除く。このようにして、ＤＳＰ１２は、現オーディオ・フレームの新しいＭＩＤＩ音声を開始及び停止する合成パラメータを生成する。更に、ＤＳＰ１２は、ＭＩＤＩ命令に従って、オーディオ・フレーム内の音声の様々な音響特性、例えば、共鳴レベル、ピッチ、残響、及び音量を記述する他の合成パラメータを生成する。
【００２５】
幾つかの場合、メモリ・ユニット１０から参照波形を取得するために使用可能な帯域幅の量は制限される。例えば、オーディオ・ハードウェア・ユニット１４がメモリ・ユニット１０にアクセスするために使用可能な帯域幅の量は、プロセッサ８及びＤＳＰ１２へ割り当てられた帯域幅の量に応じる。ウェーブテーブル・ルックアップのためにフレーム毎に転送することができるデータ量が制限されるとき、ウェーブテーブル合成を使用してＭＩＤＩ音声を管理するために、ＤＳＰ１２は帯域幅制御モジュール１５を含む。帯域幅制御モジュール１５は、この開示の帯域幅制御技術を実現する。具体的には、帯域幅制御モジュール１５は、オーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅の量を推定する。以下に詳細に説明するように、参照波形は、対応する音声のオーディオ情報、例えばサンプル、を生成するために使用される。この開示の技術に従って、帯域幅制御モジュール１５は、帯域幅推定値がオーディオ・ハードウェア・ユニット１４へ割り当てられた帯域幅の量を超過するとき、メモリ・ユニット１０から参照波形を取得するために、削除する１つ又は複数の音声を選択する。帯域幅制御モジュール１５は、参照波形を取得するための帯域幅推定値が、取得を目的としてオーディオ・ハードウェア・ユニット１４へ割り当てられた帯域幅の量以下になるまで、削除する音声を選択し続ける。このようにして、帯域幅制御モジュール１５は、推定された帯域幅が割り当てられた帯域幅以下になるまで、削除する音声を再帰的に選択する。あるいは、帯域幅制御モジュール１５は、推定帯域幅と割り当てられた帯域幅との差を判定し、全帯域幅が推定帯域幅と割り当てられた帯域幅との差以上のである複数の音声を選択する。このようにして、帯域幅制御モジュール１５は、再帰方式で音声を選択する代わりに、削除する複数音声を同時に選択してもよい。
【００２６】
一例として、「帯域幅」という用語は、単位時間当たりにオーディオ・ハードウェア・ユニット１４へ転送することができるデータ量、例えば、秒当たりバイト数を意味する。帯域幅は、メモリ１０とオーディオ・ハードウェア・ユニットとの間の伝送媒体によって定義され、及び場合によって、例えば、他のコンポーネントがメモリ１０へアクセスするために伝送媒体を共有するかどうかなどの他の因子によって定義される。例えば、オーディオ・ハードウェア・ユニット１４は、メモリ１０への専用バスを有する。この場合、帯域幅は、このバス上を転送され得る秒当たりバイト数によって定義される。あるいは、オーディオ・ハードウェア・ユニット１４は、メモリ１０へアクセスするためにＤＳＰ１２及び／又はプロセッサ８とバスを共有する。この場合、帯域幅は、共有バス上でオーディオ・ハードウェア・ユニット１４へ現在割り当てられている秒当たりバイト数を意味する。共有バスが使用される場合、帯域幅は、共有バス上の情報転送を制御するバス・コントローラ又は他のコンポーネントによって決定される。更に、共有バスが使用される場合、オーディオ・ハードウェア・ユニット１４へ割り当てられた帯域幅は、同じバスを使用する他のコンポーネントによって必要とされる帯域幅の量に依存して、異なる時間で変化する。いずれの場合にも、任意の所与の事例において帯域幅の固定量が与えられるならば、この開示の技術は、音声上への所望の制御を容易にし、所望のオーディオ経験を促進するやり方で、最も重要性の低い音声の可能な削除を容易にすることができる。
【００２７】
図１において、オーディオ・ハードウェア・ユニット１４とメモリ・ユニット１０との間の矢印は専用バスを表し、あるいは、メモリ・ユニット１０とプロセッサ８との間、メモリ・ユニット１０とＤＳＰ１２との間、及びメモリ・ユニット１０とオーディオ・ハードウェア・ユニット１４との間の異なる矢印は、合わせて共有バスを表す。専用又は共有バスは、バス・コントローラ（図示しない）によって制御される。バス・コントローラは、所与の事例において、オーディオ・ハードウェア・ユニット１４への帯域幅を決定する。
【００２８】
以下で詳細に説明するように、帯域幅制御モジュール１５は、オーディオ・フレーム内の最も重要でない音声を選択するように試みる。オーディオ・フレーム内のＭＩＤＩ音声の音の重要度レベルは、オーディオ・フレームの人間の聴取者によって知覚される全体のサウンドに対するこのＭＩＤＩ音声の重要性に応じる。帯域幅制御モジュール１５は、例えば、最小振幅を有する１つ又は複数の音声、最も長い時間アクティブ又はオンにされていた音声、又は最下位優先順位ＭＩＤＩチャネルに関連づけられた音声を選択する。更に、帯域幅制御モジュール１５は、削除する音声を選択するとき、音声に関連づけられた他の合成パラメータ、例えば、ＡＤＳＲエンベロープの状態、音声に対応する楽器のタイプなどを分析する。ＡＤＳＲは、「アタック・ディケイ・サステイン・リリース（attack decay sustain release）」の略である。上記の技術は個々に実現されてもよく、又はこのような技術の２つ以上又は技術全てが、帯域幅制御モジュール１５において共に実現されてもよい。
【００２９】
ＤＳＰ１２は、選択されなかった音声のＭＩＤＩ合成パラメータをメモリ・ユニット１０内に記憶する。この場合、オーディオ・ハードウェア・ユニット１４は、メモリ・ユニット１０にアクセスして、合成パラメータを取得する。あるいは、ＤＳＰ１２は、選択されなかった音声の合成パラメータをオーディオ・ハードウェア・ユニット１４へ直接提供して、例えば、オーディオ・ハードウェア・ユニット１４内の１つ又は複数のレジスタを設定する。このため、オーディオ・ハードウェア・ユニット１４は、選択された音声について合成パラメータを受け取らない。このため、削除されるように選択された音声は、オーディオ・フレームから本質的に除かれる。このようにして、ＤＳＰ１２は、オーディオ・ハードウェア・ユニット１４の帯域幅要件を制御し、参照波形を取得するための帯域幅要件がオーディオ・ハードウェア・ユニット１４の割り当てられた帯域幅を超過しないように保証する。
【００３０】
オーディオ・ハードウェア・ユニット１４は、ＤＳＰ１２によって生成された合成パラメータを使用して、各オーディオ・フレームについて多数のオーディオ・サンプルを備えるディジタル波形を生成する。オーディオ・ハードウェア・ユニット１４によって生成されたディジタル波形は、例えば、パルス符号変調（ＰＣＭ）信号を備える。この信号は、一定の間隔でサンプルされたアナログ信号のディジタル表現である。個々のオーディオ・フレームについてディジタル波形を生成するために、オーディオ・ハードウェア・ユニット１４は、オーディオ・フレーム内のＭＩＤＩ音声の各々についてディジタル波形を生成する。ＭＩＤＩ音声についてディジタル波形を生成するため、オーディオ・ハードウェア・ユニット１４は、メモリ・ユニット１０から、ＭＩＤＩ音声に関連づけられた、多くの場合「ウェーブテーブル」と呼ばれる参照波形を取得する。オーディオ・ハードウェア・ユニット１４は、合成パラメータに従って参照波形の１つ又は複数のパラメータ、例えば、ピッチ、振幅、又は他の音響特性を変動させ、ＭＩＤＩ音声についてディジタル波形を生成する。オーディオ・ハードウェア・ユニット１４は、ＭＩＤＩ音声の各々について生成されたディジタル波形を合計し、オーディオ・フレームについてディジタル波形を計算する。オーディオ・ハードウェア・ユニット１４による例示的なオーディオ生成の更なる詳細は、図２を参照して後述する。
【００３１】
オーディオ・フレームについてディジタル波形を生成した後、オーディオ・ハードウェア・ユニット１４は、例えば、割り込み駆動型技術によって、生成されたディジタル波形をＤＳＰ１２へ渡す。この場合、ＤＳＰ１２はディジタル波形上で後処理技術を行う。後処理は、フィルタリング、スケーリング、音量調節、又はサウンド出力を最終的に向上する多種多様なオーディオ後処理を含む。後処理に続いて、ＤＳＰ１２は、後処理されたディジタル波形をディジタル／アナログ変換器（ＤＡＣ）１６へ出力する。ＤＡＣ１６は、ディジタル波形をアナログ信号へ変換し、アナログ信号を駆動回路１８へ出力する。駆動回路１８は、信号を増幅し、１つ又は複数のスピーカ１９Ａ及び１９Ｂを駆動して、可聴サウンドを創出する。オーディオ・デバイス４は、フィルタ、前置増幅器、増幅器、及びスピーカ１９によって出力されるアナログ信号を準備する他のタイプのコンポーネントを含む１つ又は複数の追加のコンポーネント（図示しない）を含む。
【００３２】
幾つかの実現において、説明された技術は、ＭＩＤＩファイルの処理の効率を改善するためにパイプライン方式にされる。具体的には、オーディオ・ハードウェア・ユニット１４によってオーディオ・フレームＮ＋２に対して行われる処理は、ＤＳＰ１２によってオーディオ・フレームＮ＋１に対して行われる合成パラメータの生成、及びプロセッサ８によってオーディオ・フレームＮに対して行われるスケジューリング動作と同時に行われる。このようなパイプライン技術は、効率を向上させ、場合によって、所与の段、例えば、ＤＳＰに関連づけられた段に必要な計算リソースを低減することができる。
【００３３】
プロセッサ８は、多種多様な汎用の単一チップ・マイクロプロセッサ又はマルチ・チップ・マイクロプロセッサを備える。プロセッサ８は、複数命令セット・コンピュータ（ＣＩＳＣ）設計又は縮小命令セット・コンピュータ（ＲＩＳＣ）設計を実現する。一般的に、プロセッサ８は、ソフトウェアを実行する中央処理ユニット（ＣＰＵ）を備える。例としては、インテル社（Intel Corporation）、アップル・コンピュータ社（Apple Computer, Inc）、サン・マイクロシステムズ社（Sun Microsystems Inc.）、アドバンスド・マイクロ・デバイシズ社（Advanced Micro Devices (AMD) Inc.）、エーアールエム社（ARM Inc.）などの会社からの１６ビット、３２ビット、又は６４ビットのマイクロプロセッサが含まれる。他の例としては、インターナショナル・ビジネス・マシンズ社（International Business Machines（ＩＢＭ）Corporation）、レッドハット社（RedHat Inc.）などの会社からのＵｎｉｘ（登録商標）又はＬｉｎｕｘ（登録商標）ベースのマイクロプロセッサが含まれる。ＤＳＰ１２は、クゥアルコム社（Qualcomm Inc.）によって開発されたＱＤＳＰ４ ＤＳＰを備える。オーディオ・ハードウェア・ユニット１４は、オーディオ・デバイス４のハードウェア・コンポーネントとして実現されてもよい。例えば、オーディオ・ハードウェア・ユニット１４は、オーディオ・デバイス４の回路基板へ埋め込まれたチップセットであってもよい。
【００３４】
帯域幅制御技術は、ＤＳＰ１２内で行われるものとして図１で説明されるが、帯域幅制御技術は、これに代えて、オーディオ・デバイス４の他のモジュール内で行われてもよい。例えば、オーディオ・ハードウェア・ユニット１４が帯域幅制御技術を実施してもよい。この場合、オーディオ・ハードウェア・ユニット１４は、フレームの全音声について合成パラメータを受け取り、メモリ・ユニット１０から参照波形を取得するために必要な推定帯域幅が、オーディオ・ハードウェア・ユニット１４へ割り当てられた帯域幅の量を超過するとき、削除する音声を選択する。更に、この開示のこれらの技術は、ＭＩＤＩの文脈で説明されるが、技術は、オーディオ・サウンドの創出、通信、及び／又は再生に使用される他のフォーマットについてディジタル波形を合成する場合に適用可能である。
【００３５】
図１に示す様々なコンポーネントは、この開示の態様を解明する例示的目的のために示される。図１に示された特徴は、ハードウェア・コンポーネント又はソフトウェア・コンポーネントの任意の適切な組み合わせ、又はハードウェア・コンポーネントとソフトウェア・コンポーネントの組み合わせによって実現される。しかしながら、他のコンポーネントが幾つかの実現中に存在してもよい。例えば、オーディオ・デバイス４が無線電話機である場合、アンテナ、送信機、受信機、及び変調器／復調器（「モデム」）が含まれ、オーディオ・ファイルの無線通信を容易にする。更に、図示されたコンポーネントの幾つかは、他の実現の中に含まれなくてもよい。
【００３６】
図２は、オーディオ・デバイス内で使用される例示的なオーディオ・ハードウェア・ユニット２０を示すブロック図である。オーディオ・ハードウェア・ユニット２０は、オーディオ・デバイス４（図１）のオーディオ・ハードウェア・ユニット１４を表す。図２で示される実現は単なる例示であり、他のハードウェア実現もこの開示の教示に一致して定義されうる。図２の例に示されるように、オーディオ・ハードウェア・ユニット２０は、バス・インタフェース３０を含み、データを送り及び受け取る。オーディオ・ハードウェア・ユニット２０は、バス・インタフェース３０を用いて、ＤＳＰ１２へデータを送り、ＤＳＰ１２からデータを受け取る。更に、オーディオ・ハードウェア・ユニット２０は、メモリ・ユニット１０からデータを取得する。このような動作を達成するために、バス・インタフェース３０は、ＡＭＢＡ高性能バス（High-performance Bus）（ＡＨＢ）マスタ・インタフェース、ＡＨＢスレーブ・インタフェース、及びメモリ・バス・インタフェースを含む。ＡＭＢＡは、先進マイクロプロセッサ・バス・アーキテクチャ（advanced microprocessor bus architecture）の略である。あるいは、バス・インタフェース３０は、ＡＸＩバス・インタフェース又は他のタイプのバス・インタフェースを含むことができる。ＡＸＩは、先進拡張可能インタフェース（advanced extensible interface）の略語である。
【００３７】
オーディオ・ハードウェア・ユニット２０は、調整モジュール３２を含む。調整モジュール３２は、オーディオ・ハードウェア・ユニット２０内のデータ・フローを調整する。さらに、調整モジュール３２は、オーディオ・ハードウェア・ユニット２０とＤＳＰ１２又はメモリ・ユニット１０との間のデータ・フローを調整する。調整モジュール３２は、例えば、ＤＳＰ１２からのオーディオ・フレームの音声の合成パラメータの転送を調整する。上述したように、ＤＳＰ１２は、オーディオ・ハードウェア・ユニット２０がオーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅の量を推定し、帯域幅推定値が、メモリ・ユニット１０から参照波形を取得するためにオーディオ・ハードウェア・ユニット２０へ割り当てられた帯域幅の量を超過するとき、生成されたオーディオから削除する１つ又は複数の音声を選択する。この場合、オーディオ・ハードウェア・ユニット２０は、選択されなかった音声のみについて合成パラメータを受け取り、これによって、選択された音声をオーディオ・フレームから本質的に取り除く。
【００３８】
しかしながら、他の態様において、この開示の帯域幅制御技術は、オーディオ・ハードウェア・ユニット２０内で実現される。具体的には、オーディオ・ハードウェア・ユニット２０は、オーディオ・フレームの全音声について合成パラメータを受け取り、生成されたオーディオ情報から削除する音声を選択して、割り当てられた帯域幅を満足させる。例えば、制御モジュール３２は、オーディオ・ハードウェア・ユニット２０がオーディオ・フレームの全音声について参照波形を取得するために必要な帯域幅の量を推定し、帯域幅推定値が、メモリ・ユニット１０から参照波形を取得するためオーディオ・ハードウェア・ユニット２０へ割り当てられた帯域幅の量を超過するとき、削除する１つ又は複数の音声を選択する。このために、調整モジュール３２は帯域幅制御モジュール（図２では示されない）を含む。
【００３９】
オーディオ・ハードウェア・ユニット２０がＤＳＰ１２（図１）から命令を受け取ってオーディオ・フレームの合成を始めるとき、調整モジュール３２はオーディオ・フレームの選択されなかった音声について合成パラメータを読み出す。オーディオ・ハードウェア・ユニット２０は、合成パラメータを使用して、オーディオ・フレームの選択されなかった音声についてディジタル波形を生成する。選択された音声に関連づけられた合成パラメータは受け取られなかったので、オーディオ・ハードウェア・ユニット２０は、これらの音声についてオーディオ情報を生成しない。言い換えれば、選択された音声はオーディオ・フレームから本質的に除かれる。合成パラメータは、所与のフレーム内の１つ又は複数のＭＩＤＩ音声の様々な音響特性、例えば、共鳴レベル、ピッチ、残響、音量、及び／又は１つ又は複数の音声に影響し得る他の特性を記述する。オーディオ・ハードウェア・ユニット２０は、ＤＳＰ１２からオーディオ・ハードウェア・ユニット２０内のメモリ・モジュール４２へ合成パラメータを直接ロードし、又はメモリ・ユニット１０内の場所へのデータ・ポインタを経由してメモリ１０から合成パラメータを取得する。具体的には、調整モジュール３２の指令で、合成パラメータは、メモリ・ユニット１０から、それぞれの処理要素３４Ａ又は３４Ｎに関連づけられた音声パラメータ・セット（ＶＰＳ）ＲＡＭ４６Ａ又は４６Ｎへロードされる。ＤＳＰ１２（図１）の指令で、プログラム命令は、メモリ１０から、それぞれの処理要素３４Ａ又は３４Ｎに関連づけられたプログラムＲＡＭユニット４４Ａ又は４４Ｎへロードされる。
【００４０】
調整モジュール３２が合成パラメータのリストを読み出した後、調整モジュール３２は、選択されなかった音声に関連づけられた複数の参照波形をメモリ１０から取得する。例えば、調整モジュール３２は、音声の各々についてサンプルを生成するために必要な参照波形を取得する。調整モジュール３２は、取得された参照波形をＷＦＯ／ＬＦＯメモリ３９内に記憶する。
【００４１】
プログラムＲＡＭユニット４４Ａ又は４４Ｂへロードされた命令は、関連づけられた処理要素３４Ａ又は３４Ｎに命令して、ＶＰＳ  ＲＡＭユニット４６Ａ又は４６Ｎ内の合成パラメータのリストに表示された音声の１つを合成させる。処理要素３４の数はいかなる数でもよく、各処理要素は、１つ又は複数の算術論理ユニット（ＡＬＵ）、又は数学演算を行うとともに、データを読み出し及び書き込むことのできる他のユニットを備える。簡明にするため、２つの処理要素３４Ａ及び３４Ｎのみが示されるが、より多くの処理要素がハードウェア・ユニット２０内に含まれてもよい。処理要素３４は、相互に並列で音声を合成する。具体的には、複数の異なる処理要素３４が並列で動作し、異なる音声に関連づけられた異なる合成パラメータを処理する。言い換えれば、処理要素の各々は、合成パラメータのリスト内に示された音声の１つを合成する。このようにして、オーディオ・ハードウェア・ユニット２０内の複数の処理要素３４は、加速され、場合によっては生成された音声の数を増加することができ、これによってオーディオ・サンプルの生成を改善する。
【００４２】
調整モジュール３２が処理要素３４の１つに命令して音声を合成させるとき、この処理要素は、合成パラメータに関連づけられた１つ又は複数の命令を実行する。ここでも、これらの命令は、プログラムＲＡＭユニット４４Ａ又は４４Ｎへロードされる。プログラムＲＡＭユニット４４Ａ又は４４Ｎへロードされた命令は、処理要素３４のそれぞれの１つに音声合成を行わせる。例えば、処理要素３４は、波形フェッチ・ユニット（ＷＦＵ）３６へ要求を送って、合成パラメータ内に指定されたＭＩＤＩ音声について参照波形を取得する。処理要素３４の各々はＷＦＵ３６を使用する。２つ以上の処理要素３４がＷＦＵ３６の同時の使用を要求する場合、アービトレーション・スキームを用いて衝突を解決してすることができる。
【００４３】
処理要素３４の１つからの要求に応答して、ＷＦＵ３６は、合成パラメータによって指定された参照波形を戻す。ＷＦＵ３６は、キャッシュ・メモリ４８、ＷＦＵ／ＬＦＵメモリ３９、又はメモリ・ユニット１０に記憶された参照波形を戻す。ＷＦＵ３６によって戻された参照波形は、要求を行った処理要素３４へ提供される１つ又は複数のサンプルを含む。波は、例えば、波の１サイクルまでサンプル内で位相シフトされるので、補間を利用して位相シフトを補償するために、ＷＦＵ３６は２つのサンプルを戻す。更に、ステレオ信号は２つのステレオ・チャネルのために２つの別々の波を含むので、ＷＦＵ３６はチャネル毎に別々のサンプルを戻し、結果として、例えば、ステレオ出力のために最大４つの別々のサンプルを生じる。
【００４４】
ＷＦＵ３６が参照波形を処理要素３４の１つへ戻した後、この処理要素は合成パラメータに基づいて追加のプログラム命令を実行する。具体的には、命令は、処理要素３４の１つに、オーディオ・ハードウェア・ユニット２０内の低周波発振器（ＬＦＯ）３８から非対称三角波形を要求させる。ＷＦＵ３６によって戻された参照波形を、ＬＦＯ３８によって戻された三角波形と乗算することによって、それぞれの処理要素３４は、波形の様々な音響特性を操作し、所望のオーディオ効果を達成する。例えば、波形を三角波で乗算することは、所望の楽器に一層類似したサウンドの波形を生じる結果となる。
【００４５】
合成パラメータに基づいて実行される他の命令は、処理要素３４のそれぞれの１つに波形を特定回数だけループさせ、波形の振幅を調節させ、残響を加えさせ、ビブラート効果を加えさせ、又は他の音響効果を行わせる。このようにして、処理要素３４はＭＩＤＩ音声のために１オーディオ・フレームだけ続くディジタル波形を計算することができる。最終的に、それぞれの処理要素３４は終了命令を受ける。処理要素３４の１つが終了命令を受けたとき、この処理要素は音声合成の終わりを調整モジュール３２へシグナルする。計算された音声波形は、プログラム命令の実行中に、他の記憶命令の指令で、合計バッファ４０へ提供される。これは、合計バッファ４０に、この計算された音声波形を記憶させる。
【００４６】
合計バッファ４０が、計算された波形を処理要素３４の１つから受け取ったとき、合計バッファ４０は、計算された波形をオーディオ・フレームの全体の波形に関連づけられた適切な時間インスタンスへ追加する。こうして、合計バッファ４０は複数の処理要素３４の出力を組み合わせる。例えば、合計バッファ４０は最初に平坦波形（即ち、全てのディジタル・サンプルがゼロの波）を記憶する。合計バッファ４０が処理要素３４の１つから特定のＭＩＤＩ音声に関連づけられた計算波形を受け取ったとき、合計バッファ４０は、計算波形の各ディジタル・サンプルを、合計バッファ４０内に記憶された波形のそれぞれのサンプルへ追加する。このようにして、合計バッファ４０は複数のＭＩＤＩ音声に関連づけられた計算波形を累積し、フル・オーディオ・フレームのために波形の全体のディジタル表現を記憶する。合計バッファ４０は、所与のオーディオ・フレーム内の全体のオーディオ編成を表現するディジタル波形を創出するために、異なる処理要素３４からの異なる生成音声に関連づけられた異なる時間インスタンスを本質的に合計する。
【００４７】
最終的に、調整モジュール３２は、処理要素３４が現オーディオ・フレームについて必要な全音声の合成を完了したこと、及び、これらの音声を合計バッファ４０へ提供したことを判定する。この時点で、合計バッファ４０は現オーディオ・フレームのために完成した波形を表示するディジタル・サンプルを含む。調整モジュール３２がこの判定を行うと、調整モジュール３２は割り込みをＤＳＰ１２（図１）へ送る。割り込みに応答して、ＤＳＰ１２は合計バッファ４０内の制御ユニット（図示しない）へ要求を送り、例えば、直接メモリ交換（ＤＭＥ）を経由して合計バッファ４０の内容を受け取らせる。あるいは、ＤＳＰ１２もＤＭＥを行うように予めプログラムされる。次いでＤＳＰ１２は、アナログ領域へ変換するためディジタル波形をＤＡＣ１６へ提供する前に、ディジタル波形上で後処理を行う。フレームＮ＋２に関してオーディオ・ハードウェア・ユニット２０によって行なわれる処理は、フレームＮ＋１に関してＤＳＰ１２によって行なわれる合成パラメータの生成、及びフレームＮに関してプロセッサ８（図１）によって行われるスケジューリング動作と同時に生じる。
【００４８】
キャッシュ・メモリ４８、ＷＦＵ／ＬＦＯメモリ３９、及びリンク・リスト・メモリ４２も図２に示される。キャッシュ・メモリ４８はＷＦＵ３６によって使用され、迅速及び効率的な方法で基本波形をフェッチする。ＷＦＵ／ＬＦＯメモリ３９は調整モジュール３２によって使用され、音声パラメータ・セットの音声パラメータ又は１つ又は複数の参照波形を記憶する。こうして、ＷＦＵ／ＬＦＯメモリ３９は、波形フェッチ・ユニット３６及びＬＦＯ３８の動作に専用されるメモリとして見ることができる。リンク・リスト・メモリ４２は、ＤＳＰ１２によって生成された音声インディケータのリストを記憶するために使用されるメモリを備える。音声インディケータは、メモリ１０内に記憶された１つ又は複数の合成パラメータへのポインタを備える。リスト内の各音声インディケータは、それぞれのＭＩＤＩ音声の音声パラメータ・セットを記憶するメモリ場所を指定する。図２に示される様々なコンポーネント及びコンポーネント配列（メモリを含む）は単なる例示である。本明細書で説明される技術は、多様な他の配列を用いて実現され得る。
【００４９】
図３は、例示的な帯域幅制御モジュール４８を示すブロック図である。帯域幅制御モジュール４８は、オーディオ・デバイス４（図１）の帯域幅制御モジュール１５を表す。図３に示されるように、帯域幅制御モジュール４８は帯域幅推定モジュール５０及び音声選択モジュール５２を含む。モジュール５０及び５２は協動して、本明細書で説明される帯域幅制御技術を実現するように機能する。
【００５０】
具体的には、帯域幅推定モジュール５０は、各オーディオ・フレームについて、この特定のフレームのＭＩＤＩ音声の参照波形をメモリ・ユニット１０から取得するためオーディオ・ハードウェア・ユニット１４によって必要とされる帯域幅の量を推定する。上述したように、ＭＩＤＩ音声に関連づけられた参照波形の転送に使用可能な帯域幅の量は、オーディオ・フレームごとに変動する。例えば、メモリ・ユニット１０内の参照波形を取得するために割り当てられた帯域幅の量は、オーディオ・デバイス４の他のコンポーネントへ割り当てられたメモリ帯域幅の量、例えば、プロセッサ８及びＤＳＰ１２へ割り当てられた帯域幅に応じて変動する。更に、メモリ・ユニット１０内の参照波形にアクセスするために割り当てられた帯域幅の量も、オーディオ・ハードウェア・ユニット１４内の他のモジュールへ割り当てられたメモリ帯域幅に基づいて変動する。
【００５１】
帯域幅推定モジュール５０は、例えば、オーディオ・ハードウェア・ユニット１４がメモリ・ユニット１０から取得する必要がある参照波形のサンプルの数に基づいて、現フレームについてオーディオ・ハードウェア・ユニット１４の帯域幅要件を推定する。言い換えれば、帯域幅推定モジュール５０は、フレーム・ベースでオーディオ・ハードウェア・ユニット１４の帯域幅要件を推定する。出発点として、帯域幅推定モジュール５０は、参照波形のサンプルの数に基づいて、オーディオ・ハードウェア・ユニット１４の帯域幅要件を推定する。しかしながら、オーディオ・ハードウェア・ユニット１４の帯域幅要件をより正確に推定するために、帯域幅推定モジュール５０は、本明細書で説明される帯域幅推定技術の１つ又は複数を用いる。
【００５２】
第１の帯域幅推定技術において、帯域幅推定モジュール５０は、オーディオ・フレームの音声の各々について再生位置を決定し、再生位置に基づいて帯域幅要件を推定する。ループ波形と呼ばれる参照波形の１つのタイプは、２つのセクション、即ち、過渡セクション及びループ・セクションへ分割される。オーディオ・デバイスは、過渡セクションを１回だけ再生し、次いで、音符が終わるまでループ・セクションを反復して再生する。再生位置とは、この特定のオーディオ・フレームに対応する波形に沿った位置を意味する。帯域幅推定モジュール５０は、オーディオ・フレームの音声に関連づけられた再生位置が過渡セクション内にあるかループ・セクション内にあるかを判定し、再生位置がループ・セクション内に存在するとき、ループ参照波形のループ・セクションを取得することだけが必要であると判定する。こうして、帯域幅推定モジュール５０は、参照波形を取得するために必要な帯域幅を、参照波形のループ・セクションのサンプルの数として推定する。しかしながら、再生位置が参照波形の過渡セクション内に存在するとき、帯域幅推定モジュール５０は、オーディオ・ハードウェア・ユニット１４が参照波形全体を取得する可能性があることを判定し、この判定を用いて、オーディオ・ハードウェア・ユニット１４の帯域幅要件を推定する。１回限りのサウンドの場合、即ち、過渡部分及びループ部分へ区分されないサウンドの場合、帯域幅推定モジュール５０は、オーディオ・ハードウェア・ユニット１４が参照波形全体を取得しなければならないと判定する。
【００５３】
他の帯域幅推定技術において、帯域幅推定モジュール５０は、参照波形の一部分のみを取得する必要があることを判定し、この判定を用いて、オーディオ・ハードウェア・ユニット１４の帯域幅要件を推定する。例えば、帯域幅推定モジュール５０は、オーディオ・フレームの始まりに関連づけられた波形サンプル・インデックスとオーディオ・フレームの終わりに関連づけられた波形サンプル・インデックスとの間の差を計算する。帯域幅推定モジュール５０は、始まりと終わりの波形サンプル・インデックス間の差を、参照波形内のサンプルの数と比較する。始まりと終わりの波形サンプル・インデックス間の差が波形内のサンプルの数よりも小さい場合、帯域幅推定モジュール５０は、オーディオ・ハードウェア・ユニット１４が、フレームの始まりに関連づけられたサンプル・インデックス及びフレームの終わりに関連づけられたサンプル・インデックスからの参照波形部分だけを取得する必要があることを判定する。しかしながら、フレームの終わりに関連づけられた波形サンプル・インデックスが、ループされる波形のサンプルの総数よりも大きい場合、帯域幅推定モジュール５０は、このフレームの間にローリング・オーバー（rolling over）が起こると判定する。ローリング・オーバーは、帯域幅推定モジュール５０に波形のループ部分の始まりからインデックスを再計算させる。こうして、帯域幅推定モジュールは、波形全体又は波形の少なくともループ部分全体がオーディオ・ハードウェア・ユニット１４へ転送することを判定する。
【００５４】
帯域幅推定モジュール５０は、ＭＩＤＩ音声について参照波形を取得するために必要とされる推定帯域幅を、参照波形をメモリ・ユニット１０から取得するために割り当てられた帯域幅の量と比較する。上述したように、参照波形を取得するために割り当てられた帯域幅の量は、フレームごとに変動する。オーディオ・ハードウェア・ユニット１４の推定帯域幅要件が、割り当てられた帯域幅を超過すると判定すると、直ちに、音声選択モジュール５２は、生成されたオーディオから削除する１つ又は複数のＭＩＤＩ音声を選択する。音声選択モジュール５２は、フレーム内の最小の知覚的関連を有する音声を選択するように試みる。音声選択モジュール５２は、例えば、最小振幅エンベロープを有する音声、したがって最小知覚の可聴音声を選択する。代替的又は追加的に、音声選択モジュール５２は、最も長い時間アクティブ又はオンにされていた音声、即ち、最も旧い音符を選択してもよい。例えば、音声選択モジュール５２は、各音声に関連づけられて音声がアクティブであった連続フレームの数をカウントするフレーム・カウンタを分析し、最も連続的なフレームの間アクティブであった音声を選択する。幾つかのＭＩＤＩ仕様、例えば、ＳＰ−ＭＩＤＩにおいて、オーディオ・チャネルは優先順位値を割り当てられる。この場合、音声選択モジュール５２は、最下位優先順位オーディオ・チャネルに関連づけられた音声を、生成されたオーディオ情報から削除する音声として選択する。
【００５５】
振幅、アクティブな長さ、又は音声に関連づけられた優先順位を分析することに加えて、音声選択モジュール５２は音声に関連づけられた他の合成パラメータを分析して、選択を行ってもよい。一例として、音声選択モジュール５２はＡＤＳＲエンベロープの状態を分析し、アタック状態にない音声のみを選択する。典型的には、アタック状態にある音符は、他の状態にある音符よりも、知覚的に人間の聴取者へ可聴である。代わりに、音声選択モジュール５２は、ディケイ状態、サステイン状態、又はリリース状態にある音声のみ
を選択する。他の例として、音声選択モジュール５２は、音声の各々に関連づけられた楽器のタイプを分析し、知覚的に小さい関連を有する楽器を除去のために選択する。音声選択モジュール５２は、例えば、打楽器に対応する音声の選択を回避するように試みる。これは、打楽器が、歌曲において、より知覚的に注目される傾向があるからである。
【００５６】
更に、音声選択モジュール５２は、前に選択された音声に基づいて、削除する追加の音声を選択する。例えば、幾つかの音声は層状音符、即ち、複数の音声を含む音符に属する。音声選択モジュール５２が層状音符に属する音声を最初に選択する場合、音声選択モジュール５２は、生成されたオーディオ情報から削除するこの音符の他の音声を選択する。この理由は、層状音符の音声の１つを除去することは、いずれにしても異なるサウンド音符を生じる結果となるからである。
【００５７】
これまでの技術は個々に実現されてもよく、又はそのような技術の２つ以上、又はそのような技術の全てが、帯域幅制御モジュール４８内でともに実現されてもよい。更に、上述したように、帯域幅制御モジュール４８は、オーディオ・デバイス４（図１）のいずれかのモジュール内で実現されてもよい。一態様において、帯域幅制御モジュール４８はＤＳＰ１２（図１）内で実現される。この場合、オーディオ・ハードウェア・ユニット２０（図１）は、選択されなかった音声についてのみ合成パラメータを受け取る。他の態様において、帯域幅制御モジュール４８は、オーディオ・ハードウェア・ユニット１４内で実現される。この場合、オーディオ・ハードウェア・ユニット１４はフレームの全音声について合成パラメータを受け取り、メモリ・ユニット１０から参照波形を取得するために必要な推定帯域幅が、オーディオ・ハードウェア・ユニット１４へ割り当てられた帯域幅の量を超過するとき、削除する１つ又は複数の音声を選択する。
【００５８】
図３に示された様々なコンポーネントは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実現されうる。幾つかのコンポーネントは、１つ又は複数のマイクロプロセッサ又はディジタル信号プロセッサ（ＤＳＰ）、１つ又は複数の特定用途集積回路（ＡＳＩＣ）、１つ又は複数のフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又は他の同等の集積又は離散的論理回路によって実行されるプロセス又はモジュールとして実現される。異なる特徴をモジュールとして描写することは、帯域幅制御モジュール４８の異なる機能的態様を強調することを意図するものであり、このようなモジュールが別々のハードウェア又はソフトウェア・コンポーネントによって実現されねばならないことを必ずしも暗示するものではない。むしろ、１つ又は複数のモジュールに関連づけられた機能性は、共通又は別々のハードウェア又はソフトウェア・コンポーネント内に統合されてもよい。したがって、この開示は、帯域幅制御モジュール４８の例へ限定されるべきではない。
【００５９】
ソフトウェアで実現されるとき、この開示で説明されたシステム及びデバイスに帰せられる機能性は、コンピュータ読み取り可能媒体、例えば、メモリ（図示しない）内の命令として体現される。コンピュータ読み取り可能媒体は、例えば、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、電気的に消去可能なプログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、磁気又は光学データ記憶媒体、又はその他を備える。命令は、この開示で説明された機能性の１つ又は複数の態様をサポートするように実行される。
【００６０】
図４は、この開示の帯域幅制御技術を実現する合成デバイス、例えば、図１のオーディオ・デバイス４の例示的動作を示すフロー図である。例示を目的として、合成デバイスの例示的動作は、ＤＳＰ１２の内部で行われるものとして説明される。しかしながら、上述したように、帯域幅制御技術は、代替としてオーディオ・デバイス４の他のモジュール内、例えば、オーディオ・ハードウェア・ユニット１４内で行われてもよい。
【００６１】
初めに、ＤＳＰ１２は、オーディオ・フレームのＭＩＤＩファイルに関連づけられた１つ又は複数のＭＩＤＩ命令を受け取る（６０）。上述したように、ＤＳＰ１２は時間同期方式でプロセッサ８からＭＩＤＩ命令を受け取る。あるいは、プロセッサ８はＭＩＤＩ命令をローカル・メモリ１０へ書き込んで、ＤＳＰ１２はメモリ１０へアクセスして、処理のために命令を取得する。ＭＩＤＩ命令は、特定のＭＩＤＩ音声が開始又は停止するように命令する。他のＭＩＤＩ命令は、アフタータッチ効果、呼吸制御効果、プログラム変更、ピッチ・ベンド効果、例えばパン・レフト又はパン・ライトなどの制御メッセージ、サステイン・ペダル効果、主音量制御、例えばタイミング・パラメータなどのシステム・メッセージ、例えば照明効果キューなどのＭＩＤＩ制御メッセージ、及び／又は他のサウンド効果に関係する。
【００６２】
ＤＳＰ１２は、プロセッサ８から受け取られたＭＩＤＩ命令を処理する（６２）。具体的には、ＤＳＰ１２は音声の開始又は停止を表示するＭＩＤＩ命令に従って新しい音声を割り当て、リースを満了した音声を削除する。更に、ＤＳＰ１２はＭＩＤＩ命令に従って各音符について合成パラメータを生成する。
【００６３】
ＤＳＰ１２は、メモリ・ユニット１０から参照波形を取得するために割り当てられた帯域幅の量を決定する（６４）。上述したように、ＭＩＤＩ音声に関連づけられた参照波形の転送に使用可能な帯域幅の量は、オーディオ・フレームごとに変動する。例えば、メモリ・ユニット１０内の参照波形を取得するために割り当てられた帯域幅の量は、オーディオ・デバイス４の他のコンポーネントへ割り当てられたメモリ帯域幅の量、例えば、プロセッサ８及びＤＳＰ１２へ割り当てられた帯域幅に応じて変動する。更に、メモリ・ユニット１０内の参照波形にアクセスするために割り当てられた帯域幅の量は、オーディオ・ハードウェア・ユニット１４内の他のモジュールへ割り当てられたメモリ帯域幅に基づいても変動する。
【００６４】
ＤＳＰ１２は、フレームのＭＩＤＩ音声について参照波形をメモリ・ユニット１０から取得するためオーディオ・ハードウェア・ユニット１４によって必要とされる帯域幅の量を推定する（６４）。帯域幅推定モジュール５０は、例えば、オーディオ・ハードウェア・ユニット１４がメモリ・ユニット１０から取得する必要がある参照波形のサンプルの数に基づいて、現フレームのためにオーディオ・ハードウェア・ユニット１４の帯域幅要件を推定する。開始点として、帯域幅推定モジュール５０は、参照波形内に含まれるサンプルの数に基づいて、オーディオ・ハードウェア・ユニット１４の帯域幅要件を推定する。
【００６５】
しかしながら、オーディオ・ハードウェア・ユニット１４の帯域幅要件をより正確に推定するために、帯域幅推定モジュール５０は、本明細書で説明される帯域幅推定技術の１つ又は複数を用いてもよい。例えば、ループ参照波形において、帯域幅推定モジュール５０は、オーディオ・フレームの音声に関連づけられた再生位置が、対応する参照波形の過渡セクション内にあるかループ・セクション内にあるかを判定し、再生位置がループ・セクション内に存在するとき、ループ参照波形のループ・セクションの取得だけが必要であると判定する。しかしながら、再生位置がループ参照波形の過渡セクション内に存在するとき、帯域幅推定モジュール５０は、オーディオ・ハードウェア・ユニット１４が、参照波形全体の取得を要求してもよいと判定し、この判定を用いて、オーディオ・ハードウェア・ユニット１４の帯域幅要件を推定する。更に、１回限りのサウンド、即ち、過渡部分及びループ部分へ区分されないサウンドの場合、帯域幅推定モジュール５０は、オーディオ・ハードウェア・ユニット１４が参照波形全体の取得を要求してもよいと判定する。
【００６６】
他の例として、オーディオ・ハードウェア・ユニット１４は、オーディオ・フレームの始まりに関連づけられた波形サンプル・インデックスと、オーディオ・フレームの終わりに関連づけられた波形サンプル・インデックスとの間の差を計算する。帯域幅推定モジュール５０は、始まり及び終わりの波形サンプル・インデックスの差を、参照波形内のサンプルの数と比較する。始まり及び終わりの波形サンプル・インデックスの差が波形内のサンプルの数よりも小さい場合、帯域幅推定モジュール５０は、オーディオ・ハードウェア・ユニット１４が、フレームの始まりに関連づけられたサンプル・インデックス及びフレームの終わりに関連づけられたサンプル・インデックスからのみ、参照波形の部分を取得する必要があると判定する。
【００６７】
ＤＳＰ１２は、ＭＩＤＩ音声について参照波形を取得するために必要とされる推定帯域幅が参照波形を取得するために割り当てられた帯域幅の量よりも大きいかどうかを判定する（６８）。ＭＩＤＩ音声について参照波形を取得するために必要とされる推定帯域幅が参照波形を取得するために割り当てられた帯域幅の量以下の場合、ＤＳＰ１２は音声の合成パラメータを合成のために１４へ送る（６９）。
【００６８】
ＭＩＤＩ音声について参照波形を取得するために必要とされる推定帯域幅が参照波形を取得するために割り当てられた帯域幅の量よりも大きい場合、ＤＳＰ１２は、生成されたオーディオ情報から削除する少なくとも１つの音声を選択する（７０）。音声選択モジュール５２は、フレーム内の知覚的に最小の関連を有する音声を選択することを試みる。例えば、音声選択モジュール５２は、最小振幅の音声が最小に知覚される可聴音声であるという発見的方法を使用して、最小振幅エンベロープを有する音声を選択する。代替的又は追加的に、音声選択モジュール５２は、最も長い時間アクティブ又はオンにされていた音声、即ち、最も旧い音符を選択してもよい。例えば、音声選択モジュール５２は、各音声に関連づけられて音声がアクティブであった連続フレームの数をカウントするフレーム・カウンタを分析して、最も連続的なフレームの間アクティブであった音声を選択する。幾つかのＭＩＤＩ仕様、例えば、ＳＰ−ＭＩＤＩにおいて、チャネルは優先順位値を割り当てられる。この場合、音声選択モジュール５２は、最下位優先順位値を有するチャネルに関連づけられた音声を、削除する音声として選択する。
【００６９】
振幅、アクティブな長さ、又は音声に関連づけられた優先順位を分析することに加えて、音声選択モジュール５２は音声に関連づけられた他の合成パラメータを分析して、選択を行ってもよい。一例として、音声選択モジュール５２はＡＤＳＲエンベロープの状態を分析し、アタック状態にない音声のみを選択する。典型的には、アタック状態にある音符は、他の状態にある音符よりも知覚的に人間の聴取者へ可聴である。代わりに、音声選択モジュール５２は、ディケイ状態、サステイン状態、又はリリース状態にある音声のみを選択する。他の例として、音声選択モジュール５２は、各音声に関連づけられた楽器のタイプを分析し、除去のために、知覚的に小さい関連を有する楽器を選択する。例えば、音声選択モジュール５２は、打楽器に対応する音声の選択を回避するように試みる。なぜなら、打楽器は、人間の聴取者から、より知覚的に注目される傾向があるからである。
【００７０】
更に、音声選択モジュール５２は、前に選択された音声に基づいて、削除する追加の音声を選択してもよい。例えば、幾つかの音声は層状音符、即ち、複数の音声を含む音符に属する。音声選択モジュール５２が、層状音符に属する音声を最初に選択する場合、音声選択モジュール５２は、削除するこの音符の他の音声を選択する。この理由は、層状音符の音声の１つを除去することは、いずれにしても異なるサウンド音符を生じる結果となるからである。
【００７１】
削除する音声を選択した後、ＤＳＰ１２は、選択された音声の参照波形を取得するために必要とされる帯域幅を、推定された帯域幅から減算する（７２）。言い換えれば、ＤＳＰ１２は、選択された音声に必要な帯域幅を元の帯域幅推定値から減算する。このようにして、ＤＳＰ１２は、オーディオ・フレームの選択されなかった音声の参照波形を取得するために必要な帯域幅を再計算する。次いでＤＳＰ１２は、再計算された帯域幅要件を、参照波形を取得するために割り当てられた帯域幅の量と比較する。ＤＳＰ１２は、波形を取得するために必要とされる推定帯域幅が参照波形を取得するために割り当てられた帯域幅の量よりも小さくなるまで、音声を選択し続ける。選択された音声に関連づけられた合成パラメータをオーディオ・ハードウェア・ユニット１４へ送らないことによって、ＤＳＰ１２は、オーディオ・ハードウェア・ユニット１４が参照波形を取得するために使用される帯域幅の量を制御する。
【００７２】
様々な例が説明された。本明細書で説明された技術の１つ又は複数の態様は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせで実現される。モジュール又はコンポーネントとして説明された特徴は、統合された論理デバイス内で共に実現されてもよく、離散的であるが相互運用可能な論理デバイスとして別々に実現されてもよい。ソフトウェアで実現される場合、これらの技術の１つ又は複数の態様は、少なくとも部分的に、実行されると上述した方法の１つ又は複数を行う命令を備えるコンピュータ読み取り可能媒体によって実現される。コンピュータ読み取り可能データ記憶媒体は、パッケージング・マテリアルを含むコンピュータ・プログラム製品の一部分を形成してもよい。コンピュータ読み取り可能媒体は、ランダム・アクセス・メモリ（ＲＡＭ）、例えば、同期ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、電気的に消去可能なプログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、磁気又は光学データ記憶媒体などを備えてもよい。これらの技術は、追加的又は代替的に、少なくとも部分的に、コンピュータ読み取り可能通信媒体によって実現されてもよい。コンピュータ読み取り可能通信媒体は、命令又はデータ構造の形式でコードを搬送又は通信し、コンピュータによってアクセスされ、読み取られ、及び／又は実行される。
【００７３】
命令は、１つ又は複数のプロセッサ、例えば、１つ又は複数のディジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ロジック・アレイ（ＦＰＧＡ）、又は他の同等の集積又は離散的論理回路によって実行される。したがって、「プロセッサ」という用語は、本明細書では、上記の構造又は本明細書で説明された技術の実現に適した任意の他の構造を意味する。加えて、幾つかの態様において、本明細書で説明された機能性は、この開示の技術を行うように構成又は適応された専用のソフトウェア・モジュール又はハードウェア・モジュール内で提供される。
【００７４】
ハードウェアで実現される場合、この開示の１つ又は複数の態様は、本明細書で説明された技術の１つ又は複数を行うように構成又は適応された回路、例えば、集積回路、チップセット、ＡＳＩＣ、ＦＰＧＡ、論理、又はこれらの様々な組み合わせであってもよい。技術回路は、本明細書で説明されるように、集積回路又はチップセット内に、プロセッサ及び１つ又は複数のハードウェア・ユニットの双方を含んでもよい。
【００７５】
また、当業者は、上述された機能の幾つか又は全てを回路が実現することを認識することに着目するべきである。全ての機能を実現する１つの回路が存在してもよく、又は機能を実現する複数の回路セクションが存在してもよい。最新の移動プラットフォーム・テクノロジを用いると、集積回路は、少なくとも１つのＤＳＰ、及びＤＳＰを制御及び／又はＤＳＰと通信する少なくとも１つの先進縮小命令セット・コンピュータ（Advanced Reduced Instruction Set Computer）（ＲＩＳＣ）マシン（Machine）（ＡＲＭ）プロセッサを備えてもよい。更に、回路は、幾つかのセクションとして設計又は実現されてもよく、幾つかの場合には、この開示で説明された異なる機能を行うようにセクションが再使用されてもよい。
【００７６】
様々な態様及び例が説明された。しかしながら、以下の特許請求の範囲から逸脱することなく、この開示の構造又は技術への変更がなされ得る。例えば、他のタイプのデバイスも、本明細書で説明されたＭＩＤＩ処理技術を実現できるであろう。この開示のこれら及び他の態様は、以下の特許請求の範囲内にある。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
［１］オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定することと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の１つ又は複数を選択することと、を備える方法。
［２］前記削除する前記音声の１つ又は複数を選択することは、前記音声の最小振幅を有する少なくとも１つを選択することを備える、［１］に記載の方法。
［３］前記削除する前記音声の１つ又は複数を選択することは、前記音声の最も長い時間オンにされていた少なくとも１つを選択することを備える、［１］に記載の方法。
［４］前記選択された音声が音声の複数の層を有する音符に対応するかどうかを判定することと、削除する前記選択された音声のいずれかに対応する前記複数層音符の他の層の前記音声の１つ又は複数を選択することと、を更に備える、［１］に記載の方法。
［５］前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析することを更に備え、前記削除する前記音声の１つ又は複数を選択することは、前記優先順位値の最小のものに対応する前記オーディオ・チャネルに関連づけられた１つ又は複数の音声を選択することを備える、［１］に記載の方法。
［６］前記音声の各々に関連づけられたＡＤＳＲエンベロープの状態を判定することを更に備え、前記削除する前記音声の１つ又は複数を選択することは、前記対応するＡＤＳＲエンベロープのアタック状態にない１つ又は複数の音声を選択することを備える、［１］に記載の方法。
［７］前記音声の各々に対応する楽器のタイプを判定することを更に備え、前記削除する前記音声の１つ又は複数を選択することは、打楽器に対応しない１つ又は複数の音声を選択することを備える、［１］に記載の方法。
［８］前記選択されなかった音声について前記帯域幅推定値を再計算することと、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する１つ又は複数の追加の音声を選択することと、を更に備える、［１］に記載の方法。
［９］前記帯域幅推定値を再計算することは、前記選択された音声に関連づけられた帯域幅推定値を前記オーディオ・フレームの前記帯域幅推定値から減算することを備える、［８］に記載の方法。
［１０］前記帯域幅を推定することは、前記オーディオ・フレームの前記音声に対応する前記参照波形のサンプルの総数を推定することを備える、［１］に記載の方法。
［１１］前記参照波形を取得するために必要な前記帯域幅を推定することは、前記オーディオ・フレームの前記音声の各々について再生位置を決定することと、前記対応する再生位置が前記関連づけられた参照波形の前記ループ・セクション内にある音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形のループ・セクションの前記サンプルの数として推定することと、を備える、［１］に記載の方法。
［１２］前記参照波形を取得するために必要な前記帯域幅を推定することは、前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算することと、前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較することと、前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間の前記サンプルの数として推定することと、を備える、［１］に記載の方法。
［１３］参照波形を取得するために必要な前記帯域幅を推定することは、ディジタル信号プロセッサ（ＤＳＰ）内で、メモリから前記参照波形を取得するためにハードウェア・ユニットに必要な帯域幅を推定することを備え、前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記ハードウェア・ユニット内で、前記選択されなかった音声に関連づけられた合成パラメータを受け取ることと、前記ハードウェア・ユニット内で、前記受け取られた合成パラメータを使用してオーディオ情報を生成することと、を更に備える、［１］に記載の方法。
［１４］前記選択されない音声について前記ハードウェア・ユニットの合成パラメータを通過させることを更に備える、［１３］に記載の方法。
［１５］前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得することと、前記取得された参照波形を使用してオーディオ情報を生成することと、を更に備える、［１］に記載の方法。
［１６］オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定する帯域幅推定モジュールと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の１つ又は複数を選択する音声選択モジュールと、を備えるデバイス。
［１７］前記音声選択モジュールは前記音声の最小振幅を有する少なくとも１つを選択する、［１６］に記載のデバイス。
［１８］前記音声選択モジュールは、前記音声の最も長い時間オンにされていた少なくとも１つを、削除する前記音声として選択する、［１６］に記載のデバイス。
［１９］前記音声選択モジュールは、前記選択された音声が音声の複数層を有する音符に対応するかどうかを判定し、削除する前記選択された音声のいずれかに対応する前記複数層音符の他の層の前記音声の１つ又は複数を選択する、［１６］に記載のデバイス。
［２０］前記音声選択モジュールは、前記オーディオ・フレームの前記音声に対応する複数のオーディオ・チャネルに関連づけられた優先順位値を分析し、前記優先順位値の最小のものに対応する前記オーディオ・チャネルの１つに関連づけられた前記音声の１つ又は複数を選択する、［１６］に記載のデバイス。
［２１］前記音声選択モジュールは、前記音声の各々に関連づけられたＡＤＳＲエンベロープの状態を判定し、前記対応するＡＤＳＲエンベロープのアタック状態にない前記音声の１つ又は複数を選択する、［１６］に記載のデバイス。
［２２］前記音声選択モジュールは、前記音声の各々に対応する楽器のタイプを判定し、打楽器に対応しない前記音声の１つ又は複数を選択する、［１６］に記載のデバイス。
［２３］前記帯域幅推定モジュールは、前記選択されなかった音声について前記帯域幅推定値を再計算し、前記音声選択モジュールは、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する１つ又は複数の追加の音声を選択する、［１６］に記載のデバイス。
［２４］前記帯域幅推定モジュールは、前記選択された音声に関連づけられた帯域幅推定値を前記帯域幅推定値から減算して前記帯域幅推定値を再計算する、［２３］に記載のデバイス。
［２５］前記帯域幅推定モジュールは、前記オーディオ・フレームの音声について前記参照波形のサンプルの総数を推定する、［１６］に記載のデバイス。
［２６］前記帯域幅推定モジュールは、前記音声の各々について再生位置を決定し、前記再生位置が前記それぞれの参照波形のループ・セクション内にある前記音声について、前記音声の各々に関連づけられた前記参照波形を取得するために必要な前記帯域幅を前記それぞれの参照波形の前記ループ・セクションのサンプルの数として推定する、［１６］に記載のデバイス。
［２７］前記帯域幅推定モジュールは、前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声の各々に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声の各々に関連づけられた波形サンプル・インデックスとの間の差を計算し、前記差の各々を前記それぞれの参照波形内のサンプルの総数と比較し、前記対応する差がサンプルの前記総数よりも小さいとき、前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの前記数として推定する、［１６］に記載のデバイス。
［２８］ソフトウェアを実行して前記オーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ（ＤＳＰ）と、前記合成パラメータに基づいてオーディオ情報を生成するハードウェア・ユニットと、を更に備える、［１６］に記載のデバイス。
［２９］前記帯域幅推定モジュール及び前記音声選択モジュールは前記ＤＳＰ内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットに必要な前記帯域幅を制御する、［２８］に記載のデバイス。
［３０］前記ＤＳＰは前記選択されなかった音声について合成パラメータを前記ハードウェア・ユニットへ提供する、［２９］に記載のデバイス。
［３１］前記帯域幅推定モジュール及び前記音声選択モジュールは前記ハードウェア・ユニット内で実現され、前記参照波形をメモリから取得するために前記ハードウェア・ユニットによって使用される前記帯域幅を制御する、［２８］に記載のデバイス。
［３２］前記プロセッサ、前記ＤＳＰ、及び前記ハードウェア・ユニットは、パイプライン方式で動作する、［２８］に記載のデバイス。
［３３］楽器ディジタル・インタフェース（ＭＩＤＩ）ファイルを構文解析して前記ＭＩＤＩファイルに関連づけられたＭＩＤＩ事象をスケジュールする第１のスレッド、前記ＭＩＤＩ事象を処理してＭＩＤＩ合成パラメータを生成する第２のスレッド、及び前記帯域幅推定モジュール及び前記音声選択モジュールを実現する第３のスレッドを含むマルチスレッド・ディジタル信号プロセッサ（ＤＳＰ）と、前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア・ユニットと、を更に備える、［２８］に記載のデバイス。
［３４］前記オーディオ・フレームは楽器ディジタル・インタフェース（ＭＩＤＩ）フレームを備える、［１６］に記載のデバイス。
［３５］オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形をメモリから取得するために必要な帯域幅を推定する手段と、前記帯域幅推定値が、割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の１つ又は複数を選択する手段と、を備えるデバイス。
［３６］前記音声選択手段は、前記音声の最小振幅を有する少なくとも１つと、前記音声の最も長い時間オンにされていた少なくとも１つと、前記音声の最小の優先順位値に対応するオーディオ・チャネルに関連づけられた少なくとも１つと、のうちの１つを選択する、［３５］に記載のデバイス。
［３７］前記音声の各々に関連づけられたＡＤＳＲエンベロープの状態を判定する手段を更に備え、前記音声選択手段は、前記対応するＡＤＳＲエンベロープのアタック状態にない前記音声の１つ又は複数を選択する、［３５］に記載のデバイス。
［３８］前記音声の各々に対応する楽器のタイプを判定する手段を更に備え、前記音声選択手段は、打楽器に対応しない前記音声の１つ又は複数を選択する、［３５］に記載のデバイス。
［３９］前記推定手段は、前記選択されなかった音声について前記帯域幅推定値を再計算し、前記音声選択手段は、前記再計算された帯域幅推定値が前記割り当てられた帯域幅を超過するとき、削除する１つ又は複数の追加の音声を選択する、［３５］に記載のデバイス。
［４０］前記帯域幅推定手段は、前記オーディオ・フレームの前記音声の各々について再生位置を決定し、前記再生位置がループ・セクション内にある前記音声について、前記参照波形を取得するために必要な前記帯域幅を、前記参照波形の前記ループ・セクションのサンプルの数として推定する、［３５］に記載のデバイス。
［４１］前記音声の各々について、前記オーディオ・フレームの始まりにおける前記音声に関連づけられた波形サンプル・インデックスと前記オーディオ・フレームの終わりにおける前記音声に関連づけられた波形サンプル・インデックスとの間の差を計算する手段と、  前記差を前記音声に関連づけられたそれぞれの参照波形内のサンプルの総数と比較する手段と、を更に備え、前記推定手段は、前記対応する差がサンプルの前記総数よりも小さいとき、前記音声に関連づけられた前記参照波形の各々を取得するために必要な前記帯域幅を、前記オーディオ・フレームの前記始まりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスと前記オーディオ・フレームの前記終わりにおける前記それぞれの音声に関連づけられた前記波形サンプル・インデックスとの間のサンプルの数として推定する、［３５］に記載のデバイス。
［４２］前記オーディオ・フレームを構文解析して前記オーディオ・フレームに関連づけられた事象をスケジュールするソフトウェア手段と、前記事象を処理して合成パラメータを生成するファームウェア手段と、前記合成パラメータに基づいてオーディオ・サンプルを生成するハードウェア手段と、を更に備え、前記ファームウェア手段は、前記オーディオ・フレーム内の前記音声について前記参照波形をメモリから取得するために前記ハードウェア手段に必要な前記帯域幅を推定する前記推定手段と、前記帯域幅推定値が前記ハードウェア手段へ割り当てられた帯域幅を超過するとき、削除する前記音声の１つ又は複数を選択する前記音声選択手段と、を含む、［３５］に記載のデバイス。
［４３］命令を備えるコンピュータ読み取り可能媒体であって、前記命令は、オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定することと、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する音声の１つ又は複数を選択することと、をプログラム可能プロセッサに行わせるコンピュータ読み取り可能媒体。
［４４］前記選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供することを前記プロセッサに行わせる命令を更に備える、［４３］に記載のコンピュータ読み取り可能媒体。
［４５］前記帯域幅推定値が前記割り当てられた帯域幅以下であるとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得することと、前記取得された参照波形を使用してオーディオ情報を生成することと、を前記プロセッサに行わせる命令を更に備える、［４３］に記載のコンピュータ読み取り可能媒体。
［４６］ソフトウェアを実行してオーディオ・フレームを構文解析し、前記オーディオ・フレームに関連づけられた事象をスケジュールするプロセッサと、前記事象を処理して合成パラメータを生成するディジタル信号プロセッサ（ＤＳＰ）と、前記合成パラメータの少なくとも一部分に基づいてオーディオ情報を生成するハードウェア・ユニットと、メモリ・ユニットと、を備え、前記ＤＳＰは、前記オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために前記ハードウェア・ユニットに必要な帯域幅の量を推定し、前記帯域幅推定値が前記ハードウェア・ユニットへ割り当てられた帯域幅の量を超過するとき、生成されたオーディオ情報から削除する前記音声の１つ又は複数を選択する、デバイス。
［４７］前記ＤＳＰは、前記選択されなかった音声に関連づけられた前記合成パラメータを前記ハードウェア・ユニットへ提供する、［４６］に記載のデバイス。
［４８］前記ハードウェア・ユニットは、前記帯域幅推定値が前記割り当てられた帯域幅以下のとき、前記オーディオ・フレームの前記選択されなかった音声に対応する前記参照波形を取得し、前記取得された参照波形を使用してオーディオ情報を生成する、［４６］に記載のデバイス。
［４９］オーディオ・フレーム内の音声についてオーディオ情報を生成するために使用される参照波形を取得するために必要な帯域幅を推定し、前記帯域幅推定値が割り当てられた帯域幅を超過するとき、生成されたオーディオ情報から削除する前記音声の１つ又は複数を選択する、ように構成された回路。
［５０］前記選択されなかった音声について合成パラメータをハードウェア・ユニットへ提供するように構成された、［４９］に記載の回路。
【図１】
0005566876.tif 000002
【図２】
0005566876.tif 000003
【図３】
0005566876.tif 000004
【図４】
0005566876.tif 000005