(57)【特許請求の範囲】
【請求項１】
音声情報の入力を受け付ける入力受付部、
前記入力を受け付けられた音声情報をフーリエ変換して、複数の周波数成分の強度を得るフーリエ変換部、
複数の周波数帯のそれぞれに対応付けられるパラメータが記憶されるパラメータ記憶部、
所定の時間おきに、当該複数の周波数帯のそれぞれについて、前記得られた複数の周波数成分の強度のうち当該周波数帯に属する強度から、当該周波数帯に対応付けられるパラメータの変化量を求める変化量計算部、
当該複数の周波数帯のそれぞれについて、前記パラメータ記憶部に当該周波数帯に対応付けられて記憶されるパラメータを、当該周波数帯に対して前記求められた変化量だけ変化させる更新部、
前記パラメータ記憶部に記憶されるパラメータにより、複数の処理項目からいずれかを選択して出力する選択出力部、
仮想空間においてユーザの指示入力により移動するキャラクターと、当該キャラクターによる操作を受け付けるオブジェクトと、の位置が記憶される仮想空間情報記憶部
を備え、
前記変化量計算部は、当該複数の周波数帯のそれぞれについて、前記得られた複数の周波数成分の強度のうち当該周波数帯に属する強度の総和が
（ａ）所定の閾値以上である場合、
（ｘ）当該周波数帯が、当該周波数帯に属する強度の総和が最大となる周波数帯である場合、前記仮想空間情報記憶部に記憶されたキャラクターとオブジェクトの位置から、当該キャラクターと当該オブジェクトの間の距離を求め、当該総和にあらかじめ対応付けられた正値から、当該求められた距離にあらかじめ対応付けられた正値を減算した値を変化量とし、
（ｙ）当該周波数帯が、当該周波数帯に属する強度の総和が最大となる周波数帯でない場合、当該総和にあらかじめ対応付けられた正値を変化量とし、
（ｂ）連続して所定の閾値未満である時間が所定の閾時間以上である場合、当該パラメータの値の符号を反転した値を変化量とする
ことを特徴とする音声情報処理装置。
【請求項２】
複数の周波数帯のそれぞれに対応付けられるパラメータが記憶されるパラメータ記憶部、ならびに、仮想空間においてユーザの指示入力により移動するキャラクターと、当該キャラクターによる操作を受け付けるオブジェクトと、の位置が記憶される仮想空間情報記憶部を用いる音声情報処理方法であって、
音声情報の入力を受け付ける入力受付工程、
前記入力を受け付けられた音声情報をフーリエ変換して、複数の周波数成分の強度を得るフーリエ変換工程、
所定の時間おきに、当該複数の周波数帯のそれぞれについて、前記得られた複数の周波数成分の強度のうち当該周波数帯に属する強度から、当該周波数帯に対応付けられるパラメータの変化量を求める変化量計算工程、
当該複数の周波数帯のそれぞれについて、前記パラメータ記憶部に当該周波数帯に対応付けられて記憶されるパラメータを、当該周波数帯に対して前記求められた変化量だけ変化させる更新工程、
前記パラメータ記憶部に記憶されるパラメータにより、複数の処理項目からいずれかを選択して出力する選択出力工程
を備え、
前記変化量計算工程では、当該複数の周波数帯のそれぞれについて、前記得られた複数の周波数成分の強度のうち当該周波数帯に属する強度の総和が
（ａ）所定の閾値以上である場合、
（ｘ）当該周波数帯が、当該周波数帯に属する強度の総和が最大となる周波数帯である場合、前記仮想空間情報記憶部に記憶されたキャラクターとオブジェクトの位置から、当該キャラクターと当該オブジェクトの間の距離を求め、当該総和にあらかじめ対応付けられた正値から、当該求められた距離にあらかじめ対応付けられた正値を減算した値を変化量とし、
（ｙ）当該周波数帯が、当該周波数帯に属する強度の総和が最大となる周波数帯でない場合、当該総和にあらかじめ対応付けられた正値を変化量とし、
（ｂ）連続して所定の閾値未満である時間が所定の閾時間以上である場合、当該パラメータの値の符号を反転した値を変化量とする
ことを特徴とする音声情報処理方法。
【請求項３】
コンピュータを、
音声情報の入力を受け付ける入力受付部、
前記入力を受け付けられた音声情報をフーリエ変換して、複数の周波数成分の強度を得るフーリエ変換部、
複数の周波数帯のそれぞれに対応付けられるパラメータが記憶されるパラメータ記憶部、
所定の時間おきに、当該複数の周波数帯のそれぞれについて、前記得られた複数の周波数成分の強度のうち当該周波数帯に属する強度から、当該周波数帯に対応付けられるパラメータの変化量を求める変化量計算部、
当該複数の周波数帯のそれぞれについて、前記パラメータ記憶部に当該周波数帯に対応付けられて記憶されるパラメータを、当該周波数帯に対して前記求められた変化量だけ変化させる更新部、
前記パラメータ記憶部に記憶されるパラメータにより、複数の処理項目からいずれかを選択して出力する選択出力部、
仮想空間においてユーザの指示入力により移動するキャラクターと、当該キャラクターによる操作を受け付けるオブジェクトと、の位置が記憶される仮想空間情報記憶部
として機能させ、
前記変化量計算部は、当該複数の周波数帯のそれぞれについて、前記得られた複数の周波数成分の強度のうち当該周波数帯に属する強度の総和が
（ａ）所定の閾値以上である場合、
（ｘ）当該周波数帯が、当該周波数帯に属する強度の総和が最大となる周波数帯である場合、前記仮想空間情報記憶部に記憶されたキャラクターとオブジェクトの位置から、当該キャラクターと当該オブジェクトの間の距離を求め、当該総和にあらかじめ対応付けられた正値から、当該求められた距離にあらかじめ対応付けられた正値を減算した値を変化量とし、
（ｙ）当該周波数帯が、当該周波数帯に属する強度の総和が最大となる周波数帯でない場合、当該総和にあらかじめ対応付けられた正値を変化量とし、
（ｂ）連続して所定の閾値未満である時間が所定の閾時間以上である場合、当該パラメータの値の符号を反転した値を変化量とする
ように機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力される音声情報の周波数特性に応じて処理を変化させるのに好適な音声情報処理装置、音声情報処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、人間が声を出してマイクなどを介して音声情報をコンピュータに与え、当該音声情報に対応した処理をコンピュータに行わせる音声情報処理システムが提案されている。このようなシステムに関連する技術は、以下の文献に開示されている。
【特許文献１】特許第３５００３８３号公報
【０００３】
[特許文献１]においては、音声入力時において、より音声認識に適した文字列を案内表示することにより、ゲーム装置への指示を快適に進める技術が提案されている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一方で、計算資源の限られたゲーム装置では、音韻等の解析を行うことが難しい場合もある。したがって、入力された音声情報に基づいて、行うべき処理を決定するための、簡易な手法が求められている。
【０００５】
特に、入力される音声の周波数特性に応じて複数ある処理項目からいずれかを、簡易に判別する手法が強く望まれている。
【０００６】
本発明は、このような課題を解決するものであり、入力される音声情報の周波数特性に応じて処理を変化させるのに好適な音声情報処理装置、音声情報処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００８】
本発明の第１の観点に係る音声処理装置は、入力受付部、フーリエ変換部、パラメータ記憶部、変化量計算部、更新部、選択出力部を備え、以下のように構成する。
【０００９】
すなわち、入力受付部は、音声情報の入力を受け付ける。典型的には、入力受付部はマイクなどの音声入力装置によって音声情報の入力を受け付けるが、音声情報は、空気や液体、個体などのこれらの媒質の圧力や位置などが振動する際の変位を数値化したものであり、ファイルに記録された音声情報やネットワークを介して入手される音声情報など、種々の音声情報に対して本音声情報処理装置を適用することができる。
【００１０】
一方、フーリエ変換部は、入力を受け付けられた音声情報をフーリエ変換して、複数の周波数成分の強度を得る。典型的には、コンピュータを用いて高速フーリエ変換を行う。高速フーリエ変換は、各周波数成分の幅をf、処理の段数をNとしたときに、入力された音声情報を、0，f，2f，3f，…，(2N-1)fの周波数の強度成分に分解するものである。
【００１１】
さらに、パラメータ記憶部には、複数の周波数帯のそれぞれに対応付けられるパラメータが記憶される。典型的には、周波数帯をM個とした場合、要素M個の配列pがメモリ内に用意され、フーリエ変換後の周波数成分のうち、
0  以上  (2N)f/M  未満の成分が、p[0]に対応付けられ、
(2N)f/M  以上  2×(2N)f/M  未満の成分が、p[1]に対応付けられ、
2×(2N)f/M  以上  3×(2N)f/M  未満の成分が、p[2]に対応付けられ、
…
i×(2N)f/M  以上  (i+1)×(2N)f/M  未満の成分が、p[i]に対応付けられ、
…
(M-1)×(2N)f/M  以上  M×(2N)f/M  未満の成分が、p[M-1]に対応付けられる。
【００１２】
そして、変化量計算部は、所定の時間おきに、当該複数の周波数帯のそれぞれについて、得られた複数の周波数成分の強度のうち当該周波数帯に属する強度から、当該周波数帯に対応付けられるパラメータの変化量を求める。
【００１３】
したがって、パラメータp[i]の変化量Δ[i]は、i×(2N)f/M  以上  (i+1)×(2N)f/M  未満の周波数成分の強度によって定められることになる。
【００１４】
一方、更新部は、当該複数の周波数帯のそれぞれについて、パラメータ記憶部に当該周波数帯に対応付けられて記憶されるパラメータを、当該周波数帯に対して求められた変化量だけ変化させる。すなわち、各i  (0≦i<M)について、p[i]の値をp[i]+Δ[i]に上書き更新するのである。
【００１５】
そして、選択出力部は、パラメータ記憶部に記憶されるパラメータにより、複数の処理項目からいずれかを選択して出力する。
【００１６】
パラメータp[i]のそれぞれの値が何らかの条件を満たすことをもって、複数の処理項目からいずれかを選択するのである。当該条件は、適用分野等に応じて、適宜設定することができる。
【００１７】
本発明によれば、入力される音声情報の周波数特性に応じて処理を変化させることができる。
【００１８】
また、本発明の音声情報処理装置において、変化量計算部は、当該複数の周波数帯のそれぞれについて、得られた複数の周波数成分の強度のうち当該周波数帯に属する強度の総和が
（ａ）所定の閾値以上である場合、当該総和にあらかじめ対応付けられた正値を変化量とし、
（ｂ）連続して所定の閾値未満である時間が所定の閾時間以上である場合、当該パラメータの値の符号を反転した値を変化量とする
ように構成することができる。
【００１９】
たとえば、Δ[i]を求める場合、i×(2N)f/M  以上  (i+1)×(2N)f/M  未満の成分の総和S[i]を求め、この値に対応付けられた正値をΔ[i]とするのである。S[i]に対応付けられた正値としては、たとえば、S[i]そのものや、S[i]に所定の正値を乗じたもの、S[i]に対して階段状に単調増加するように対応付けられた正値を用いるものなどが考えられる。
【００２０】
なお、総和S[i]がある程度小さい、すなわち、本質的には無音に相当するがときおり雑音が混じる、という状態が所定の閾時間以上連続したときは、-p[i]をΔ[i]とする。これにより更新を行うと、p[i]の値は０にクリアされる。
【００２１】
本発明は、パラメータの変化量を定める上記発明の好適実施形態である。
【００２２】
また、本発明の音声情報処理装置は、仮想空間情報記憶部をさらに備え、以下のように構成する。
【００２３】
すなわち、仮想空間情報記憶部には、仮想空間においてユーザの指示入力により移動するキャラクターと、当該キャラクターによる操作を受け付けるオブジェクトと、の位置が記憶される。
【００２４】
一方、変化量計算部は、当該複数の周波数帯のそれぞれについて、得られた複数の周波数成分の強度のうち当該周波数帯に属する強度の総和が
（ａ）所定の閾値以上である場合、
（ｘ）当該周波数帯が、当該周波数帯に属する強度の総和が最大となる周波数帯である場合、仮想空間情報記憶部に記憶されたキャラクターとオブジェクトの位置から、当該キャラクターと当該オブジェクトの間の距離を求め、当該総和にあらかじめ対応付けられた正値から、当該求められた距離にあらかじめ対応付けられた正値を減算した値を変化量とし、
（ｙ）当該周波数帯が、当該周波数帯に属する強度の総和が最大となる周波数帯でない場合、当該総和にあらかじめ対応付けられた正値を変化量とし、
（ｂ）連続して所定の閾値未満である時間が所定の閾時間以上である場合、当該パラメータの値の符号を反転した値を変化量とする。
【００２５】
本発明の構成は、上記の発明と同様に、ある周波数帯において無音状態が続くとパラメータがクリアされる。ただし、仮想空間のキャラクターとオブジェクトの間の距離によって、パラメータの更新の仕方が変わる点が異なる。
【００２６】
特に、S[0]，…，S[M-1]のうち最大の値を持つS[j]については、キャラクターとオブジェクトの距離に応じた変化量Δ[j]を採用するが、i≠jの場合の変化量Δ[i]は、上記実施形態と同様である。
【００２７】
本発明は、パラメータの変化量を定める上記発明の好適実施形態である。
【００２８】
本発明のその他の観点に係る音声情報処理方法は、複数の周波数帯のそれぞれに対応付けられるパラメータが記憶されるパラメータ記憶部を用い、入力受付工程、フーリエ変換工程、変化量計算工程、更新工程、選択出力工程を備え、以下のように構成する。
【００２９】
まず、入力受付工程では、音声情報の入力を受け付ける。
【００３０】
一方、フーリエ変換工程では、入力を受け付けられた音声情報をフーリエ変換して、複数の周波数成分の強度を得る。
【００３１】
さらに、変化量計算工程では、所定の時間おきに、当該複数の周波数帯のそれぞれについて、得られた複数の周波数成分の強度のうち当該周波数帯に属する強度から、当該周波数帯に対応付けられるパラメータの変化量を求める。
【００３２】
そして、更新工程では、当該複数の周波数帯のそれぞれについて、パラメータ記憶部に当該周波数帯に対応付けられて記憶されるパラメータを、当該周波数帯に対して求められた変化量だけ変化させる。
【００３３】
一方、選択出力工程では、パラメータ記憶部に記憶されるパラメータにより、複数の処理項目からいずれかを選択して出力する。
【００３４】
本発明のその他の観点に係るプログラムは、コンピュータを上記の音声処理装置として機能させ、コンピュータに上記の音声処理方法を実行させるように構成する。
【００３５】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００３６】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００３７】
本発明によれば、入力される音声情報の周波数特性に応じて処理を変化させるのに好適な音声情報処理装置、音声情報処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３８】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００３９】
図１は、プログラムを実行することにより、本発明の音声情報処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００４０】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、を備える。
【００４１】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の音声情報処理装置が実現される。
【００４２】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００４３】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００４４】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００４５】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００４６】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００４７】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００４８】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００４９】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００５０】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００５１】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００５２】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００５３】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００５４】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００５５】
さらに、情報処理装置１００には、インターフェース１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００５６】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００５７】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、音声情報処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００５８】
なお、理解を容易にするため、以下の説明では、ＲＡＭ  １０３に用意された各変数領域の初期化などの処理については、適宜説明を省略するが、当業者であれば、必要な処理を実現することができる。
【００５９】
（呼吸音と非呼吸音の弁別）
図２は、本実施形態に係る音声情報処理装置において、呼吸音と非呼吸音とを弁別する弁別機能部の概要構成を示す説明図である。以下、本図を参照して説明する。
【００６０】
音声情報処理装置２０１の弁別機能部２０２は、入力受付部２０３、フーリエ変換部２０４、判断部２０５、非呼吸音出力部２０６、呼吸音出力部２０７を備えるが、用途に応じて非呼吸音出力部２０６と呼吸音出力部２０７とは、いずれか一方のみを採用し、他方を省略することとしても良い。
【００６１】
なお、音声情報処理装置２０１は、本図に図示するように、項目選択機能部７０１をさらに備えることとしても良い。項目選択機能部７０１については、後述する。
【００６２】
まず、入力受付部２０３は、音声情報の入力を受け付ける。典型的には、入力受付部２０３はマイクなどの音声入力装置によって音声情報の入力を受け付けるが、音声情報は、空気や液体、個体などのこれらの媒質の圧力や位置などが振動する際の変位を数値化したものであり、ファイルに記録された音声情報やネットワークを介して入手される音声情報など、種々の音声情報に対して本音声情報処理装置２０１を適用することができる。
【００６３】
以下では、マイク１１１からの音声入力における波動の基準位置からの変位をインターフェース１０４を介して、ＣＰＵ  １０１の入出力ポートから得ることができるものとして考える。ＣＰＵ  １０１が有するポートからの読出命令を使うか、メモリマップされた入出力を採用するＣＰＵ  １０１の場合には、所定のアドレスからの値の読出命令を使うことで、入出力ポートから変位を読み出すことができる。
【００６４】
さて、本実施形態では、マイク１１１からの音声情報のサンプリングレートをGとし、音声情報をバッファリングするためのリングバッファ領域をＲＡＭ  １０３に用意する。リングバッファは、以下のような２つのメンバーを持つ構造体によって表現することができる。
（１）変位を格納するための要素数Aの配列buf。各要素は、それぞれbuf[0]，buf[1]，…，buf[A-1]のようにしてアクセスが可能である。
（２）次に要素を追加すべき場所を表す添字next。
【００６５】
以下、理解を容易にするため、マイク１１１からの音声情報をバッファリングするリングバッファ領域をinpと呼び、リングバッファinpの各メンバーは、inp.buf[0]，inp.buf[1]，…，inp.buf[A-1]，inp.nextのように表記するものとする。
【００６６】
８ビットサンプリングの場合は、配列bufの各要素は１バイトで表現され、１６ビットサンプリングの場合は、配列bufの各要素は２バイトで表現される。上記のようにサンプリングレートがGであるから、リングバッファinpには、時間A/Gだけの音声情報を格納しておくことができる。したがって、直近の時間A/Gの音声情報が常にリングバッファinpに反映されているようにするための手法を以下に説明する。
【００６７】
サンプリングレートGでリングバッファinpを最新の情報に更新するためには、ＣＰＵ  １０１のタイマ割り込みを利用する。すなわち、時間間隔1/Gでタイマ割り込みを発生させ、割り込みハンドラでは、以下に説明する入力読み込み処理を実行する。
【００６８】
なお、以降では、同じ時間間隔である処理を繰り返し行うためにタイマ割り込みを利用した実施形態を説明するが、たとえば繰り返しループ内で時間を計測して待機することにより、処理の単位が実行される時間間隔を一定にする等、そのほかの手法を採用することも可能である。
【００６９】
また、以下では、理解を容易にするため、割り込み処理における割り込み禁止や割り込み許可の制御、セマフォ等を使用した排他制御については、適宜説明を省略する。当業者であれば、必要に応じて、これらの処理を適宜追加することができる。
【００７０】
図３は、入力読み込み処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００７１】
入力読み込み処理が起動されると、まず、ＣＰＵ  １０１は、マイクからの音声情報の入力ポートから変位の値vを読み出す（ステップＳ３０１）。
【００７２】
そして、値vをinp.buf[inp.next]に格納し（ステップＳ３０２）、inp.nextの値を(inp.next + 1)％Aに更新して（ステップＳ３０３）、リングバッファinpに値vを追加する。ここで、x ％ yは、xをyで割った余りを意味する。
【００７３】
ステップＳ３０３の後、入力読み込み処理を終了する。割り込みによって本処理を駆動している場合には、割り込みハンドラを終了させる種々の処理も行う。
【００７４】
このような処理を行うことで、リングバッファinpには、直近の時間A/G分の音声情報の変位を表すデータが格納され、古くなったデータは自動的に消去（上書き）されることとなる。
【００７５】
このように、マイク１１１とＣＰＵ  １０１とリングバッファinpが用意されているＲＡＭ  １０３とが共働して、入力受付部２０３として機能する。
【００７６】
さて、このようにして得られた音声情報を、フーリエ変換部２０４がフーリエ変換して、複数の周波数成分の強度を得る。典型的には、高速フーリエ変換を行う。高速フーリエ変換は、各周波数成分の幅をf、処理の段数をNとしたときに、入力された音声情報を、0，f，2f，3f，…，(2N-1)fの周波数の強度成分に分解するものである。
【００７７】
上記のように、リングバッファinp内には、直近の時間A/G分の音声情報のみが格納されているから、フーリエ変換を行う対象は、inp.bufに格納されているA個分の変位データとするのが典型的である。
【００７８】
したがって、フーリエ変換部２０４によるフーリエ変換の処理は、時間間隔A/Gで、そのときにinp.buf[0]，…，inp.buf[A-1]を格納されている波動の変位データを対象に行えば良いこととなる。
【００７９】
高速フーリエ変換の計算は、公知の技術により、ＣＰＵ  １０１がリングバッファinpに格納されたデータを対象に行う。そして、フーリエ変換の結果は、ＲＡＭ  １０３に用意された配列Fに格納する。すなわち、配列Fの要素F[0]には、周波数0（直流）の強度成分が、F[1]には、周波数fの強度成分が、F[2]には、周波数2fの強度成分が、…、F[2N-1]には、周波数2N-1fの強度成分が、それぞれ格納されるようになる。
【００８０】
フーリエ変換は適切なタイミングで繰り返し行われるため、配列Fを参照すれば、音声情報の周波数分布の最新のものを得ることができる。
【００８１】
なお、フーリエ変換を行う時間間隔は、A/G以下としても良い。たとえば、0<B≦Aなる整数Bを用いて、時間間隔B/Gでフーリエ変換を行う、としたときは、フーリエ変換の対象となる変位のデータ列は、inp.next≧Bの場合は、
inp.buf[next-B]，inp.buf[next-B+1]，…，inp.buf[next-2]，inp.buf[next-1]
inp.next<Bの場合は、
inp.buf[A-(B-inp.next)]，inp.buf[A-(B-inp.next)+1]，…，inp.buf[A-2]，inp.buf[A-1]，inp.buf[0]，inp.buf[next-B+1]，…，inp.buf[next-2]，inp.buf[next-1]
となる。これは、リングバッファinpから、最新のB個分の変位データを取り出すことに相当する。
【００８２】
フーリエ変換部２０４が時間間隔B/Gで行うフーリエ変換処理の制御の流れをもう一度整理する。図４は、フーリエ変換部２０４が時間間隔B/Gで行うフーリエ変換処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００８３】
まず、ＣＰＵ  １０１は、リングバッファinpから、最新のB個分の音声情報の波動の変位データを取得する（ステップＳ４０１）。
【００８４】
ついで、ＣＰＵ  １０１は、当該B個分の変位データを高速フーリエ変換する（ステップＳ４０２）。
【００８５】
そして、配列Fの要素F[0]に、周波数0（直流）の強度成分を、F[1]に、周波数fの強度成分を、F[2]に、周波数2fの強度成分を、…、F[2N-1]に、周波数2N-1fの強度成分を、それぞれ格納して（ステップＳ４０３）、本処理を終了する。
【００８６】
このように、ＣＰＵ  １０１が、リングバッファinpおよび配列Fが用意されたＲＡＭ  １０３と共働することによって、フーリエ変換部２０４として機能する。
【００８７】
さて、常に、最新の音声情報の変位データはリングバッファinpに格納されることとなり、最新のフーリエ変換の結果は配列Fに格納されることとなる。そこで、これらの内容を参照して、呼吸音か非呼吸音かを判別するのが、判断部２０５である。
【００８８】
判断部２０５は、以下のパラメータを用いる。
（ａ）受け付けられる音声情報のサンプリングレート。本実施形態では、上記のように、G[Hz]であり、実際には８０００Ｈｚである。
（ｂ）フーリエ変換の周波数成分の周波数間隔。本実施形態では、上記のように、f[Hz]であり、実際には３１.２５Ｈｚである。
（ｃ）第１周波数帯。本実施形態では、３１.２５Ｈｚ以上１８７.５Ｈｚ以下である。
（ｄ）第２周波数帯。本実施形態では、５００Ｈｚ以上２０００Ｈｚ以下である。これは、第１周波数帯よりも高い。
（ｅ）第３周波数帯。本実施形態では、３８１２.５Ｈｚ以上４０００Ｈｚ以下である。これは、第２周波数帯よりも高い。
【００８９】
なお、この上限値４０００Ｈｚは、サンプリング定理によるものであり、サンプリング周波数Gのちょうど半分になっている。
（ｆ）第１閾値。これは、呼吸音か非呼吸音かを判別する「感度」を示すもので、小さくすれば敏感に反応するが、それだけ呼吸音と誤判断する可能性も高くなる。大きければ反応は鈍くなるが、それだけ呼吸音と誤判断する可能性も高くなる。音声情報のサンプリングビット数に応じて適当な定数を定めても良いし、ユーザなどが適宜調整できることとしても良い。
（ｇ）第２閾値。本実施形態では、当該第１閾値の０.３７５倍以上である。
（ｈ）第３閾値。本実施形態では、当該第１閾値の０.２５倍以上である。
（ｉ）第１閾時間。本実施形態では、４／６０秒程度である。
（ｊ）第２閾時間。本実施形態では、４／６０秒程度である。
（ｋ）閾個数。本実施形態では、９個程度である。
【００９０】
なお、これらの数値は、判断が適切に行われる範囲で上下しても良い。たとえば、上記の数値を９０％〜１１０％程度に変更するのであれば、分別の性能に大きな差が出ることはない。
【００９１】
さて、このようなパラメータのもとで、判断部２０５は、時間間隔C/Gで、以下の判断処理を行う。なお、C≦Bであり、典型的にはCはBの約数とする。
【００９２】
図５は、判断部２０５が時間間隔C/Gごとに実行する判断処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００９３】
まず、判断部２０５は、配列Fを参照して、以下の条件がすべて満たされているか否かを判断する（ステップＳ５０１）。
（ｓ）第１周波数帯に含まれる周波数成分の強度のいずれか少なくとも１つが所定の第１閾値を超え、
（ｔ）第２周波数帯に含まれる周波数成分の強度のうち所定の第２閾値を超えるものが所定の閾個数以上であり、
（ｕ）第３周波数帯に含まれる周波数成分の強度のいずれか少なくとも１つが所定の第３閾値を超える。
【００９４】
サンプリングレートG、フーリエ変換の周波数の分解精度fによって、第１周波数帯、第２周波数帯、第３周波数帯のそれぞれに、配列Fのどの要素が対応するか、は、一意に決まる。一般に、第１周波数帯、第２周波数帯、第３周波数帯のそれぞれに、配列Fに含まれる複数の要素が割り当てられることになる。
【００９５】
したがって、第１周波数帯に含まれる配列Fの要素F[D1]，…，F[E1]と、第１閾値H1に対して、
F[D1]>H1，…，F[E1]>H1
のいずれか少なくとも一つが成立すれば、条件（ｓ）は満たされることとなる。
【００９６】
また、第２周波数帯に含まれる配列Fの要素F[D2]，…，F[E2]と、第２閾値H2に対して、
F[D2]>H2，…，F[E2]>H2
を満たすものが所定の閾個数以上であれば、条件（ｔ）は満たされることとなる。
【００９７】
さらに第３周波数帯に含まれる配列Fの要素F[D3]，…，F[E3]と、第３閾値H3に対して、
F[D3]>H3，…，F[E3]>H3
のいずれか少なくとも一つが成立すれば、条件（ｕ）は満たされることとなる。
【００９８】
ここで、D1<…<E1<…<D2<…<E2<…<D3<…<E3である。
【００９９】
さて、ＲＡＭ  １０３には、以下の三つの領域が用意されている。
（ａ）肯定カウント領域c。上記条件を満たし始めてからの判断部２０５の処理回数を記録する。
（ｂ）否定カウント領域d。上記条件を満たさなくなり始めてからの判断部２０５の処理回数を記録する。
（ｃ）呼吸フラグ領域e。最後に判断したときの音声情報の状態が呼吸音であるか否かを記録する。
【０１００】
さて、上記条件の判断の結果、上記条件が満たされる場合（ステップＳ５０１；Ｙｅｓ）、肯定カウント領域cの値を１増やし（ステップＳ５０２）、否定カウント領域dの値を０にする（ステップＳ５０３）。
【０１０１】
そして、条件を満たし始めての時間c×C/Gが、第１閾時間を超えているか否かを判断し（ステップＳ５０４）、超えていれば（ステップＳ５０４；Ｙｅｓ）、呼吸フラグ領域eを「呼吸」に設定して（ステップＳ５０５）、本処理を終了する。一方超えていなければ（ステップＳ５０４；Ｎｏ）、本処理を終了する。
【０１０２】
一方、上記条件が満たされない場合（ステップＳ５０１；Ｎｏ）、否定カウント領域dの値を１増やす（ステップＳ５０６）。そして、呼吸フラグ領域eの値が「呼吸」であるか否かを判定し（ステップＳ５０７）、「呼吸」でない場合（ステップＳ５０７；Ｎｏ）、本処理を終了する。
【０１０３】
一方「呼吸」である場合（ステップＳ５０７；Ｙｅｓ）条件を満たさなくなってからの時間d×C/Gが、第２閾時間を超えているか否かを判断し（ステップＳ５０８）、超えていれば（ステップＳ５０８；Ｙｅｓ）、肯定カウント領域cの値を０にし（ステップＳ５０９）、呼吸フラグ領域eを「非呼吸」に設定して（ステップＳ５１０）、本処理を終了する。一方超えていなければ（ステップＳ５０８；Ｎｏ），肯定カウント領域cの値を１増やし（ステップＳ５１１）、本処理を終了する。
【０１０４】
このような処理を行うことによって、判断部２０５は、
（ａ）上記条件が連続して満たされる時間が第１閾時間を超えた場合、呼吸音の入力がされ続けていると判断し、
（ｂ）呼吸音の入力がされ続けていると判断された後、上記条件が連続して満たされない時間が第２閾時間以下である場合、呼吸音の入力がされ続けていると判断し、
（ｃ）呼吸音の入力がされ続けていると判断された後、上記条件が連続して満たされない時間が第２閾時間を超える場合、呼吸音の入力が終わったと判断する
のである。
【０１０５】
このような判断を行うことにより、人間がマイクに向かって「ふーふー」のように息を吹きかけたり、「はーはー」のように興奮して息が荒くなったりしたときの音声情報と、そうでない普通の状態での発声による音声情報とを弁別するのであるが、上記の条件が第１閾時間以上満たされることをもって、呼吸音であると判断する。そして、連続して呼吸音であると判断されている間は、上記の条件が第２閾時間より短い間満たされなくとも、そのまま呼吸音であると判断し続ける。
【０１０６】
各閾時間や各閾値、閾個数の値は、音声情報を入力するユーザの種類、本音声情報処理装置が実現されるハードウェアの能力、音声情報のサンプリングレート、フーリエ変換の精度、本音声情報処理装置の用途などによって適宜設定することが可能である。
【０１０７】
したがって、ＣＰＵ  １０１は、配列Fや領域c，d，eが確保されるＲＡＭ  １０３と共働して、判断部２０５として機能することとなる。
【０１０８】
さて、呼吸音か非呼吸音かの最新の判断の結果は、呼吸フラグ領域eに格納されており、当該領域の更新の時間間隔は、C/Gである。
【０１０９】
したがって、非呼吸音出力部２０６および呼吸音出力部２０７が実行する処理も、時間間隔をC/Gとするのが好適である。この場合、特に、判断部２０５による判断処理が終了した直後に、常に、非呼吸音出力部２０６および呼吸音出力部２０７が共働して実行する出力処理を実行するのが好適である。ただし、この時間間隔は、後に続く処理の内容等に応じて、適宜変更が可能である。
【０１１０】
上記のように、時間間隔C/Gで、非呼吸音や呼吸音の出力が行われるので、ＲＡＭ  １０３には、要素数Cの配列を以下のように２つ用意する。
（ａ）非呼吸音を格納する配列voice。voice[0]，…，voice[C-1]に、最新の時間長C/G分の非呼吸音の音声情報の変位データが格納される。
（ｂ）呼吸音を格納する配列nonvc。nonvc[0]，…，nonvc[C-1]に、最新の時間長C/G分の呼吸音の音声情報の変位データが格納される。
【０１１１】
配列voiceおよびnonvcは、時間間隔C/Gで更新されることとなる。
【０１１２】
図６は、時間間隔C/Gで起動される出力処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１１３】
出力処理において、ＣＰＵ  １０１は、まず、ＲＡＭ  １０３に用意された呼吸フラグ領域eが「呼吸」であるか否かを調べる（ステップＳ６０１）。「呼吸」であれば（ステップＳ６０１；Ｙｅｓ）、リングバッファinpに格納された最新のC個分のデータを、配列voiceへコピーし（ステップＳ６０２）、配列nonvcの要素をすべて０にしてクリアして（ステップＳ６０３）、本処理を終了する。
【０１１４】
一方、「呼吸」でなければ（ステップＳ６０１；Ｎｏ）、リングバッファinpに格納された最新のC個分のデータを、配列nonvcへコピーし（ステップＳ６０４）、配列voiceの要素をすべて０にしてクリアして（ステップＳ６０５）、本処理を終了する。
【０１１５】
このようにして、配列voiceには、ユーザが通常の発声を行って入力したと考えられる音声情報の区間は、入力された音声情報がそのまま出力され、そうでない区間は、変位「０」が出力されることになる。
【０１１６】
一方、配列nonvcには、ユーザが通常の発声を行って入力したと考えられる音声情報の区間は、変位「０」が出力され、そうでない区間は、入力された音声情報がそのまま出力されることになる。
【０１１７】
したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３に用意された呼吸フラグ領域eや配列voice，nonvcと共働して、非呼吸出力部２０６および呼吸出力部２０７として機能する。
【０１１８】
なお、用途に応じて、配列voice，nonvcのいずれか一方を適宜省略し、省略した配列に対する処理を実行しないこととしても良い。
【０１１９】
このように、本実施形態の弁別機能部２０２によれば、人が呼吸する際の音声とそれ以外の音声とを簡易に分別することができるようになり、人が呼吸する際の音声以外の音声を容易に得ることができるようになる。
【０１２０】
特に、適切なパラメータを採用することにより、少ない計算量で多くの人間について、人が呼吸する際の音声とそれ以外の音声とを簡易に分別することができるようになる。
【０１２１】
なお、上記の説明では、  音声情報に係る波動の変位のデータを保持するために、リングバッファや固定長の配列を用いたが、たとえばキューやリストなど、データ列を格納できるような各種の構造体を利用しても良い。
【０１２２】
（弁別された音声情報の利用）
以下では、呼吸音か、非呼吸音かの弁別を行った後の処理について、実例をあげて説明する。本実例では、入力された音声情報の周波数帯に応じて、仮想空間内にて実行される処理が変化するようなゲーム装置に適用する場合を考える。
【０１２３】
図７は、音声情報処理装置２０１において、このような処理項目を選択する機能を実現する項目選択機能部７０１の概要構成を示す説明図である。以下、本図を参照して説明する。
【０１２４】
項目選択機能部７０１は、入力受付部２０３、フーリエ変換部２０４を弁別機能部２０２と共有するほか、パラメータ記憶部７０２、変化量計算部７０３、更新部７０４、選択出力部７０５を備える。
【０１２５】
入力受付部２０３およびフーリエ変換部２０４における処理は、上述の通りであり、以降の処理内容選択機能の実現に際しては、各周波数成分の強度が入れられた配列F[0]，…，F[2N-1]に格納された値と、必要に応じて呼吸フラグ領域eに格納された値とを参照する。
【０１２６】
さて、ＲＡＭ  １０３には、複数の周波数帯のそれぞれに対応付けられるパラメータが記憶される。本実施形態では、複数の周波数帯の個数をMとし、周波数成分を等間隔に分割する。
【０１２７】
このため、ＲＡＭ  １０３に要素M個の配列pを用意する。そして、フーリエ変換後の周波数成分のうち、
0  以上  (2N)f/M  未満の成分が、p[0]に対応付けられ、
(2N)f/M  以上  2×(2N)f/M  未満の成分が、p[1]に対応付けられ、
2×(2N)f/M  以上  3×(2N)f/M  未満の成分が、p[2]に対応付けられ、
…
i×(2N)f/M  以上  (i+1)×(2N)f/M  未満の成分が、p[i]に対応付けられ、
…
(M-1)×(2N)f/M  以上  M×(2N)f/M  未満の成分が、p[M-1]に対応付けられる。
【０１２８】
すなわち、p[i]には、周波数成分の配列の要素F[i×(2N/M)]，…，F[(i+1)×(2N/M1)-1]が対応付けられることになる。この対応関係は適宜変更することができるため、以下では一般的に、p[i]にF[K[i]]，…，F[L[i]]が対応付けられるものとして考える。
【０１２９】
このほか、配列pと同じ要素数を持つ配列sを用意する。これは、当該周波数帯において無音状態が続いている時間を計測するためのカウンタの配列である。
【０１３０】
上記実施形態と同様に、時間間隔D/Gごとに起動されるパラメータ更新処理によって、ＲＡＭ  １０３に用意された配列pの中身を更新する。図８は、パラメータ更新処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１３１】
パラメータ更新処理が開始されると、まず、ＣＰＵ  １０１は、0≦i<Mのそれぞれのiについて、以下ステップＳ８０２〜Ｓ８０８の処理を繰り返す（ステップＳ８０１）。ここでは、計算の中間結果を保持するため、ＲＡＭ  １０３内に用意された配列変数S[i]を用いる（Sは大文字）。
【０１３２】
また、ＲＡＭ  １０３内には、配列変数s[i]も用意されている（sは小文字）。s[i]には、p[i]番目に対応する周波数帯に含まれる周波数成分の強度の総和が所定の閾値未満であることが続いた時間、すなわち、「音声が入力されていない無音状態が続いた時間」に相当する値が格納される。
【０１３３】
まず、呼吸フラグ領域eが「呼吸」であるか否かを判定し（ステップＳ８０２）、そうでない場合（ステップＳ８０２；Ｎｏ）、S[i] = Σj=K[i]L[i] F[j]を計算して、S[i]を、p[i]に対応する周波数帯に含まれる周波数成分の強度の総和とする（ステップＳ８０３）。一方、そうである場合（ステップＳ８０２；Ｙｅｓ）、S[i] = 0とする（ステップＳ８０４）。
【０１３４】
ついで、S[i]が、所定の閾値未満であるか否かを調べる（ステップＳ８０５）。所定の閾値としては、雑音を排除するほか、音の有無を区別できるような適当な値を採用する。またユーザが適宜調整できるようにしても良い。
【０１３５】
そして、S[i]が、所定の閾値未満でない場合（ステップＳ８０５；Ｎｏ）、すなわち、何らかの音声が入力されている場合は、「無音状態」ではないから、ＲＡＭ  １０３内に用意された配列の要素s[i]を０にクリアする（ステップＳ８０６）。
【０１３６】
一方、S[i]が、所定の閾値未満である場合（ステップＳ８０５；Ｙｅｓ）、すなわち「無音状態」である場合、ＲＡＭ  １０３内に用意された配列の要素s[i]の値を１増やす（ステップＳ８０７）。
【０１３７】
このように、配列の要素s[i]が０である場合は、現在が「無音状態」でないことを意味し、０以外の正の値である場合は、過去から現在までその正の値に相当する時間だけ、「無音状態」が続いたことを意味する。
【０１３８】
さて、このように繰り返しが終わり、S[0]，…，S[M-1]がすべて求められたら、0≦i<Mのそれぞれのiについて、以下ステップＳ８１０〜Ｓ８１４の処理を繰り返す（ステップＳ８０９）。
【０１３９】
まず、s[i]の値が所定の閾時間以上か否か、すなわち、「無音状態」が所定の閾時間以上連続して現在まで続いているか否か、を判定する（ステップＳ８１０）。
【０１４０】
s[i]≧所定の閾時間である場合、すなわち、「無音状態」が所定の閾時間以上連続して現在まで続いている場合（ステップＳ８１０；Ｙｅｓ）、Δ[i]の値を-p[i]とする（ステップＳ８１１）。これにより後述する上書き更新を行うと、p[i]の値は必ず０にクリアされる。
【０１４１】
s[i]＜所定の閾時間である場合、現在までの閾時間の間に、何らかの音が生じていた場合（ステップＳ８１０；Ｎｏ）、Δ[i]の値をS[i]に応じて求める（ステップＳ８１２）。Δ[i]の値をS[i]に応じて求める詳細な手法については、後述する。
【０１４２】
ついで、p[i]の値をp[i]+Δ[i]に上書き更新する（ステップＳ８１３）。繰り返しが終了したら、本処理を終了する。
【０１４３】
さて、Δ[i]の値をS[i]に応じて求める最も簡単な手法は、S[i]に適当な整定数を乗じた値をΔ[i]とすることである。このほか、
0≦S[i]<128ならばΔ[i] = 1
128≦S[i]<192ならばΔ[i] = 2
192≦S[i]<224ならばΔ[i] = 3
224≦S[i]<256ならばΔ[i] = 4
などのように、階段状に単調増加する対応付けを用意して、Δ[i]の値を定めても良い。
【０１４４】
また、S[0]，…，S[M-1]で値が最大のものを探す。これをS[j]とすると、上記のように各Δ[i]を求めた後で、Δ[j]のみを修正する手法も考えられる。
【０１４５】
すなわち、ＲＡＭ  １０３内に用意された仮想空間情報記憶部（図示せず）に、仮想空間情報記憶部には、仮想空間においてユーザの指示入力により移動するキャラクターと、当該キャラクターによる操作を受け付けるオブジェクトと、の位置が記憶されるものとし、一般的なゲーム技術によって、これらの情報が更新されるものとする。
【０１４６】
そして、キャラクターとオブジェクトの距離をrとしたときに、rが増加すると増加する正値wを、Δ[j]から減算するのである。
【０１４７】
正値wの求め方としては、たとえば、ある正定数X，Y，Zを用いて、 w = X(1-1/r) + Y や、 w = X(1-1/(r(j+Z)) + Y などとする手法などが考えられる。
【０１４８】
このようにすると、キャラクターとオブジェクトの距離rが近ければ近いほどwの値は大きくなる。また、jを用いる後者の計算式では、総和強度が最大の周波数帯が高ければ高いほど、キャラクターとオブジェクトの距離rが遠くなっても、wの値が大きいままとなる。
【０１４９】
上記の手法に加えて、さらに、S[j]の値が一定値以下である場合には、Δ[j]の修正は行わず、そのまま利用する、という手法を採用しても良い。
【０１５０】
また、本実施形態では、「無音状態」が現在まで続いている時間が一定以上になっている場合（ステップＳ８１０；Ｙｅｓ）、Δ[i]を-p[i]に定めてから（ステップＳ８１１）、p[i]にΔ[i]を加算してp[i]をクリアしているが（ステップＳ８１３）、「無音状態」が現在まで続いている時間が一定以上になっている場合（ステップＳ８１０；Ｙｅｓ）、直接p[i]を0にクリアしてからステップＳ８０９に戻ることとしても良い。
【０１５１】
このように、ＣＰＵ  １０１は、ＲＡＭ  １０３と共働して、パラメータ更新処理を実行し、変化量計算部７０３および更新部７０４として機能する。これによって、パラメータp[0]，…，p[M-1]には、これまでに入力された音声情報の周波数特性に応じたパラメータが記録されるのである。
【０１５２】
さて、選択出力部７０５は、必要に応じて、パラメータp[0]，…，p[M-1]の値に基づいて、複数の処理項目からいずれかを選択して出力する。
【０１５３】
たとえば、仮想世界をさまようキャラクターが扉のオブジェクトを発見したとき、マイクから声を入力し続けると、パラメータp[0]，…，p[M-1]の値が増加していく。
【０１５４】
たとえば、扉のオブジェクトに割り当てられた条件として、「p[M-4]，…，p[M-1]のいずれかが、ある値を超えたときに扉が開く」というものであるならば、当該条件が満たされるかどうかを選択出力部７０５が判断し、満たされる場合には「扉が開く」という処理項目を出力し、満たされない場合には「扉が開かない」という処理項目を出力して、ゲームの仮想世界を制御する制御部に処理をさせるのである。この条件は、高い声で叫び続ければ扉が開く、というものに相当する。
【０１５５】
処理項目としてどのようなものを用意し、各処理項目が選択される条件としてパラメータp[0]，…，p[M-1]の値が何を満たすこととするか、は、用途や適用分野等に応じて適宜設定することができる。
【０１５６】
典型的には、あるパラメータの集合p[R]，…，p[T]のうち、いずれか少なくとも一つがある値を超える、という条件や、p[R]，…，p[T]の総和がある値を超える、という条件などが採用できる。
【０１５７】
このように、ＣＰＵ  １０１は、ＲＡＭ  １０３と共働して、選択出力部７０５として機能することとなる。
【０１５８】
なお、上記実施形態においては、呼吸フラグ領域eを参照していた（ステップＳ８０２）が、この処理は省略し、常にステップＳ８０３が実行されることとしても良い。
【０１５９】
このほか、複数の処理項目からいずれかを選択する態様としては、以下のようなものが考えられる。
【０１６０】
たとえば、仮想世界に置かれている爆弾をキャラクターが拾い、これを岩の前に置いて爆発させることによって、岩を破壊して、岩によって閉ざされた洞窟に出入りができるようにするゲームにおいては、上記の処理項目の種類として爆弾のタイマーのオンやオフ、爆発までの時間設定を採用することができる。
【０１６１】
具体的には、プレイヤーが一定周波数の高い声を出すとその声が持続した時間によって爆発までの時間設定がされ（爆弾に用意されている導火線の長さが、その周波数帯の声が出ている間だけ延びる等）、その後で一定周波数の低い声を出すと爆発までのタイマーが開始される（導火線の先端に火が着いて、火が燃えて導火線が短くなり、爆弾本体に火が到達すると爆発する等）、などである。
【０１６２】
このほか、音声入力された声の周波数やキャラクターと爆弾の距離に応じて、爆発のタイミングが変化するような応用をすることもできる。
【０１６３】
本実施形態によれば、入力される音声情報の周波数特性に応じて処理を変化させることができる。
【産業上の利用可能性】
【０１６４】
以上説明したように、本発明によれば、入力される音声情報の周波数特性に応じて処理を変化させるのに好適な音声情報処理装置、音声情報処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１６５】
【図１】本発明の音声情報処理装置が実現される典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係る音声情報処理装置において、呼吸音と非呼吸音とを弁別する弁別機能部の概要構成を示す説明図である。
【図３】入力読み込み処理の制御の流れを示すフローチャートである。
【図４】フーリエ変換処理の制御の流れを示すフローチャートである。
【図５】判断処理の制御の流れを示すフローチャートである。
【図６】出力処理の制御の流れを示すフローチャートである。
【図７】処理項目を選択する機能を実現する項目選択機能部の概要構成を示す説明図である。
【図８】パラメータ更新処理の制御の流れを示すフローチャートである。
【符号の説明】
【０１６６】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  音声情報処理装置
２０２  弁別機能部
２０３  入力受付部
２０４  フーリエ変換部
２０５  判断部
２０６  非呼吸音出力部
２０７  呼吸音出力部
７０１  項目選択機能部
７０２  パラメータ記憶部
７０３  変化量計算部
７０４  更新部
７０５  選択出力部
【図１】
0004722652.tif 000002
【図２】
0004722652.tif 000003
【図３】
0004722652.tif 000004
【図４】
0004722652.tif 000005
【図５】
0004722652.tif 000006
【図６】
0004722652.tif 000007
【図７】
0004722652.tif 000008
【図８】
0004722652.tif 000009