(57)【特許請求の範囲】
【請求項１】
音声ファイルからグレインを取り出す取り出し開始位置を設定する取り出し開始位置設定部と、
取り出すグレインのグレイン長を設定するグレイン長設定部と、
音声ファイル上の前記取り出し開始位置から前記グレイン長のグレインを取り出すグレイン取り出し部と、
取り出されたグレインを設定されたピッチに従って再生する再生部と、
グレインの再生完了時に、設定されたテンポに応じた音声ファイル上の基準位置を与えて、前記取り出し開始位置設定部に取り出し開始位置の更新を指示する取り出し開始位置更新部と
を備え、
前記取り出し開始位置設定部は、制御テーブルから現時点のテンポおよび／もしくはピッチに基づくランダマイズ値を取得し、当該ランダマイズ値に基づいて取り出し開始位置を、音声ファイル上の基準位置に対して乱数的に前後させる
ことを特徴とする音声再生装置。
【請求項２】
請求項１に記載の音声再生装置において、
グレインの再生完了時に前記グレイン長設定部にグレイン長の更新を指示するグレイン長更新部
を備え、
前記グレイン長設定部は、制御テーブルから現時点のテンポおよび／もしくはピッチに基づくグレイン長を取得する
ことを特徴とする音声再生装置。
【請求項３】
請求項１または２のいずれか一項に記載の音声再生装置において、
前記グレイン取り出し部は、所定のオーバラップ位相に基づいて取り出し開始位置の異なる複数のグレインを取り出し、
前記再生部は、個々のグレインに所定の窓関数を掛け合わせた後に合成する
ことを特徴とする音声再生装置。
【請求項４】
請求項３に記載の音声再生装置において、
窓関数が０値になることをもってグレインの再生完了を検出する窓関数０値判定部
を備えたことを特徴とする音声再生装置。
【請求項５】
機器を構成するコンピュータを、
音声ファイルからグレインを取り出す取り出し開始位置を設定する取り出し開始位置設定手段、
取り出すグレインのグレイン長を設定するグレイン長設定手段、
音声ファイル上の前記取り出し開始位置から前記グレイン長のグレインを取り出すグレイン取り出し手段、
取り出されたグレインを設定されたピッチに従って再生する再生手段、
グレインの再生完了時に、設定されたテンポに応じた音声ファイル上の基準位置を与えて、前記取り出し開始位置の更新を指示する取り出し開始位置更新手段
として機能させ、
前記取り出し開始位置設定手段は、制御テーブルから現時点のテンポおよび／もしくはピッチに基づくランダマイズ値を取得し、当該ランダマイズ値に基づいて取り出し開始位置を、音声ファイル上の基準位置に対して乱数的に前後させる
音声再生制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声再生装置および音声再生制御プログラムに関する。
【背景技術】
【０００２】
ビデオゲーム等においては、楽曲、効果音、スピーチ等の各種の音声が用いられるが、状況に応じてテンポ（速度）やピッチ（音程）を制御し、あるいはユーザ（プレイヤ）にテンポやピッチを任意に操作させたいというニーズがある。
【０００３】
従来、音声ファイルの再生時にテンポとピッチを個別かつ任意に制御するには、複雑な音声データ処理を必要とし、処理能力の高いパーソナルコンピュータ等では実現が可能であるものの、ビデオゲーム装置等の限られたリソースの機器においては実現が困難であった。この点、ＭＩＤＩ（Musical Instruments Digital Interface）規格による楽曲や効果音については、データの記述を変更するだけでテンポやピッチを容易に制御できることから、ゲーム装置等の機器においてはもっぱらＭＩＤＩ規格が用いられていた。なお、ＭＩＤＩ規格は音源を再生する音程、時間、音量等を時系列に制御するものであるため、生の演奏やスピーチをデジタル録音したような汎用的な音声ファイルの再生は行うことができない。
【特許文献１】特開平６−５９６７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したように、ゲーム装置等の限られたリソースの機器においては、生の演奏やスピーチをデジタル録音したような汎用的な音声ファイルにつき、テンポとピッチを個別かつ任意に制御することは困難であり、簡易な処理により実現できる仕組が要望されていた。
【０００５】
一方、「グラニュラーシンセシス」と呼ばれる新たな音源作成の手法が提案されているが（例えば、特許文献１参照。）、あくまでも音源作成にとどまるものであり、楽曲やスピーチ等の時系列に正確に再生することが要求される音声ファイルの再生に適用されるものではなかった。
【０００６】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、簡易な構成により、楽曲、効果音、スピーチ等の汎用的な音声ファイルにつき、テンポとピッチを個別かつ任意に制御することのできる音声再生装置および音声再生制御プログラムを提供することにある。また、コントローラの動きによりテンポとピッチを自在に制御することも目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、音声ファイルからグレインを取り出す取り出し開始位置を設定する取り出し開始位置設定部と、取り出すグレインのグレイン長を設定するグレイン長設定部と、音声ファイル上の前記取り出し開始位置から前記グレイン長のグレインを取り出すグレイン取り出し部と、取り出されたグレインを設定されたピッチに従って再生する再生部と、グレインの再生完了時に、設定されたテンポに応じた音声ファイル上の基準位置を与えて、前記取り出し開始位置設定部に取り出し開始位置の更新を指示する取り出し開始位置更新部とを備え、前記取り出し開始位置設定部は、制御テーブルから現時点のテンポおよび／もしくはピッチに基づくランダマイズ値を取得し、当該ランダマイズ値に基づいて取り出し開始位置を、音声ファイル上の基準位置に対して乱数的に前後させる音声再生装置を要旨としている。
【００１０】
また、請求項２に記載されるように、請求項１に記載の音声再生装置において、グレインの再生完了時に前記グレイン長設定部にグレイン長の更新を指示するグレイン長更新部を備え、前記グレイン長設定部は、制御テーブルから現時点のテンポおよび／もしくはピッチに基づくグレイン長を取得するようにすることができる。
【００１１】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載の音声再生装置において、前記グレイン取り出し部は、所定のオーバラップ位相に基づいて取り出し開始位置の異なる複数のグレインを取り出し、前記再生部は、個々のグレインに所定の窓関数を掛け合わせた後に合成するようにすることができる。
【００１２】
また、請求項４に記載されるように、請求項３に記載の音声再生装置において、窓関数が０値になることをもってグレインの再生完了を検出する窓関数０値判定部を備えるようにすることができる。
【００１６】
また、請求項５に記載されるように、機器を構成するコンピュータを、音声ファイルからグレインを取り出す取り出し開始位置を設定する取り出し開始位置設定手段、取り出すグレインのグレイン長を設定するグレイン長設定手段、音声ファイル上の前記取り出し開始位置から前記グレイン長のグレインを取り出すグレイン取り出し手段、取り出されたグレインを設定されたピッチに従って再生する再生手段、グレインの再生完了時に、設定されたテンポに応じた音声ファイル上の基準位置を与えて、前記取り出し開始位置の更新を指示する取り出し開始位置更新手段として機能させ、前記取り出し開始位置設定手段は、制御テーブルから現時点のテンポおよび／もしくはピッチに基づくランダマイズ値を取得し、当該ランダマイズ値に基づいて取り出し開始位置を、音声ファイル上の基準位置に対して乱数的に前後させる音声再生制御プログラムとして構成することができる。
【発明の効果】
【００１７】
本発明の音声再生装置および音声再生制御プログラムにあっては、簡易な構成により、楽曲、効果音、スピーチ等の汎用的な音声ファイルにつき、テンポとピッチを個別かつ任意に制御することができる。また、コントローラの動きによりテンポとピッチを自在に制御することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の好適な実施形態につき説明する。なお、ゲーム装置に適用した例について説明するが、その他の機器に本発明を適用することができることは言うまでもない。
【００１９】
図１は本発明の一実施形態にかかるゲーム装置の構成例を示す図である。
【００２０】
図１において、ゲーム装置１は無線通信部１０１を備え、プレイヤが手に持って操作するコントローラ２の無線通信部２３と通信することで、コントローラ２の操作スイッチ２１および３次元加速度センサ２２の状態をデータとして取得可能になっている。
【００２１】
一方、ゲーム装置１は、無線通信部１０１により受信したコントローラ２からの入力に基づいて操作内容を判定するコントローラ操作判定部１０２と、コントローラ操作判定部１０２の判定した操作内容に基づいてゲームの進行を制御するゲーム制御部１０４と、ゲーム制御部１０４の制御のもと、グラニュラーシンセシスの原理に基づいて音声を出力するグラニュラーシンセシス処理部１０５とを備えている。
【００２２】
コントローラ操作判定部１０２は、音声再生のテンポとピッチのデータを管理しており、このテンポとピッチはゲーム制御部１０４から音声再生時に値が設定されるほか、コントローラ２の操作スイッチ２１によるプレイヤの直接的な指示によって設定され、更に、コントローラ２を上下・左右・前後に振ったり、回転させたり、回転させながら投げたりといった操作を加速度変化解釈部１０３が解釈することによっても設定される。なお、テンポとは音声の再生の速度であり、テンポ「１」の場合は元の音声と同じ速度で再生され、例えばテンポ「２」の場合は元の音声の２倍の速度で再生され（その結果、全体の再生時間は半分）、テンポ「０．５」の場合は元の音声の半分の速度で再生（その結果、全体の再生時間は２倍）される。ピッチとは、再生される音声の音程であり、ピッチ「１」の場合は元の音声と同じ音程で再生され、例えばピッチ「２」の場合は元の音声の２倍の音程で再生され、ピッチ「０．５」の場合は元の音声の半分の音程で再生される。
【００２３】
グラニュラーシンセシス処理部１０５は、メモリ１１５に保持されたデジタルデータの状態の音声ファイルを入力し、デジタルデータの状態の音声信号を出力する。メモリ１１５上の音声ファイルは、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）等のメディア１１６からメディア読み出し部１１７により、制御プログラム、各種データとともにメモリ１１５に格納されるほか、マイク１１８、Ａ／Ｄ（Analog/Digital）変換部１１９、エフェクタ部１２０を介してデジタル録音されるものであってもよい。エフェクタ部１２０は音域の調整や特殊効果を与えるものである。
【００２４】
また、グラニュラーシンセシス処理部１０５からのデジタルデータの音声出力信号は、パンニング部１２１、エフェクタ部１２２、音量変更部１２３、Ｄ／Ａ（Digital/Analog）変換部１２４を順次介し、スピーカ１２５により音響として出力される。パンニング部１２１はステレオの左右（Ｌ：Left，Ｒ：Right）のチャネルに音声を振り分けるものであり、音量変更部１２３は音量レベル（ボリューム）を変更するものである。
【００２５】
グラニュラーシンセシス処理部１０５の内部構成としては、後述する窓関数０値判定部１１３が窓関数の０値を判定したタイミングで、メモリ１１５上の音声ファイルからのグレインの取り出し開始位置の更新を指示する取り出し開始位置更新部１０６と、取り出し開始位置更新部１０６からの更新の指示に従ってグレインの取り出し開始位置を設定する取り出し開始位置設定部１０７と、取り出すグレインの長さであるグレイン長を設定するグレイン長設定部１０９と、オーバラップ（詳細については後述）のために位相を変えて複数のグレインを取り出すための位相を設定するオーバラップ位相設定部１１０とを備えている。ここで、グレインとは音声ファイルから取り出す微小（数１０〜数１００〔ms〕）な音声部分データである。また、取り出し開始位置更新部１０６は音声ファイルの記録時間に相当するロケータ値を管理しており、このロケータ値はコントローラ操作判定部１０２から与えられるテンポに従った速度で変化していく（詳細については後述）。また、取り出し開始位置設定部１０７はグレインの取り出し開始位置を前後に乱数的に移動させるためのランダマイズ値を管理しており、このランダマイズ値と、グレイン長設定部１０９で設定されるグレイン長は、制御テーブル１０８により現時点のテンポとピッチに従って設定される（詳細については後述）。
【００２６】
更に、グラニュラーシンセシス処理部１０５は、取り出し開始位置設定部１０７により設定された取り出し開始位置から、グレイン長設定部１０９により設定されたグレイン長で、オーバラップ位相設定部１１０により設定された位相により、複数のグレインを音声ファイルから取り出すグレイン取り出し部１１１と、取り出した個々のグレイン毎に、コントローラ操作判定部１０２から与えられるピッチに基づく速度で再生しつつ、グレイン毎に所定の窓関数を掛け合わせる窓関数処理を行って合成する再生／窓関数処理部１１２と、再生／窓関数処理部１１２における窓関数が後端で０値となるタイミングを検出する窓関数０値判定部１１３と、窓関数０値判定部１１３が０値を判定したタイミングでグレイン長の更新をグレイン長設定部１０９に指示するグレイン長更新部１１４とを備えている。窓関数の詳細については後述する。
【００２７】
なお、グラニュラーシンセシス処理部１０５の各機能部は、メモリ１１５上の制御プログラムにより実現されるものであり、処理過程のデータはメモリ１１５上の各種データとして保持される。
【００２８】
図２はコントローラ操作判定部１０２の加速度変化解釈部１０３の構成例を示す図である。図２（ａ）はコントローラ２の移動方向を示しており、ここでは、グローバルな座標軸における、左右方向をＸ方向、前後方向をＹ方向、上下方向をＺ方向としている。
【００２９】
図２（ｂ）は加速度変化解釈部１０３の構成例を示しており、無線通信部１０１により受信したコントローラ２の入力からＸ方向加速度、Ｙ方向加速度、Ｚ方向加速度のデータ（加速度データ）をそれぞれ取得するＸ方向加速度取得部１０３ａ、Ｙ方向加速度取得部１０３ｂ、Ｚ方向加速度取得部１０３ｃと、Ｘ方向加速度取得部１０３ａ、Ｙ方向加速度取得部１０３ｂ、Ｚ方向加速度取得部１０３ｃの取得した加速度のデータのうち所定の閾値を超えるもののみを抽出する閾値処理を行う閾値処理部１０３ｄ〜１０３ｆとを備えている。閾値処理を行うのは、プレイヤの意図しないコントローラ２の小さな動き等を検出して誤動作させないためである。ここで、加速度データにおけるＸ方向加速度、Ｙ方向加速度、Ｚ方向加速度の各方向は３次元加速度センサ２２に付帯されるローカルな座標軸であって、図２（ａ）に示すようにコントローラ２の長手方向をグローバルなＹ軸と合わせ、所定の傾きとしたときにグローバルな座標軸とローカルな座標軸とが合致するようになっている。以下の記載では、説明を簡単にするために、グローバルな座標軸とローカルな座標軸とが合致した状態を初期状態とし、後述する振動では初期状態が保たれるとし、回転では回転後に初期状態に戻るものとする。なお、実際にはグローバルな座標軸とローカルな座標軸とが異なる場合が多いが、その場合には、いずれかの座標軸を選択するか、またはローカルからグローバルへと座標変換を行うなどすればよい。
【００３０】
また、加速度変化解釈部１０３は、閾値処理部１０３ｄの出力、すなわちＸ方向の加速度変化から左右方向の振動周期を検出する振動周期検出部１０３ｇと、閾値処理部１０３ｅの出力、すなわちＹ方向の加速度変化から前後方向の振動周期を検出する振動周期検出部１０３ｈと、閾値処理部１０３ｆの出力、すなわちＺ方向の加速度変化から上下方向の振動周期を検出する振動周期検出部１０３ｉとを備えている。更に、閾値処理部１０３ｄおよび閾値処理部１０３ｆの出力、すなわちＸ方向の加速度データの変化とＺ方向の加速度データの変化からコントローラ２の長手方向を軸とした回転周期を検出する回転周期検出部１０３ｊと、同じく閾値処理部１０３ｄおよび閾値処理部１０３ｆの出力からコントローラ２の長手方向を軸とした、素早く回転しながら投げ上げた場合の状態を検出する回転投げ検出部１０３ｋとを備えている。更に、加速度変化解釈部１０３は、振動周期検出部１０３ｇ〜１０３ｉ、回転周期検出部１０３ｊ、回転投げ検出部１０３ｋの出力から、所定の操作ルールに基づいてテンポおよび／もしくはピッチを変更するテンポ・ピッチ変更部１０３ｌを備えている。
【００３１】
図３は加速度変化の例を示す図であり、（ａ）はコントローラ２を左右・前後・上下のいずれかの方向に振った場合の、該当する方向の加速度データの変化を示している。加速度変化解釈部１０３の振動周期検出部１０３ｇ〜１０３ｉは、この加速度データの変化から該当する方向の振動の周期を検出し、テンポ・ピッチ変更部１０３ｌは、例えば、上下方向（Ｚ方向）の振動をテンポに対応付け、現時点のテンポと比較して速い場合はテンポを徐々に速くし、反対に遅い場合はテンポを徐々に遅くしていく。
【００３２】
（ｂ）はコントローラ２を長手方向を軸として左回転（Ｙ軸を中心にして左回転）させた場合のＸ方向加速度とＺ方向加速度の加速度データの変化を示している。コントローラ２の３次元加速度センサ２２は重力加速度を検出するため、回転に伴ってＸ方向加速度とＺ方向加速度の加速度データの波形の位相差が生じ、右回転か左回転かを検出することができる。テンポ・ピッチ変更部１０３ｌは、例えば、右回転をピッチ上昇に対応させ、左回転をピッチ下降に対応させることで、右回転が検出された場合は回転周期に応じてピッチを徐々に高くし、左回転が検出された場合は回転周期に応じてピッチを徐々に低くしていく。
【００３３】
（ｃ）はコントローラ２を長手方向を軸として素早く回転（Ｙ軸を中心にして回転）させながら投げ上げた場合のＸ方向加速度もしくはＺ方向加速度の加速度データの変化を示している。コントローラ２を素早く回転させた場合には、３次元加速度センサ２２に重力加速度よりも大きな遠心力が加わり、所定の時間Ｔを超える時間τの加速度が予め設定した加速度ａを超えてほぼ一定になる期間が存在することから、このような回転投げを検出することができる。ただし、遠心力により加速度が加速度ａを越えてほぼ一定になる期間はＸ方向加速度とＺ方向加速度の加速度データでほぼ同時に起こるため、この期間の加速度データの変化の位相差から回転方向は検出できない。しかし、回転投げの直前には緩やかな回転が伴うため、これを回転投げの回転方向とすることができる。テンポ・ピッチ変更部１０３ｌは、例えば、回転投げにおける高速回転時に対して、右回転を急激なピッチ上昇、左回転を急激なピッチ下降といった変化をするように制御プログラムを予め設定しておき、右回転の回転投げが検出された場合はピッチを急激に上昇させ、左回転の回転投げが検出された場合はピッチを急激に下降させる。このようにすることで、音声の再生でグリッサンドのような効果を出すことができる。
【００３４】
なお、図２（ｂ）の加速度変化解釈部１０３の構成では、プレイヤによる操作の困難さから、Ｘ軸を中心としたコントローラ２の回転や、Ｚ軸を中心としたコントローラ２の回転を検出する構成を有していないが、そのような操作が想定される場合には、上述した原理に基づいて同様に検出し、テンポ・ピッチの制御に用いることが可能である。
【００３５】
図１に戻り、グラニュラーシンセシス処理部１０５の取り出し開始位置更新部１０６は、窓関数０値判定部１１３の窓関数０値判定の時点で、取り出し開始位置の基準としてその時点のロケータ値を取り出し開始位置設定部１０７に伝えて取り出し開始位置の更新を指示する。ロケータ値はテンポに応じた速さで増加（ロケータがテンポに応じた速度で移動）しており、窓関数が０値になったタイミングのときのロケータ値が新たな取り出し開始位置の基準とされる。図４はロケータおよび取り出し位置更新の説明図であり、（ａ）は例としてテンポ「１」の場合、（ｂ）は例としてテンポ「２」の場合を示している。（ａ）のテンポ「１」の場合、ロケータ値は処理時実時間と同じ値となる。（ｂ）のテンポ「２」の場合、ロケータ値は処理時実時間の２倍の値となる。例えば、１秒間（１０００〔msec〕）の音声ファイルが０（先頭位置）〜１０００（終端位置）であるとすれば、テンポ「１」のときには処理時実時間が１〔msec〕で「１」増加し、テンポ「２」であれば処理時実時間が１〔msec〕で「２」増加する。
【００３６】
図４において、いずれの場合も、取り出し開始位置更新部１０６は窓関数周期の後端の窓関数が０値となる時点（基本となるグレイン（オーバラップの場合の先頭のグレイン）の再生が終了した時点）で取り出し位置更新を取り出し開始位置設定部１０７に指示する。例えば、再生しているグレイン長が１００〔msec〕でピッチが「１」であれば、窓関数は１００〔msec〕の周期で０値を取るので、テンポ「１」のときには基準が「１００」ずつ移動することになり、テンポ「２」のときには、基準は「２００」ずつ移動することになる。
【００３７】
図１に戻り、取り出し開始位置設定部１０７は、音声ファイルの先頭もしくは取り出し開始位置更新部１０６から取り出し開始位置更新を指示された時点で取り出し開始位置を設定する。取り出し開始位置設定部１０７は、音声ファイルの先頭から処理する場合はその先頭位置を取り出し開始位置とし、取り出し開始位置更新部１０６から取り出し開始位置更新を指示された場合は、ランダマイズ値に基づいて、取り出し開始位置更新部１０６から与えられた取り出し開始位置の基準（ロケータ値）からランダムに位置を前後させる。例えば、ランダマイズ値が「０」のときは基準の取り出し開始位置がそのまま取り出し開始位置となる。ランダマイズ値が「１０」のときは、基準の取り出し開始位置に対して−１０〜＋１０〔msec〕の範囲でランダムに決定された位置が取り出し開始位置となる。取り出し開始位置をランダマイズすることで、規則正しく取り出し開始位置を設定する場合に比べて聞き手に対する自然感が増すことが確認されている。なお、ランダマイズ値は次のグレインの取り出し開始位置が直前のグレインの取り出し開始位置より前になってしまわないようにする必要があり、
グレイン長  ×  テンポ  ÷  ピッチ
を超えないように設定される。これにより、取り出し開始位置が、時間の進行に沿って、戻ることなく移動していくこととなり、楽曲等の音声を時間軸に沿って忠実に再生することができる。
【００３８】
なお、ランダマイズ値は制御テーブル１０８から現時点のテンポ・ピッチに対応する値を取得することで、テンポやピッチを変化させた場合の音質をきめ細かく維持することができる。ただし、音質に特に問題がない場合は、ランダマイズ値として固定的な値を設定してもよい。
【００３９】
図５は制御テーブル１０８の例を示す図であり、テンポ、ピッチに対応したランダマイズ値およびグレイン長が設定されている。なお、テンポもしくはピッチのいずれかにのみランダマイズ値およびグレイン長を対応させてもよく、ランダマイズ値とグレイン長を個別にテンポもしくはピッチに対応させてもよい。
【００４０】
図１に戻り、グレイン長設定部１０９は、音声ファイルの先頭もしくは窓関数０値判定部１１３が窓関数０値を判定した時点でグレイン長を設定する。グレイン長は制御テーブル１０８から現時点のテンポ・ピッチに対応する値を取得することで、テンポやピッチを変化させた場合の音質をきめ細かく維持することができる。ただし、音質に特に問題がない場合は、グレイン長として固定的な値を設定してもよい。
【００４１】
図６はグレイン長についての制御テーブル１０８の例を示す図であり、（ａ）はデータ構造例、（ｂ）はテンポに対するグレイン長（制御テーブル１０８に記述された値の中間値は線形補間）を表している。すなわち、テンポ「０」ではグレイン長：７０〔msec〕であり、テンポ「±０．５」ではグレイン長：８０〔msec〕であり、テンポ「±１」以上ではグレイン長：１００〔msec〕とした例である。なお、テンポにのみグレイン長を対応付けた例について説明したが、ピッチとの組み合わせ、もしくはピッチのみにグレイン長を対応付けてもよい。
【００４２】
図１に戻り、オーバラップ位相設定部１１０はオーバラップの個数に応じて、位相差を設定する。オーバラップの個数は通常は４〜１６個程度である。図７はオーバラップの例を示す図であり、オーバラップの個数を４としたものである。この場合、先頭のグレインからグレイン長の１／４の位相差で合計４個のグレインを取り出すことになり、各グレインは再生時に窓関数処理を行った後に合成される。
【００４３】
オーバラップは窓関数処理の弊害を除去するためのものである。すなわち、図８は窓関数の例を示す図であり、（ａ）に示すように取り出したグレインは両端が任意のレベルを持つものであるため、前後のグレインと連結した場合にレベルの急激変化からノイズを発生する要因になる。そのため、グレインの波形に窓関数を掛け合わせる窓関数処理を行い、グレインの両端を０レベルに収束させている。窓関数はグレインの再生時に利用され、グレインの再生時の長さと一致するよう同期が取られる。すなわち、グレイン長は、ピッチ等に応じて取り出し時と再生時とで長さ（周期）が異なることがあるが、窓関数の長さ（周期）は、常に再生時のグレイン長と一致する。窓関数としては種々の形を用いることができ、その例を（ｂ）〜（ｄ）に示してある。
【００４４】
窓関数はこのようにノイズ発生防止のために用いられるものであるが、全てのグレインの両端が０レベルであると、グレインの周期で音声が途切れて聞こえてしまうことになる。そこで、個々のグレインにつきオーバラップを行うことで、音声が途切れて聞こえることを防止している。
【００４５】
図１に戻り、グレイン取り出し部１１１は、取り出し開始位置設定部１０７により設定された取り出し開始位置（音声ファイルの先頭の場合を除いてランダマイズ後の取り出し開始位置）から、グレイン長設定部１０９により設定されたグレイン長で、オーバラップ位相設定部１１０により設定された位相により、複数のグレインを音声ファイルから取り出す。グレインの取り出しは音声ファイル上のデジタルデータの開始位置と終了位置を指定して作業領域（メモリ）にコピーするだけの操作であり、再生時間とは無関係に瞬時に行われる。
【００４６】
次いで、再生／窓関数処理部１１２は、取り出した個々のグレイン毎に、コントローラ操作判定部１０２から与えられるピッチに基づく速度（グレイン長をピッチで除した長さで再生する速度。ピッチ「１」の場合は記録時と等速、ピッチ「２」の場合は２倍速等）で再生しつつ、グレイン毎に所定の窓関数を掛け合わせる窓関数処理を行って合成する。
【００４７】
図９はグレイン取り出しおよび再生の例を示す図であり、グレイン長は１００〔msec〕とし、（ａ）はテンポ「１」、ピッチ「１」の場合、（ｂ）はテンポ「０．５」、ピッチ「２」の場合、（ｃ）はテンポ「２」、ピッチ「２」の場合である。なお、図の難解さを招かないよう、取り出し開始位置のランダマイズとオーバラップについては省略してある。
【００４８】
（ａ）では、テンポ「１」のためロケータ値と処理時実時間は一致しており、ピッチ「１」のため、取り出したグレインは記録時と同じ速度で再生され、連続してグレインの取り出しおよび再生が行われていく。
【００４９】
（ｂ）では、テンポ「０．５」のためロケータ値０〜１０００に対して処理時実時間は０〜２０００〔msec〕となり、ピッチ「２」のため、取り出したグレインは記録時の２倍の速度で再生（再生グレイン長＝窓関数の長さ＝１００〔msec〕÷２〔pitch〕＝５０〔msec〕）され、最初のグレインの取り出しからロケータ値が２５で、前のグレインと重畳的に次のグレインの取り出しが行われて再生されていく。すなわち、最初に再生されるグレインはロケータ上の０〜１００から取り出され、次に（５０〔msec〕後に）再生されるグレインはロケータ上の２５〜１２５から取り出される。
【００５０】
（ｃ）では、テンポ「２」のためロケータ値０〜１０００に対して処理時実時間は０〜５００〔msec〕となり、ピッチ「１」のため取り出したグレインは記録時と同じ速度で再生され、前のグレインの取り出しからロケータ値が２００で、前のグレインとは空白期間をおいて次のグレインの取り出しが行われて再生されていく。なお、この場合、音声ファイルのデータに欠落が生じるが、グレイン長は短いため、音質に与える影響は少ない。また、影響がある場合には、テンポ・ピッチに応じたグレイン長の制御が行われるため、所定の音質に収まるように制御することが可能である。
【００５１】
なお、図示しないテンポ・ピッチの組み合わせについては、ロケータ値と処理時実時間の関係は変わるものの、上述した（ａ）〜（ｃ）のいずれかのパターンになる。特殊な場合としては、通常１つのグレインは１回のみ再生するが、テンポ「０」の場合、取り出し開始位置の更新が行われず、同じグレインが繰り返し再生されることになる。
【００５２】
また、ロケータが正方向に移動する場合について図示したが、ロケータ値をテンポに応じた速さで減少するようにすれば、負方向にも移動するように設定することができる。この場合、テンポに応じた速さで逆再生することになる。
【００５３】
加えて、テンポ、ピッチによりグレイン長および／もしくはランダマイズ値を制御する例について触れたが、取り出す楽曲等の部分（位置）と、グレイン長および／もしくはランダマイズ値との相関を制御テーブル（１０８）として設定しておき、取り出し開始位置の基準（ロケータ値）の位置に応じて、グレイン長および／もしくはランダマイズ値が調整されるようにすることもできる。
【００５４】
また、上記実施形態では、グラニュラーシンセシス処理部１０５を含むゲーム装置１とコントローラ２とは別体であり、互いに無線通信を行うものであったが、これを有線通信としたり、あるいは、一体としてゲーム装置がコントローラを兼ねることもできる。
【００５５】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施形態にかかるゲーム装置の構成例を示す図である。
【図２】加速度変化解釈部の構成例を示す図である。
【図３】加速度変化の例を示す図である。
【図４】ロケータおよび取り出し位置更新の説明図である。
【図５】制御テーブルの例を示す図（その１）である。
【図６】制御テーブルの例を示す図（その２）である。
【図７】オーバラップの例を示す図である。
【図８】窓関数の例を示す図である。
【図９】グレイン取り出しおよび再生の例を示す図である。
【符号の説明】
【００５７】
１          ゲーム装置
１０１      無線通信部
１０２      コントローラ操作判定部
１０３      加速度変化解釈部
１０３ａ    Ｘ方向加速度取得部
１０３ｂ    Ｙ方向加速度取得部
１０３ｃ    Ｚ方向加速度取得部
１０３ｄ    閾値処理部
１０３ｅ    閾値処理部
１０３ｆ    閾値処理部
１０３ｇ    振動周期検出部
１０３ｈ    振動周期検出部
１０３ｉ    振動周期検出部
１０３ｊ    回転周期検出部
１０３ｋ    回転投げ検出部
１０３ｌ    テンポ・ピッチ変更部
１０４      ゲーム制御部
１０５      グラニュラーシンセシス処理部
１０６      取り出し開始位置更新部
１０７      取り出し開始位置設定部
１０８      制御テーブル
１０９      グレイン長設定部
１１０      オーバラップ位相設定部
１１１      グレイン取り出し部
１１２      再生／窓関数処理部
１１３      窓関数０値判定部
１１４      グレイン長更新部
１１５      メモリ
１１６      メディア
１１７      メディア読み出し部
１１８      マイク
１１９      Ａ／Ｄ変換部
１２０      エフェクタ部
１２１      パンニング部
１２２      エフェクタ部
１２３      音量変更部
１２４      Ｄ／Ａ変換部
１２５      スピーカ
２          コントローラ
２１        操作スイッチ
２２        ３次元加速度センサ
２３        無線通信部
【図１】
0005034976.tif 000002
【図２】
0005034976.tif 000003
【図３】
0005034976.tif 000004
【図４】
0005034976.tif 000005
【図５】
0005034976.tif 000006
【図６】
0005034976.tif 000007
【図７】
0005034976.tif 000008
【図８】
0005034976.tif 000009
【図９】
0005034976.tif 000010