説明

息判別プログラムおよび息判別装置

【課題】吹きかけられた息を適切に判別することができる息判別プログラムまたは息判別装置を提供する。
【解決手段】音声データ取得手段は、音声入力デバイスから音声信号を示す音声データを取得する。第1評価手段は、音声入力デバイスに入力された音声が息であるか否かを判定する第1の判定条件を用いて、音声データが示す音声信号を評価する。第2評価手段は、第1の判定条件とは異なる第2の判定条件を用いて、音声データが示す音声信号を評価する。息判別手段は、音声入力デバイスに息の吹きかけが開始されたか否かを判定する第1の期間では少なくとも第1評価手段の評価が肯定である場合に音声入力デバイスに息が入力されていると判断し、音声入力デバイスに息の吹きかけが継続しているか否かを判定する第2の期間では第1評価手段および第2評価手段の評価の少なくとも一方が肯定である場合に音声入力デバイスに息が入力されていると判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、息判別プログラムおよび息判別装置に関し、例えば、音声入力デバイスに入力される音声を判別する際に用いられる息判別プログラムおよび息判別装置に関する。
【背景技術】
【0002】
従来、入力された音声の波形データにおける周波数分布に基づいて当該音声を判別するゲーム装置が知られている(例えば、特許文献1参照)。例えば、上記特許文献1で開示されたゲーム装置では、入力された音声の波形データにおける各ゼロクロスの時間間隔を算出し、算出した各ゼロクロス時間に基づいて波形データの周波数分布を取得する。そして、取得した周波数分布が満たす予め設定された判別条件に基づいて、入力された音声がユーザの息によるものか否かを判断している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−145851号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、一般的に、ユーザがマイク等の音声入力デバイスに息を持続して吹きかける場合、同じレベルの息を吹きかけていても漸減的に息の強さが弱くなる傾向がある。したがって、上記特許文献1で開示されたゲーム装置において、持続して息が吹きかけられている全期間に対して、入力されている音声が息によるものであると判断可能とする判別条件を設定することが難しい。例えば、息の吹き始めに合わせて息の判別条件を相対的に厳しく設定した場合、持続して息が吹きかけられていたとしても息の吹き始めからある程度の時間が経過したときに息と判定されない可能性がある。また、上記特許文献1で開示されたゲーム装置において、息の判別条件を相対的に緩く設定した場合、ユーザが息を吹きかけていない状態でも、音声入力デバイスに入力されるノイズや物音等の息以外の入力を息と判定してしまう可能性がある。
【0005】
それ故に、本発明の目的は、吹きかけられた息を適切に判別することができる息判別プログラムおよび息判別装置を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は、以下に述べるような特徴を有している。
本発明は、音声入力デバイスに入力される音声を判別する装置のコンピュータで実行される息判別プログラムである。息判別プログラムは、音声データ取得手段、第1評価手段、第2評価手段、および息判別手段として、コンピュータを機能させる。音声データ取得手段は、音声入力デバイスから音声信号を示す音声データを取得する。第1評価手段は、音声入力デバイスに入力された音声が息であるか否かを判定する第1の判定条件を用いて、音声データが示す音声信号を評価する。第2評価手段は、第1の判定条件とは異なる第2の判定条件を用いて、音声データが示す音声信号を評価する。息判別手段は、音声入力デバイスに息の吹きかけが開始されたか否かを判定する第1の期間では少なくとも第1評価手段の評価が肯定である場合に音声入力デバイスに息が入力されていると判断し、音声入力デバイスに息の吹きかけが継続しているか否かを判定する第2の期間では第1評価手段および第2評価手段の評価の少なくとも一方が肯定である場合に音声入力デバイスに息が入力されていると判断する。
【0007】
上記によれば、音声入力デバイスに息の吹きかけが開始されたか否かを判定する期間と音声入力デバイスに息の吹きかけが継続しているか否かを判定する期間とによって、異なる判定条件に基づいた判定が行われるため、吹きかけられた息を適切に判別することができる。
【0008】
また、第1評価手段は、音声信号が示す音声の大きさに基づいて当該音声信号を評価してもよい。また、第2評価手段は、音声信号が示す音声の周波数分布に基づいて当該音声信号を評価してもよい。
【0009】
上記によれば、音声信号が音声の大きさおよび周波数分布に基づいて異なる評価が行われるため、当該評価に基づいて吹きかけられた息を適切に判別することができる。
【0010】
また、第3評価手段として、さらにコンピュータを機能させてもよい。第3評価手段は、第1の判定条件および第2の判定条件とは異なる第3の判定条件を用いて、音声信号が示す音声の周波数分布に基づいて当該音声信号を評価する。この場合、息判別手段は、第1の期間では音声信号が示す音声の大きさに基づいた第1評価手段による評価と音声信号が示す音声の周波数分布に基づいた第3評価手段による評価とが何れも肯定評価である場合に音声入力デバイスに息が入力されていると判断してもよい。また、息判別手段は、第2の期間では少なくとも音声信号が示す音声の周波数分布に基づいた第2評価手段による評価が肯定評価である場合に音声入力デバイスに息が入力されていると判断してもよい。
【0011】
上記によれば、音声入力デバイスに息の吹きかけが開始されたか否かを判定する期間では、音声の大きさに基づく評価および音声の周波数分布に基づく評価に対して共に肯定評価が必要であることに対して、音声入力デバイスに息の吹きかけが継続しているか否かを判定する期間では、音声の周波数分布に基づく評価のみ肯定評価であれば息が入力されていると判断するため、吹きかけられた息を適切に判別することができる。
【0012】
また、第2評価手段は、時間間隔算出手段、時間間隔分布作成手段、およびばらつき評価手段を含んでもよい。時間間隔算出手段は、音声信号に基づいて、音声入力デバイスに入力された音声を示す音声波形のゼロクロスを検出し、連続するゼロクロスの間の時間間隔をそれぞれ算出する。時間間隔分布作成手段は、時間間隔算出手段が算出した時間間隔の分布を作成する。ばらつき評価手段は、時間間隔の分布が所定のばらつき以内であるか否かを評価する。この場合、第2評価手段は、時間間隔の分布が所定のばらつき以内である場合に第2の判定条件を用いた評価を肯定評価としてもよい。
【0013】
上記によれば、音声信号が示す音声の周波数分布を容易に評価して当該音声信号を評価することが可能となる。
【0014】
また、第1評価手段は、音声信号が示す音声の大きさが所定の大きさ以上となる期間が所定の時間以上である場合に第1の判定条件を用いた評価を肯定評価としてもよい。
【0015】
上記によれば、相対的に大きな音声が入力された大所的な傾向に基づいて音声波形を評価することができる。
【0016】
また、第1評価手段は、音声信号が示す音声の大きさが所定の大きさ以上となる期間に基づいて当該音声信号を評価してもよい。この場合、第2評価手段は、第1評価手段が評価した期間に応じて、音声信号が示す音声の周波数分布のばらつきを評価する閾値を変化させてもよい。
【0017】
上記によれば、音声信号が示す音声の大きさに応じて、音声の周波数分布のばらつきを評価するための閾値を適切に設定することができる。
【0018】
また、第2評価手段は、音声信号が示す音声の大きさが所定の大きさ以上となる期間が第1の閾値以上であると第1評価手段が肯定評価した場合、音声信号が示す音声の周波数分布のばらつきが第2の閾値以内である場合に第2の判定条件を用いた評価を肯定評価としてもよい。この場合、第2評価手段は、音声信号が示す音声の大きさが所定の大きさ以上となる期間が第1の閾値より長い第3の閾値以上であると第1評価手段が肯定評価した場合、音声信号が示す音声の周波数分布のばらつきが第2の閾値よりも大きい第4の閾値以内である場合に第2の判定条件を用いた評価を肯定評価する。
【0019】
上記によれば、音声信号が示す音声の大きさに応じて、音声の周波数分布のばらつきを評価するための閾値を適切に設定することができる。
【0020】
また、ゼロクロス計数手段として、さらにコンピュータを機能させてもよい。ゼロクロス計数手段は、音声信号に基づいて、音声入力デバイスに入力された音声を示す音声波形のゼロクロスを検出し、所定の期間における当該ゼロクロスの数をカウントする。この場合、第2評価手段は、音声信号が示す音声の大きさが所定の大きさ以上となる期間が第3の閾値より長い第5の閾値以上であると第1評価手段が肯定評価し、かつ、ゼロクロス計数手段がカウントしたゼロクロスの数が所定の数以上である場合、音声信号が示す音声の周波数分布のばらつきが第4の閾値よりも大きい第6の閾値以内である場合に第2の判定条件を用いた評価を肯定評価してもよい。
【0021】
上記によれば、非常に強い息が音声入力デバイスに入力された場合でも、適切に息を判別することができる。
【0022】
また、ゼロクロス計数手段として、さらにコンピュータを機能させてもよい。ゼロクロス計数手段は、音声信号に基づいて、音声入力デバイスに入力された音声を示す音声波形のゼロクロスを検出し、所定の期間における当該ゼロクロスの数をカウントする。この場合、第1評価手段は、音声信号が示す音声の大きさが所定の大きさ以上となる期間に基づいて当該音声信号を評価してもよい。息判別手段は、音声信号が示す音声の大きさが所定の大きさ以上となる期間が所定の閾値以上であると第1評価手段が肯定評価し、かつ、ゼロクロス計数手段がカウントしたゼロクロスの数が所定の数以上である場合、音声入力デバイスに息が入力されていると判断してもよい。
【0023】
上記によれば、非常に強い息が音声入力デバイスに入力された場合でも、適切に息を判別することができる。
【0024】
また、ゼロクロス計数手段として、さらにコンピュータを機能させてもよい。ゼロクロス計数手段は、音声信号に基づいて、音声入力デバイスに入力された音声を示す音声波形のゼロクロスを検出し、所定の期間における当該ゼロクロスの数をカウントする。この場合、第2評価手段は、ゼロクロス計数手段がカウントしたゼロクロスの数に応じて、音声信号が示す音声の周波数分布のばらつきを評価する閾値を変化させてもよい。
【0025】
上記によれば、ゼロクロス数が増加する強い息が音声入力デバイスに入力された場合でも、適切に息を判別することができる。
【0026】
また、ばらつき評価手段は、時間間隔の分布の均等度合いと各分布数との差を累積した評価値を算出し、当該評価値が所定の閾値以下か否かを評価してもよい。この場合、第2評価手段は、評価値が閾値以下である場合に第2の判定条件を用いた評価を肯定評価としてもよい。
【0027】
上記によれば、音声波形の周波数分布を適切に評価することができる。
【0028】
また、本発明は、上記各手段を備える息判別装置の形態で実施されてもよい。
【発明の効果】
【0029】
本発明によれば、音声入力デバイスに息の吹きかけが開始されたか否かを判定する期間と音声入力デバイスに息の吹きかけが継続しているか否かを判定する期間とによって、異なる判定条件に基づいた判定が行われるため、吹きかけられた息を適切に判別することができる。
【図面の簡単な説明】
【0030】
【図1】本発明の一実施形態に係る息判別プログラムを実行するゲーム装置1の外観図
【図2】図1のゲーム装置1の内部構成の一例を示すブロック図
【図3】プレイヤがゲーム装置1に向かって息を吹き込んでいる様子の一例を概説する図解図
【図4】図2のマイク43から入力される音声波形の一例を示すグラフ
【図5】図4の音声波形の一部を拡大したグラフ
【図6】ゲームプログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図
【図7】ゲームプログラムを実行することによってゲーム装置1がゲーム処理する動作の一例を示すフローチャート
【図8】図7のステップ54で行われる評価値算出処理の詳細な動作の一例を示すサブルーチン
【図9】図7のステップ55で行われる閾値算出処理の詳細な動作の一例を示すサブルーチン
【発明を実施するための形態】
【0031】
図面を参照して、本発明の一実施形態に係る息判別プログラムを実行する息判別装置について説明する。本発明の息判別プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、息判別装置の一例としてゲーム装置1を用い、ゲーム装置1で実行される息判別プログラムを用いて説明する。なお、図1は、本発明の息判別プログラムの一例であるゲームプログラムを実行するゲーム装置1の外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。なお、ゲーム装置1は、カメラを内蔵しており、当該カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
【0032】
図1において、ゲーム装置1は、折り畳み型の携帯ゲーム装置であり、開いた状態(開状態)のゲーム装置1を示している。ゲーム装置1は、開いた状態においてもプレイヤが両手または片手で把持することができるようなサイズで構成される。
【0033】
ゲーム装置1は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、プレイヤは、開状態でゲーム装置1を使用する。そして、プレイヤは、ゲーム装置1を使用しない場合には閉状態としてゲーム装置1を保管する。また、図1に示した例では、ゲーム装置1は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
【0034】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12が設けられる。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置1に内蔵されている表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置1は、任意の解像度の表示装置を利用することができる。
【0035】
下側ハウジング11には、入力装置として、各操作ボタン14A〜14Kおよびタッチパネル13が設けられる。図1に示されるように、各操作ボタン14A〜14Kのうち、方向入力ボタン14A、操作ボタン14B、操作ボタン14C、操作ボタン14D、操作ボタン14E、電源ボタン14F、スタートボタン14G、およびセレクトボタン14Hは、上側ハウジング21と下側ハウジング11とを折りたたんだときに内側となる、下側ハウジング11の内側主面上に設けられる。方向入力ボタン14Aは、例えば選択操作等に用いられる。各操作ボタン14B〜14Eは、例えば決定操作やキャンセル操作等に用いられる。電源ボタン14Fは、ゲーム装置1の電源をオン/オフするために用いられる。図1に示す例では、方向入力ボタン14Aおよび電源ボタン14Fは、下側ハウジング11の内側主面中央付近に設けられる下側LCD12に対して、左右一方側(図1では左側)の当該主面上に設けられる。また、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、下側LCD12に対して左右他方側(図1では右側)となる下側ハウジング11の内側主面上に設けられる。方向入力ボタン14A、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、ゲーム装置1に対する各種操作を行うために用いられる。
【0036】
なお、図1においては、操作ボタン14I〜14Kの図示を省略している。例えば、Lボタン14Iは、下側ハウジング11の上側面の左端部に設けられ、Rボタン14Jは、下側ハウジング11の上側面の右端部に設けられる。Lボタン14IおよびRボタン14Jは、ゲーム装置1に対して、例えば撮影指示操作(シャッター操作)を行うために用いられる。さらに、音量ボタン14Kは、下側ハウジング11の左側面に設けられる。音量ボタン14Kは、ゲーム装置1が備えるスピーカの音量を調整するために用いられる。
【0037】
また、ゲーム装置1は、各操作ボタン14A〜14Kとは別の入力装置として、さらにタッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル13として、例えば下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の右側面には、タッチペン27の挿入口(図1に示す破線)が設けられている。上記挿入口は、タッチパネル13に対する操作を行うために用いられるタッチペン27を収納することができる。なお、タッチパネル13に対する入力は、通常タッチペン27を用いて行われるが、タッチペン27に限らずプレイヤの指等でタッチパネル13を操作することも可能である。
【0038】
また、下側ハウジング11の右側面には、メモリカード28を収納するための挿入口(図1では、二点鎖線で示している)が設けられている。この挿入口の内側には、ゲーム装置1とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、例えばSD(Secure Digital)メモリカードであり、上記コネクタに着脱自在に装着される。メモリカード28は、例えば、ゲーム装置1によって撮像された画像を記憶(保存)したり、他の装置で生成された画像をゲーム装置1に読み込んだりするため等に用いられる。
【0039】
さらに、下側ハウジング11の上側面には、メモリカード29を収納するための挿入口(図1では、一点鎖線で示している)が設けられている。この挿入口の内側にも、ゲーム装置1とメモリカード29とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード29は、ゲームプログラム(息判別プログラム)等を記憶した記憶媒体であり、下側ハウジング11に設けられた挿入口に着脱自在に装着される。
【0040】
下側ハウジング11と上側ハウジング21との連結部の左側部分には、3つのLED15A〜15Cが取り付けられる。ここで、ゲーム装置1は、他の機器との間で無線通信を行うことが可能であり、第1LED15Aは、無線通信が確立している場合に点灯する。第2LED15Bは、ゲーム装置1の充電中に点灯する。第3LED15Cは、ゲーム装置1の電源がオンである場合に点灯する。したがって、3つのLED15A〜15Cによって、ゲーム装置1の通信確立状況、充電状況、および、電源のオン/オフ状況をプレイヤに通知することができる。
【0041】
一方、上側ハウジング21には、上側LCD22が設けられる。上側LCD22は横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。なお、下側LCD12と同様、上側LCD22に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。また、上側LCD22上を覆うように、タッチパネルを設けてもかまわない。
【0042】
また、上側ハウジング21には、2つのカメラ(内側カメラ23および外側カメラ25)が設けられる。図1に示されるように、内側カメラ23は、上側ハウジング21の連結部付近の内側主面に取り付けられる。一方、外側カメラ25は、内側カメラ23が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング21の外側主面(ゲーム装置1が閉状態となった場合に外側となる面であり、図1に示す上側ハウジング21の背面)に取り付けられる。なお、図1においては、外側カメラ25を破線で示している。これによって、内側カメラ23は、上側ハウジング21の内側主面が向く方向を撮像することが可能であり、外側カメラ25は、内側カメラ23の撮像方向の逆方向、すなわち、上側ハウジング21の外側主面が向く方向を撮像することが可能である。このように、本実施形態では、2つの内側カメラ23および外側カメラ25の撮像方向が互いに逆方向となるように設けられる。例えば、プレイヤは、ゲーム装置1からプレイヤの方を見た景色を内側カメラ23で撮像することができるとともに、ゲーム装置1からプレイヤの反対側の方向を見た景色を外側カメラ25で撮像することができる。なお、下側LCD12および/または上側LCD22は、内側カメラ23または外側カメラ25で撮像されている画像をリアルタイムに表示するために用いられることもある。
【0043】
なお、上記連結部付近の内側主面には、音声入力デバイスとしてマイク(図2に示すマイク43)が収納されている。そして、上記連結部付近の内側主面には、マイク43がゲーム装置1外部の音を検知できるように、マイクロフォン用孔16が形成される。マイク43を収納する位置およびマイクロフォン用孔16の位置は必ずしも上記連結部である必要はなく、例えば下側ハウジング11にマイク43を収納し、マイク43の収納位置に対応させて下側ハウジング11にマイクロフォン用孔16を設けるようにしても良い。
【0044】
また、上側ハウジング21の外側主面には、第4LED26(図1では、破線で示す)が取り付けられる。第4LED26は、内側カメラ23または外側カメラ25によって撮像が行われている間点灯する。また、内側カメラ23または外側カメラ25によって動画が撮像(撮像画像を動画として記憶)される間は点滅させても良い。なお、LEDが画面に映り込むことを防ぐために、シャッターが押された瞬間から、当該シャッターが押された瞬間の撮像画像の記憶が完了するまでの間は第4LED26を消灯させても良い。第4LED26によって、ゲーム装置1による撮像が行われていることを撮像対象者や周囲に通知することができる。
【0045】
また、上側ハウジング21の内側主面中央付近に設けられる上側LCD22に対して、左右両側の当該主面に音抜き孔24がそれぞれ形成される。音抜き孔24の奥の上側ハウジング21内には、それぞれスピーカが収納されている。音抜き孔24は、スピーカからの音をゲーム装置1の外部に放出するための孔である。
【0046】
以上に説明したように、上側ハウジング21には、画像を撮像するための構成である内側カメラ23および外側カメラ25と、各種画像を表示するための表示手段である上側LCD22とが設けられる。一方、下側ハウジング11には、ゲーム装置1に対する操作入力を行うための入力装置(タッチパネル13および各ボタン14A〜14K)と、各種画像を表示するための表示手段である下側LCD12とが設けられる。当該入力装置は、例えば、ゲーム装置1を使用する際には、下側LCD12や上側LCD22に撮像画像(カメラによって撮像された画像)を表示しながら、下側ハウジング11をプレイヤが把持して入力装置に対する入力を行うような用途に用いることができる。
【0047】
次に、図2を参照して、ゲーム装置1の内部構成を説明する。なお、図2は、ゲーム装置1の内部構成の一例を示すブロック図である。
【0048】
図2において、ゲーム装置1は、CPU31と、メインメモリ32と、メモリ制御回路33と、保存用データメモリ34と、プリセットデータ用メモリ35と、メモリカードインターフェース(メモリカードI/F)36および37と、無線通信モジュール38と、ローカル通信モジュール39と、リアルタイムクロック(RTC)40と、電源回路41と、インターフェース回路(I/F回路)42等との電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0049】
CPU31は、所定のプログラムを実行するための情報処理手段である。本実施形態では、所定のプログラムがゲーム装置1内のメモリ(例えば保存用データメモリ34)やメモリカード28および/または29に記憶されており、CPU31は、当該所定のプログラムを実行することによって、後述する息判別処理を実行する。なお、CPU31によって実行されるプログラムは、ゲーム装置1内のメモリに予め記憶されていてもよいし、メモリカード28および/または29から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【0050】
CPU31には、メインメモリ32、メモリ制御回路33、およびプリセットデータ用メモリ35が接続される。また、メモリ制御回路33には、保存用データメモリ34が接続される。メインメモリ32は、CPU31のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ32は、息判別処理に用いられる各種データを記憶したり、外部(メモリカード28および29や他の機器等)から取得されるプログラムを記憶したりする。本実施形態では、メインメモリ32として、例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ34は、CPU31によって実行されるプログラムや内側カメラ23および外側カメラ25によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ34は、不揮発性の記憶媒体によって構成されており、例えば本実施例ではNAND型フラッシュメモリで構成される。メモリ制御回路33は、CPU31の指示に従って、保存用データメモリ34に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ35は、ゲーム装置1において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ35としては、SPI(Serial Peripheral Interface)バスによってCPU31と接続されるフラッシュメモリを用いることができる。
【0051】
メモリカードI/F36および37は、それぞれCPU31に接続される。メモリカードI/F36は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。また、メモリカードI/F37は、コネクタに装着されたメモリカード29に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。本実施形態では、メモリカード29に記憶された各種プログラムが、CPU31によって読み出されて実行される例を用いる。
【0052】
なお、本発明の息判別プログラム(ゲームプログラム)は、メモリカード29を通じてコンピュータシステムに供給されるだけでなく、メモリカード28等の外部記憶媒体を通じてコンピュータシステムに供給されてもよい。また、本発明の息判別プログラムは、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。さらに、本発明の息判別プログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記憶されていてもよい。なお、本発明の息判別プログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【0053】
無線通信モジュール38は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール39は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール38およびローカル通信モジュール39は、CPU31に接続される。CPU31は、無線通信モジュール38を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール39を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0054】
また、CPU31には、RTC40および電源回路41が接続される。RTC40は、時間をカウントしてCPU31に出力する。例えば、CPU31は、RTC40によって計時された時間に基づいて、現在時刻(日付)等を計算することもできる。電源回路41は、ゲーム装置1が有する電源(典型的には電池であり、下側ハウジング11に収納される)から供給される電力を制御し、ゲーム装置1の各部品に電力を供給する。
【0055】
また、ゲーム装置1は、マイク43およびアンプ44を備えている。マイク43およびアンプ44は、それぞれI/F回路42に接続される。マイク43は、ゲーム装置1に向かって発声されたプレイヤの音声を検知して、当該音声を示す音声信号をI/F回路42に出力する。アンプ44は、I/F回路42から音声信号を増幅してスピーカ(図示せず)から出力させる。I/F回路42は、CPU31に接続される。
【0056】
また、タッチパネル13は、I/F回路42に接続される。I/F回路42は、マイク43およびアンプ44(スピーカ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。なお、音声制御回路は、マイク43からの音声信号の読み込み、および、音声データの生成を所定時間に1回の割合で行う。CPU31は、I/F回路42を介して、音声データを取得することにより、マイク43に対して発声された音声を知ることができる。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成してCPU31に出力する。例えば、タッチ位置データは、タッチパネル13の入力面に対して入力が行われた位置の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU31は、I/F回路42を介して、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0057】
操作ボタン14は、上記各操作ボタン14A〜14Kから構成され、CPU31に接続される。操作ボタン14からCPU31へは、各操作ボタン14A〜14Kに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0058】
内側カメラ23および外側カメラ25は、それぞれCPU31に接続される。内側カメラ23および外側カメラ25は、CPU31の指示に応じて画像を撮像し、撮像した画像データをCPU31に出力する。例えば、CPU31は、内側カメラ23および外側カメラ25のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラが画像を撮像して画像データをCPU31に送る。
【0059】
また、下側LCD12および上側LCD22は、それぞれCPU31に接続される。下側LCD12および上側LCD22は、それぞれCPU31の指示に従って画像を表示する。一例として、CPU31は、上記ゲームプログラムを実行することによって生成された画像(例えば、ゲーム画像)を下側LCD12および/または上側LCD22に表示させる。他の例として、CPU31は、内側カメラ23および外側カメラ25のいずれかから取得した画像を、下側LCD12および上側LCD22の一方に表示させ、所定の処理によって生成した操作説明画面を下側LCD12および上側LCD22の他方に表示させる。
【0060】
次に、ゲーム装置1で実行されるゲームプログラムによる具体的な処理動作を説明する前に、図3〜図5を参照してプレイヤの息を判別する動作例について説明する。なお、図3は、プレイヤがゲーム装置1に向かって息を吹き込んでいる様子の一例を概説する図解図である。図4は、マイク43から入力される音声波形の一例を示すグラフである。図5は、図4の音声波形の一部を拡大したグラフである。
【0061】
図3に示すように、ゲーム装置1を用いてプレイヤの息を判別させるためには、プレイヤは、マイク43(マイクロフォン用孔16)に向かって自身の息を吹き込む。一方、ゲーム装置1は、I/F回路42を介して、マイク43から入力された音声信号を示す音声データを取得し、当該音声データを解析することによってマイク43から入力された音声が息であるか否かを判別する。そして、ゲーム装置1は、マイク43から入力された音声が息であると判別された場合、息が入力されたことに応じた処理を行う。一例として、ゲーム装置1は、マイク43から入力された音声が息であると判別された場合、判別された息に応じて仮想世界に配置された楽器(例えば、管楽器、笛、ハーモニカ等、息を吹き込むことによって演奏する楽器)を演奏し、当該楽器の演奏音色に応じた音をスピーカから発生させる。他の例として、ゲーム装置1は、マイク43から入力された音声が息であると判別された場合、判別された息に応じた現象(例えば、風を起こす、オブジェクトを動かす、オブジェクトを回転させる、火を消す、風船を膨らませる、温度を下げる、キャラクタに所定の動作をさせる等)を仮想世界に生じさせ、当該仮想世界を表す画像を下側LCD12および/または上側LCD22に表示する。
【0062】
本実施形態においては、入力される音声に対応する音声波形のゼロクロスに基づいて、息の吹きかけ音であるか否かを判別する。図4および図5に示すように、息がマイク43に入力する場合に生じる息の音声波形では、音声波形の振幅(ゲイン)がプラスからマイナスおよびマイナスからプラスへ変化するときに0レベルと交差する点(ゼロクロス)が生じる。なお、本実施形態においては、音声波形の振幅(ゲイン)がマイナスからプラスに変化するゼロクロスに着目し、当該ゼロクロスの時間間隔tやゼロクロスの数を用いて息であるか否かを判別する。つまり、後述する時間間隔tは、音声波形の振幅(ゲイン)がマイナスからプラスへ変化するゼロクロスのうち、連続する2つのゼロクロスで規定される時間長であり、音声波形に含まれる各波の周期(周波数)を算出するものである。また、ゼロクロス数は、音声波形の振幅(ゲイン)がマイナスからプラスへ変化するゼロクロスの数を示すものとなる。なお、波形の振幅(ゲイン)がプラスからマイナスへ変化するときのゼロクロスに着目して、当該ゼロクロスの時間間隔やゼロクロス数を用いてもよい。
【0063】
ここで、CPU31は、入力される音声に対応する音声データを、所定のサンプリングレート毎に取得する。以下、CPU31が上記サンプリングレート毎に取得する音声データ(音声波形)を「サンプル」と記載する。したがって、時間間隔tの単位も、厳密にはゲーム装置1のサンプリングレートとなる。例えば、CPU31のサンプリングレートは、1/8000秒(8キロヘルツ)であり、時間間隔tの単位も1/8000秒となる。したがって、時間間隔tは、連続するゼロクロス間のサンプル数で表すことができる。
【0064】
本実施形態では、ある期間において得られた時間間隔tの分布が所定の判定条件を満たす場合、当該期間で得られた音声が息であると判定する。具体的には、ある期間において得られた時間間隔tを、時間長さ毎に所定数(例えば、3つ)のカテゴリに分類し、各カテゴリに分類された時間間隔tの数のバラツキが所定の閾値以内である場合、当該期間で得られた音声が息であると判定される。つまり、ある期間において得られた音声の周波数分布に基づいて、当該音声が息であるか否かを判定していることになる。なお、後述により明らかとなるが、時間間隔tのバラツキを判定するための閾値は、実験等により、経験的に得られたデータに基づいて予め設定されるものであり、得られた音声データに応じて(例えば、音声信号の振幅の大きさやゼロクロス数に応じて)閾値を変化させてもかまわない。
【0065】
また、本実施形態においては、入力される音声に対応する音声波形の振幅(ゲイン)の大きさも用いて、息の吹きかけ音であるか否かを判別する。図4および図5に示すように、息がマイク43に入力する場合に生じる息の音声波形では、入力された息の強さ等に応じて、音声波形の振幅が変化する。一般的には、マイク43に入力された息が強いほど、音声波形の振幅も大きくなる。そして、本実施形態においては、マイク43に対する息の吹き込みが開始されたことを判定する条件として、音声波形の振幅が閾値以上となる期間が所定の閾値以上となることが求められる。
【0066】
例えば、マイク43には、入力レンジが設けられており、当該入力レンジを越える音声については当該入力レンジの最大値にクリップされる。具体的には、マイク43の入力レンジが−128〜+127である場合、+127を越える音声入力については+127にクリップされ、−128を越える音声入力(すなわち、絶対値が128より大きいマイナスの音声入力)については−128にクリップされる。そして、一例として、音声入力がクリップされている期間(クリップ期間)が所定時間以上であることを、上記息の吹き込みが開始されたことを判定する条件として設定される。なお、上述したように、入力される音声に対応する音声データが所定のサンプリングレート毎に取得されるため、クリップ期間の単位もサンプリングレートとなる。したがって、クリップ期間については、上記クリップされているサンプル数として表すことができる。また、上記息の吹き込みが開始されたことを判定する条件は、クリップ期間のサンプル数で定義されなくてもよく、クリップとは無関係に音声波形の振幅が所定の大きさ以上となるサンプル数によって判定してもかまわない。
【0067】
ここで、プレイヤがマイク43に息を持続して吹きかける場合、同じレベルの息を吹きかけていても漸減的に息の強さが弱くなる傾向がある。したがって、息の吹き始めに合わせて息の判別条件を相対的に厳しく設定した場合、持続して息が吹きかけられていたとしても息の吹き始めからある程度の時間が経過したときに息と判定されない誤判定の可能性がある。また、息の判別条件を相対的に緩く設定した場合、プレイヤが息を吹きかけていない状態でも、マイク43に入力されるノイズや物音等の息以外の入力を息と誤判定してしまう可能性がある。このような課題に対応して、本実施形態においては、息の吹きかけ始めの期間(以下、息開始期間と記載する)と、その後に持続して息を吹きかける期間(以下、息継続期間と記載する)とにおいて、異なる判定条件を設定している。
【0068】
本実施形態では、息開始期間においてマイク43に息が入力されたと決定されるためには、第1の判定条件を用いた第1評価が息入力であると肯定評価されることが必要である。その一方で、息継続期間においてマイク43に息が入力されたと決定されるためには、上記第1の判定条件を用いた第1評価および第2の判定条件を用いた第2評価の少なくとも一方が息入力であると肯定評価されるだけでよい。一例として、息開始期間においては、音声波形の振幅に関する評価(第1評価)において肯定評価されることが息入力の決定のために必要であり、典型的にはさらに音声波形の周波数分布に関する評価(第2評価)において肯定評価されることによって、マイク43に息が入力されたと決定される。一方、息継続期間においては、音声波形の周波数分布に関する評価(第2評価)において肯定評価されるだけでマイク43に息が入力されたと決定され、特殊な例として音声波形の振幅に関する評価(第1評価)が非常に強い息であると判定された場合、第2評価を行うことなく息入力が決定されることもあり得る。例えば、第1評価は、音声波形の振幅が閾値以上となる期間が所定の閾値以上であるか否か(第1の判定条件)を評価することによって、息入力の判定を行う。第2評価は、音声波形の周波数分布のばらつきが所定の閾値以内か否か(第2の判定条件)を評価することによって、息入力の判定を行う。このように、息開始期間において息と判定されるためには、少なくとも第1評価が肯定評価されることが必要(典型的には、第1評価および第2評価が肯定評価されることが必要)となることに対して、息継続期間では第2評価が肯定評価されるだけでも息と判定されることになる。このように、息が吹きかけられている期間に応じて異なる息判定条件を設定することによって、漸減的に息の強さが弱くなる傾向に対応できるとともに、上述した誤判定を防止することができる。
【0069】
他の例として、息開始期間においては、音声波形が息入力によるものであると判定される閾値が相対的に厳しい値に設定された評価(第1評価)において肯定評価されることによって、マイク43に息が入力されたと決定される。一方、息継続期間においては、音声波形が息入力によるものであると判定される閾値が相対的に緩い値に設定された評価(第2評価)において肯定評価されることによって、マイク43に息が入力されたと決定される。例えば、第1評価は、音声波形の周波数分布のばらつきが第1の閾値以内か否か(第1の判定条件)を評価することによって、息入力の判定を行う。第2評価は、音声波形の周波数分布のばらつきが上記第1の閾値より大きい第2の閾値以内か否か(第2の判定条件)を評価することによって、息入力の判定を行う。このように、息開始期間において息と判定されるためには、相対的に厳しい閾値を用いた第1評価が肯定評価されることが必要となることに対して、息継続期間では上記第1評価で肯定評価されるまたは相対的に緩い閾値を用いた第2評価が肯定評価されることによって息と判定されることになる。このように、息が吹きかけられている期間に応じて異なる息判定条件を設定することによって、上述した誤判定を防止することができる。
【0070】
また、マイク43を介して息が入力された場合の音声波形は、他の音声入力に対して特徴が認められる。具体的には、息が入力された場合の音声波形は、周波数分布が特定の周波数帯に集中することなく全体的にばらつく傾向にあり、振幅(ゲイン)も大きくなる傾向にある。また、息が入力された場合の音声波形は、入力された息が相対的に強い場合、振幅(ゲイン)が相対的に大きくなるとともに、単位時間当たりのゼロクロス数も相対的に増加する。これに対して、プレイヤの声がマイク43に入力された場合の音声波形は、当該声に応じた特定の周波数帯に周波数分布が集中するとともに、息の入力と比較すると振幅(ゲイン)が小さい傾向にある。また、ノイズが生じた場合の音声波形は、当該ノイズに応じた特定の高い周波数帯に周波数分布が集中するとともに、単位時間当たりのゼロクロス数が極端に多くなり、息の入力と比較すると振幅(ゲイン)が小さい傾向にある。また、物が衝突したり叩かれたりするような衝撃音の場合の音声波形は、一時的または断続的な音入力となるため、当該衝撃音に応じた特定の周波数帯に周波数分布が一時的に集中するとともに、息の入力と比較すると一時的に振幅(ゲイン)が大きな入力が生じるが、振幅が大きくなる音入力が一時的であるためにクリップ期間は短くなる。このような音声波形を区別するために、本実施形態では、音声入力の大きさ(振幅)で周波数分布を判定するための閾値を変動させて息の判別を行っている。ただし、所定の範囲より大きな音声入力の振幅は、クリップされてしまうため、クリップされる音声波形に関しては、クリップ期間(クリップ回数)を音声入力の大きさとみなしている。なお、各閾値の設定例および当該閾値によって区別する音声波形については後述する。
【0071】
次に、図6〜図9を参照して、ゲーム装置1で実行されるゲームプログラムによる具体的な処理動作について説明する。なお、図6は、ゲームプログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。図7は、当該ゲームプログラムを実行することによってゲーム装置1がゲーム処理する動作の一例を示すフローチャートである。図8は、図7のステップ54で行われる評価値算出処理の詳細な動作の一例を示すサブルーチンである。図9は、図7のステップ55で行われる閾値算出処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置1に内蔵されるメモリ(例えば、保存用データメモリ34)やメモリカード28またはメモリカード29に含まれており、ゲーム装置1の電源がオンになったときに、メモリカードI/F36やメモリカードI/F37を介してメモリカード28やメモリカード29から、または内蔵メモリからメインメモリ32に読み出されて、CPU31によって実行される。
【0072】
図6において、メインメモリ32には、内蔵メモリ、メモリカード28、またはメモリカード29から読み出されたプログラムや息判別処理において生成される一時的なデータが記憶される。メインメモリ32のデータ記憶領域には、操作データDa、ゼロクロス数データDb、クリップ回数データDc、時間間隔データDd、分別カウントデータDe、評価値データDf、閾値データDg、連続息認識カウントデータDh、救済フラグデータDi、息判定フラグデータDj、音データDk、および画像データDm等が格納される。また、メインメモリ32のプログラム記憶領域には、ゲームプログラム(息判別プログラム)を構成する各種プログラム群Paが記憶される。
【0073】
操作データDaは、プレイヤがゲーム装置1を操作しているデータである。例えば、操作データDaは、マイク入力データDa1を含んでいる。マイク入力データDa1は、マイク43に入力された音声波形に対応する音声データである。例えば、マイク入力データDa1は、マイク43に対するサンプリングレート毎(例えば、1/8000秒)に取得された音声データ(サンプル)であり、ゲーム装置1がゲーム処理する時間単位(1フレーム;例えば、1/60秒)毎に利用される。なお、本実施形態においては、マイク入力データDa1の音声データが少なくとも1フレーム分格納されていればよいため、利用直後にマイク入力データDa1を削除し、その後のサンプリングレート毎に所得した音声データを次の利用タイミングまで時系列順に蓄積してもいい。また、最新の1フレーム分の音声データがマイク入力データDa1として格納されるように、FIFO方式でマイク入力データDa1の音声データを更新するようにしてもいい。このように、音声データを所得してマイク入力データDa1として格納する周期とゲーム処理周期とが異なるために、マイク入力データDa1には複数の時点に所得した音声データを含むことになる。後述する処理の説明においては、複数の時点に受信した音声データのうち最新の所定期間分(例えば、1フレーム分)を用いてゲーム処理する態様を用いる。
【0074】
ゼロクロス数データDbは、マイク入力データDa1が示す最新の1フレーム分の音声波形におけるゼロクロスの数を示すデータである。クリップ回数データDcは、マイク入力データDa1が示す最新の1フレーム分の音声波形におけるクリップ期間(クリップしたサンプル数)を示すデータである。時間間隔データDdは、マイク入力データDa1が示す最新の1フレーム分の音声波形における各時間間隔tを示すデータである。
【0075】
分別カウントデータDeは、時間間隔データDdが示す各時間間隔tを、時間長さ毎に所定数(例えば、3つ)のカテゴリに分類し、各カテゴリに分類された時間間隔tの数を示すデータである。例えば、各時間間隔tが、短時間、中間時間、長時間の3つのカテゴリに分類される場合、短時間カテゴリに属する時間間隔tの数(短時間間隔数Nts)、中間時間カテゴリに属する時間間隔tの数(中間時間間隔数Ntm)、長時間カテゴリに属する時間間隔tの数(長時間間隔数Ntl)を示すデータが、それぞれ分別カウントデータDeとなる。評価値データDfは、分別カウントデータDeが示す各カテゴリに属する数に基づいて、最新の1フレーム分の音声波形における周波数分布を評価するための評価値Eを示すデータである。閾値データDgは、評価値Eが息を示す値か否かを判定するために設定される閾値Tを示すデータである。
【0076】
連続息認識カウントデータDhは、入力している音声を示す音声波形が息であると連続して判定されている回数(息認識回数C)を示すデータである。救済フラグデータDiは、入力している音声を示す音声波形が息である判定されている状態から息ではないと判定された場合にオンに設定される救済フラグを示すデータである。息判定フラグデータDjは、入力している音声を示す音声波形が息である判定された場合にオンに設定される息判定フラグを示すデータである。
【0077】
音データDkは、息が入力されたことに応じて、ゲーム装置1から音を発生させるための音を示すデータである。画像データDmは、ゲーム画像をゲーム装置1に表示するための画像を示すデータである。
【0078】
次に、図7を参照して、ゲーム装置1の動作について説明する。まず、ゲーム装置1の電源(電源ボタン14F)がONされると、CPU31によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたはメモリカード28やメモリカード29に格納されているゲームプログラムがメインメモリ32にロードされる。そして、当該ロードされたゲームプログラムがCPU31で実行されることによって、図7に示す各ステップ(図7〜図9では「S」と略称する)が実行される。
【0079】
図7において、CPU31は、ゲーム処理の初期設定を行って(ステップ51)、処理を次のステップに進める。例えば、CPU31が上記ステップ51で行う初期設定として、メインメモリ32に格納されている各パラメータを所定の数値や状態に初期化する。例えば、CPU31は、救済フラグデータDiおよび息判定フラグデータDjがそれぞれ示すフラグを全てオフに設定する。また、上記ステップ51で行う初期設定として、CPU31は、仮想世界の初期設定(仮想世界の設定、背景の設定、表示領域の設定、各オブジェクトの配置等)を行い、設定された表示領域に対応する仮想世界を上側LCD22および/または下側LCD12に表示する。
【0080】
次に、CPU31は、マイク入力データDa1として格納されている最新の1フレーム分の音声データ(サンプル)を取得し(ステップ52)、次のステップに処理を進める。
【0081】
次に、CPU31は、上記ステップ52で取得した音声データが示す音声波形において、ゼロクロス数ZCおよびクリップ回数CLをカウントし(ステップ53)、次のステップに処理を進める。例えば、CPU31は、上記ステップ52で取得した音声データが示す1フレーム分の音声波形の振幅(ゲイン)が、マイナスからプラスへ変化するときに0レベルと交差する点の数をゼロクロス数ZCとしてカウントし、当該ゼロクロス数ZCを用いてゼロクロス数データDbを更新する。また、CPU31は、上記ステップ52で取得した音声データが示す1フレーム分の音声波形の振幅(ゲイン)がクリップされているサンプル数をクリップ回数CLとしてカウントし、当該クリップ回数CLを用いてクリップ回数データDcを更新する。例えば、CPU31は、マイク43の入力レンジが−128〜+127である場合、上記ステップ52で取得した音声データ(サンプル)のうち、−126以下および+126以上の値を示すサンプルの数を、上記クリップ回数CLとしてカウントする。
【0082】
次に、CPU31は、評価値算出処理を行って(ステップ54)、次のステップに処理を進める。以下、図8を参照して、上記ステップ54で行う評価値算出処理について説明する。
【0083】
図8において、CPU31は、上記ステップ52で取得した音声データが示す音声波形において、時間間隔tをそれぞれ算出し(ステップ71)、次のステップに処理を進める。ここで、時間間隔tは、上記音声波形の振幅(ゲイン)がマイナスからプラスへ変化するゼロクロスのうち、連続する2つのゼロクロスで規定される時間長であり、当該音声波形において検出される全てのゼロクロスに対する時間長がそれぞれ算出される。そして、CPU31は、算出されたそれぞれの時間間隔tを用いて、時間間隔データDdを更新する。
【0084】
次に、CPU31は、上記ステップ71で算出された時間間隔tを、それぞれ時間長さ毎に所定数のカテゴリに分類し、各カテゴリに分類された時間間隔tの数をカウントして(ステップ72)、次のステップに処理を進める。例えば、CPU31は、短時間カテゴリ(時間間隔tが13サンプル数以下)、中間時間カテゴリ(時間間隔tが14サンプル以上、かつ、41サンプル以下)、長時間カテゴリ(時間間隔tが42サンプル以上)の3つのカテゴリに分別する。そして、CPU31は、上記ステップ71で算出された時間間隔tに対して、短時間カテゴリに属する時間間隔tの数(短時間間隔数Nts)、中間時間カテゴリに属する時間間隔tの数(中間時間間隔数Ntm)、長時間カテゴリに属する時間間隔tの数(長時間間隔数Ntl)をそれぞれカウントし、当該カウント結果を用いて分別カウントデータDeを更新する。
【0085】
次に、CPU31は、平均値と各カテゴリに属するカウント数との差を算出し(ステップ73)、当該差の累積値を評価値Eとして算出して(ステップ74)、当該サブルーチンによる処理を終了する。具体的には、CPU31は、平均値Avを、
Av=ZC/Cn
で算出する。ここで、ZCは、上記ステップ53でカウントしたゼロクロス数ZCであり、ゼロクロス数データDbを参照することによって得られる。また、Cnは、上記ステップ72で分別するカテゴリ数であり、上述した例ではCn=3である。そして、CPU31は、平均値Avと各カテゴリに属するカウント数(短時間間隔数Nts、中間時間間隔数Ntm、長時間間隔数Ntl)との差(Dnts、Dntm、Dntl)を、
Dnts=|Av−Nts|*S
Dntm=|Av−Ntm|*S
Dntl=|Av−Ntl|*S
でそれぞれ算出する。なお、Sは、スケーリング値を示す係数であり、例えばS=16に設定される。そして、CPU31は、評価値Eを、
E=Dnts+Dntm+Dntl
で算出し、算出された評価値Eを用いて評価値データDfを更新する。
【0086】
図7に戻り、上記ステップ54の評価値算出処理の後、CPU31は、閾値算出処理を行い(ステップ55)、次のステップに処理を進める。以下、図9を参照して、上記ステップ55で行う閾値算出処理について説明する。
【0087】
図9において、CPU31は、クリップ回数CLが所定回数(CLt1)以上、かつ、ゼロクロス数ZCが所定数(ZCt)以上であるか否かを判断する(ステップ81)。そして、CPU31は、クリップ回数CL≧所定回数CLt1、かつ、ゼロクロス数ZC≧所定数ZCtである場合、次のステップ82に処理を進める。一方、CPU31は、クリップ回数CL<所定回数CLt1またはゼロクロス数ZC<所定数ZCtである場合、次のステップ83に処理を進める。ここで、クリップ回数CLおよびゼロクロス数ZCは、ゼロクロス数データDbおよびクリップ回数データDcを参照することによって、上記ステップ53でカウントされた値が用いられる。また、所定回数CLt1および所定数ZCtは、息判定処理においてクリップ回数CLおよびゼロクロス数ZCをそれぞれ評価するための閾値であり、例えば所定回数CLt1=100および所定数ZCt=31に設定される。
【0088】
ステップ82において、CPU31は、閾値Tを2000に設定して閾値データDgを更新し、当該サブルーチンによる処理を終了する。
【0089】
一方、ステップ83において、CPU31は、クリップ回数CLが0より大きいか否か、すなわちクリップが生じたか否かを判断する。そして、CPU31は、クリップ回数CL>0の場合、次のステップ84に処理を進める。一方、CPU31は、クリップ回数CL=0の場合、次のステップ87に処理を進める。
【0090】
ステップ84において、CPU31は、クリップ回数CLが所定回数(CLt2)より多いか否かを判断する。そして、CPU31は、クリップ回数CL>所定回数CLt2である場合、閾値Tを500に設定して閾値データDgを更新し(ステップ85)、当該サブルーチンによる処理を終了する。一方、CPU31は、クリップ回数CL≦所定回数CLt2である場合、閾値Tを200に設定して閾値データDgを更新し(ステップ86)、当該サブルーチンによる処理を終了する。ここで、所定回数CLt2は、息判定処理においてクリップ回数CLを評価するための閾値であり、例えば所定回数CLt2=90に設定される。
【0091】
一方、ステップ87において、CPU31は、息判定フラグデータDjを参照して、息判定フラグがオンに設定されているか否かを判断する。そして、CPU31は、息判定フラグがオンの場合、閾値Tを300に設定して閾値データDgを更新し(ステップ88)、当該サブルーチンによる処理を終了する。一方、CPU31は、息判定フラグがオンの場合、閾値Tを16に設定して閾値データDgを更新し(ステップ89)、当該サブルーチンによる処理を終了する。
【0092】
図7に戻り、上記ステップ55の閾値算出処理の後、CPU31は、評価値Eが閾値T以下か否かを判断する(ステップ56)。そして、評価値Eが閾値T以下の場合、CPU31は、入力している音声を示す音声波形が息であると判定して、次のステップ57に処理を進める。一方、評価値Eが閾値Tより大きい場合、CPU31は、入力している音声を示す音声波形が息でないと判定して、次のステップ62に処理を進める。なお、CPU31は、評価値データDfが示す評価値Eおよび閾値データDgが示す閾値Tを用いて、上記ステップ56における判定を行う。
【0093】
ステップ57において、CPU31は、息認識回数Cに1を加算して更新し、次のステップに処理を進める。例えば、CPU31は、連続息認識カウントデータDhが示す息認識回数Cに1を加算し、加算後の息認識回数Cを用いて連続息認識カウントデータDhを更新する。
【0094】
次に、CPU31は、救済フラグをオフに設定して救済フラグデータDiを更新し(ステップ58)、次のステップに処理を進める。
【0095】
次に、CPU31は、息認識回数Cが所定回数(Ct)以上か否かを判断する(ステップ59)。そして、CPU31は、息認識回数C≧所定回数Ctの場合、次のステップ60に処理を進める。一方、CPU31は、息認識回数C<所定回数Ctの場合、次のステップ67に処理を進める。ここで、所定回数Ctは、現時点が息開始期間か息継続期間かを判別するための閾値である。例えば、息が吹きかけ始められてから2フレーム間を息開始期間とする場合、所定回数Ct=2に設定される。
【0096】
ステップ60において、CPU31は、息判定フラグをオンに設定して息判定フラグデータDjを更新し、次のステップに処理を進める。
【0097】
次に、CPU31は、入力された音声が息である場合の処理を行い(ステップ61)、次のステップ68に処理を進める。例えば、CPU31は、画像データDmを用いて仮想世界に配置された楽器を演奏する画像を下側LCD12および/または上側LCD22に表示する処理を行うとともに、音データDkを用いて当該楽器の演奏音色に応じた音をスピーカから発生させる処理を行う。他の例として、CPU31は、画像データDmを用いて判別された息に応じた現象が仮想世界に生じた画像を生成し、当該仮想世界を表す画像を下側LCD12および/または上側LCD22に表示する処理を行う。
【0098】
一方、CPU31は、評価値Eが閾値Tより大きいと判断された場合(ステップ56でNo)、息判定フラグデータDjを参照して、息判定フラグがオンに設定されているか否かを判断する(ステップ62)。そして、CPU31は、息判定フラグがオンの場合、次のステップ63に処理を進める。一方、CPU31は、息判定フラグがオフの場合、次のステップ66に処理を進める。
【0099】
ステップ63において、CPU31は、救済フラグデータDiを参照して、救済フラグがオフに設定されているか否かを判断する。そして、CPU31は、救済フラグがオフの場合、次のステップ64に処理を進める。一方、CPU31は、救済フラグがオンの場合、次のステップ66に処理を進める。
【0100】
ステップ64において、CPU31は、息認識回数Cに1を加算して更新し、次のステップに処理を進める。例えば、CPU31は、連続息認識カウントデータDhが示す息認識回数Cに1を加算し、加算後の息認識回数Cを用いて連続息認識カウントデータDhを更新する。
【0101】
次に、CPU31は、救済フラグをオンに設定して救済フラグデータDiを更新し(ステップ65)、上記ステップ59に処理を進める。
【0102】
一方、ステップ66において、CPU31は、息認識回数Cを0に更新し、次のステップに処理を進める。例えば、CPU31は、連続息認識カウントデータDhが示す息認識回数Cに0に更新する。
【0103】
次に、CPU31は、息判定フラグをオフに設定して息判定フラグデータDjを更新し(ステップ67)、次のステップ68に処理を進める。
【0104】
ステップ68において、CPU31は、ゲーム処理を終了するか否かを判断する。ゲーム処理を終了する条件としては、例えば、現在ゲーム処理されているゲームがゲームオーバーとなったことや、プレイヤがゲーム処理を終了する操作を行ったこと等がある。CPU31は、ゲーム処理を終了しない場合、上記ステップ52に戻って処理を繰り返す。一方、CPU31は、ゲーム処理を終了する場合、当該フローチャートによる処理を終了する。
【0105】
次に、上述した各処理動作と息判別処理との関係について説明する。
【0106】
上記ステップ56〜ステップ61の処理から明らかなように、ゲーム装置1では、評価値Eが閾値T以下である場合に入力された音声が息であると判定している。つまり、閾値Tの値が小さいほど入力された音声が息であると判定されにくくなることになる。ここで、図9に示す閾値算出処理では、上記ステップ89において閾値Tが最も小さな値に設定されている。また、上記ステップ89の処理は、入力された音声を示す音声波形においてクリップ回数CLが0(ステップ83でNo)であり、かつ、息判定フラグがオフ(ステップ87でNo)、すなわち前回の処理において音声が息であると判定されていない状態または現時点が息開始期間中である場合に行われる。つまり、前回の処理において音声が息であると判定されていない状態または現時点が息開始期間中である場合では、入力された音声を示す音声波形における振幅(ゲイン)が所定の大きさ以上とならない限り、当該音声波形に対する周波数分布の判定において厳しい判定条件が設定されることになる。上記実施例では、上記ステップ89において閾値T=16に設定しているが、評価値Eがこの閾値Tの値以下となることは、実験等により得られた経験値においては非常に希となるものである。したがって、息の吹きかけ始めにおいて、プレイヤがゲーム装置1に息の入力を認識させるためには、入力された音声を示す音声波形における振幅(ゲイン)が所定の大きさ以上となるような強い息を吹きかける必要がある。なお、上述したように、上記ステップ89では、上記ステップ56において肯定判定されることが希な値に閾値Tを設定しているが、上記ステップ56において必ず否定判定される値(例えば、負の値)に閾値Tを設定してもかまわない。この場合も、息の吹きかけ始めにおいて、プレイヤがゲーム装置1に息の入力を認識させるためには、入力された音声を示す音声波形における振幅(ゲイン)が所定の大きさ以上となるような強い息を吹きかけることが必要となる。
【0107】
その一方で、入力された音声を示す音声波形においてクリップ回数CLが0(ステップ83でNo)であり、かつ、息判定フラグがオン(ステップ87でYes)、すなわち前回の処理において音声が息であると判定された息継続期間中である場合、上記ステップ88において閾値Tがステップ89で設定される値より大きな値(閾値T=300)に設定されている。これは、現時点が息継続期間中である場合では、入力された音声を示す音声波形における振幅(ゲイン)が所定の大きさ以上とならなくても、当該音声波形に対する周波数分布の判定において息入力であると判定されれば、息入力として取り扱う設定となる。ここで、息がされた場合の音声波形は、プレイヤの声がマイク43に入力された場合の音声波形やノイズによる入力波形と比較すると、周波数分布が特定の周波数帯に集中することなく全体的にばらつく傾向にある。したがって、息が入力された場合の音声波形は、評価値Eが小さくなる傾向があるため、上記ステップ88で設定される閾値Tは、このような音声波形を息入力であると判定するための閾値となっている。このように、息継続期間では音声波形が所定の振幅未満であっても息であると判定されことがあり得るため、吹きかけられた息が漸減的に弱くなっても息入力の有無を適切に判別することができる。
【0108】
また、上記ステップ62〜ステップ65の処理は、評価値Eが閾値T以下である場合であっても、ゲーム装置1が入力された音声を息であると判定している。これは、入力された音声を息であるとゲーム装置1が判定した後に、さらに継続して息が吹きかけられている期間(息継続期間)中において、1フレーム間だけ息認識が途切れた場合に当該1フレーム間も息が入力されているものと見なすことを目的としている。例えば、プレイヤがゲーム装置1に息を吹きかけていたとしても、ノイズ等によって息が入力されていないとゲーム装置1が誤判定した場合、救済処理として当該誤判定が1フレーム間であれば息が入力されたものとして取り扱われる。なお、上記救済処理を1フレーム間より長く継続したい場合は、当該救済処理を継続したい期間に応じて上記ステップ65において救済フラグをオンするタイミングを遅らせればよい。
【0109】
また、上記ステップ55における閾値算出処理では、音声入力の大きさ(振幅)に応じて周波数分布を判定するための閾値Tを変動させている。ただし、所定の範囲より大きな音声入力の振幅は、クリップされてしまうため、クリップされる音声波形に関しては、クリップ期間(クリップ回数CL)を音声入力の大きさとみなしている。以下、上記ステップ55の閾値算出処理で設定される閾値Tによって区別する音声波形について説明する。
【0110】
上記ステップ82〜ステップ86において設定される閾値Tは、クリップ回数CLが1以上の場合、すなわち相対的に強い息がマイク43に入力された場合に当該入力の音声波形を判定するために設けられる。一方、上記ステップ87〜ステップ89において設定される閾値Tは、クリップ回数CLが0の場合、すなわち相対的に弱い息がマイク43に入力された場合に当該入力の音声波形を判定するために設けられる。
【0111】
例えば、クリップ回数CLが1以上所定回数CLt2以下となる音声がマイク43に入力された場合、上記ステップ86において閾値T=200が設定される。ここで、上述したように、息が入力された場合の音声波形は、プレイヤの声がマイク43に入力された場合の音声波形やノイズによる入力波形と比較すると、周波数分布が特定の周波数帯に集中することなく全体的にばらつく傾向にある。したがって、息が入力された場合の音声波形は、評価値Eが小さくなる傾向があるため、上記ステップ86で設定される閾値Tは、このような音声波形を息入力であると判定するための閾値となっている。なお、息が入力された場合の音声波形は、評価値Eが小さくなる傾向があるもののその波形は不規則であるため、上記ステップ86で設定される閾値Tは、実験等の経験値に基づいて、ある程度の大きくなった評価値Eであっても息入力であると判定できるような値に設定されている。
【0112】
また、クリップ回数CLが所定回数CLt2より多くなる音声がマイク43に入力された場合、上記ステップ85において閾値T=500が設定される。ここで、息が入力された場合の音声波形は、プレイヤの声がマイク43に入力された場合の音声波形やノイズによる入力波形と比較すると、周波数分布が全体的にばらつく傾向にあるものの、上述したように入力された息の強さが強くなるとゼロクロス数が多くなる。そして、このゼロクロス数の増加によって、周波数分布のバラツキも多くなって評価値Eが大きくなる傾向がある。したがって、上記ステップ85で設定される閾値Tは、実験等の経験値に基づいて、入力された息の強さがより強い場合にゼロクロス数が増加することによって、ある程度大きくなった評価値Eであっても息入力であると判定できるような値に設定されている。
【0113】
さらに強い息がマイク43に入力された場合、各時間間隔tが相対的に短い時間のカテゴリ(例えば、短時間カテゴリ)に偏る傾向があり、周波数分布だけでは、プレイヤの声がマイク43に入力された場合の音声波形やノイズによる入力波形との区別が困難となる。したがって、上記ステップ82においては、閾値T=2000に設定することによって、周波数分布を用いた息判別(すなわち、評価値Eによる判定)では実験等の経験値に基づけばほとんど息入力であると判定されるような値に設定されている。その一方で、実験等の経験値に基づいて、さらに強い息が入力された場合では容易に到達するが、プレイヤの声や物音の入力では容易に到達しないクリップ回数CLおよびゼロクロス数ZCに関する判定基準(具体的には、クリップ回数CLが100以上、かつ、ゼロクロス数ZCが31以上)を設けることによって、さらに強い息入力と他の入力とを判別している。なお、上述したように、上記ステップ82では、上記ステップ56においてほとんど肯定判定される値に閾値Tを設定しているが、上記ステップ56において必ず肯定判定される値(例えば、無限大の値)に閾値Tを設定してもかまわない。この場合、音声波形に対する周波数分布の判定結果とは無関係に、クリップ回数CLおよびゼロクロス数ZCに関する判定のみで息の入力を判別することになる。
【0114】
また、クリップ回数CLが0となる相対的に弱い音声がマイク43に入力された場合、息開始期間(息判定フラグがオフ)では上記ステップ89において閾値T=16が設定される。ここで、クリップが生じない相対的に弱い息がマイク43に入力された場合、ゼロクロス数が相対的に減少する。そして、このゼロクロス数の減少に伴って、周波数分布のバラツキに偏りが生じることもある。このような音声波形を息が入力された音声波形であると認識しようとする場合、周波数分布のバラツキに偏りがある場合を考慮する必要があるため、誤認識が生じることが考えられる。上述したように、このような誤認識を防ぐために、息開始期間においては閾値Tを極端に小さな値に設定することによって、実験等の経験値においてはほとんどの場合に周波数分布の判定結果において息の入力とは判定されない値に設定されている。つまり、息の吹きかけ始めにおいて、プレイヤがゲーム装置1に息の入力を認識させるためには、入力された音声を示す音声波形における振幅(ゲイン)が所定の大きさ以上となるような強い息の吹きかけが要求される。
【0115】
その一方で、クリップ回数CLが0となる相対的に弱い音声がマイク43に入力された場合、息継続期間(息判定フラグがオン)では上記ステップ88において閾値T=300が設定される。これは、上述したように、息が入力された場合の音声波形は、プレイヤの声がマイク43に入力された場合の音声波形やノイズによる入力波形と比較すると、周波数分布が特定の周波数帯に集中することなく全体的にばらつく傾向にある。したがって、息が入力された場合の音声波形は、評価値Eが小さくなる傾向があるため、上記ステップ88で設定される閾値Tは、このような音声波形を息入力であると判定するための閾値となっている。つまり、息継続期間中である場合では、入力された音声を示す音声波形における振幅(ゲイン)が所定の大きさ以上とならなくても、当該音声波形に対する周波数分布の判定において息入力であると判定されれば、息入力として取り扱う設定となる。
【0116】
このような閾値Tの設定によって、ゲーム装置1が入力された音声が息であると判定するためには、息開始期間では音声波形における振幅(ゲイン)に基づいた息入力判定における肯定判定が必須となることに対して、息継続期間では音声波形における振幅(ゲイン)に基づいた息入力判定および周波数分布に基づいた息入力判定の少なくとも一方が肯定判定されることによって音声が息であると判定される。具体的には、クリップ回数CLが0(ステップ83でNo)、すなわち音声波形における振幅(ゲイン)に基づいた息入力判定が否定判定の場合、息判定フラグがオン(ステップ87でYes)、すなわち息継続期間であれば周波数分布に基づいた息入力判定において肯定判定され得る閾値Tが設定される。つまり、息継続期間では、音声波形における振幅(ゲイン)に基づいた息入力判定が否定判定であっても、周波数分布に基づいた息入力判定で肯定判定されれば息入力であると判定される。一方、クリップ回数CLが0(ステップ83でNo)、すなわち音声波形における振幅(ゲイン)に基づいた息入力判定が否定判定の場合、息判定フラグがオフ(ステップ87でNo)、すなわち息開始期間であれば周波数分布に基づいた息入力判定においてほとんどまたは必ず否定判定される閾値Tが設定される。つまり、息開始期間では、音声波形における振幅(ゲイン)に基づいた息入力判定が否定判定であると、息入力ではないと判定される。
【0117】
また、ステップ82で設定される閾値Tは、周波数分布に基づいた判定においてほとんど肯定判定されるまたは必ず肯定判定される値に設定されるため、実質的にはクリップ回数CLおよびゼロクロス数ZCに基づいた判定によって、音声が息であると判定される。そして、ステップ82で設定される閾値Tは、息判定フラグの状態とは無関係に行われる処理、すなわち、息開始期間でも息継続期間でも行われる処理であるため、クリップ回数CLおよびゼロクロス数ZCが所定の判定条件を満たせば、息開始期間および息継続期間の何れであっても音声波形における周波数分布に基づいた判定とは無関係に息入力であると判定される。
【0118】
つまり、息開始期間においては、音声波形の振幅に関する評価(第1評価)において肯定評価される(ステップ81でYesまたはステップ83でYes)ことが、マイク43に息が入力されたと決定されるために必要となる。また、息開始期間においては、ステップ82において閾値Tを設定する非常に強い息が入力されたケースを除けば、さらに音声波形の周波数分布に関する評価(ステップ85またはステップ86で設定された閾値Tを用いたステップ56の評価;第2評価)において肯定評価されることによって、マイク43に息が入力されたと決定される。一方、息継続期間においては、音声波形の周波数分布に関する評価(ステップ88で設定された閾値Tを用いたステップ56の評価;第2評価)において肯定評価されるだけでマイク43に息が入力されたと決定される。また、息開始期間においては、音声波形の振幅に関する評価(第1評価)で非常に強い息が入力されたと判定された場合(ステップ82において閾値Tを設定するケース)、上記第2評価を行うことなく息入力が決定されることもあり得る。
【0119】
また、上記閾値算出処理において、クリップ回数CL等を考慮することなく閾値を設定する場合(すなわち、上記ステップ81〜ステップ86の処理をせずに、上記ステップ87〜ステップ89の処理だけで閾値Tを算出する場合)、息開始期間においては、音声波形の周波数分布に関する評価において息入力によるものであると判定される閾値が相対的に厳しい値に設定された評価(ステップ89で設定された閾値Tを用いたステップ56の評価;第1評価)において肯定評価されることによって、マイク43に息が入力されたと決定される。一方、息継続期間においては、音声波形の周波数分布に関する評価において息入力によるものであると判定される閾値が相対的に緩い値に設定された評価(ステップ88で設定された閾値Tを用いたステップ56の評価;第2評価)において肯定評価されることによって、マイク43に息が入力されたと決定される。
【0120】
このように、本実施形態に係るゲーム装置1は、入力された音声が息であると判定するためには、息開始期間では第1評価(例えば、音声波形の振幅に関する評価)が息入力であると肯定評価されることが必要である。その一方で、息継続期間において入力された音声が息であると判定するためには、上記第1評価および第2評価(例えば、音声波形の周波数分布に関する評価)の少なくとも一方が息入力であると肯定評価されるだけでよい。一例として、息開始期間では音声波形が所定の振幅(ゲイン)以上となる強い息の吹きかけが必要であるとともに、息継続期間では当該音声波形が所定の振幅未満であっても息であると判定され得る。このように、息を認識する期間によって息であると判定する条件が異なるため、吹きかけられた息を適切に判別することができる。例えば、漸減的に強さが弱くなるような息が持続して吹きかけられた場合であっても、当該息を適切に判別することができる。また、息が吹きかけられていない状態において、入力されたノイズや物音等の息以外の入力を息と判定してしまうような誤判定も防止することができる。
【0121】
なお、上述した処理フローでは、入力された音声が息であると認識した回数(息認識回数C)が所定回数Ct以上となった場合に、上記ステップ61における息入力に応じた処理を行っているが、他のタイミングで息入力に応じた処理を行ってもかまわない。例えば、入力された音声が息であると認識した直後から上記息入力に応じた処理を行ってもかまわない。この場合、上記ステップ61の処理を上記ステップ59の処理の直前(すなわち、上記ステップ58の後であり、上記ステップ65の後)で行うことによって、入力された音声が息であると認識した直後から上記息入力に応じた処理を行うことが可能となる。
【0122】
また、上述した説明では、入力された音声の周波数分布を評価した結果を示す評価値Eを算出するために、ゼロクロス、ゼロクロス数、ゼロクロス間の時間間隔を用いたが、他の方式を用いて音声の周波数分布を分析した結果を評価値として用いてもかまわない。一例として、入力された音声の音声波形を高速フーリエ変換処理(FFT:Fast Fourier Transform)することによって、入力された音声のスペクトラムを算出する。そして、算出したスペクトラムと予め設定された息の音声についてのスペクトラムとの近似度合を評価値として算出してもよい。他の例として、息を吹きかける音(息の音声)についての音声の波形パターンを予め設定し、記憶しておいた波形パターンと入力された音声の音声波形との近似度合を評価値として算出してもよい。
【0123】
また、上述した説明では、入力された音声の強さを判断するパラメータとして、音声信号の振幅(ゲイン)を用いたが、他のパラメータを用いてもかまわない。所定の期間内(1フレーム内)において、入力された音声の強さを表すことができるパラメータであれば、当該パラメータを用いて同様の処理ができることは言うまでもない。
【0124】
また、上述した説明では息判別処理をゲーム装置1で行う例を用いたが、上記息判別処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。一例として、ゲーム装置1に対して、マイク等の音声入力デバイスが音声入力装置として別に設けられる場合、当該音声入力装置に音声信号を処理する処理装置を設けることによって、当該音声入力装置からゲーム装置1へ様々な処理段階の音声データを送ることが考えられる。第1の例として、上述した例のように、音声入力装置から入力した音声の振幅(ゲイン)を示す音声信号をゲーム装置1へ送信してもよい。第2の例として、上記ステップ53でカウントされるゼロクロス数およびクリップ回数と上記ステップS71で算出される時間間隔とを音声入力装置の処理装置で算出し、当該算出結果を示すデータを音声入力装置からゲーム装置1へ送信してもよい。第3の例として、上記ステップ54で算出される評価値上記ステップ55で算出される閾値を音声入力装置の処理装置で算出し、当該算出結果を示すデータを音声入力装置からゲーム装置1へ送信してもよい。このように、様々な処理段階の音声データを音声入力装置からゲーム装置1へ送信することが考えられる。
【0125】
他の例として、ゲーム装置1が他の装置(例えば、サーバ)と通信可能に構成されている場合、上記息判別処理における処理ステップの少なくとも一部を当該他の装置で行うことも考えられる。例えば、上述した説明では、音声データの取得、音声データの分析、評価値の算出、閾値の算出、息の判別、および息入力に応じた処理を、全てゲーム装置1が行っているが、これらの処理の一部を他の装置が行ってもよい。第1の例として、他の装置が音声データの分析、評価値の算出、閾値の算出、および息の判別を行う場合、取得された音声データをゲーム装置1から他の装置へ送信し、息の判別結果を他の装置からゲーム装置1へ送信するように構成すれば、同様の息判別処理が可能となる。第2の例として、他の装置が音声データの分析、評価値の算出、閾値の算出、息の判別、および息入力に応じた処理を行う場合、取得された音声データをゲーム装置1から他の装置へ送信することによって、同様の息判別処理が可能となるとともに、他の装置において実現されている仮想空間に息の影響を与える処理(例えば、他の装置で動作しているゲームに参加してゲーム進行を共有するオンラインゲーム)に適用することも可能となる。第3の例として、他の装置が息入力に応じた処理を行う場合、入力された音声が息であると判定された場合に当該判定結果を示すデータをゲーム装置1から他の装置へ送信することによって、同様の息判別処理が可能となるとともに、他の装置において実現されている仮想空間に息の影響を与える処理に適用することも可能となる。
【0126】
また、上記実施例では、携帯型のゲーム装置1を用いて説明したが、据置型のゲーム装置や、一般的なパーソナルコンピュータ等の情報処理装置で本発明の息判別プログラムを実行して、本発明を実現してもかまわない。
【0127】
また、上述したゲーム装置1の形状や、それに設けられている各種操作ボタン14やタッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述したゲーム処理で用いられる処理順序、係数、閾値、数式、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0128】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0129】
本発明の息判別プログラムおよび息判別装置は、吹きかけられた息を適切に判別することができ、息が認識された結果に応じて動作するゲーム装置等の息判別装置に有用であり、当該息判別装置で実行されるゲームプログラム等に含まれる息判別プログラムとして有用である。
【符号の説明】
【0130】
1…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15、26…LED
16…マイクロフォン用孔
21…上側ハウジング
22…上側LCD
23…内側カメラ
24…音抜き孔
25…外側カメラ
27…タッチペン
28、29…メモリカード
31…CPU
32…メインメモリ
33…メモリ制御回路
34…保存用データメモリ
35…プリセットデータ用メモリ
36、37…メモリカードI/F
38…無線通信モジュール
39…ローカル通信モジュール
40…RTC
41…電源回路
42…I/F回路
43…マイク
44…アンプ

【特許請求の範囲】
【請求項1】
音声入力デバイスに入力される音声を判別する装置のコンピュータで実行される息判別プログラムであって、
前記コンピュータを、
前記音声入力デバイスから音声信号を示す音声データを取得する音声データ取得手段と、
前記音声入力デバイスに入力された音声が息であるか否かを判定する第1の判定条件を用いて、前記音声データが示す音声信号を評価する第1評価手段と、
前記第1の判定条件とは異なる第2の判定条件を用いて、前記音声データが示す音声信号を評価する第2評価手段と、
前記音声入力デバイスに息の吹きかけが開始されたか否かを判定する第1の期間では少なくとも前記第1評価手段の評価が肯定である場合に前記音声入力デバイスに息が入力されていると判断し、前記音声入力デバイスに息の吹きかけが継続しているか否かを判定する第2の期間では前記第1評価手段および前記第2評価手段の評価の少なくとも一方が肯定である場合に前記音声入力デバイスに息が入力されていると判断する息判別手段として機能させる、息判別プログラム。
【請求項2】
前記第1評価手段は、前記音声信号が示す音声の大きさに基づいて当該音声信号を評価し、
前記第2評価手段は、前記音声信号が示す音声の周波数分布に基づいて当該音声信号を評価する、請求項1に記載の息判別プログラム。
【請求項3】
前記第1の判定条件および前記第2の判定条件とは異なる第3の判定条件を用いて、前記音声信号が示す音声の周波数分布に基づいて当該音声信号を評価する第3評価手段として、さらに前記コンピュータを機能させ、
前記息判別手段は、前記第1の期間では前記音声信号が示す音声の大きさに基づいた前記第1評価手段による評価と前記音声信号が示す音声の周波数分布に基づいた前記第3評価手段による評価とが何れも肯定評価である場合に前記音声入力デバイスに息が入力されていると判断し、
前記息判別手段は、前記第2の期間では少なくとも前記音声信号が示す音声の周波数分布に基づいた前記第2評価手段による評価が肯定評価である場合に前記音声入力デバイスに息が入力されていると判断する、請求項2に記載の息判別プログラム。
【請求項4】
前記第2評価手段は、
前記音声信号に基づいて、前記音声入力デバイスに入力された音声を示す音声波形のゼロクロスを検出し、連続するゼロクロスの間の時間間隔をそれぞれ算出する時間間隔算出手段と、
前記時間間隔算出手段が算出した時間間隔の分布を作成する時間間隔分布作成手段と、
前記時間間隔の分布が所定のばらつき以内であるか否かを評価するばらつき評価手段とを含み、
前記第2評価手段は、前記時間間隔の分布が所定のばらつき以内である場合に前記第2の判定条件を用いた評価を肯定評価とする、請求項2に記載の息判別プログラム。
【請求項5】
前記第1評価手段は、前記音声信号が示す音声の大きさが所定の大きさ以上となる期間が所定の時間以上である場合に前記第1の判定条件を用いた評価を肯定評価とする、請求項2乃至4の何れか1つに記載の息判別プログラム。
【請求項6】
前記第1評価手段は、前記音声信号が示す音声の大きさが所定の大きさ以上となる期間に基づいて当該音声信号を評価し、
前記第2評価手段は、前記第1評価手段が評価した前記期間に応じて、前記音声信号が示す音声の周波数分布のばらつきを評価する閾値を変化させる、請求項2に記載の息判別プログラム。
【請求項7】
前記第2評価手段は、前記音声信号が示す音声の大きさが所定の大きさ以上となる期間が第1の閾値以上であると前記第1評価手段が肯定評価した場合、前記音声信号が示す音声の周波数分布のばらつきが第2の閾値以内である場合に前記第2の判定条件を用いた評価を肯定評価とし、
前記第2評価手段は、前記音声信号が示す音声の大きさが所定の大きさ以上となる期間が前記第1の閾値より長い第3の閾値以上であると前記第1評価手段が肯定評価した場合、前記音声信号が示す音声の周波数分布のばらつきが前記第2の閾値よりも大きい第4の閾値以内である場合に前記第2の判定条件を用いた評価を肯定評価する、請求項6に記載の息判別プログラム。
【請求項8】
前記音声信号に基づいて、前記音声入力デバイスに入力された音声を示す音声波形のゼロクロスを検出し、所定の期間における当該ゼロクロスの数をカウントするゼロクロス計数手段として、さらに前記コンピュータを機能させ、
前記第2評価手段は、前記音声信号が示す音声の大きさが所定の大きさ以上となる期間が前記第3の閾値より長い第5の閾値以上であると前記第1評価手段が肯定評価し、かつ、前記ゼロクロス計数手段がカウントしたゼロクロスの数が所定の数以上である場合、前記音声信号が示す音声の周波数分布のばらつきが前記第4の閾値よりも大きい第6の閾値以内である場合に前記第2の判定条件を用いた評価を肯定評価する、請求項7に記載の息判別プログラム。
【請求項9】
前記音声信号に基づいて、前記音声入力デバイスに入力された音声を示す音声波形のゼロクロスを検出し、所定の期間における当該ゼロクロスの数をカウントするゼロクロス計数手段として、さらに前記コンピュータを機能させ、
前記第1評価手段は、前記音声信号が示す音声の大きさが所定の大きさ以上となる期間に基づいて当該音声信号を評価し、
前記息判別手段は、前記音声信号が示す音声の大きさが所定の大きさ以上となる期間が所定の閾値以上であると前記第1評価手段が肯定評価し、かつ、前記ゼロクロス計数手段がカウントしたゼロクロスの数が所定の数以上である場合、前記音声入力デバイスに息が入力されていると判断する、請求項2に記載の息判別プログラム。
【請求項10】
前記音声信号に基づいて、前記音声入力デバイスに入力された音声を示す音声波形のゼロクロスを検出し、所定の期間における当該ゼロクロスの数をカウントするゼロクロス計数手段として、さらに前記コンピュータを機能させ、
前記第2評価手段は、前記ゼロクロス計数手段がカウントしたゼロクロスの数に応じて、前記音声信号が示す音声の周波数分布のばらつきを評価する閾値を変化させる、請求項2に記載の息判別プログラム。
【請求項11】
前記ばらつき評価手段は、前記時間間隔の分布の均等度合いと各分布数との差を累積した評価値を算出し、当該評価値が所定の閾値以下か否かを評価し、
前記第2評価手段は、前記評価値が前記閾値以下である場合に前記第2の判定条件を用いた評価を肯定評価とする、請求項4に記載の息判別プログラム。
【請求項12】
音声入力デバイスに入力される音声を判別する息判別装置であって、
前記音声入力デバイスから音声信号を示す音声データを取得する音声データ取得手段と、
前記音声入力デバイスに入力された音声が息であるか否かを判定する第1の判定条件を用いて、前記音声データが示す音声信号を評価する第1評価手段と、
前記第1の判定条件とは異なる第2の判定条件を用いて、前記音声データが示す音声信号を評価する第2評価手段と、
前記音声入力デバイスに息の吹きかけが開始されたか否かを判定する第1の期間では少なくとも前記第1評価手段の評価が肯定である場合に前記音声入力デバイスに息が入力されていると判断し、前記音声入力デバイスに息の吹きかけが継続しているか否かを判定する第2の期間では前記第1評価手段および前記第2評価手段の評価の少なくとも一方が肯定である場合に前記音声入力デバイスに息が入力されていると判断する息判別手段とを備える、息判別装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate