(57)【要約】【課題】プレイヤによって入力された音声を用いてゲームの効果音を容易に生成する。【解決手段】ゲーム装置は、プレイヤに対して音声入力を促すための通知を行う。通知の後、音声入力手段に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得する。さらに、音声データが取得される度に、取得された音声データが所定の選出条件を満たすか否かを判定する。そして、判定ステップにおいて選出条件を満たすと判定された音声データのみを選出音声データとして記憶手段に保存する。ゲーム装置は、ゲームキャラクタが話す様子を表すゲーム画像が表示手段に表示されているタイミングにおいて、選出音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を音声出力手段から出力させる。【選択図】図３
2007330519.tif 000002
【特許請求の範囲】
【請求項１】
音声入力手段と、音声出力手段と、表示手段と、記憶手段とを備えるゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
プレイヤに対して音声入力を促すための通知を行う通知ステップと、
前記通知ステップの後、前記音声入力手段に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得する取得ステップと、
前記取得ステップにおいて前記音声データが取得される度に、取得された音声データが所定の選出条件を満たすか否かを判定する判定ステップと、
前記判定ステップにおいて前記選出条件を満たすと判定された音声データのみを選出音声データとして前記記憶手段に保存する第１記憶制御ステップと、
前記ゲームキャラクタが話す様子を表すゲーム画像が前記表示手段に表示されているタイミングにおいて、前記選出音声データの少なくとも一部を用いてゲームキャラクタの声を表す効果音を前記音声出力手段から出力させる音声出力ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項２】
前記第１記憶制御ステップにおいて、前記コンピュータは、前記選出音声データを前記記憶手段の第１領域に記憶させ、
前記ゲームプログラムは、前記選出音声データのうちからいくつかの選出音声データを所定の基準に従って選出して前記記憶手段の第２領域に保存する第２記憶制御ステップをさらに前記コンピュータに実行させ、
前記音声出力ステップにおいて、前記コンピュータは、前記第２領域に記憶されている選出音声データの少なくとも一部を用いて前記効果音を生成する、請求項１に記載のゲームプログラム。
【請求項３】
前記通知ステップは複数回実行され、
前記ゲームプログラムは、新たな通知ステップが実行される前に、前回の通知ステップの実行後から当該新たな通知ステップの実行前までの間に前記第１領域に記憶された音声データを削除する削除ステップを前記コンピュータにさらに実行させる、請求項２に記載のゲームプログラム。
【請求項４】
前記ゲームプログラムは、前記通知ステップが実行された後、通知ステップの実行後において前記記憶手段に記憶された選出音声データが所定量以上となったか否かを判定する終了判定ステップを前記コンピュータにさらに実行させ、
前記取得ステップは、前記終了判定ステップにおける判定結果が肯定となったことを条件として音声データの取得を終了する、請求項１に記載のゲームプログラム。
【請求項５】
前記ゲームプログラムは、前記通知ステップが実行された後、通知ステップの実行後において所定個数の音声データについて連続して前記判定ステップにおける判定結果が否定となったか否かを判定する終了判定ステップを前記コンピュータにさらに実行させ、
前記取得ステップは、前記終了判定ステップにおける判定結果が肯定となったことを条件として音声データの取得を終了する、請求項１に記載のゲームプログラム。
【請求項６】
前記選出条件は、前記取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となることである、請求項１に記載のゲームプログラム。
【請求項７】
前記選出条件は、前記取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となる音声データが所定の下限回数以上連続して取得されたことである、請求項１に記載のゲームプログラム。
【請求項８】
前記第１記憶制御ステップにおいて、前記コンピュータは、前記取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となる音声データが所定の上限回数だけ連続して取得されたとき、当該取得された上限回数に等しい個数の音声データを１つの選出音声データとして前記記憶手段に記憶させる、請求項１または請求項７に記載のゲームプログラム。
【請求項９】
前記通知ステップにおいて、前記コンピュータは、プレイヤに対する質問を前記表示手段または前記音声出力手段に出力する、請求項１に記載のゲームプログラム。
【請求項１０】
音声入力手段と、音声出力手段と、表示手段と、記憶手段とを備えるゲーム装置であって、
プレイヤに対して音声入力を促すための通知を行う通知手段と、
前記通知の後、前記音声入力手段に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得する取得手段と、
前記取得ステップにおいて前記音声データが取得される度に、取得された音声データが所定の選出条件を満たすか否かを判定する判定手段と、
前記判定ステップにおいて前記選出条件を満たすと判定された音声データのみを選出音声データとして前記記憶手段に保存する記憶制御手段と、
前記ゲームキャラクタが話す様子を表すゲーム画像が前記表示手段に表示されているタイミングにおいて、前記選出音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を前記音声出力手段から出力させる音声出力制御手段とを備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、録音したプレイヤの声をゲームキャラクタの会話音声として利用するゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来、キャラクタの話し声等の効果音を出力するために、予め用意された音声データを音源として用いて、人間が話しているかのような効果音を出力する技術が知られている。特許文献１に記載の技術では、再生内容に依存して再生に変化を付けることが可能な音声再生装置が開示されている。この音声再生装置は、予め用意された音声情報を特定の区切りで分割し、分割された各情報に制御情報を付しておくことによって、再生内容に応じた変化を付けて音声再生を行うものである。
【０００３】
また、特許文献２には、キャラクタ等の会話の音声を出力する合成音声出力装置が開示されている。この装置は、各文字に対応する音声データを文字毎に音源として予め用意しておく。そして、音声を再生する際には、連続して再生される２つ音声データをオーバーラップして再生する。これによって、人間が話しているかのような音声を出力することができる。
【特許文献１】特開平１０−３２０９２９号公報
【特許文献２】特開２００２−７３０６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、プレイヤによって入力された音声を音源として用いて、ゲームに登場するキャラクタがそのゲームの世界における架空の言語を話す場合の効果音（話声）を出力する場合を考える。なお、この場合の効果音は、架空の言語を話しているようにプレイヤに聞こえることが目的であるので、言葉として意味のある音声ではなく、言葉として意味のない音声となることが好ましい。このような言葉として意味のない音声を出力するためには、特許文献２に記載されているように各文字に対応する音声データを用意する方法が考えられる。すなわち、各文字に対応する音声データをプレイヤに入力させるのである。しかし、この方法では、意味のない多くの音声をプレイヤに入力させる必要があるので、この方法はプレイヤにとって非常に面倒である。なお、特許文献１は、用意される音源に対して種々の処理を行って再生することによって、再生音声に変化を付けることが記載されている。しかし、特許文献１においては、プレイヤからの入力によって音源を取得することや、音源を生成するためにどのような処理を行うかについては、想定されていない。
【０００５】
それ故、本発明の目的は、プレイヤによって入力された音声を用いてゲームの効果音を容易に生成することができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００７】
第１の発明は、音声入力手段（マイク３３）と、音声出力手段（スピーカ３０ａおよび３０ｂ）と、表示手段（第１ＬＣＤ１１または第２ＬＣＤ１２）と、記憶手段（ＲＡＭ２４）とを備えるゲーム装置（１０）のコンピュータ（ＣＰＵコア２１）において実行されるゲームプログラム（６１）である。ゲームプログラムは、通知ステップ（ステップＳ１２）と、取得ステップ（ステップＳ２１）と、判定ステップ（ステップＳ２２およびＳ３０）と、第１記憶制御ステップ（ステップＳ２７およびＳ３２）と、音声出力ステップ（ステップＳ７）とをコンピュータに実行させる。通知ステップにおいては、プレイヤに対して音声入力を促すための通知を行う。取得ステップにおいては、通知ステップの後、音声入力手段に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得する。判定ステップにおいては、取得ステップにおいて音声データが取得される度に、取得された音声データが所定の選出条件を満たすか否かを判定する。第１記憶制御ステップにおいては、判定ステップにおいて選出条件を満たすと判定された音声データのみを選出音声データとして記憶手段に保存する。音声出力ステップにおいては、ゲームキャラクタが話す様子を表すゲーム画像が表示手段に表示されているタイミングにおいて、選出音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を音声出力手段から出力させる。
【０００８】
また、第２の発明においては、記憶制御ステップにおいて、コンピュータは、選出音声データを記憶手段の第１領域（選出音声バッファ４２）に記憶させてもよい。このとき、ゲームプログラムは、選出音声データのうちからいくつかの選出音声データを所定の基準に従って選出して記憶手段の第２領域（合成用音声バッファ４３）に保存する第２記憶制御ステップをさらにコンピュータに実行させる。音声出力ステップにおいて、コンピュータは、第２領域に記憶されている選出音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を生成する。
【０００９】
また、第３の発明においては、通知ステップは複数回実行されてもよい。このとき、ゲームプログラムは、新たな通知ステップが実行される前に、前回の通知ステップの実行後から当該新たな通知ステップの実行前までの間に第１領域に記憶された音声データを削除する削除ステップ（ステップＳ４７）をコンピュータにさらに実行させる。
【００１０】
また、第４の発明においては、ゲームプログラムは、通知ステップが実行された後、通知ステップの実行後において記憶手段に記憶された選出音声データが所定量以上となったか否かを判定する終了判定ステップ（ステップＳ２９）をコンピュータにさらに実行させてもよい。このとき、取得ステップは、終了判定ステップにおける判定結果が肯定となったことを条件として音声データの取得を終了する、請求項１に記載のゲームプログラム。
【００１１】
また、第５の発明においては、ゲームプログラムは、通知ステップが実行された後、通知ステップの実行後において所定個数の音声データについて連続して判定ステップにおける判定結果が否定となったか否かを判定する終了判定ステップ（ステップＳ３７）をコンピュータにさらに実行させてもよい。このとき、取得ステップは、終了判定ステップにおける判定結果が肯定となったことを条件として音声データの取得を終了する。
【００１２】
また、第６の発明においては、選出条件は、取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となることであってもよい。
【００１３】
また、第７の発明においては、選出条件は、取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となる音声データが所定の下限回数以上連続して取得されたことであってもよい。
【００１４】
また、第８の発明においては、第１記憶制御ステップにおいて、コンピュータは、取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となる音声データが所定の上限回数だけ連続して取得されたとき、当該取得された上限回数に等しい個数の音声データを１つの選出音声データとして記憶手段に記憶させてもよい。
【００１５】
また、第９の発明においては、通知ステップにおいて、コンピュータは、プレイヤに対する質問を表示手段または音声出力手段に出力してもよい。
【００１６】
また、本発明は、上記ゲームプログラムを実行することによって実現される機能と同等の機能を有するゲーム装置の形態で提供されてもよい。
【発明の効果】
【００１７】
第１の発明によれば、プレイヤによって入力された音声を取得し、選出条件を満たす音声データのみを保存する。そして、ゲームキャラクタが話す様子が表示されるタイミングで選出音声データを用いて効果音を出力させる。これによって、プレイヤの声を用いて、プレイヤキャラクタの話し声の効果音を容易に出力することができる。また、第１の発明によれば、取得された音声データはリアルタイムに処理され、必要な音声データのみが保存されるので、ゲーム装置の記憶手段を効率良く使用することができる。
【００１８】
第２の発明によれば、選出音声データのうちから、所定の基準に従ってさらに音声データを選出することによって、効果音に用いるのに適した音声データを生成することができる。
【００１９】
第３の発明によれば、第１領域には、１回の通知によって取得される選出音声データのみが記憶されることとなる。したがって、第１領域として用いる記憶領域を低減することができ、記憶手段の記憶領域を効率良く使用することができる。
【００２０】
第４の発明によれば、十分なデータ量の選出音声データが取得された時点で入力音声の取得を終了する。これによって、プレイヤに不要に長い時間音声入力を行わせることがないので、音声入力作業によるプレイヤの負担を軽減することができる。
【００２１】
第５の発明によれば、プレイヤによる音声入力が終了したと推定される時点で入力音声の取得を終了する。これによって、プレイヤに余計な待ち時間を与えることなく、次の処理を実行することができる。
【００２２】
第６の発明によれば、例えば音声のボリュームが小さい音声信号等、効果音の再生に用いるのに不適切な音声データを選出音声データから除去することができる。
【００２３】
第７の発明によれば、音声信号の長さが短すぎるため、効果音の再生に用いるのに不適切な音声データを選出音声データから除去することができる。
【００２４】
第８の発明によれば、選出音声データにより表される音声信号の長さが所定長さ以下となるように選出音声データを区切って保存することができる。これによって、１つの選出音声データにより表される音声を言葉として無意味な内容のものにすることができる。例えば、キャラクタが架空の言語を話す効果音を再生する場合には、各選出音声データを無意味なものにすることによって、当該効果音をより自然に聞こえるようにすることができる。
【００２５】
第９の発明によれば、画面表示や音声出力による質問に対して回答を行う形式でプレイヤに音声入力を行わせることによって、音声を入力する作業の面倒さをプレイヤに意識させずに音声入力を行わせることができる。また、プレイヤは任意の回答を行うことができるので、入力すべき言葉をゲーム装置が決める場合に比べてゲームの興趣性を損うこともない。
【発明を実施するための最良の形態】
【００２６】
（第１の実施形態）
以下、図面を参照して、本発明の一実施形態に係るゲーム装置およびゲームプログラムについて説明する。図１は、ゲーム装置１０の外観図である。図１において、ゲーム装置１０は、表示手段である第１ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２ＬＣＤ１２、ハウジング１３、操作スイッチ部１４、ならびに、タッチパネル１５を含む。また、ゲーム装置１０は、音声出力手段であるスピーカ３０ａおよび３０ｂ（図２）、および、音声入力手段であるマイク３３（図２）を含む。
【００２７】
ハウジング１３は上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されており、第１ＬＣＤ１１は上側ハウジング１３ａに収納され、第２ＬＣＤ１２は下側ハウジング１３ｂに収納される。第１ＬＣＤ１１および第２ＬＣＤ１２の解像度はいずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【００２８】
上側ハウジング１３ａには、１対のスピーカ３０ａおよび３０ｂからの音を外部に放出するための音抜き孔１８ａ、１８ｂが形成されている。
【００２９】
下側ハウジング１３ｂには、入力装置として、操作スイッチ部１４、すなわち、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、Ｙボタン１４ｇ、Ｌボタン１４Ｌ、およびＲボタン１４Ｒが設けられている。また、さらなる入力装置として、第２ＬＣＤ１２の画面上にタッチパネル１５が装着されている。下側ハウジング１３ｂには、第２ＬＣＤ１２の周囲に音孔３３ａが設けられる。マイク３３はこの音孔付近のハウジング１３ｂ内部側に設けられ、音孔３３ａから入ってくるハウジング外部の音を入力して電気信号（音声信号）に変換する。下側ハウジング１３ｂには、電源スイッチ１９や、メモリカード１７やスティック１６を収納するための挿入口が設けられている。
【００３０】
タッチパネル１５としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル１５は、その表面をスティック１６で触れると、その接触位置に対応する座標データを出力する機能を有している。なお、以下ではプレイヤがタッチパネル１５をスティック１６で操作するものとして説明を行うが、スティック１６の代わりにペン（スタイラスペン）や指でタッチパネル１５を操作することももちろん可能である。本実施形態では、タッチパネル１５として、第２ＬＣＤ１２の解像度と同じく２５６ｄｏｔ×１９２ｄｏｔの解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１５の解像度と第２ＬＣＤ１２の解像度が一致している必要はない。
【００３１】
メモリカード１７はゲームプログラムを記録した記録媒体であり、下部ハウジング１３ｂに設けられた挿入口に着脱自在に装着される。
【００３２】
次に、図２を参照してゲーム装置１０の内部構成を説明する。図２において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４、およびＬＣＤコントローラ３１が接続される。コネクタ２３には、メモリカード１７が着脱自在に接続される。メモリカード１７は、ゲームプログラムを記憶するＲＯＭ１７ａと、バックアップデータを書き換え可能に記憶するＲＡＭ１７ｂを搭載する。メモリカード１７のＲＯＭ１７ａに記憶されたゲームプログラムは、ゲーム装置１０の記憶手段であるＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＲＡＭ２４には、ゲームプログラムの他にも、ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。
【００３３】
Ｉ／Ｆ回路２５には、操作スイッチ部１４、タッチパネル１５、右スピーカ３０ａ、左スピーカ３０ｂ、および、マイク３３が接続される。右スピーカ３０ａと左スピーカ３０ｂは、音抜き孔１８ａ、１８ｂの内側にそれぞれ配置される。ゲームの効果音等を出力する際、ＣＰＵコア２１は、ＲＡＭ２４等に記憶された音声データ（音源）をＩ／Ｆ回路２５から図示しないＡ／Ｄ変換回路やアンプ等を介して各スピーカ３０ａおよび３０ｂへ出力する。これによって、各スピーカ３０ａおよび３０ｂは音声データにより表される音声を出力する。また、マイク３３に入力された音声を示す音声データは、Ｉ／Ｆ回路２５を介してＲＡＭ２４に記憶される。
【００３４】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されているゲーム画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２のゲーム画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００３５】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１ＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２ＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２ＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１ＬＣＤ１１に出力する。
【００３６】
なお、上記のようなゲーム装置１０の構成は単なる一例に過ぎず、本発明は、音声入力手段、音声出力手段、表示手段、および記憶手段を備える任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード１７などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【００３７】
次に、本実施形態においてゲーム装置１０において実行される処理について説明する。本実施形態では、ゲームに登場するキャラクタの話し声を表す効果音にプレイヤの声を用いるゲームを想定する。例えば、プレイヤが操作するプレイヤキャラクタの話し声を表す効果音にプレイヤ自身の声を用いることによって、プレイヤキャラクタに対する親近感をプレイヤに持たせることができる。なお、ここでは、キャラクタはそのゲーム世界における架空の言語を話すことを想定する。したがって、キャラクタの話し声の効果音は、架空の言語を話しているようにプレイヤに聞こえることが目的であるので、意味のある言葉の音声ではなく、言葉として意味のない音声となることが好ましい。
【００３８】
本実施形態では、ゲーム装置１０は、例えばゲームの開始前（ゲーム中の適宜のタイミングでもよい）にプレイヤに音声を入力させることによって、プレイヤの声の音声データを取得する。詳細は後述するが、取得された音声データは、話し声を表す効果音として用いるのに適した形でＲＡＭ２４に記憶される。記憶された音声データは、ゲーム中においてキャラクタが話すタイミング、すなわち、キャラクタが話をする様子を示す画像が第１ＬＣＤ１１または第２ＬＣＤに表示されるタイミングでスピーカ３０ａおよび３０ｂから出力される。これによって、キャラクタの話し声を表す効果音をプレイヤの音声を用いて出力することができる。以下では、プレイヤによって入力された音声データを記憶する処理、および、記憶された音声データを用いて効果音を出力する処理を中心にゲーム処理を説明する。
【００３９】
まず、ゲーム装置１０における処理の概要を、図３〜図５を参照して説明する。図３は、本実施形態におけるゲーム処理の概要を説明する図である。図３に示すように、ゲーム装置１０は、プレイヤの音声を取得して記憶するために、入力音声バッファ４１、選出音声バッファ４２、および合成用音声バッファ４３という３つのバッファをＲＡＭ２４に設ける。入力音声バッファ４１は、マイク３３に入力されたプレイヤの音声を表す音声データ（入力音声データ）を格納するための記憶領域である。以下では、入力音声バッファ４１に格納されている音声データを「入力音声データ」と呼ぶ。選出音声バッファ４２は、入力音声データが所定の選出条件を満たす場合に当該入力音声データを格納するための記憶領域である。以下では、選出音声バッファ４２に格納されている音声データを「選出音声データ」と呼ぶ。合成用音声バッファ４３は、選出音声データのうちから所定の基準に従って選出された選出音声データを格納するための記憶領域である。以下では、合成用音声バッファ４３に格納されている音声データを「合成用音声データ」と呼ぶ。つまり、合成用音声データとは、選出音声データのうちから所定の基準に従って選出された選出音声データのことである。
【００４０】
プレイヤに音声入力を行わせる際、ゲーム装置１０は、音声入力をプレイヤに対して促すための通知を行う。本実施形態では、ゲーム装置１０は、プレイヤに対する質問を当該通知として第１ＬＣＤ１１または第２ＬＣＤ１２に表示させる。図４は、質問が表示された画面の一例を示す図である。図４に示すように、画面には、「質問に声で答えて下さい。」という文章４６が表示されるとともに、「今日は何曜日ですか？」という質問文４７が表示される。なお、本実施形態では、質問は複数回行われる。図４において質問文４７の上側に表示される「質問１」とは、１つ目の質問であることを示している。図４に示すような画面が表示されたことに応じて、プレイヤは、質問に答える形でマイク３３に対して音声を入力する。このように、質問に対して回答を行う形式でプレイヤに音声入力を行わせることによって、ゲーム装置１０は、音声を入力する作業をプレイヤに意識させずに行わせることができる。例えば、５０音の各文字を順にプレイヤに入力させる方法も考えられるが、この方法ではプレイヤが入力を面倒に感じるおそれがある。また、本実施形態では、ゲーム装置１０は、質問を画面に表示することによって上記通知を行ったが、他の実施形態では、質問を音声出力することによって上記通知を行ってもよい。また、ゲーム装置１０は、質問に対して回答を行う形式以外にも、例えば、所定の単語をプレイヤに音声入力させる指示を行うようにしてもよい。
【００４１】
図３の説明に戻り、上記通知が行われた後、ゲーム装置１０は、音声データ格納処理（図８のステップＳ１３参照）を実行する。音声データ格納処理として、まず、音声入力の取得処理が実行される。すなわち、ゲーム装置１０はマイク３３に対する音声入力を取得する。これによって、入力音声バッファ４１には上記入力音声データが格納される。本実施形態では、入力音声バッファ４１は、所定時間長の音声信号に相当するデータ量の音声データを格納可能な大きさに設定される。なお、図３に示すように、所定時間は例えば１フレーム時間（１／６０秒）とする。したがって、入力音声バッファ４１には、１フレーム分の音声信号に相当する音声データが格納される。また、入力音声バッファ４１の内容は、マイク３３によって所定時間長の音声信号が取得される度に逐次更新される。以下では、入力音声バッファ４１に格納される１フレーム分の入力音声データを１つの入力音声データとする。
【００４２】
次に、音声データ格納処理として、ゲーム装置１０は、選出音声データを格納する処理を実行する。すなわち、音声入力の取得処理の結果、入力音声バッファ４１に１フレーム分の入力音声データが格納されると、ゲーム装置１０は、所定の選出条件を満たす入力音声データを選出音声データとして選出音声バッファ４２に格納する。具体的には、ゲーム装置１０は、入力音声データが上記選出条件を満たすか否かを判定する。ここで、選出条件とは、キャラクタの声の効果音に用いるのに適当であるか否かを判定するための条件である。本実施形態において、選出条件は、次の条件ａおよび条件ｂがともに満たされることである。
（条件ａ）：振幅（ボリューム）が所定の閾値Ｖ１以上となる部分が存在すること。
（条件ｂ）：条件ａを満たす入力音声データが所定の下限回数（本実施形態では６回とする）連続して取得されること。
以下、図５を用いて、選出条件を入力音声データに適用した場合の具体例を説明する。
【００４３】
図５は、選出条件を説明するための図である。図５に示すグラフは、プレイヤによって入力された音声信号の波形を示し、当該グラフの横軸は時間［ｔ］を示し、縦軸は振幅［Ｖ］を示す。また、図５において、その内部に数字が付されたブロックは１つの入力音声データを示し、当該数字は、入力音声データが取得された順番を示す。
【００４４】
図５において、第１番目から第８番目の入力音声データは、上記選出条件を満たしている。したがって、第１番目から第８番目の入力音声データは選出音声データとして選出音声バッファ４２に格納される。また、第９番目の入力音声データは、上記条件ａを満たさないので選出されない。また、第１０番目および第１１番目の入力音声データは、上記条件ａを満たすものの、第１２番目の入力音声データが上記条件ａを満たさないので、上記条件ｂを満たさない。したがって、第１０番目および第１１番目の入力音声データは選出されない。また、第１２番目の入力音声データは上記条件ａを満たさないので選出されない。
【００４５】
なお、本実施形態では、条件ａは音声データにより表される音声信号の振幅に関する条件であったが、他の実施形態においては、条件ａに代えて、音声信号の振幅の大きさに関する変数（振幅値や振幅の平均値を含む）に関する条件を用いてもよい。つまり、音声データにより表される音声信号のボリュームが効果音の再生に用いるのに十分であるか否かを判定するものであれば、どのような条件を用いてもよい。例えば、条件ａに代えて、音声信号の振幅の平均値が所定値以上となることを条件として用いてもよい。また、他の実施形態においては、選出条件は、音声信号の振幅の大きさに関する変数に関する条件を少なくとも含むものであればよい。
【００４６】
なお、他の実施形態においては、条件ｂに代えて、次の条件ｂ’を用いるようにしてもよい。
（条件ｂ’）：上記下限回数連続して取得される入力音声データに、条件ａを満たさない入力音声データが０個または１個含まれること。
図５の例で言えば、第１番目から第１１番目の入力音声データには、条件ａを満たさない入力音声データ（第９番目の入力音声データ）が１つのみ含まれるので、第１番目から第１１番目の入力音声データは条件ｂ’を満たす。したがって、第１番目から第１１番目の入力音声データは選出音声データとして選出される。上記条件ｂを採用した場合に、選出音声データの音声信号が短くなりすぎる場合には、条件ｂ’を採用することが効果的である。
【００４７】
上記選出条件を満たすと判定された入力音声データは、選出音声データとして選出音声バッファ４２に格納される。ここでは、上記条件ｂを満たすと判定された一連の入力音声データを、１つの選出音声データとする。図５に示す例で言えば、第１番目から第８番目の入力音声データが１つの選出音声データとして格納される。
【００４８】
また、選出音声データの格納処理において、上記条件ａを満たす入力音声データが所定の上限回数（本実施形態では２０回とする）連続して取得された場合、ゲーム装置１０は、当該連続して取得された入力音声データを１つの選出音声データとして選出音声バッファ４２に格納する。つまり、ゲーム装置１０は、１つの選出音声データの長さが上記上限回数に等しい個数の入力音声データの長さ以下となるように、選出音声データを区切って格納する。例えば、条件ａを満たす入力音声データが３０回連続して取得された場合、ゲーム装置は、最初に取得された２０個の入力音声データを１つの選出音声データとして格納するとともに、後で取得された１０個の入力音声データを１つの選出音声データとして格納する。ここで、１つの選出音声データが長くなると、１つの選出音声データが意味のある音声を表してしまう（例えば、１つの単語を表してしまう）ことがある。本実施形態のゲームではキャラクタが架空の言語を話すことを想定しているので、キャラクタの話し声の中に意味のある単語が含まれていると、ゲームの想定に反することになる。そこで、本実施形態では、選出音声データを区切って格納することによって、１つの選出音声データが長くなりすぎないようにしている。これによって、キャラクタの話し声として再生される音声を無意味なものにすることができる。
【００４９】
ゲーム装置１０は、上記音声データ格納処理において、入力音声を取得する処理、および、選出音声データを格納する処理を、所定の終了条件が満たされるまで繰り返す。終了条件とは、１回の質問に対する音声入力の取得を終了するための条件である。本実施形態において、終了条件は、１回の質問に対する音声入力として十分な量の選出音声データを取得することができたか、または、１回の質問に対するプレイヤの音声入力が終了したと判断されるかのいずれかに該当することである。具体的には、終了条件は、次の条件ｃおよび条件ｄのいずれかが満たされたことである。
（条件ｃ）：今回の質問に対する音声入力によって選出音声データが所定個数取得されたこと。
（条件ｄ）：少なくとも１つの選出音声データが選出音声バッファ４２に格納されている状態において上記条件ａを満たさない入力音声データが所定回数（本実施形態では、４５回）連続して取得されたこと。
上記終了条件が満たされた場合、ゲーム装置１０は、上記音声データ格納処理を終了する。なお、図３の例では、１回の音声データ格納処理において、選出音声データ５１〜５６という６つの選出音声データが選出音声バッファ４２に格納されている。
【００５０】
なお、他の実施形態においては、上記条件ｃに代えて、今回の質問に対する音声入力によって取得された選出音声データの合計が所定のデータ量となったことを条件としてもよい。また、他の実施形態においては、条件ｄにおいて、「少なくとも１つの選出音声データが選出音声バッファ４２に格納されていること」を条件から外してもよい。
【００５１】
上記音声データ格納処理を終了すると、ゲーム装置１０は、音声データ選出処理を行う（図８のステップＳ１４参照）。音声データ選出処理は、選出音声データの中から、効果音を生成するのに適した音声データを選出する処理である。選出された音声データは、合成用音声データとして合成用音声バッファ４３に格納される。図３の例では、選出音声データ５１〜５６のうちで、選出音声データ５２，５４，および５６という３つの選出音声データが合成用音声データとして選出されている。なお、合成用音声データを選出するための基準については後述する（図１０のステップＳ４１〜Ｓ４５参照）。
【００５２】
合成用音声データを選出すると、ゲーム装置１０は、効果音を生成するために十分な量の合成用音声データが取得されたか否かを判定する。ここで、「効果音を生成するために十分な量の合成用音声データが取得された」とは、具体的には、条件ｅおよび条件ｆのいずれかが満たされたことである。
（条件ｅ）：合成用音声バッファ４３に格納されている合成用音声データの数が所定個数以上になったこと。
（条件ｆ）：合成用音声バッファ４３に格納されている合成用音声データが所定のデータ量以上となったこと。
なお、他の実施形態においては、条件ｅおよび条件ｆのいずれか一方のみを用いてもよい。
【００５３】
上記の判定の結果、十分な量の合成用音声データが取得された場合、ゲーム装置１０は、質問の提示を終了する。一方、十分な量の合成用音声データが取得されていない場合、ゲーム装置１０は、次の質問を提示し、その後、上記音声データ格納処理および音声データ選出処理を実行する。そして、十分な量の合成用音声データが取得されるまで、質問の提示を続ける。なお、予め用意された個数の質問を全て提示した場合、最初に提示された質問が再度提示される。なお、図３では、２回目以降の質問に対する音声データ格納処理および音声データ選出処理の結果、３つの合成用音声データ５７〜５９が合成用音声バッファ４３に格納されている。
【００５４】
質問の提示を終了した後、ゲーム装置１０は、ゲーム処理を行ってゲームを進行させる。そして、キャラクタが話をするタイミングでキャラクタの話し声の効果音を再生する。効果音を再生する際、ゲーム装置１０は、合成用音声バッファ４３に格納されている合成用音声データの中からいくつかをランダムに選出する。図３の例においては、合成用音声バッファ４３に格納されている６つの合成用音声データ５２，５４，５６−５９のうち、最初に合成用音声データ５７が選択され、２番目に合成用音声データ５９が選択され、３番目に合成用音声データ５６が選択されている。ゲーム装置１０は、さらに、合成用音声データを再生するために用いるシーケンスを選択する。そして、選出した各合成用音声データに対して当該シーケンスに従って変調等の処理を行った後、音声として出力する。なお、図３に示すように、再生音声としては複数の合成用音声データがつなげて再生される。合成用音声データの再生順はランダムに決定され、合成用音声バッファ４３に格納されている順とは無関係である。以上のようにして、合成用音声データを用いた効果音の再生が行われる。
【００５５】
以上のように、本実施形態においては、キャラクタの話し声を表す効果音を、プレイヤによって入力された音声を用いて生成することができる。また、入力音声データを選出音声データとして選出するか否かをリアルタイムに判定し、選出されない入力音声データをバッファに保存しないようにしている。これによって、入力音声バッファの記憶領域を低減することができ、ゲーム装置１０のメモリを効率的に使用することができる。
【００５６】
さらに、本実施形態では、選出音声データを区切って格納することによって、１つの合成用音声データの長さを２０フレーム分以下の長さにすることができる。これによって、１つの合成用音声データに含まれる音声を言葉として無意味なものにすることができるので、効果音として再生する音声を言葉として無意味なものにすることができる。したがって、本実施形態によれば、プレイヤによって入力された音声を用いて、架空の言語を話しているようなゲームの効果音を容易に生成することができる。
【００５７】
次に、ゲーム装置１０において行われるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる主なデータについて図６を用いて説明する。図６は、ゲーム装置１０のＲＡＭ２４に記憶される主なデータを示す図である。図６に示すように、ＲＡＭ２４のプログラム記憶領域６０には、ゲームプログラム６１が記憶される。ゲームプログラム６１は、ゲーム処理プログラム６２、質問出力プログラム６３、音声取得プログラム６４、選出条件判定プログラム６５、選出音声データ格納プログラム６６、終了判定プログラム６７、合成用音声データ格納プログラム６８、および、音声出力プログラム６９を含む。
【００５８】
ゲーム処理プログラム６２は、所定のゲーム処理を実行するためのプログラムである（図７のステップＳ４）。質問出力プログラム６３は、プレイヤに対して音声入力を促すための質問を出力するためのプログラムである（図８のステップＳ１２）。音声取得プログラム６４は、マイク３３に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得するためのプログラムである（図９のステップＳ２１）。選出条件判定プログラム６５は、音声取得プログラム６４によって音声データが取得される度に、取得された音声データが上記選出条件を満たすか否かを判定するためのプログラムである（図９のステップＳ２２およびＳ３０）。選出音声データ格納プログラム６６は、選出条件を満たすと判定された音声データのみを選出音声データとして上記選出音声バッファ４２に保存するためのプログラムである（図９のステップＳ２７およびＳ３２）。終了判定プログラム６７は、上記終了条件が満たされたか否かを判定するためのプログラムである（図９のステップＳ２９およびＳ３７）。合成用音声データ格納プログラム６８は、選出音声データのうちからいくつかの選出音声データを所定の基準に従って選出して上記合成用音声バッファ４３に保存するためのプログラムである（図８のステップＳ１４）。音声出力プログラム６９は、ゲームキャラクタが話す様子を表すゲーム画像が表示されているタイミングにおいて、合成用音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を出力するためのプログラムである（図７のステップＳ７）。
【００５９】
また、ＲＡＭ２４のデータ記憶領域４０には、上記入力音声バッファ４１、上記選出音声バッファ４２、上記合成用音声バッファ４３、およびシーケンス記憶領域４４が含まれる。なお、ＲＡＭ２４には、図６に示すデータの他、ゲームに登場するキャラクタの画像データや、後述する第１〜第５カウンタを示すデータ等、ゲーム処理に必要なデータが記憶される。
【００６０】
入力音声バッファ４１には上記入力音声データが記憶される。選出音声バッファ４２には上記選出音声データが記憶される。合成用音声バッファ４３には、上記合成用音声データが記憶される。シーケンス記憶領域４４は、シーケンスデータを記憶するための記憶領域である。シーケンス記憶領域４４には、少なくとも１つのシーケンスデータ（図６では、シーケンスデータ４４ａおよび４４ｂ）が記憶される。シーケンスデータは、合成用音声データを再生するために用いるシーケンスを示す。
【００６１】
次に、ゲーム装置１０において行われるゲーム処理の詳細を、図７〜図１１を用いて説明する。図７は、ゲーム装置１０において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置１０の電源が投入されると、ゲーム装置１０のＣＰＵコア２１は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、ＲＡＭ２４等の各ユニットが初期化される。そして、メモリカード１７に格納されたゲームプログラムがＲＡＭ２４に読み込まれ、ＣＰＵコア２１によって当該ゲームプログラムの実行が開始される。図７に示すフローチャートは、以上の処理が完了した後に実行されるゲーム処理を示すフローチャートである。
【００６２】
まず、ステップＳ１において、ゲーム処理の初期設定が行われる。例えば、ゲーム空間を構築する処理や、キャラクタに関する各種パラメータの初期値を設定する処理等が行われる。ステップＳ１の後、ゲームが開始され、以降のステップＳ２〜Ｓ８の処理が実行されることによってゲームが進行していく。
【００６３】
ステップＳ２において、ＣＰＵコア２１は、プレイヤの音声を取得するための音声取得処理を行うか否かを判定する。すなわち、ゲーム中において、音声取得処理を行うタイミングが到来したか否かを判定する。なお、音声取得処理を行うタイミングはどのようなタイミングであってもよい。例えば、ゲーム開始前に音声取得処理を行うようにしてもよいし、ゲーム中において所定の条件が満たされたときに音声取得処理を行うようにしてもよい。ステップＳ２の判定において、音声取得処理を行うと判定された場合、ステップＳ３の処理が実行される。一方、音声取得処理を行わないと判定された場合、ステップＳ３の処理がスキップされてステップＳ４の処理が実行される。
【００６４】
ステップＳ３においては、音声取得処理が実行される。音声取得処理は、プレイヤに音声を入力させることによって当該音声を取得する処理である。以下、図８を用いて音声取得処理の詳細を説明する。
【００６５】
図８は、図７に示すステップＳ３の音声取得処理の詳細を示すフローチャートである。音声取得処理においては、まずステップＳ１１において、ＣＰＵコア２１は音声取得処理の初期設定を行う。すなわち、音声取得処理において用いる第１〜第５カウンタの値を初期化する。ここで、第１カウンタＣ１は、現在格納中の選出音声データの長さを示す。第１カウンタＣ１＝ｎである場合、選出音声データの長さは入力音声データｎ個分の長さとなる。第２カウンタＣ２は、１つの質問に対する音声入力によって取得された選出音声データの数を示す。第３カウンタＣ３は、音声入力がないと判断された入力音声データ（すなわち、条件ａを満たさない入力音声データ）が連続して取得された回数を示す。第４カウンタＣ４は、合成用音声バッファ４３に格納された合成用音声データの数を示す。第５カウンタＣ５は、次に出力すべき質問の番号を示す。なお、予め用意される複数の質問には、１から順に番号が付されているものとする。ステップＳ１１においては、第１カウンタＣ１〜第４カウンタＣ４の値は、それぞれ“０”に設定される。また、第５カウンタＣ５の値は、“１”に設定される。
【００６６】
ステップＳ１２において、ＣＰＵコア２１は、質問出力プログラム６３を実行することによって、質問を第１ＬＣＤ１１または第２ＬＣＤ１２に表示させる。表示される質問は、第５カウンタＣ５の値により示される番号が付された質問である。質問が表示されたことに応じて、プレイヤは、マイク３３に対して回答を音声で入力する。なお、プレイヤは、自身の声を入力する以外にも、例えば楽器の音を入力するようにしてもよい。なお、質問を表示した後、第５カウンタＣ５の値はインクリメント（１増加）される。また、第２カウンタＣ２がリセットされ、Ｃ２の値は“０”になる。
【００６７】
続くステップＳ１３において、音声データ格納処理が実行される。音声データ格納処理は、プレイヤによって入力された音声を表す音声データをＲＡＭ２４のバッファに格納する処理である。以下、図９を用いて、音声データ格納処理の詳細を説明する。
【００６８】
図９は、図８に示すステップＳ１３の音声データ格納処理の詳細を示すフローチャートである。音声データ格納処理では、まずステップＳ２１において、ＣＰＵコア２１は、音声取得プログラム６４を実行することによって、マイク３３から入力された１フレーム分の音声信号に相当する音声データを取得する。すなわち、当該音声データが入力音声バッファ４１に格納される。なお、今回のステップＳ２１で新たに取得された音声データは、前回のステップＳ２１で入力音声バッファ４１に格納された音声データに上書きして入力音声バッファ４１に格納される。
【００６９】
ステップＳ２２において、ＣＰＵコア２１は、選出条件判定プログラム６５を実行することによって、ステップＳ２１で取得された入力音声データが上記条件ａを満たすか否かを判定する。すなわち、入力音声データにおいて、振幅（ボリューム）が所定の閾値Ｖ１以上となる部分が存在するか否かを判定する。判定の結果、入力音声データが条件ａを満たすと判定される場合、ステップＳ２３の処理が実行される。一方、入力音声データが条件ａを満たさないと判定される場合、後述するステップＳ３０の処理が実行される。
【００７０】
ステップＳ２３において、ＣＰＵコア２１は、第１カウンタＣ１をインクリメントする。続くステップＳ２４において、ＣＰＵコア２１は、入力音声データを選出音声バッファ４２に追加して格納する。ステップＳ２３およびＳ２４の処理によって、条件ａを満たす入力音声データが選出音声バッファに格納されるとともに、格納された数がカウントされる。なお、ステップＳ２４の時点で選出音声バッファ４２に格納された入力音声データは、処理の都合上一時的に格納されたにすぎず、選出音声データとして確定したものではない。つまり、ステップＳ２４で選出音声バッファ４２に格納された入力音声データは、後述するステップＳ３４において削除されることがある。
【００７１】
ステップＳ２５において、ＣＰＵコア２１は、第１カウンタＣ１が上限回数（＝２０）となったか否かを判定する。ステップＳ２５の処理は、上記条件ａを満たす入力音声データが上限回数だけ連続して取得されたか否かを判定するための処理である。判定の結果、第１カウンタＣ１が上限回数となったと判定される場合、ステップＳ２６の処理が実行される。一方、第１カウンタＣ１が上限回数となっていないと判定される場合、ステップＳ２１の処理が再度実行される。
【００７２】
ステップＳ２６においては、第２カウンタＣ２がインクリメントされる。このとき、第３カウンタＣ３がリセットされ、Ｃ３の値は“０”になる。続くステップＳ２７において、ＣＰＵコア２１は、選出音声データ格納プログラム６６を実行することによって、選出音声バッファ４２の最後からＣ１個（カウンタＣ１の値に等しい個数）分の音声データを１個の選出音声データに設定する。ステップＳ２７によって、１つの選出音声データが選出されたことが確定され、当該選出された音声データが選出音声データとして保存される。続くステップＳ２８において、第１カウンタＣ１がリセットされ、Ｃ１の値は“０”になる。
【００７３】
ステップＳ２９において、ＣＰＵコア２１は、終了判定プログラム６７を実行することによって、上記条件ｃが満たされるか否かを判定する。すなわち、今回の質問（ステップＳ１２）に対する音声入力によって選出音声データが所定個数取得されたか否かを判定する。この判定は、具体的には、第２カウンタＣ２が上記所定個数に等しい数を示すか否かによって行うことができる。判定の結果、条件ｃが満たされる場合、すなわち、第２カウンタＣ２が上記所定個数に等しい数となる場合、ＣＰＵコア２１は、音声データ格納処理を終了する。一方、条件ｃが満たされない場合、すなわち、第２カウンタＣ２が上記所定個数に等しい数となっていない場合、ステップＳ２１の処理が再度実行される。
【００７４】
一方、ステップＳ３０においては、ＣＰＵコア２１は、選出条件判定プログラム６５を実行することによって、ステップＳ２１で取得された入力音声データが上記条件ｂを満たすか否かを判定する。すなわち、上記条件ａを満たす入力音声データが前述の下限回数だけ連続して取得されたか否かが判定される。ステップＳ３０の判定は、第１カウンタＣ１の値を参照することによって行うことができる。すなわち、第１カウンタＣ１が下限回数（＝６）以上である場合、条件ｂが満たされたと判定し、第１カウンタＣ１が下限回数よりも小さい場合、条件ｂが満たされていないと判定することができる。判定の結果、入力音声データが条件ｂを満たす場合、ステップＳ３１の処理が実行される。一方、入力音声データが条件ｂを満たさない場合、後述するステップＳ３４の処理が実行される。
【００７５】
ステップＳ３１〜Ｓ３３においては、ステップＳ２６〜Ｓ２８と同様、ステップＳ２４で一時的に格納されていた音声データが選出音声データとして確定される。すなわち、ステップＳ３１においては、第２カウンタＣ２がインクリメントされる。このとき、第３カウンタＣ３がリセットされ、Ｃ３の値は“０”になる。続くステップＳ３２において、ＣＰＵコア２１は、選出音声データ格納プログラム６６を実行することによって、選出音声バッファ４２の最後からＣ１個分の音声データを１個の選出音声データに設定する。ステップＳ３２によって、１つの選出音声データが選出されたことが確定され、当該選出された音声データが選出音声データとして保存される。ステップＳ３３において、第１カウンタＣ１がリセットされ、Ｃ１の値は“０”になる。
【００７６】
一方、ステップＳ３４においては、ＣＰＵコア２１は、最後からＣ１個分の音声データを選出音声バッファ４２から削除する。当該Ｃ１個分の音声データは、上記条件ｂを満たさないため、選出音声バッファ４２に保存しないからである。つまり、ステップＳ３４においては、ステップＳ２４で選出音声バッファ４２に一時的に格納されていた音声データが削除される。なお、Ｃ１＝０の場合、音声データは選出音声バッファ４２から削除されない。
【００７７】
ステップＳ３５において、ＣＰＵコア２１は、第２カウンタＣ２が“０”か否かを判定する。ステップＳ３５の判定処理は、今回の質問によって選出音声データが選出音声バッファ４２に保存されているか否かを判定するための処理である。すなわち、第２カウンタＣ２が“０”であることは、今回の質問によって選出音声データが選出音声バッファ４２にまだ保存されていないことを意味する。判定の結果、第２カウンタＣ２が“０”である場合、ステップＳ２１の処理が再度実行される。一方、第２カウンタＣ２が“０”でない場合、ステップＳ３６の処理が実行される。
【００７８】
ステップＳ３６においては、第３カウンタがインクリメントされる。続くステップＳ３７において、ＣＰＵコア２１は、終了判定プログラム６７を実行することによって、第３カウンタが所定値となったか否かを判定する。ステップＳ３７は、上記条件ｄが満たされるか否かを判定するための処理である。判定の結果、第３カウンタが所定値となった場合、すなわち、上記条件ｄが満たされた場合、ＣＰＵコア２１は音声データ格納処理を終了する。一方、第３カウンタが所定値となっていない場合、ステップＳ２１の処理が再度実行される。
【００７９】
以上に示した音声データ格納処理によって、取得された入力音声データをリアルタイムで処理することができる。すなわち、１フレーム分の入力音声データが取得される（ステップＳ２１）度に、条件ａを満たすか否かが判定される（ステップＳ２２）。そして、入力音声データが条件ａを満たす場合には、当該入力音声データが一時的に選出音声バッファに格納される（ステップＳ２４）。入力音声データが選出音声バッファに一時的に格納される処理は、条件ａを満たす入力音声データが取得される限り続けられる。その後、条件ａを満たさない入力音声データが取得される（ステップＳ２２で否定）と、条件ｂが満たされるか否かが判定される（ステップＳ３０）。条件ｂが満たされる場合、取得された入力音声データが選出音声データとして保存される（ステップＳ３２）。また、条件ａを満たす入力音声データが取得され続けた結果、取得回数が上記上限回数に達した場合にも（ステップＳ２５で肯定）、取得された入力音声データが選出音声データとして保存される（ステップＳ２７）。以上の処理によって、取得された入力音声データをリアルタイムで処理して、選出音声データのみを保存することができる。
【００８０】
また、ＣＰＵコア２１は、上記ステップＳ２９およびＳ３７によって、終了条件が満たされたか否かを判定する。具体的には、ステップＳ２９の判定処理によって、上記条件ｃが満たされたか否かを判定し、ステップＳ３７の判定処理によって、上記条件ｄが満たされたか否かを判定する。これによって、質問に回答したプレイヤに余計な待ち時間を与えることなく、質問形式での音声入力作業をスムーズに進めることができる。
【００８１】
図８の説明に戻り、ステップＳ１３の次のステップＳ１４において、ＣＰＵコア２１が合成用音声データ格納プログラム６８を実行することによって、音声データ選出処理が実行される。音声データ選出処理は、選出音声バッファ４２に格納された選出音声データから、効果音に用いるのにより適した音声データを選出する処理である。以下、図１０を用いて、音声データ選出処理の詳細を説明する。
【００８２】
図１０は、図８に示すステップＳ１４の音声データ選出処理の詳細を示すフローチャートである。音声データ選出処理では、まずステップＳ４１において、ＣＰＵコア２１は、選出音声バッファ４２に格納されている選出音声データ毎に振幅（ボリューム）の平均を算出する。続くステップＳ４２において、選出音声データ毎に音声波形の長さを算出する。続くステップＳ４３において、選出音声データ毎に音声信号がピーク値を取る数（ピーク数）を算出する。ステップＳ４１〜Ｓ４３の処理は、音声信号の特徴を示す情報を算出する処理である。
【００８３】
ステップＳ４４において、ＣＰＵコア２１は、ステップＳ４１〜Ｓ４３で算出された各情報に基づいて各選出音声データのスコアを算出する。スコアの算出方法はどのような方法であってもよいが、スコアは、ステップＳ４１〜Ｓ４３で算出された値が大きいほどスコアの値が大きくなるように算出される。
【００８４】
ステップＳ４５において、ＣＰＵコア２１は、選出音声データのうちからいくつかの選出音声データを所定の基準に従って選出して合成用音声バッファ４３に保存する。具体的には、ステップＳ４４で算出されたスコアが大きい選出音声データの上位３つを、合成用音声バッファ４３に格納する音声データとして選出する。すなわち、上位３つの選出音声データを合成用音声データとして合成用音声バッファ４３に格納する。なお、選出音声バッファ４２に格納されている選出音声データの数が３つ以下である場合、すべての選出音声データが選出される。
【００８５】
なお、上記ステップＳ４５において、本実施形態では、上位３つの選出音声データを選出するものとしたが、選出する数はいくつであってもよい。また、他の実施形態においては、ＣＰＵコア２１は、スコアが所定値以上となる選出音声データのみを選出するようにしてもよい。また、本実施形態では、合成用音声データを選出する基準として、振幅の平均、音声波形の長さ、およびピーク数という３つの情報から算出されるスコアを用いた。ここで、他の実施形態では、上記３つの情報のうちの少なくとも１つを上記基準として用いてもよいし、当該３つの情報以外の情報を用いて算出される変数を上記基準として用いてもよい。
【００８６】
ステップＳ４６において、ＣＰＵコア２１は、合成用音声バッファ４３に追加した音声データの数を第４カウンタに加算する。これによって、第４カウンタの値は、合成用音声バッファ４３に格納されている合成用音声データの数を表すこととなる。続くステップＳ４７において、ＣＰＵコア２１は、選出音声バッファ４２をクリアする。このように、選出音声バッファ４２は、１回の質問に対する音声データの取得が終了する度にクリアされる。したがって、選出音声バッファ４２として必要なメモリ領域を低減することができ、メモリを効率良く使用することができる。以上のステップＳ４７の後、ＣＰＵコア２１は音声データ選出処理を終了する。
【００８７】
図８の説明に戻り、ステップＳ１５およびＳ１６においては、効果音を生成するために十分な量の合成用音声データが取得されたか否かが判定される。すなわち、ステップＳ１５においては、上記条件ｅが満たされたか否かが判定される。すなわち、ＣＰＵコア２１は、合成用音声バッファ４３に格納されている合成用音声データの数が所定個数以上になったか否かを判定する。この判定は、第４カウンタの値を参照することによって行うことができる。すなわち、第４カウンタの値が上記所定個数を超えている場合、合成用音声データの数が所定個数以上になったと判定することができる。逆に、第４カウンタの値が上記所定個数を超えていない場合、合成用音声データの数が所定個数以上になっていないと判定することができる。ステップＳ１４の判定の結果、合成用音声データの数が所定個数以上になったと判定される場合、ＣＰＵコア２１は音声取得処理を終了する。一方、合成用音声データの数が所定個数以上になっていないと判定される場合、ステップＳ１６の処理が実行される。
【００８８】
ステップＳ１６においては、上記条件ｆが満たされたか否かが判定される。すなわち、ＣＰＵコア２１は、合成用音声バッファ４３に格納されている合成用音声データの合計データ量が所定のデータ量以上となったか否かを判定する。判定の結果、合成用音声データが所定のデータ量以上となったと判定される場合、ＣＰＵコア２１は音声取得処理を終了する。一方、合成用音声データが所定のデータ量以上となっていないと判定される場合、ステップＳ１７の処理が実行される。
【００８９】
ステップＳ１７においては、ＣＰＵコア２１は、今回行った質問が最後の質問であるか否かを判定する。すなわち、ステップＳ１２で表示された質問の番号が、最後の番号であるか否かを判定する。なお、この判定は、上記第５カウンタの値を参照することによって行うことができる。ステップＳ１７の判定の結果、今回行った質問が最後の質問であると判定される場合、ステップＳ１８の処理が実行される。一方、今回行った質問が最後の質問でないと判定される場合、ステップＳ１２の処理が再度実行される。
【００９０】
ステップＳ１８においては、ＣＰＵコア２１は、次の行うべき質問が最初の質問となるように設定する。具体的には、上記第５カウンタの値を“１”に設定する。これによって、次に実行されるステップＳ１２においては、質問番号が“１”である質問、すなわち、最初の質問が再度表示されることとなる。ステップＳ１８の後、ステップＳ１２の処理が再度実行される。以上で、音声取得処理の説明を終了する。
【００９１】
図７の説明に戻り、ステップＳ３の次のステップＳ４において、ＣＰＵコア２１は、ゲーム処理プログラム６２を実行することによって、ゲーム処理を実行する。具体的には、ＣＰＵコア２１は、タッチパネル１５および／または各操作スイッチ部１４に対して行われた操作に応じて、ゲーム空間内のキャラクタを動作させる処理等を実行する。続くステップＳ５において、ＣＰＵコア２１は、ステップＳ４で実行されたゲーム処理の結果に基づくゲーム画像を第１ＬＣＤ１１および第２ＬＣＤ１２に表示させる。以上のステップＳ４およびＳ５が繰り返されることによって、ゲームが進行していく。
【００９２】
ステップＳ６において、ＣＰＵコア２１は、キャラクタの話し声を表す効果音を出力するタイミングが到来したか否かを判定する。このタイミングとは、例えば、キャラクタが会話をするシーンが開始されるタイミングである。ステップＳ６の判定の結果、当該タイミングが到来したと判定される場合、ステップＳ７の処理が実行される。一方、当該タイミングが到来していないと判定される場合、ステップＳ７の処理がスキップされてステップＳ８の処理が実行される。
【００９３】
ステップＳ７においては、ＣＰＵコア２１が音声出力プログラム６９を実行することによって、音声効果音出力処理が実行される。音声効果音出力処理は、上記合成用音声データを用いて効果音を出力する処理である。以下、図１１を用いて、音声効果音出力処理の詳細を説明する。
【００９４】
図１１は、図７に示すステップＳ７の音声効果音出力処理の詳細を示すフローチャートである。音声効果音出力処理では、まずステップＳ５１において、ＣＰＵコア２１は、乱数を発生させる。ここで発生される乱数は、後述するステップＳ５３で用いられる。
【００９５】
ステップＳ５２において、合成用音声データを再生するための音声再生シーケンスが選択される。すなわち、ＣＰＵコア２１は、ＲＡＭ２４のシーケンス記憶領域４４に記憶されている各シーケンスデータのうち１つを選択する。ここで、選択すべきシーケンスは、例えばゲームの状況に基づいて決定されてもよいし、合成用音声データの内容に基づいて決定されてもよい。
【００９６】
ステップＳ５３において、ＣＰＵコア２１は、合成用音声バッファ４３から合成用音声データを乱数に基づいてランダムに選択しつつ、選択した合成用音声データをシーケンスに基づく処理を行って再生する。なお、当該処理としては、種々の処理が考えられるが、例えば、各音声データについて変調を行う処理や、各音声データについてフェードイン・フェードアウトを行う処理や、音声信号の振幅値が小さい音声データについて振幅値を所定数倍する処理等が考えられる。以上のステップＳ５３によって、キャラクタが架空の言語を話しているかのような効果音を再生することができる。ステップＳ５３の後、ＣＰＵコア２１は音声効果音出力処理を終了する。音声効果音出力処理の後、図７に示すステップＳ８の処理が実行される。
【００９７】
図７の説明に戻り、ステップＳ８において、ＣＰＵコア２１は、ゲームを終了するか否かを判定する。具体的には、ゲームをクリアしたか否かや、ゲームオーバーとなったか否か、プレイヤによるゲームの終了指示が行われたか否か等が判定される。判定の結果、ゲームを終了しないと判定された場合、ステップＳ２の処理が再度実行される。以降、ゲームを終了するまで、ステップＳ２〜Ｓ８の処理が繰り返される。一方、ゲームを終了すると判定された場合、ＣＰＵコア２１は、図７に示す処理を終了する。
【００９８】
以上のように、本実施形態によれば、ゲーム装置１０は、質問に対する回答をプレイヤに行わせることによって、プレイヤの声を用いたプレイヤキャラクタの話し声の効果音を容易に生成することができる。すなわち、プレイヤに煩雑な音声入力作業を行わせなくとも、キャラクタがあたかも架空の言語を話しているかのような効果音を生成することができる。
【産業上の利用可能性】
【００９９】
本発明は、プレイヤによって入力された音声を用いてゲームの効果音を容易に生成すること等を目的として、例えばゲームプログラムおよびゲーム装置として利用することが可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明の一実施形態に係るゲーム装置の外観図
【図２】ゲーム装置の内部構成図
【図３】本実施形態におけるゲーム処理の概要を説明する図
【図４】質問が表示された画面の一例を示す図
【図５】選出条件を説明するための図
【図６】ゲーム装置１０のＲＡＭ２４に記憶される主なデータを示す図
【図７】ゲーム装置１０において実行されるゲーム処理の流れを示すフローチャート
【図８】図７に示すステップＳ３の音声取得処理の詳細を示すフローチャート
【図９】図８に示すステップＳ１３の音声データ格納処理の詳細を示すフローチャート
【図１０】図８に示すステップＳ１４の音声データ選出処理の詳細を示すフローチャート
【図１１】図７に示すステップＳ７の音声効果音出力処理の詳細を示すフローチャート
【符号の説明】
【０１０１】
１０  ゲーム装置
１１  第１ＬＣＤ
１２  第２ＬＣＤ
１５  タッチパネル
１７  メモリカード
２１  ＣＰＵコア
２４  ＲＡＭ
３０ａ，３０ｂ  スピーカ
３３  マイク
４１  入力音声バッファ
４２  選出音声バッファ
４３  合成用音声バッファ
【図１】
2007330519.tif 000003
【図２】
2007330519.tif 000004
【図３】
2007330519.tif 000005
【図４】
2007330519.tif 000006
【図５】
2007330519.tif 000007
【図６】
2007330519.tif 000008
【図７】
2007330519.tif 000009
【図８】
2007330519.tif 000010
【図９】
2007330519.tif 000011
【図１０】
2007330519.tif 000012
【図１１】
2007330519.tif 000013