(57)【要約】 【課題】ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行う音声画像処理装置等を提供する。【解決手段】音声画像処理装置２０１において、記憶部２０２は、音節の波形を近似する照合三角形列と、その音節を発声する口の形状の音節画像とを対応付けて記憶し、入力部２０３は、音声信号の入力を受け付け、近似部２０４は、受け付けられた音声信号の波形を近似三角形列で近似し、判定部２０５は、近似三角形列と照合三角形列がマッチするか判定し、出力部２０６は、受け付けられた音声信号を出力し、表示部２０５は、現在出力されている音声信号の区間に対応する近似三角形にマッチする照合三角形列があればこれに対応付けられる音節画像を表示する。【選択図】図２
2008241772.tif 000002
【特許請求の範囲】
【請求項１】
時間の経過を第１軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第２軸にとった波形を近似する三角形であって、その底辺が当該第１軸に重なる三角形（以下「近似三角形」という。）を用いる音声画像処理装置であって、
音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する記憶部、
音声信号の入力を受け付ける入力部、
前記入力を受け付けられた音声信号の波形に対する近似三角形列を取得する近似部、
当該音声信号の区間と前記記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する判定部、
前記入力を受け付けられた音声信号を出力する出力部、
前記出力部により出力される音声信号のうち、前記判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する表示部
を備えることを特徴とする音声画像処理装置。
【請求項２】
請求項１に記載の音声画像処理装置であって、
N≦3であり、
前記記憶部は、口の基本形状を表す基本画像をさらに記憶し、
前記表示部は、前記出力部により出力される音声信号のうち、前記判定部により当該音節画像のいずれともマッチしないと判定された区間が出力される間、当該基本画像を表示する
ことを特徴とする音声画像処理装置。
【請求項３】
請求項１に記載の音声画像処理装置であって、
当該音節は母音のいずれかであり、N=1であり、当該照合三角形列は１つの照合三角形からなり、
前記判定部は、当該音声信号の区間と前記記憶される音節画像とがマッチするか否かを、当該区間に対する１つの近似三角形と、当該音節画像に対応付けられる照合三角形とがマッチするか否かにより判定する
ことを特徴とする音声画像処理装置。
【請求項４】
請求項３に記載の音声画像処理装置であって、
前記判定部は、近似三角形および照合三角形の底辺に対向する頂点から当該底辺に垂らした垂線の足が当該底辺を内分する内分比により、当該近似三角形と当該照合三角形とがマッチするか否かを判定する
ことを特徴とする音声画像処理装置。
【請求項５】
請求項４に記載の音声画像処理装置であって、
前記近似部は、当該音声信号の波形の極大点を連結した第１の包絡線を求め、所定の整数Q (Q≧1)に対し、整数i (1≦i≦Q-1)のそれぞれについて、第iの包絡線の極大点を連結した第i+1の包絡線を求め、第Qの包絡線において、隣り合う極大点と極小点を結ぶ直線から当該近似三角形の辺を取得する
ことを特徴とする音声画像処理装置。
【請求項６】
請求項５に記載の音声画像処理装置であって、
前記近似部は、当該Qを当該音声信号の波形の極大点の当該第１軸方向における間隔の平均もしくは重み付き平均に略反比例する正整数とする
ことを特徴とする音声画像処理装置。
【請求項７】
請求項４に記載の音声画像処理装置であって、
前記近似部は、当該音声信号の波形を平滑化した曲線において、隣り合う極大点と極小点を結ぶ直線から当該近似三角形の辺を取得する
ことを特徴とする音声画像処理装置。
【請求項８】
請求項７に記載の音声画像処理装置であって、
前記近似部は、当該音声信号の波形の極大点の当該第１軸方向における間隔の平均もしくは重み付き平均により当該音声信号の基本周期を推定し、当該推定された基本周期のM (M>1)倍の幅の窓に含まれる波形の平均もしくは重み付き平均をとることで、当該波形を平滑化する
ことを特徴とする音声画像処理装置。
【請求項９】
時間の経過を第１軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第２軸にとった波形を近似する三角形であって、その底辺が当該第１軸に重なる三角形（以下「近似三角形」という。）を用いる音声画像処理方法であって、当該音声画像処理方法は、音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する記憶部、入力部、近似部、判定部、出力部、表示部を有する音声画像処理装置にて実行され、
前記入力部が、音声信号の入力を受け付ける入力工程、
前記近似部が、前記入力を受け付けられた音声信号の波形に対する近似三角形列を取得する近似工程、
前記判定部が、当該音声信号の区間と前記記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する判定工程、
前記出力部が、前記入力を受け付けられた音声信号を出力する出力工程、
前記表示部が、前記出力部により出力される音声信号のうち、前記判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する表示工程
を備えることを特徴とする音声画像処理方法。
【請求項１０】
時間の経過を第１軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第２軸にとった波形を近似する三角形であって、その底辺が当該第１軸に重なる三角形（以下「近似三角形」という。）を用いるプログラムであって、当該プログラムは、コンピュータを、
音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する記憶部、
音声信号の入力を受け付ける入力部、
前記入力を受け付けられた音声信号の波形に対する近似三角形列を取得する近似部、
当該音声信号の区間と前記記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する判定部、
前記入力を受け付けられた音声信号を出力する出力部、
前記出力部により出力される音声信号のうち、前記判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する表示部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うのに好適な音声画像処理装置、音声画像処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、ゲームをプレイするユーザが発した声をゲーム装置とコンピュータ通信網を介してやりとりするボイスチャットを実現する技術が提案されている。このようなボイスチャットの技術については、以下の文献に開示されている。
【特許文献１】特開２００６−３４３４４７号公報
【０００３】
ここで、[特許文献１]では、各プレイヤーが発声した音声と、当該プレイヤーが操作するキャラクター同士の間の仮想空間の環境音とを合成して出力することにより、仮想空間でのボイスチャットの臨場感を高める技術が開示されている。
【０００４】
一方で、プレイヤーが操作するキャラクター（「アバター」と呼ぶこともある。）同士がボイスチャットするシステムなどにおいては、チャット相手のキャラクターの顔が画面に表示され、自分が他のどのプレイヤーと会話しているのかを明示するシステムも存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ここで、人間同士がテレビ電話サービスで会話をする場合には、話相手の口が声に同期して開閉する様子が見えるため、ボイスチャットにおいても、キャラクターの口の形状の画像を音声に同期させて変化させることにより、チャットの臨場感やキャラクターとの一体感を高めたいという要望は大きい。
【０００６】
一方で、高速フーリエ変換等を用いた音声認識技術によって音声からどのような音節、モーラ、子音、母音が発声されているかを解析し、これに応じてキャラクターの口の形状の画像を変化させるという手法では、高速フーリエ変換等による計算負荷が大きいため、用途によっては、より簡易な負荷の少ない計算により、キャラクターの口の形状の変化を近似したい、という要望もある。
【０００７】
本発明は、上記のような課題を解決するもので、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うのに好適な音声画像処理装置、音声画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００９】
本発明の第１の観点に係る音声画像処理装置は、時間の経過を第１軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第２軸にとった波形を近似する三角形であって、その底辺が当該第１軸に重なる三角形（以下「近似三角形」という。）を用い、記憶部、入力部、近似部、判定部、出力部、表示部を備え、以下のように構成する。
【００１０】
一般に、音声信号は、所定のサンプリング間隔（たとえば、１１０００Ｈｚ、２２０００Ｈｚ、４４０００Ｈｚ等のサンプリング周波数に相当するサンプリング周期T）で基準点からの変位を所定の精度（たとえば、８ビット、１６ビット、３２ビット等）で求め、これを
s0，s1，s2，…
のような数列として並べたもので表現される。数値snは、サンプリングを開始してからの経過時間t = nTにおける音声信号の変位を意味する。
【００１１】
数値snは、符号付き整数で表現されることが多く、符号無し整数で表現された場合には、オフセットを加算もしくは減算することで、符号付き整数表現に変換して、変位の基準点を０にすることができる。
【００１２】
本発明では、変位の絶対値
|s0|，|s1|，|s2|，…
もしくは変位の自乗値
s02，s12，s22，…
を用いることにより、時間軸に対して正の領域にまとめられたグラフを波形として処理する。
【００１３】
以下では、上記の２つの数列のうち、採用するものを
a0，a1，a2，…
のように表記することとする。
【００１４】
本発明では、この波形の数列
a0，a1，a2，…
に対して高速フーリエ変換等の計算負荷の大きい処理は適用せず、時間軸に底辺が重なる三角形を並べ、その上辺を辿ると波形が近似されるようにして、当該近似三角形と照合をとることにより、その底辺に相当する区間に相当する音節、モーラ、母音、子音等を高速かつ簡易に推定する。
【００１５】
さて、記憶部は、音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する。
【００１６】
一般に、母音の波形は１個の近似三角形で近似でき、子音と母音からなる音節の波形は、２個〜３個の近似三角形で近似できる。そこで、これらの近似三角形を照合三角形列（長さが１の場合は、照合三角形）として、その音節に相当する口の形状の画像とともに、記憶部に記憶する。
【００１７】
なお、アバターを用いたボイスチャットに本発明を適用する場合、記憶部に記憶される口の形状の画像は、チャット相手の操作するキャラクター（アバター）の画像である。
【００１８】
一方、入力部は、音声信号の入力を受け付ける。
【００１９】
上記の例では、、入力部において受け付けられる音声信号は、チャットの相手が発した音声を表すものである。したがって、相手が操作するゲーム装置のマイクで取得された音声信号が、コンピュータネットワークを介して送信されて自分が操作するゲーム装置に到着すると、入力部による音声信号の入力が受け付けられたことになる。
【００２０】
さらに、近似部は、入力を受け付けられた音声信号の波形に対する近似三角形列を取得する。
【００２１】
波形から近似三角形列を取得する手法については、種々の技術が適用可能であり、その好適実施形態は、後述する発明により実現される。
【００２２】
さらに、判定部は、当該音声信号の区間と記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する。
【００２３】
近似三角形（列）と照合三角形（列）がマッチしていれば、その区間で、照合三角形（列）に対応付けられる音節が発声されていたと推測できることになり、そうでなければ、他の音節が発声されている、あるいは、音声が発声されていないことになる。
【００２４】
さらに、出力部は、入力を受け付けられた音声信号を出力する。
【００２５】
上記例では、ボイスチャットをしている相手の声は、スピーカやヘッドフォン、イヤフォンなどから再生される。出力部は、このような相手の声を出力する処理を担う。
【００２６】
一方、表示部は、出力部により出力される音声信号のうち、判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する。
【００２７】
上記のように、相手の声の各区間について、マッチする音節画像が存在すれば、その音節画像を表示することにより、音声信号に同期して口の形状が変化することとなり、アニメーションの分野で「口パク」と呼ばれる演出が可能となる。
【００２８】
このように、本発明によれば、高速フーリエ変換等の計算負荷の高い音声認識技術を使わずに、簡易な三角形による近似およびマッチングによって音節を推定することで、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うことができるようになる。
【００２９】
また、本発明の音声画像処理装置において、N≦3であり、記憶部は、口の基本形状を表す基本画像をさらに記憶し、表示部は、出力部により出力される音声信号のうち、判定部により当該音節画像のいずれともマッチしないと判定された区間が出力される間、当該基本画像を表示するように構成することができる。
【００３０】
上記のように、典型的な音節、モーラ、シラブルの波形は、１個乃至３個の近似三角形列によって近似できる。
【００３１】
一方、波形が照合三角形列のいずれともマッチしない場合には、そのときの口の基本形状（典型的には口を閉じている形状）を表す基本画像を表示することとするものである。
【００３２】
なお、近似三角形の高さは、その時の音声の大きさに相当すると考えられる。そこで、基本画像として、口を閉じているものから口を開いているものまで２種類乃至数種類を用意しておき、その区間における近似三角形の高さによって、いずれを表示するかを選択することとしても良い。
【００３３】
本発明は、上記発明の好適実施形態に係るものであり、照合三角形列のいずれともマッチしない区間においては、口の形状を基本形状にすることで、口パクを自然に表現することができるようになる。
【００３４】
また、本発明の音声画像処理装置において、当該音節は母音のいずれかであり、N=1であり、当該照合三角形列は１つの照合三角形からなり、判定部は、当該音声信号の区間と記憶される音節画像とがマッチするか否かを、当該区間に対する１つの近似三角形と、当該音節画像に対応付けられる照合三角形とがマッチするか否かにより判定するように構成することができる。
【００３５】
本発明においては、音節として母音のみを想定する。子音と母音との組み合わせからなる音節は、当該母音とマッチさせ、子音が発声される区間では、口の形状として基本形状を採用することになる。
【００３６】
また、母音の波形は、１つの照合三角形により近似されるため、近似三角形とのマッチの判定処理の計算負荷がより一層少なくなる。
【００３７】
本発明は、上記発明の好適実施形態に係るものであり、１つの近似三角形により波形が近似される母音のみを想定することで、より一層簡易な計算で、口パクを表現することができるようになる。
【００３８】
また、本発明の音声画像処理装置において、判定部は、近似三角形および照合三角形の底辺に対向する頂点から当該底辺に垂らした垂線の足が当該底辺を内分する内分比により、当該近似三角形と当該照合三角形とがマッチするか否かを判定するように構成することができる。
【００３９】
本発明は、三角形のマッチの好適実施形態に係るものである。すなわち、三角形の高さは、声の大きさに相当するものであるので、音節の種類が類似するか否かの判定には用いない。
【００４０】
本発明では、三角形の底辺に対応する頂点から当該底辺に垂線を垂らし、当該底辺を、垂線の足において２つに分割する。そして、この２つの時間長の比が近いか否か（たとえば、所定の誤差範囲内であるか否か。）により、マッチしているか否かを判定するのである。
【００４１】
本発明は、上記発明の好適実施形態に係るもので、簡易な計算で、近似三角形と照合三角形とのマッチを判定することができるようになる。
【００４２】
また、本発明の音声画像処理装置において、近似部は、当該音声信号の波形の極大点を連結した第１の包絡線を求め、所定の整数Q (Q≧1)に対し、整数i (1≦i≦Q-1)のそれぞれについて、第iの包絡線の極大点を連結した第i+1の包絡線を求め、第Qの包絡線において、隣り合う極大点と極小点を結ぶ直線から当該近似三角形の辺を取得するように構成することができる。
【００４３】
本発明は、上記発明の好適実施形態に係るものであり、波形を近似三角形により近似する具体的な手法を提案するものである。
【００４４】
波形の極大点とは、
at-1<atかつat>at+1
が成立するようなatを意味する。そこで、このように、波形の中から隣り合うものより大きい点だけを選び、この点を順に辿ることで、波形の第１の包絡線が得られる。
【００４５】
この第１の包絡線についても、同様に極大点を選んで、この極大点を連結する第２の包絡線を得る。これを繰り返して、第Qの包絡線が得られるのである。
【００４６】
波形の包絡線は、音声信号の音量の変化に相当するものと考えられるから、包絡線の極大点は、声が大きくなったところに相当し、包絡線の極小点は、声が小さくなったところに相当する。
【００４７】
本発明によれば、簡易な計算によって音量の時間的変化を取得するともに、この音量の時間的変化に基づいて音節とのマッチをとることにより、低い計算負荷で処理を行うことができるようになる。
【００４８】
また、本発明の音声画像処理装置において、近似部は、当該Qを当該音声信号の波形の極大点の当該第１軸方向における間隔の平均もしくは重み付き平均に略反比例する正整数とするように構成することができる。
【００４９】
上記発明では、第１、第２、…、第Qと順に包絡線を得ることとしている。本発明は、このQの数値を選択する手法を提案する好適実施形態に係るものである。
【００５０】
一方、音声信号の波形の極大点の間隔は、変位の絶対値や自乗値を採用した場合には元の音声信号やその倍音の周期の半分に相当し、変位のうち正のものを採用した場合には、元の音声信号やその倍音の周期に相当すると考えられる。したがって、Qを、この間隔の平均や重み付き平均に略反比例（所定の反比例定数を除算して、四捨五入や切捨て、切上げなどを行うのが典型的である。）値とすれば、声の高さに適応した包絡線が得られる。すなわち、声が高ければ高いほど、間隔は短くなり、Qは大きくなる。一方、声が低ければ低いほど、間隔は長くなり、Qは小さくなる。
【００５１】
本発明によれば、簡易な計算により、音声信号の高さに適応した包絡線を低い計算負荷で得ることができるようになる。
【００５２】
また、本発明の音声画像処理装置において、近似部は、当該音声信号の波形を平滑化した曲線において、隣り合う極大点と極小点を結ぶ直線から当該近似三角形の辺を取得するように構成することができる。
【００５３】
上記発明においては、波形の極大点を結ぶ包絡線により音声信号の音量の時間的変化を求めたが、本発明では、波形を平滑化して高周波成分を除去することで、音声信号の音量の時間的変化を求めることとしている。
【００５４】
ディジタルフィルタを使用して平滑化を行うことも可能であるが、より簡易な手法としては、atに相当する曲線は、
Σi=t-P/2t+P/2 at/(P+1)
のような平均、あるいは、適当な重み付き平均によって、曲線の形状を求めることもできる。
【００５５】
本発明によれば、簡易な計算によって音量の時間的変化を取得するともに、この音量の時間的変化に基づいて音節とのマッチをとることにより、低い計算負荷で処理を行うことができるようになる。
【００５６】
また、本発明の音声画像処理装置において、近似部は、当該音声信号の波形の極大点の当該第１軸方向における間隔の平均もしくは重み付き平均により当該音声信号の基本周期を推定し、当該推定された基本周期のM (M>1)倍の幅の窓に含まれる波形の平均もしくは重み付き平均をとることで、当該波形を平滑化するように構成することができる。
【００５７】
すなわち、本発明は、上記発明におけるPを求める好適実施形態に係るものである。
【００５８】
波形の極大点が、順に、
am[0]，am[1]，am[2]，… (m[0]<m[1]<m[2]<…)
のように得られたとすると、極大点の時間軸方向の間隔は、
(m[1]-m[0])T，(m[2]-m[1])T，(m[3]-m[2])T，…
のように取得することができる。
【００５９】
上記のように、この間隔は、元の音声信号やその倍音の周期やその半分に相当すると考えられる。そこで、これらの間隔の平均や重み付き平均をとることで、その時点での音声信号の周波数や周期を得ることができる。
【００６０】
そして、音声信号の周波数F、周期1/Fに対して、基本周期のM倍の窓をとるのであるから、窓の幅Pの時間長はM/Fとなる。
【００６１】
波形の数列の添字で考えると、
P = M/(FT)
のように考えることができる。
【００６２】
なお、もっと単純に、Pは、
m[1]-m[0]，m[2]-m[1]，m[3]-m[2]，…
の平均、もしくは、重み付き平均のM倍であるとして、計算しても良い。
【００６３】
基本周期のM倍の窓をとることにより、音声信号のM個分の周期幅での平滑化が行われる。したがって、ローパスフィルタを用いる平滑化とは異なり、声の高低に適応して平滑化を行うことができるようになる。
【００６４】
本発明によれば、音量の時間的変化を取得する際に、音声の高低に適応した平滑化を低い計算負荷で行うことができるようになる。
【００６５】
本発明のその他の観点に係る音声画像処理方法は、時間の経過を第１軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第２軸にとった波形を近似する三角形であって、その底辺が当該第１軸に重なる三角形（以下「近似三角形」という。）を用い、音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する記憶部、入力部、近似部、判定部、出力部、表示部を有する音声画像処理装置にて実行され、以下のように構成する。
【００６６】
すなわち、入力工程では、入力部が、音声信号の入力を受け付ける。
【００６７】
一方、近似工程では、近似部が、入力を受け付けられた音声信号の波形に対する近似三角形列を取得する。
【００６８】
さらに、判定工程では、判定部が、当該音声信号の区間と記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する。
【００６９】
そして、出力工程では、出力部が、入力を受け付けられた音声信号を出力する。
【００７０】
一方、表示工程では、表示部が、出力部により出力される音声信号のうち、判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する。
【００７１】
本発明のその他の観点に係るプログラムは、コンピュータを上記の音声画像処理装置の各部として機能させ、コンピュータに上記の音声画像処理方法の各工程を実行させるように構成する。
【００７２】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００７３】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００７４】
本発明によれば、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うのに好適な音声画像処理装置、音声画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００７５】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００７６】
図１は、プログラムを実行することにより、本発明の音声画像処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００７７】
情報処理装置１００は、ＣＰＵ（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）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００９２】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００９３】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００９４】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００９５】
たとえば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【００９６】
（音声画像処理装置）
図２は、本実施形態に係る音声画像処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【００９７】
本実施形態に係る音声画像処理装置２０１は、記憶部２０２、入力部２０３、近似部２０４、判定部２０５、出力部２０６、表示部２０７を備える。
【００９８】
ここで、記憶部２０２は、音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する。
【００９９】
図３は、音声信号について、時間の経過を横軸に、音声信号の変位を縦軸に描いたグラフである。以下、本図を参照して説明する。
【０１００】
音声は空気等の媒質内を波動になって伝播する。これをマイク１１１や耳などで観測すると、媒質の基準状態（音がない状態）からの気圧のずれ（変位）が検知され、この変位が周期的に変化する。そして、この周期により音の高低が決まり、１周期分の変位の時間経過に対する変化の様子によって音色が決まる。また、人が発する声の場合には、１周期分の音色の他、複数周期分の音量や音色の変化によって、母音や子音、モーラや音節などが決まることになる。
【０１０１】
音声信号は、所定のサンプリング間隔（たとえば、１１０００Ｈｚ、２２０００Ｈｚ、４４０００Ｈｚ等のサンプリング周波数に相当するサンプリング周期T）で基準点からの変位を所定の精度（たとえば、８ビット、１６ビット、３２ビット等）で求め、これを
s0，s1，s2，…
のような数列として並べたもので表現される。数値snは、サンプリングを開始してからの経過時間t = nTにおける音声信号の変位を意味する。
【０１０２】
したがって、図３のグラフは、座標列
(0,s0)，(T,s1)，(2T,s2)，…，(iT,si)，…
をプロットした形状である。
【０１０３】
数値snは、符号付き整数で表現されることが多く、符号無し整数で表現された場合には、オフセットを加算もしくは減算することで、符号付き整数表現に変換して、変位の基準点を０にすることができる。すなわち、変位は正負の両方の値をとり、これを平均すると、基準状態となるようにすることができる。本図におけるグラフでも、変位は基準状態の上下に略同じ形状で変化している。
【０１０４】
本実施形態では、変位をそのまま処理するのではなく、以下のような種々の態様のいずれかを採用する。
（１）変位の絶対値。
（２）変位の自乗値。
（３）変位のうち正の部分。
【０１０５】
図４は、本実施形態にて処理する音声信号のグラフの形状を示す説明図である。以下、本図を参照して説明する。
【０１０６】
図３に示す音声信号のグラフに対して、本図（ａ）では、変位の絶対値をとったものを示している。本図（ａ）は、図３におけるグラフの変位が負となる部分を時間軸で折り返した形状で、座標列
(0,|s0|)，(T,|s1|)，(2T,|s2|)，…，(iT,|si|)，…
をプロットしたものとなっている。
【０１０７】
本図（ｂ）では、変位の自乗値をとっており、座標列
(0,s02)，(T,s12)，(2T,s22)，…，(iT,si2)，…
をプロットしたものとなっている。自乗をすることにより、本図（ａ）における値の大小の差異が、より極立つこととなっている。
【０１０８】
本図（ｃ）では、変位のうち正の部分のみを採用している。すなわち、
fn(x) = x (x≧0)；
= 0 (x<0)；
なる関数fn(・)を用いたときに、座標列
(0,fn(s0))，(T,fn(s1))，(2T,fn(s2))，…，(iT,fn(si))，…
をプロットしたものとなっており、図３におけるグラフの変位が負となる部分をすべて除去した形状となっている。
【０１０９】
これらのいずれを採用した場合にも、時間軸に対して正となる部分のみを考慮すれば済む。以下では、理解を容易にするため、これらのグラフの形状を「波形」として取り扱うこととし、座標列
(0,a0)，(T,a1)，(2T,a2)，…，(iT,ai)，…
をプロットしたものとして扱う。
【０１１０】
本発明では、波形を１つもしくは複数の三角形によって近似する。上記のように、波形は、時間軸の上側に配置されている。
【０１１１】
したがって、三角形の底辺は、時間軸に重なるようにすることができる。以下、このような三角形を「近似三角形」と呼ぶ。
【０１１２】
母音の波形は１つの近似三角形で近似することで、ある程度の精度で判別が可能であり、子音と母音の組み合わせからなるモーラ、音節についても、３つ程度までの近似三角形の列で近似すれば、実用的な精度で判別が可能であることが、発明者の実験によりわかっている。
【０１１３】
ここでいう「実用的な精度」とは、完全な音声認識（音声文字入力）ができる精度ではないが、たとえばボイスチャットのように、相手が話している声が聞こえるときに、その相手の声に合わせて口を開閉させるキャラクター（アバター）を表示したい場合に、音と画像が同期してリアルな印象を与えることができる、という程度の精度を意味する。
【０１１４】
図５は、母音に対する波形の形状を、三角形の形状で近似した様子を示す説明図である。以下、本図を参照して説明する。
【０１１５】
本図（ａ）〜（ｅ）には、それぞれ「あ」「い」「う」「え」「お」に対する波形を近似する近似三角形である照合三角形５０１が図示されている。
【０１１６】
照合三角形５０１は、あらかじめ本音声画像処理装置２０１の提供側で用意された近似三角形であり、波形に対する照合三角形５０１は、いずれも１つである。
【０１１７】
また、照合三角形５０１の底辺の長さは、時間に相当する。これらの照合三角形５０１の形状は、実際に実験を行うことによって適切な形状（判別精度が高くなるような形状）を求めることができる。
【０１１８】
各照合三角形５０１においては、底辺に対向する頂点（時間軸から離れている頂点）から底辺に垂らした垂線の足が、底辺を内分する内分比が互いに異なるほか、基本周期と倍音周期の組み合わせにより照合三角形５０１が構成されるため、底辺の長さも異なっている。そこで、本実施形態では、この内分比と底辺の長さをもとに、母音の区別をするのである。
【０１１９】
照合三角形５０１の高さは、音量に相当するものであるので、母音の判別においてはあまり重要な役割を果たさない。声の大きさは、マイク１１１の性能や音声処理部１１０におけるＡ／Ｄ変換、サンプリング処理のパラメータによって変化しうるものだからである。
【０１２０】
なお、以下では、N=1として音節として母音のみを考えるものとし、Nが１より大きい場合や、子音などを考慮した場合については、後述する。
【０１２１】
さて、本実施形態では、記憶部２０２には、以下の情報が記憶される。
（１）母音「あ」「い」「う」「え」「お」のそれぞれについて、当該母音に対する照合三角形５０１の上記内分比、および、底辺の長さ。内分比や底辺の長さは、それぞれ、実験により、あらかじめ上限や下限を設定することとしても良い。
（２）母音「あ」「い」「う」「え」「お」のそれぞれについての、キャラクターの口の形状を表す音節画像。各音節画像は、上記（１）における照合三角形５０１の情報と対応付けられている。
（３）キャラクターの基本的な表情（典型的には、キャラクターが口を閉じたとき）の口の形状を表す基本画像。
【０１２２】
図６は、各音節画像と基本画像の例を示す説明図である。以下、本図を参照して説明する。
【０１２３】
本図（ａ）〜（ｅ）には、それぞれ「あ」「い」「う」「え」「お」を発したときの口を開いた形状を表す図形が音節画像として示されている。口の開き方が、各母音ごとに微妙に異なっていることがわかる。
【０１２４】
本図（ｆ）には、口を閉じた形状を表す図形が基本画像として示されている。
【０１２５】
本発明においては、後述するように、母音が検出されたところでは音節画像を表示し、それ以外では、基本画像を表示することで「口パク」を表現する。そこで、口が開閉している様子をわかりやすく提示するために、基本画像としては、口を閉じた図形を用意している。
【０１２６】
もっとも、口を薄く開いた形状を基本画像とし、その基本画像と矛盾しないような音節画像を用意することとしても良い。
【０１２７】
これらの情報は、ＤＶＤ−ＲＯＭにあらかじめ記憶されており、必要に応じてＲＡＭ  １０３にロードするのが典型的であるが、キャラクターを用いたボイスチャットにおいて、キャラクターそのものの画像をユーザが設計できる場合には、ＮＩＣ  １０９を介してデータを受信して、ＲＡＭ  １０３に記憶させる手法を採用することもできる。
【０１２８】
さて、以下では、照合三角形５０１等の近似三角形を、音声信号の波形から求める具体的な手法を説明する。上記のように、音声信号の波形は、座標列
(0,a0)，(T,a1)，(2T,a2)，…，(iT,ai)，…
をプロットしたものである。
【０１２９】
これを、複数の近似三角形の列により近似する手法は種々考えられるが、以下にその代表的な手法として、包絡線を用いる手法と、平滑化を用いる手法の２種類を説明する。
【０１３０】
なお、これらの手法においては、包絡線を描いたり平滑化を行うために、声の高さ、あるいは、波形の変化の激しさに対応すると考えられる極大点間隔を用いる。
【０１３１】
そこで以下では、
（１）極大点間隔を求める手法
（２）包絡線を用いる手法
（３）平滑化を用いる手法
について、順に説明することとする。
【０１３２】
（極大点間隔を求める手法）
極大点とは、
ai-1＜aiかつai＞ai+1
を満たす点(i,ai)のことであり、グラフで見たときに、山の頂上に相当する点のことをいう。また、極大点間隔とは、波形の座標列の極大点の間隔のことである。極大点間隔は、声の高さ、あるいは、波形の変化の激しさに対応する数値であり、声、あるいは、その倍音の基本周期に比例するものと考えられるため、簡易な平滑化の指標として適切と考えられる。
【０１３３】
そこで、極大点間隔を順次求め、これらの平均あるいは重み付き平均を用いるのである。以下では、重み付き平均を求める手法を説明するが、同様の手法により、一定区間での極大点間隔の平均を求めることも可能である。
【０１３４】
図７は、極大点間隔を取得する極大点処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１３５】
本手法では、時刻t = iTにおける極大点間隔がＲＡＭ  １０３内の所定領域に出力される。したがって、処理の進みに合わせてその値を参照すれば良い。また、以下では、長さLの波形について、順次極大点間隔の値を出力する手法について説明する。
【０１３６】
まず、ＣＰＵ  １０１は、ＲＡＭ  １０３内の極大点間隔領域vの初期値として、値Tを代入し、直前の極大点の添字領域pの値として、0を代入する（ステップＳ７０１）。以下、代入演算子←を用いて、これを
v←T； p←0
のように表記する。
【０１３７】
値Tは、本実施形態における音声信号のサンプリング間隔であるから、これより短い時間が極大点間隔となることはない。そこで、値Tをvの初期値として用いる。なお、この初期値は、t = 0における極大点間隔として出力された値と考えることもできる。なお、T以外の値を適宜初期値として採用しても良い。
【０１３８】
また、極大点間隔を求めるために、直前に検出された極大点の添字pとして0を初期値とする。
【０１３９】
ついで、ループ変数iを1に設定し、L-2になるまで、以下の処理を繰り返す（ステップＳ７０２〜Ｓ７０７）。
【０１４０】
まず、ai-1＜aiかつai＞ai+1であるか否か、すなわち、aiが極大点か否かを調べる（ステップＳ７０３）。
【０１４１】
aiが極大点であれば（ステップＳ７０３；Ｙｅｓ）、0<K<1なる正定数Kを用いて、
v←Kv + (1-K)(i-p)T
を実行する（ステップＳ７０４）。これは、ステップＳ７０４における計算は、検出された間隔の減衰平均をとっていることに相当する。
【０１４２】
これによって、時刻t = iTにおける極大点間隔として値vが出力されることになる。
【０１４３】
そして、p←iを実行して、直前の極大点の添字を更新し（ステップＳ７０５）、繰り返しを続ける（ステップＳ７０７）。
【０１４４】
一方、aiが極大点でなければ（ステップＳ７０３；Ｎｏ）、時刻t = iTにおける極大点間隔は、値vであるとして（ステップＳ７０６）、そのままステップＳ７０７に進む。
【０１４５】
繰り返し（ステップＳ７０２〜Ｓ７０７）が終了したら、t = i(L-1)における極大点間隔は、値vを使用する（ステップＳ７０８）こととして、本処理を終了する。
【０１４６】
このように、本処理は、カウンタ変数iを用いた繰り返し（ステップＳ７０２〜Ｓ７０７）の中で、時刻t = iTにおける極大点間隔が、順次、変数vにより得られることがわかる。そこで、本処理の繰り返しの途中で、たとえば、所望の時刻に至った時点で、他の処理に制御を移行し、コルーチン的に利用するのが典型的である。
【０１４７】
すなわち、繰り返し（ステップＳ７０２〜Ｓ７０４）を途中で中断して変数v，iを保存しておき、あとから処理を再開できるようにする。
【０１４８】
上記の説明では、減衰平均による重み付き平均を用いたが、ステップＳ７０４において、これまでに検出された極大点間隔を所定長のリングバッファに格納しておき、このリングバッファ内の平均値や重み付き平均値を変数vに格納することとしても良い。これにより、有限個数の極大点間隔の平均値を、ある時刻t = iTの極大点間隔として用いることができるようになる。
【０１４９】
このほか、波形全体における極大点間隔の平均を求めるには、極大点の個数を求める変数nを用意し、ステップＳ７０１において
n←1
とした後、ステップＳ７０３において
v←v + (i-p)T； n←n+1
を実行し、ステップＳ７０７において、
v←v/n
を実行すれば、変数vに、波形全体における極大点間隔の平均が求められる。
【０１５０】
また、vに格納される値はTを単位としているので、上記のようにTを乗じた値を格納するのではなく、初期値として１を用い、平均を求めるためには添字の差をそのまま用いる等の手法を採用することもできる。
【０１５１】
さらに、各時刻に対して出力されるvの値を、配列に順次確保しておき、いずれの時刻についても後から参照できるようにしても良い。
【０１５２】
（包絡線を用いる手法）
本手法は、波形の包絡線により波形の概形を得て、近似三角形を求めるものである。
【０１５３】
図８は、波形から包絡線を求め、包絡線から近似三角形を求める手法について説明する説明図である。以下、本図を参照して説明する。
【０１５４】
本図（ａ）に示す波形８０１は、音声信号を表すものであり、座標列
(0,a0)，(T,a1)，(2T,a2)，…，(iT,ai)，…
をプロットしたものである。
【０１５５】
本手法では、この包絡線を複数回求める。図９は、波形から包絡線を求め、図１０は、これから近似三角形を求める包絡線処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１５６】
まず、上記の極大点処理を実行して、波形全体の極大点間隔の平均vを得る（ステップＳ９０１）。ついで、所定の正定数Cを用いて、包絡線を求める処理の繰り返し回数Qを、
Q←C/v
により計算する（ステップＳ９０２）。正定数Cは、Tよりも大きい値で、Tの数倍から数十倍程度が典型的な値である。なお、小数点以下は適宜四捨五入、切捨て、切上げ等をして丸める。
【０１５７】
なお、極大点処理を実行せずに、繰り返し回数Qとして、あらかじめ定めた正整数を採用することとしても良い。
【０１５８】
次に、座標列を記憶する一時的な配列変数b，cをＲＡＭ  １０３内に用意し（ステップＳ９０３）、配列bに、波形の座標列をコピーする（ステップＳ９０４）。ここで、配列変数bについて、i番目の要素をb[i]のように表記し、b[i]における時間軸方向の座標値をb[i].tと、時刻(b[i].t)Tにおける変位の座標値をb[i].aと、それぞれ表記するものとする。また、配列の長さを保持する変数を#bと表記する。すると、ステップＳ９０４における処理は、具体的には、整数i = 0，1，…，L-1のそれぞれについて、
b[i].t←i； b[i].a←ai
を実行した後に、
#b←L
を実行するものとなる。
【０１５９】
ついで、繰り返しのカウンタ変数kに１を設定し、kを１ずつ増やしながら、Qになるまで、以下の処理を繰り返す（ステップＳ９０５）。
【０１６０】
すなわち、
c[0]←b[0]； #c←1
を実行して、配列変数cの先頭に、配列変数bの先頭の要素を格納し、その有効長を１とする（ステップＳ９０６）。
【０１６１】
ついで、時刻方向のカウンタ変数jに１を設定し、jを１ずつ増やしながら、#b-1になるまで、以下の処理を繰り返す（ステップＳ９０７）。
【０１６２】
すなわち、b[j]が極大であるか否かを調べる（ステップＳ９０８）。具体的には、
b[j-1].a<b[j].aかつb[j].a>b[j+1].a
であるか否かを調べる。極大である場合（ステップＳ９０８；Ｙｅｓ）には、
c[#c]←b[j]； #c←#c+1
を実行して、b[j]を配列変数cに追加し（ステップＳ９０９）、jについての処理を繰り返す（ステップＳ９１０）。
【０１６３】
極大でなければ（ステップＳ９０８；Ｎｏ）、ステップＳ９１０に進む。
【０１６４】
図８（ｂ）は、図８（ａ）に対する波形に対して、１回だけ、ステップＳ９０５〜Ｓ９１０の処理を適用し、配列変数cに格納された座標列を順にプロットした包絡線８０２である。本図では、元の波形８０１は点線で描かれている。本図に示すように、極大点だけを連結することで、図８（ｂ）は、図８（ａ）にくらべてなだらかになっている。これは、最初に得られる「第１の包絡線」である。
【０１６５】
jについての繰り返し処理が終わったら、配列変数bと配列変数cとを交換する（ステップＳ９１１）。ここでは、中身をコピーして交換しても良いが、bとcが指すＲＡＭ  １０３内のアドレスを交換するだけでも良い。
【０１６６】
そして、kについての処理を繰り返す（ステップＳ９１２）。
【０１６７】
図８（ｃ）は、図８（ｂ）に対して、さらに極大点を結ぶ処理を行って得られる包絡線８０３を描いたものである。本図では、元の包絡線８０２は点線で描かれている。本図に示すように、図８（ｃ）は、図８（ｂ）にくらべてなだらかになっている。これは、最初に得られる「第２の包絡線」である。
【０１６８】
このように、極大点を結ぶ処理を繰り返すと、包絡線はどんどんなだらかになる。しかも、なだらかになる程度は、kに関する繰り返しの回数Qによって制御され、Qを元の音声信号の変化が激しければ激しいほど大きくした場合には、これらの処理を実行することにより、音声信号における声の高さなどに関わらず、同程度のなだらかさの概形が得られると期待できる。
【０１６９】
kについての繰り返し処理が終わったら、配列変数bに、「第Qの包絡線」の座標列が入っている。
【０１７０】
そこで、以降の処理では、第Qの包絡線から、近似三角形を順次取得することになる。以下では、近似三角形の斜辺が通過する点の座標を格納する変数X，Y，Zに、順次値が出力される態様を考える。
【０１７１】
まず、j←1を実行し（ステップＳ９１３）、j<#b-1の間（ステップＳ９１４；Ｙｅｓ）、以下の処理を繰り返す。すなわち、b[j]が極小点であるか否か、すなわち、
b[j-1].a>b[j].aかつb[j].a<b[j+1].a
であるか否かを判定する（ステップＳ９１５）。極小点でなければ（ステップＳ９１５；Ｎｏ）、
j←j+1
を実行して（ステップＳ９１６）、ステップＳ９１４に戻る。
【０１７２】
極小点であれば（ステップＳ９１５；Ｙｅｓ）、
X←b[j]
を実行し（ステップＳ９１７）、
j←j+1
を実行してループを抜け（ステップＳ９１８）、j<#b-1の間（ステップＳ９１９；Ｙｅｓ）、以下の処理を繰り返す。すなわち、b[j]が極大点であるか否か、すなわち、
b[j-1].a<b[j].aかつb[j].a>b[j+1].a
であるか否かを判定する（ステップＳ９２０）。極大点でなければ（ステップＳ９２０；Ｎｏ）、
j←j+1
を実行して（ステップＳ９２１）、ステップＳ９１９に戻る。
【０１７３】
一方、極大点であれば（ステップＳ９２０；Ｙｅｓ）、
Y←b[j]
を実行し（ステップＳ９２２）、
j←j+1
を実行してループを抜け（ステップＳ９２３）、j<#b-1の間（ステップＳ９２４；Ｙｅｓ）、以下の処理を繰り返す。すなわち、b[j]が極小点であるか否か、すなわち、
b[j-1].a>b[j].aかつb[j].a<b[j+1].a
であるか否かを判定する（ステップＳ９２５）。極小点でなければ（ステップＳ９２５；Ｎｏ）、
j←j+1
を実行して（ステップＳ９２６）、ステップＳ９２４に戻る。
【０１７４】
極小点であれば（ステップＳ９２５；Ｙｅｓ）、ステップＳ９２４〜ステップＳ９２６のループを抜けて、
Z←b[j]
を実行し（ステップＳ９２７）、
j←j+1
を実行する（ステップＳ９２８）。
【０１７５】
これにより、座標値X，Y，Zが得られる。
【０１７６】
図１１は、得られた座標値X，Y，Zと近似三角形との位置関係を示す説明図である。以下、本図を参照して説明する。
変数Xには近似三角形１１００の左側斜辺の途中の点１１０１の座標が、
変数Yには近似三角形１１００の底辺に対向する頂点１１０２の座標が、
変数Zには近似三角形１１００の右側斜辺の途中の点１１０３の座標が、
それぞれ得られることになる。
【０１７７】
波形の包絡線は、音声信号の音量の変化に相当するものと考えられるから、包絡線の極大点である頂点１１０２は、声が大きくなったところに相当し、包絡線の極小点である途中の点１１０１、１１０３は、声が小さくなったところに相当する。
【０１７８】
さて、近似三角形１１００の頂点１１０２から垂らした垂線の足１１０４は、近似三角形１１００の左側頂点１１０５と、近似三角形１１００の右側頂点１１０６と、を結ぶ底辺を内分する。ここで、垂線の足１１０４と左側頂点１１０５との距離は、
(Y.t-X.t)×(Y.a-X.a)/Y.a
により求めることができる。一方、垂線の足１１０４と右側頂点１１０６との距離は、
(Z.t-Y.t)×(Y.a-Z.a)/Y.a
により求めることができる。
【０１７９】
したがって、この近似三角形１１００における内分比は、
〔(Y.t-X.t)×(Y.a-X.a)〕/〔(Z.t-Y.t)×(Y.a-Z.a)〕
となる。
【０１８０】
また、近似三角形１１００の底辺の長さは、
(Y.t-X.t)×(Y.a-X.a)/Y.a + (Z.t-Y.t)×(Y.a-Z.a)/Y.a
により求めることができる。
【０１８１】
そこで、近似三角形１１００の形状情報を計算して（ステップＳ９２９）、これらを音声信号の時刻(X.t)T〜(Z.t)Tの区間に対応する近似三角形１１００の形状情報として出力する（ステップＳ９３０）。出力は、たとえば、ＲＡＭ  １０３に用意されたキューなどに追加する形式で行うのが典型的である。
【０１８２】
なお、ステップＳ９２９の処理は、当該近似三角形１１００の形状が、波形を近似するものとして適切でない場合には、スキップすることとしても良い。波形を近似するものとして適切でない場合とは、たとえば以下のような場合である。
（１）近似三角形１１００の高さが低い場合。すなわち、Y.aの波形の平均高さΣi=0L-1ai/Lに対する比が、所定の下限値よりも小さい場合である。
（２）近似三角形１１００の底辺の長さが、所定の上限よりも長かったり所定の下限よりも短かったりする場合。音声信号から照合三角形を取得する場合には、人間が照合三角形として適切かチェックすることとなるが、ボイスチャット等に応用する場合にマイク１１１から入力された音声信号について近似三角形１１００を求める場合には、あらかじめ用意された照合三角形の底辺の平均的な長さや最長長さ、最短長さと同じオーダー（数分の１〜数倍程度）の長さでなければならないとするものである。
【０１８３】
そして、
X←Z
を実行して、座標をコピーした後に（ステップＳ９３１）、ステップＳ９１９に戻る。
【０１８４】
また、j≧#b-1となった場合（ステップＳ９１４、Ｓ９１９、Ｓ９２４；Ｎｏ）、本処理を終了する。
【０１８５】
なお、ステップＳ９３１における処理は、次の近似三角形を求めるために左側斜辺に含まれる点を設定するものである。したがって、次のような手法を採用することもできる。
【０１８６】
すなわち、近似三角形１１００の右側斜辺の途中の点１１０３の時刻Z.tと、近似三角形１１００の右側頂点１１０６の時刻Y.t + (Z.t-Y.t)×(Y.a-Z.a)/Y.aと、の、中点１１１０（あるいは、適当な内分点）の時刻を次の近似三角形を探し出す開始時刻とするものである。すなわち、
j←〔Z.t  ＋  Y.t + (Z.t-Y.t)×(Y.a-Z.a)/Y.a〕/2
を実行して、ステップＳ９１４に戻るのである。
【０１８７】
この場合、ステップＳ９３０で形状情報が出力される近似三角形１１００の区間は、音声信号の時刻(X.t)T〜〔Z.t  ＋  Y.t + (Z.t-Y.t)×(Y.a-Z.a)/Y.a〕T/2の区間に対応するものと考えても良いし、上記実施例と同様に、時刻(X.t)T〜(Z.t)Tの区間に対応するものと考えて、時刻(Z.t)T〜〔Z.t  ＋  Y.t + (Z.t-Y.t)×(Y.a-Z.a)/Y.a〕T/2については、対応する近似三角形がない、としても良い。
【０１８８】
このようにして、音声信号の各区間に対する近似三角形の列を包絡線に基づいて得ることができる。
【０１８９】
（平滑化を用いる手法）
上記手法では、包絡線の極大点と極小点から近似三角形を得ていたが、本手法では、波形を平滑化した曲線を考えて、この曲線の極大点と極小点から近似三角形を得る。
【０１９０】
平滑化には、ディジタルフィルタを用いることも可能であるが、本手法ではより簡易な手法として、一定の区間（窓）の平均、あるいは、重み付き平均を用いるものとする。ここで、平均を求めるのに適切な区間の長さは、一定値の定数としても良いが、上記の極大点間隔を利用することもできる。以下では、極大点間隔を用いる手法について説明する。
【０１９１】
図１２（および、図１０）は、波形を平滑化してから近似三角形を求める平滑化処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１９２】
まず、上記の極大点処理を実行して、波形全体の極大点間隔の平均vを得る（ステップＳ１２０１）。ついで、所定の正定数Dを用いて、平均を求める区間（窓）の長さPを、
P←Dv/T
により計算する（ステップＳ１２０２）。正定数Dは、Tよりも大きい値で、Tの数倍から数十倍程度が典型的な値である。すなわち、M=D/Tは１より大きい。なお、小数点以下は適宜四捨五入、切捨て、切上げ等をして丸める。
【０１９３】
なお、極大点処理を実行せずに、窓の幅Pとして、あらかじめ定めた正整数を採用することとしても良い。
【０１９４】
次に、座標列を記憶する一時的な配列変数bをＲＡＭ  １０３内に用意する（ステップＳ１２０３）。
【０１９５】
ついで、カウンタ変数kを0，1，2，…，L-1について変化させ、以下の処理を繰り返す（ステップＳ１２０４）。すなわち、
b[k]←Σi=k-Pk+P ai/(2P+1)
のように窓k-P〜k+Pの平均値を計算して、b[k]に代入する（ステップＳ１２０５）。
【０１９６】
なお、窓の幅としてPを採用することとしているが、窓の右端k-Pは適宜移動しても良い。また、典型的には、
i<0の場合は、ai = a0；
i≧Lの場合は、ai = aL-1
のように、入力信号の時間範囲を超えた場合の値を適当に決めておく。
【０１９７】
そして、
#b←k+1
を実行し（ステップＳ１２０６）、配列変数bのうち有効な値が格納されている個数を#bに代入して、処理を繰り返す（ステップＳ１２０７）。
【０１９８】
このようにして、配列変数bに平滑化した波形が得られたら、上記手法と同様にステップＳ９１３に進み、近似三角形の列を順次取得する。
【０１９９】
（音声画像処理）
上記のように、記憶部２０２には母音の照合三角形の形状情報と母音の口の形を表す音節画像とが対応付けられて記憶され、このほか、基本的な口の形を表す基本画像が記憶されている。
【０２００】
以下では、このような状況で、ボイスチャットにおいて相手が話す音声に合わせてアバターに「口パク」のアニメーションをさせるための音声画像処理について説明する。
【０２０１】
図１３は、音声画像処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０２０２】
本処理が開始されると、入力部２０３は、音声信号の入力を受け付ける（ステップＳ１３０１）。ボイスチャットの場合、入力部２０３において受け付けられる音声信号は、チャットの相手が発した音声を表すものである。したがって、相手が操作する情報処理装置１００のマイク１１１で取得された音声信号が、ＮＩＣ  １０９からインターネット等のコンピュータ通信網を介して送信されて、自分が操作する情報処理装置１００にＮＩＣ  １０９を介して到着すると、入力部２０３による音声信号の入力が受け付けられたことになる。
【０２０３】
ついで、ＣＰＵ  １０１は、音声処理部１１０に指示を出して、ＲＡＭ  １０３内のバッファに蓄積された音声信号を出力するよう、予約する（ステップＳ１３０２）。ここで「予約」とは、音声処理部１１０が別のバッファに蓄積された現在出力中の音声信号が存在すれば、その出力が完了してから、ＲＡＭ  １０３内のバッファに蓄積された音声信号を出力する、というものである。
【０２０４】
音声信号のストリーミング再生の際には、ダブルバッファリングやリングバッファなどの手法が用いられるのが典型的であり、本実施形態もこれに沿って、一定長の音声信号を重ならないバッファに受信しては出力予約をして出力させ、これを繰り返し、出力が終わったバッファは再利用するのである。
【０２０５】
したがって、ＣＰＵ  １０１は、音声処理部１１０、ＲＡＭ  １０３等と共働して、出力部２０６として機能する。ボイスチャットをしている相手の声は、スピーカやヘッドフォン、イヤフォンなどから再生される。
【０２０６】
ついで、入力部２０３により受け付けられた音声信号がＲＡＭ  １０３内のバッファに一定量溜まったら、ＣＰＵ  １０１は、入力を受け付けられた音声信号の波形に対する近似三角形列を取得する（ステップＳ１３０３）。近似三角形列の取得には、上記の手法等を採用することができる。また、バッファの長さが、上記におけるLに相当する。
【０２０７】
したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３等と共働して、近似部２０４として機能する。
【０２０８】
この後、ＣＰＵ  １０１は、近似三角形列に含まれる近似三角形のそれぞれについて、記憶部２０２に記憶された照合三角形列のいずれとマッチするかを調べておく（ステップＳ１３０４）。
【０２０９】
近似三角形と照合三角形がマッチしていれば、その区間で、照合三角形に対応付けられる音節が発声されていたと推測できることになり、そうでなければ、他の音節が発声されている、あるいは、音声が発声されていないことになる。
【０２１０】
したがって、ＣＰＵ  １０１は、判定部２０５として機能する。
【０２１１】
そして、当該ＲＡＭ  １０３内のバッファに蓄積された音声信号の出力が開始されるまで待機する（ステップＳ１３０５）。この待機の間には、他の処理をコルーチン的に実行することが可能である。なお、ステップＳ１３０３〜Ｓ１３０４の処理を、ステップＳ１３０５における待機中に実行すると考えても良い。また、次の処理で対処すべき音声信号の入力を受け付けてしまうことも可能である。すなわち、ステップＳ１３０１〜Ｓ１３０４の処理は、ステップＳ１３０５以降に説明する処理とは並行して実行されることとしても良い。
【０２１２】
さて、ＲＡＭ  １０３内のバッファに蓄積された音声信号の出力が開始されたら、ＣＰＵ  １０１は、現在出力中の音声信号の再生が開始されてからの経過時間を計測し（ステップＳ１３０６）、当該経過時間を含む区間に対応する近似三角形にマッチする照合三角形があれば（ステップＳ１３０７；Ｙｅｓ）、この照合三角形に対応付けられる音節画像を選択する（ステップＳ１３０８）。
【０２１３】
一方、当該経過時間を含む区間に対応する近似三角形にマッチする照合三角形がなければ（ステップＳ１３０７；Ｎｏ）、基本画像を選択する（ステップＳ１３０９）。
【０２１４】
ここで、マッチするか否かは、以下のような判断基準によって判定可能である。
（１）照合三角形の内分比と、近似三角形の内分比が、所定の誤差範囲内にあるか否か。
（２）照合三角形の底辺の長さに割り当てられた下限〜上限の間に、近似三角形の底辺の長さが含まれるか。
【０２１５】
これらの両方が満たされた場合に、両者はマッチする、と考える。また、ある近似三角形に対して複数の照合三角形がマッチする場合には、上記（１）（２）に適当な重み付けをしてマッチの程度を表し指標を計算し、この指標に基づいて、より類似する方を選択する。
【０２１６】
指標としては、たとえば、内分比の誤差の絶対値や自乗値に定数を乗じた値と底辺長さの差の絶対値や自乗値に定数を乗じた値の和等を用いることができる。
【０２１７】
そして、選択された音節画像もしくは基本画像を用いて画面に表示するキャラクター（アバター）の画像を生成し（ステップＳ１３１０）、垂直同期割込が生じるまで待機する（ステップＳ１３１１）。この待機中にも他の処理をコルーチン的に実行することができる。そして、垂直同期割込が生じたら、画像処理部１０７に指示を出して、生成された画像をモニタに表示する（ステップＳ１３１２）。
【０２１８】
したがって、ＣＰＵ  １０１は、画像処理部１０７やＲＡＭ  １０３と共働して、表示部２０７として機能する。
【０２１９】
そして、この処理を、現在出力中の音声信号の再生が完了していなければ（ステップＳ１３１３；Ｎｏ）、ステップＳ１３０６に戻り、現在出力中の音声信号の再生が完了していれば（ステップＳ１３１３；Ｙｅｓ）、ステップＳ１３０１に戻る。
【０２２０】
したがって、相手の声の各区間について、マッチする音節画像が存在すればその音節画像を表示し、マッチする音節画像がなければ基本画像を表示するので、音声信号に同期して口の形状が変化することとなり、アニメーションの分野で「口パク」と呼ばれる演出が可能となる。
【０２２１】
このように、本実施形態によれば、高速フーリエ変換等の計算負荷の高い音声認識技術を使わずに、簡易な三角形による近似およびマッチングによって音節を推定することで、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うことができるようになる。
【０２２２】
なお、近似三角形の高さは、その時の音声の大きさに相当すると考えられる。そこで、基本画像として、口を閉じているものから口を開いているものまで２種類乃至数種類を用意しておき、その区間における近似三角形（これは、いずれの照合三角形ともマッチしなかったものである。）の高さによって、いずれを表示するかを選択することとしても良い。
【実施例２】
【０２２３】
上記実施形態では、照合三角形と近似三角形とは、１個対１個でマッチするか否かを判定していたが、本実施形態は、これを複数で判定する態様に係るものである。
【０２２４】
一般に、典型的な音節、モーラ、シラブルの波形は、１個乃至３個の近似三角形列によって近似できる。
【０２２５】
図１４は、ある音節に対する近似三角形列の様子を示す説明図である。以下、本図を参照して説明する。
【０２２６】
本図に示す近似三角形列１４０１は、３つの近似三角形１４０２（１４０２ａ、１４０２ｂ、１４０２ｃ）からなっており、これらの近似三角形１４０２は、時間軸に重なる頂点付近で互いに重なっている。
【０２２７】
照合三角形列として１個の照合三角形を用いる上記実施形態では、近似三角形の高さのマッチや類否における重要性は低かったが、本実施形態では、複数の近似三角形が照合三角形列に含まれるので、それぞれの高さの比をマッチや類否に用いて利用すると、より正確な判定が、計算負荷は軽いままで実現できる。
【０２２８】
本実施形態の場合、近似三角形列１４０１の形状情報は、
（１）各近似三角形１４０２の底辺の長さ
（２）各近似三角形１４０２の垂線の足による内分比
（３）各近似三角形１４０２の高さの比率
（４）隣り合う近似三角形１４０２が時間軸方向に重なる長さ
のような数値群により表現される。
【０２２９】
したがって、照合三角形列と近似三角形列とのマッチングは、２つの数値群がどれだけ類似しているか、を判定することで行う。
【０２３０】
２つの数値群の類似は、各数値群に含まれる数値に適切な重みを乗じて並べたベクトルを考え、２つのベクトルがなす角度がより小さければより類似しており、マッチ度が高い、とする手法が典型的である。ベクトルのなす角度は、ベクトル同士の内積とベクトルの長さから計算することができる。
【０２３１】
たとえば、日本語の場合、清音、濁音、半濁音を含めて、１００種類程度の音節があると考えられるから、これらの音節のそれぞれについて照合三角形列と音節画像をあらかじめ用意しておく。
【０２３２】
なお、上記実施形態では、１つの音節（母音）を発声している間は、１種類の音節画像が表示されていたが、本実施形態では、１つの音節に子音と母音の複数の音が含まれることがある。そこで、音節画像は、アニメーション画像となる。
【０２３３】
典型的には、各近似三角形１４０２の区間に応じた口の形状を表す静止画像を複数しておき、これを順次表示することで、その音節を発している口の形状の変化をアニメーション表示するのである。
【０２３４】
本実施形態によれば、実用的な計算負荷により、多数の音節を実用的な精度で判定して、これに合わせた口の形状をアニメーション表示できるようになる。
【産業上の利用可能性】
【０２３５】
以上説明したように、本発明によれば、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うのに好適な音声画像処理装置、音声画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０２３６】
【図１】プログラムを実行することにより、本発明の音声画像処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係る音声画像処理装置の概要構成を示す説明図である。
【図３】音声信号について、時間の経過を横軸に、音声信号の変位を縦軸に描いたグラフである。
【図４】本実施形態にて処理する音声信号のグラフの形状を示す説明図である。
【図５】母音に対する波形の形状を、三角形の形状で近似した様子を示す説明図である。
【図６】各音節画像と基本画像の例を示す説明図である。
【図７】極大点間隔を取得する極大点処理の制御の流れを示すフローチャートである。
【図８】波形から包絡線を求め、包絡線から近似三角形を求める手法について説明する説明図である。
【図９】波形の包絡線から近似三角形を求める包絡線処理の制御の流れを示すフローチャートである。
【図１０】波形を処理して得られる座標列から近似三角形を求める処理の制御の流れを示すフローチャートである。
【図１１】得られた座標値X，Y，Zと近似三角形との位置関係を示す説明図である。
【図１２】波形を平滑化してから近似三角形を求める平滑化処理の制御の流れを示すフローチャートである。
【図１３】音声画像処理の制御の流れを示すフローチャートである。
【図１４】ある音節に対する近似三角形列の様子を示す説明図である。
【符号の説明】
【０２３７】
１００    情報処理装置
１０１    ＣＰＵ
１０２    ＲＯＭ
１０３    ＲＡＭ
１０４    インターフェイス
１０５    コントローラ
１０６    外部メモリ
１０７    画像処理部
１０８    ＤＶＤ−ＲＯＭドライブ
１０９    ＮＩＣ
１１０    音声処理部
１１１    マイク
２０１    音声画像処理装置
２０２    記憶部
２０３    入力部
２０４    近似部
２０５    判定部
２０６    出力部
２０７    表示部
５０１    照合三角形
８０１    波形
１１００  近似三角形
１１０１  近似三角形の左側斜辺の途中の点
１１０２  近似三角形の底辺に対向する頂点
１１０３  近似三角形の右側斜辺の途中の点
１１０４  近似三角形の底辺に垂らした垂線の足
１１０５  近似三角形の左側頂点
１１０６  近似三角形の右側頂点
１４０１  近似三角形列
１４０２  近似三角形
【図１】
2008241772.tif 000003
【図２】
2008241772.tif 000004
【図３】
2008241772.tif 000005
【図４】
2008241772.tif 000006
【図５】
2008241772.tif 000007
【図６】
2008241772.tif 000008
【図７】
2008241772.tif 000009
【図８】
2008241772.tif 000010
【図９】
2008241772.tif 000011
【図１０】
2008241772.tif 000012
【図１１】
2008241772.tif 000013
【図１２】
2008241772.tif 000014
【図１３】
2008241772.tif 000015
【図１４】
2008241772.tif 000016