説明

音声画像処理装置、音声画像処理方法、ならびに、プログラム

【課題】ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行う音声画像処理装置等を提供する。
【解決手段】音声画像処理装置201において、記憶部202は、音節の波形を近似する照合三角形列と、その音節を発声する口の形状の音節画像とを対応付けて記憶し、入力部203は、音声信号の入力を受け付け、近似部204は、受け付けられた音声信号の波形を近似三角形列で近似し、判定部205は、近似三角形列と照合三角形列がマッチするか判定し、出力部206は、受け付けられた音声信号を出力し、表示部205は、現在出力されている音声信号の区間に対応する近似三角形にマッチする照合三角形列があればこれに対応付けられる音節画像を表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うのに好適な音声画像処理装置、音声画像処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、ゲームをプレイするユーザが発した声をゲーム装置とコンピュータ通信網を介してやりとりするボイスチャットを実現する技術が提案されている。このようなボイスチャットの技術については、以下の文献に開示されている。
【特許文献1】特開2006−343447号公報
【0003】
ここで、[特許文献1]では、各プレイヤーが発声した音声と、当該プレイヤーが操作するキャラクター同士の間の仮想空間の環境音とを合成して出力することにより、仮想空間でのボイスチャットの臨場感を高める技術が開示されている。
【0004】
一方で、プレイヤーが操作するキャラクター(「アバター」と呼ぶこともある。)同士がボイスチャットするシステムなどにおいては、チャット相手のキャラクターの顔が画面に表示され、自分が他のどのプレイヤーと会話しているのかを明示するシステムも存在する。
【発明の開示】
【発明が解決しようとする課題】
【0005】
ここで、人間同士がテレビ電話サービスで会話をする場合には、話相手の口が声に同期して開閉する様子が見えるため、ボイスチャットにおいても、キャラクターの口の形状の画像を音声に同期させて変化させることにより、チャットの臨場感やキャラクターとの一体感を高めたいという要望は大きい。
【0006】
一方で、高速フーリエ変換等を用いた音声認識技術によって音声からどのような音節、モーラ、子音、母音が発声されているかを解析し、これに応じてキャラクターの口の形状の画像を変化させるという手法では、高速フーリエ変換等による計算負荷が大きいため、用途によっては、より簡易な負荷の少ない計算により、キャラクターの口の形状の変化を近似したい、という要望もある。
【0007】
本発明は、上記のような課題を解決するもので、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うのに好適な音声画像処理装置、音声画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0009】
本発明の第1の観点に係る音声画像処理装置は、時間の経過を第1軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第2軸にとった波形を近似する三角形であって、その底辺が当該第1軸に重なる三角形(以下「近似三角形」という。)を用い、記憶部、入力部、近似部、判定部、出力部、表示部を備え、以下のように構成する。
【0010】
一般に、音声信号は、所定のサンプリング間隔(たとえば、11000Hz、22000Hz、44000Hz等のサンプリング周波数に相当するサンプリング周期T)で基準点からの変位を所定の精度(たとえば、8ビット、16ビット、32ビット等)で求め、これを
s0,s1,s2,…
のような数列として並べたもので表現される。数値snは、サンプリングを開始してからの経過時間t = nTにおける音声信号の変位を意味する。
【0011】
数値snは、符号付き整数で表現されることが多く、符号無し整数で表現された場合には、オフセットを加算もしくは減算することで、符号付き整数表現に変換して、変位の基準点を0にすることができる。
【0012】
本発明では、変位の絶対値
|s0|,|s1|,|s2|,…
もしくは変位の自乗値
s02,s12,s22,…
を用いることにより、時間軸に対して正の領域にまとめられたグラフを波形として処理する。
【0013】
以下では、上記の2つの数列のうち、採用するものを
a0,a1,a2,…
のように表記することとする。
【0014】
本発明では、この波形の数列
a0,a1,a2,…
に対して高速フーリエ変換等の計算負荷の大きい処理は適用せず、時間軸に底辺が重なる三角形を並べ、その上辺を辿ると波形が近似されるようにして、当該近似三角形と照合をとることにより、その底辺に相当する区間に相当する音節、モーラ、母音、子音等を高速かつ簡易に推定する。
【0015】
さて、記憶部は、音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する。
【0016】
一般に、母音の波形は1個の近似三角形で近似でき、子音と母音からなる音節の波形は、2個〜3個の近似三角形で近似できる。そこで、これらの近似三角形を照合三角形列(長さが1の場合は、照合三角形)として、その音節に相当する口の形状の画像とともに、記憶部に記憶する。
【0017】
なお、アバターを用いたボイスチャットに本発明を適用する場合、記憶部に記憶される口の形状の画像は、チャット相手の操作するキャラクター(アバター)の画像である。
【0018】
一方、入力部は、音声信号の入力を受け付ける。
【0019】
上記の例では、、入力部において受け付けられる音声信号は、チャットの相手が発した音声を表すものである。したがって、相手が操作するゲーム装置のマイクで取得された音声信号が、コンピュータネットワークを介して送信されて自分が操作するゲーム装置に到着すると、入力部による音声信号の入力が受け付けられたことになる。
【0020】
さらに、近似部は、入力を受け付けられた音声信号の波形に対する近似三角形列を取得する。
【0021】
波形から近似三角形列を取得する手法については、種々の技術が適用可能であり、その好適実施形態は、後述する発明により実現される。
【0022】
さらに、判定部は、当該音声信号の区間と記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する。
【0023】
近似三角形(列)と照合三角形(列)がマッチしていれば、その区間で、照合三角形(列)に対応付けられる音節が発声されていたと推測できることになり、そうでなければ、他の音節が発声されている、あるいは、音声が発声されていないことになる。
【0024】
さらに、出力部は、入力を受け付けられた音声信号を出力する。
【0025】
上記例では、ボイスチャットをしている相手の声は、スピーカやヘッドフォン、イヤフォンなどから再生される。出力部は、このような相手の声を出力する処理を担う。
【0026】
一方、表示部は、出力部により出力される音声信号のうち、判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する。
【0027】
上記のように、相手の声の各区間について、マッチする音節画像が存在すれば、その音節画像を表示することにより、音声信号に同期して口の形状が変化することとなり、アニメーションの分野で「口パク」と呼ばれる演出が可能となる。
【0028】
このように、本発明によれば、高速フーリエ変換等の計算負荷の高い音声認識技術を使わずに、簡易な三角形による近似およびマッチングによって音節を推定することで、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うことができるようになる。
【0029】
また、本発明の音声画像処理装置において、N≦3であり、記憶部は、口の基本形状を表す基本画像をさらに記憶し、表示部は、出力部により出力される音声信号のうち、判定部により当該音節画像のいずれともマッチしないと判定された区間が出力される間、当該基本画像を表示するように構成することができる。
【0030】
上記のように、典型的な音節、モーラ、シラブルの波形は、1個乃至3個の近似三角形列によって近似できる。
【0031】
一方、波形が照合三角形列のいずれともマッチしない場合には、そのときの口の基本形状(典型的には口を閉じている形状)を表す基本画像を表示することとするものである。
【0032】
なお、近似三角形の高さは、その時の音声の大きさに相当すると考えられる。そこで、基本画像として、口を閉じているものから口を開いているものまで2種類乃至数種類を用意しておき、その区間における近似三角形の高さによって、いずれを表示するかを選択することとしても良い。
【0033】
本発明は、上記発明の好適実施形態に係るものであり、照合三角形列のいずれともマッチしない区間においては、口の形状を基本形状にすることで、口パクを自然に表現することができるようになる。
【0034】
また、本発明の音声画像処理装置において、当該音節は母音のいずれかであり、N=1であり、当該照合三角形列は1つの照合三角形からなり、判定部は、当該音声信号の区間と記憶される音節画像とがマッチするか否かを、当該区間に対する1つの近似三角形と、当該音節画像に対応付けられる照合三角形とがマッチするか否かにより判定するように構成することができる。
【0035】
本発明においては、音節として母音のみを想定する。子音と母音との組み合わせからなる音節は、当該母音とマッチさせ、子音が発声される区間では、口の形状として基本形状を採用することになる。
【0036】
また、母音の波形は、1つの照合三角形により近似されるため、近似三角形とのマッチの判定処理の計算負荷がより一層少なくなる。
【0037】
本発明は、上記発明の好適実施形態に係るものであり、1つの近似三角形により波形が近似される母音のみを想定することで、より一層簡易な計算で、口パクを表現することができるようになる。
【0038】
また、本発明の音声画像処理装置において、判定部は、近似三角形および照合三角形の底辺に対向する頂点から当該底辺に垂らした垂線の足が当該底辺を内分する内分比により、当該近似三角形と当該照合三角形とがマッチするか否かを判定するように構成することができる。
【0039】
本発明は、三角形のマッチの好適実施形態に係るものである。すなわち、三角形の高さは、声の大きさに相当するものであるので、音節の種類が類似するか否かの判定には用いない。
【0040】
本発明では、三角形の底辺に対応する頂点から当該底辺に垂線を垂らし、当該底辺を、垂線の足において2つに分割する。そして、この2つの時間長の比が近いか否か(たとえば、所定の誤差範囲内であるか否か。)により、マッチしているか否かを判定するのである。
【0041】
本発明は、上記発明の好適実施形態に係るもので、簡易な計算で、近似三角形と照合三角形とのマッチを判定することができるようになる。
【0042】
また、本発明の音声画像処理装置において、近似部は、当該音声信号の波形の極大点を連結した第1の包絡線を求め、所定の整数Q (Q≧1)に対し、整数i (1≦i≦Q-1)のそれぞれについて、第iの包絡線の極大点を連結した第i+1の包絡線を求め、第Qの包絡線において、隣り合う極大点と極小点を結ぶ直線から当該近似三角形の辺を取得するように構成することができる。
【0043】
本発明は、上記発明の好適実施形態に係るものであり、波形を近似三角形により近似する具体的な手法を提案するものである。
【0044】
波形の極大点とは、
at-1<atかつat>at+1
が成立するようなatを意味する。そこで、このように、波形の中から隣り合うものより大きい点だけを選び、この点を順に辿ることで、波形の第1の包絡線が得られる。
【0045】
この第1の包絡線についても、同様に極大点を選んで、この極大点を連結する第2の包絡線を得る。これを繰り返して、第Qの包絡線が得られるのである。
【0046】
波形の包絡線は、音声信号の音量の変化に相当するものと考えられるから、包絡線の極大点は、声が大きくなったところに相当し、包絡線の極小点は、声が小さくなったところに相当する。
【0047】
本発明によれば、簡易な計算によって音量の時間的変化を取得するともに、この音量の時間的変化に基づいて音節とのマッチをとることにより、低い計算負荷で処理を行うことができるようになる。
【0048】
また、本発明の音声画像処理装置において、近似部は、当該Qを当該音声信号の波形の極大点の当該第1軸方向における間隔の平均もしくは重み付き平均に略反比例する正整数とするように構成することができる。
【0049】
上記発明では、第1、第2、…、第Qと順に包絡線を得ることとしている。本発明は、このQの数値を選択する手法を提案する好適実施形態に係るものである。
【0050】
一方、音声信号の波形の極大点の間隔は、変位の絶対値や自乗値を採用した場合には元の音声信号やその倍音の周期の半分に相当し、変位のうち正のものを採用した場合には、元の音声信号やその倍音の周期に相当すると考えられる。したがって、Qを、この間隔の平均や重み付き平均に略反比例(所定の反比例定数を除算して、四捨五入や切捨て、切上げなどを行うのが典型的である。)値とすれば、声の高さに適応した包絡線が得られる。すなわち、声が高ければ高いほど、間隔は短くなり、Qは大きくなる。一方、声が低ければ低いほど、間隔は長くなり、Qは小さくなる。
【0051】
本発明によれば、簡易な計算により、音声信号の高さに適応した包絡線を低い計算負荷で得ることができるようになる。
【0052】
また、本発明の音声画像処理装置において、近似部は、当該音声信号の波形を平滑化した曲線において、隣り合う極大点と極小点を結ぶ直線から当該近似三角形の辺を取得するように構成することができる。
【0053】
上記発明においては、波形の極大点を結ぶ包絡線により音声信号の音量の時間的変化を求めたが、本発明では、波形を平滑化して高周波成分を除去することで、音声信号の音量の時間的変化を求めることとしている。
【0054】
ディジタルフィルタを使用して平滑化を行うことも可能であるが、より簡易な手法としては、atに相当する曲線は、
Σi=t-P/2t+P/2 at/(P+1)
のような平均、あるいは、適当な重み付き平均によって、曲線の形状を求めることもできる。
【0055】
本発明によれば、簡易な計算によって音量の時間的変化を取得するともに、この音量の時間的変化に基づいて音節とのマッチをとることにより、低い計算負荷で処理を行うことができるようになる。
【0056】
また、本発明の音声画像処理装置において、近似部は、当該音声信号の波形の極大点の当該第1軸方向における間隔の平均もしくは重み付き平均により当該音声信号の基本周期を推定し、当該推定された基本周期のM (M>1)倍の幅の窓に含まれる波形の平均もしくは重み付き平均をとることで、当該波形を平滑化するように構成することができる。
【0057】
すなわち、本発明は、上記発明におけるPを求める好適実施形態に係るものである。
【0058】
波形の極大点が、順に、
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,…
のように取得することができる。
【0059】
上記のように、この間隔は、元の音声信号やその倍音の周期やその半分に相当すると考えられる。そこで、これらの間隔の平均や重み付き平均をとることで、その時点での音声信号の周波数や周期を得ることができる。
【0060】
そして、音声信号の周波数F、周期1/Fに対して、基本周期のM倍の窓をとるのであるから、窓の幅Pの時間長はM/Fとなる。
【0061】
波形の数列の添字で考えると、
P = M/(FT)
のように考えることができる。
【0062】
なお、もっと単純に、Pは、
m[1]-m[0],m[2]-m[1],m[3]-m[2],…
の平均、もしくは、重み付き平均のM倍であるとして、計算しても良い。
【0063】
基本周期のM倍の窓をとることにより、音声信号のM個分の周期幅での平滑化が行われる。したがって、ローパスフィルタを用いる平滑化とは異なり、声の高低に適応して平滑化を行うことができるようになる。
【0064】
本発明によれば、音量の時間的変化を取得する際に、音声の高低に適応した平滑化を低い計算負荷で行うことができるようになる。
【0065】
本発明のその他の観点に係る音声画像処理方法は、時間の経過を第1軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第2軸にとった波形を近似する三角形であって、その底辺が当該第1軸に重なる三角形(以下「近似三角形」という。)を用い、音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する記憶部、入力部、近似部、判定部、出力部、表示部を有する音声画像処理装置にて実行され、以下のように構成する。
【0066】
すなわち、入力工程では、入力部が、音声信号の入力を受け付ける。
【0067】
一方、近似工程では、近似部が、入力を受け付けられた音声信号の波形に対する近似三角形列を取得する。
【0068】
さらに、判定工程では、判定部が、当該音声信号の区間と記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する。
【0069】
そして、出力工程では、出力部が、入力を受け付けられた音声信号を出力する。
【0070】
一方、表示工程では、表示部が、出力部により出力される音声信号のうち、判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する。
【0071】
本発明のその他の観点に係るプログラムは、コンピュータを上記の音声画像処理装置の各部として機能させ、コンピュータに上記の音声画像処理方法の各工程を実行させるように構成する。
【0072】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0073】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0074】
本発明によれば、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うのに好適な音声画像処理装置、音声画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0075】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0076】
図1は、プログラムを実行することにより、本発明の音声画像処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0077】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。
【0078】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【0079】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0080】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0081】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0082】
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。本図では、コントローラ105として上下左右を示す操作入力等、各種のボタンが用意された図示しているが、後述するようなレーザポインタや指示棒の代わりとなるようなコントローラを採用することも可能であるし、マウスやキーボードなどをコントローラとして使用しても良い。
【0083】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0084】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0085】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0086】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0087】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0088】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0089】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0090】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0091】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0092】
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0093】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0094】
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【0095】
たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0096】
(音声画像処理装置)
図2は、本実施形態に係る音声画像処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【0097】
本実施形態に係る音声画像処理装置201は、記憶部202、入力部203、近似部204、判定部205、出力部206、表示部207を備える。
【0098】
ここで、記憶部202は、音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する。
【0099】
図3は、音声信号について、時間の経過を横軸に、音声信号の変位を縦軸に描いたグラフである。以下、本図を参照して説明する。
【0100】
音声は空気等の媒質内を波動になって伝播する。これをマイク111や耳などで観測すると、媒質の基準状態(音がない状態)からの気圧のずれ(変位)が検知され、この変位が周期的に変化する。そして、この周期により音の高低が決まり、1周期分の変位の時間経過に対する変化の様子によって音色が決まる。また、人が発する声の場合には、1周期分の音色の他、複数周期分の音量や音色の変化によって、母音や子音、モーラや音節などが決まることになる。
【0101】
音声信号は、所定のサンプリング間隔(たとえば、11000Hz、22000Hz、44000Hz等のサンプリング周波数に相当するサンプリング周期T)で基準点からの変位を所定の精度(たとえば、8ビット、16ビット、32ビット等)で求め、これを
s0,s1,s2,…
のような数列として並べたもので表現される。数値snは、サンプリングを開始してからの経過時間t = nTにおける音声信号の変位を意味する。
【0102】
したがって、図3のグラフは、座標列
(0,s0),(T,s1),(2T,s2),…,(iT,si),…
をプロットした形状である。
【0103】
数値snは、符号付き整数で表現されることが多く、符号無し整数で表現された場合には、オフセットを加算もしくは減算することで、符号付き整数表現に変換して、変位の基準点を0にすることができる。すなわち、変位は正負の両方の値をとり、これを平均すると、基準状態となるようにすることができる。本図におけるグラフでも、変位は基準状態の上下に略同じ形状で変化している。
【0104】
本実施形態では、変位をそのまま処理するのではなく、以下のような種々の態様のいずれかを採用する。
(1)変位の絶対値。
(2)変位の自乗値。
(3)変位のうち正の部分。
【0105】
図4は、本実施形態にて処理する音声信号のグラフの形状を示す説明図である。以下、本図を参照して説明する。
【0106】
図3に示す音声信号のグラフに対して、本図(a)では、変位の絶対値をとったものを示している。本図(a)は、図3におけるグラフの変位が負となる部分を時間軸で折り返した形状で、座標列
(0,|s0|),(T,|s1|),(2T,|s2|),…,(iT,|si|),…
をプロットしたものとなっている。
【0107】
本図(b)では、変位の自乗値をとっており、座標列
(0,s02),(T,s12),(2T,s22),…,(iT,si2),…
をプロットしたものとなっている。自乗をすることにより、本図(a)における値の大小の差異が、より極立つこととなっている。
【0108】
本図(c)では、変位のうち正の部分のみを採用している。すなわち、
fn(x) = x (x≧0);
= 0 (x<0);
なる関数fn(・)を用いたときに、座標列
(0,fn(s0)),(T,fn(s1)),(2T,fn(s2)),…,(iT,fn(si)),…
をプロットしたものとなっており、図3におけるグラフの変位が負となる部分をすべて除去した形状となっている。
【0109】
これらのいずれを採用した場合にも、時間軸に対して正となる部分のみを考慮すれば済む。以下では、理解を容易にするため、これらのグラフの形状を「波形」として取り扱うこととし、座標列
(0,a0),(T,a1),(2T,a2),…,(iT,ai),…
をプロットしたものとして扱う。
【0110】
本発明では、波形を1つもしくは複数の三角形によって近似する。上記のように、波形は、時間軸の上側に配置されている。
【0111】
したがって、三角形の底辺は、時間軸に重なるようにすることができる。以下、このような三角形を「近似三角形」と呼ぶ。
【0112】
母音の波形は1つの近似三角形で近似することで、ある程度の精度で判別が可能であり、子音と母音の組み合わせからなるモーラ、音節についても、3つ程度までの近似三角形の列で近似すれば、実用的な精度で判別が可能であることが、発明者の実験によりわかっている。
【0113】
ここでいう「実用的な精度」とは、完全な音声認識(音声文字入力)ができる精度ではないが、たとえばボイスチャットのように、相手が話している声が聞こえるときに、その相手の声に合わせて口を開閉させるキャラクター(アバター)を表示したい場合に、音と画像が同期してリアルな印象を与えることができる、という程度の精度を意味する。
【0114】
図5は、母音に対する波形の形状を、三角形の形状で近似した様子を示す説明図である。以下、本図を参照して説明する。
【0115】
本図(a)〜(e)には、それぞれ「あ」「い」「う」「え」「お」に対する波形を近似する近似三角形である照合三角形501が図示されている。
【0116】
照合三角形501は、あらかじめ本音声画像処理装置201の提供側で用意された近似三角形であり、波形に対する照合三角形501は、いずれも1つである。
【0117】
また、照合三角形501の底辺の長さは、時間に相当する。これらの照合三角形501の形状は、実際に実験を行うことによって適切な形状(判別精度が高くなるような形状)を求めることができる。
【0118】
各照合三角形501においては、底辺に対向する頂点(時間軸から離れている頂点)から底辺に垂らした垂線の足が、底辺を内分する内分比が互いに異なるほか、基本周期と倍音周期の組み合わせにより照合三角形501が構成されるため、底辺の長さも異なっている。そこで、本実施形態では、この内分比と底辺の長さをもとに、母音の区別をするのである。
【0119】
照合三角形501の高さは、音量に相当するものであるので、母音の判別においてはあまり重要な役割を果たさない。声の大きさは、マイク111の性能や音声処理部110におけるA/D変換、サンプリング処理のパラメータによって変化しうるものだからである。
【0120】
なお、以下では、N=1として音節として母音のみを考えるものとし、Nが1より大きい場合や、子音などを考慮した場合については、後述する。
【0121】
さて、本実施形態では、記憶部202には、以下の情報が記憶される。
(1)母音「あ」「い」「う」「え」「お」のそれぞれについて、当該母音に対する照合三角形501の上記内分比、および、底辺の長さ。内分比や底辺の長さは、それぞれ、実験により、あらかじめ上限や下限を設定することとしても良い。
(2)母音「あ」「い」「う」「え」「お」のそれぞれについての、キャラクターの口の形状を表す音節画像。各音節画像は、上記(1)における照合三角形501の情報と対応付けられている。
(3)キャラクターの基本的な表情(典型的には、キャラクターが口を閉じたとき)の口の形状を表す基本画像。
【0122】
図6は、各音節画像と基本画像の例を示す説明図である。以下、本図を参照して説明する。
【0123】
本図(a)〜(e)には、それぞれ「あ」「い」「う」「え」「お」を発したときの口を開いた形状を表す図形が音節画像として示されている。口の開き方が、各母音ごとに微妙に異なっていることがわかる。
【0124】
本図(f)には、口を閉じた形状を表す図形が基本画像として示されている。
【0125】
本発明においては、後述するように、母音が検出されたところでは音節画像を表示し、それ以外では、基本画像を表示することで「口パク」を表現する。そこで、口が開閉している様子をわかりやすく提示するために、基本画像としては、口を閉じた図形を用意している。
【0126】
もっとも、口を薄く開いた形状を基本画像とし、その基本画像と矛盾しないような音節画像を用意することとしても良い。
【0127】
これらの情報は、DVD−ROMにあらかじめ記憶されており、必要に応じてRAM 103にロードするのが典型的であるが、キャラクターを用いたボイスチャットにおいて、キャラクターそのものの画像をユーザが設計できる場合には、NIC 109を介してデータを受信して、RAM 103に記憶させる手法を採用することもできる。
【0128】
さて、以下では、照合三角形501等の近似三角形を、音声信号の波形から求める具体的な手法を説明する。上記のように、音声信号の波形は、座標列
(0,a0),(T,a1),(2T,a2),…,(iT,ai),…
をプロットしたものである。
【0129】
これを、複数の近似三角形の列により近似する手法は種々考えられるが、以下にその代表的な手法として、包絡線を用いる手法と、平滑化を用いる手法の2種類を説明する。
【0130】
なお、これらの手法においては、包絡線を描いたり平滑化を行うために、声の高さ、あるいは、波形の変化の激しさに対応すると考えられる極大点間隔を用いる。
【0131】
そこで以下では、
(1)極大点間隔を求める手法
(2)包絡線を用いる手法
(3)平滑化を用いる手法
について、順に説明することとする。
【0132】
(極大点間隔を求める手法)
極大点とは、
ai-1<aiかつai>ai+1
を満たす点(i,ai)のことであり、グラフで見たときに、山の頂上に相当する点のことをいう。また、極大点間隔とは、波形の座標列の極大点の間隔のことである。極大点間隔は、声の高さ、あるいは、波形の変化の激しさに対応する数値であり、声、あるいは、その倍音の基本周期に比例するものと考えられるため、簡易な平滑化の指標として適切と考えられる。
【0133】
そこで、極大点間隔を順次求め、これらの平均あるいは重み付き平均を用いるのである。以下では、重み付き平均を求める手法を説明するが、同様の手法により、一定区間での極大点間隔の平均を求めることも可能である。
【0134】
図7は、極大点間隔を取得する極大点処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0135】
本手法では、時刻t = iTにおける極大点間隔がRAM 103内の所定領域に出力される。したがって、処理の進みに合わせてその値を参照すれば良い。また、以下では、長さLの波形について、順次極大点間隔の値を出力する手法について説明する。
【0136】
まず、CPU 101は、RAM 103内の極大点間隔領域vの初期値として、値Tを代入し、直前の極大点の添字領域pの値として、0を代入する(ステップS701)。以下、代入演算子←を用いて、これを
v←T; p←0
のように表記する。
【0137】
値Tは、本実施形態における音声信号のサンプリング間隔であるから、これより短い時間が極大点間隔となることはない。そこで、値Tをvの初期値として用いる。なお、この初期値は、t = 0における極大点間隔として出力された値と考えることもできる。なお、T以外の値を適宜初期値として採用しても良い。
【0138】
また、極大点間隔を求めるために、直前に検出された極大点の添字pとして0を初期値とする。
【0139】
ついで、ループ変数iを1に設定し、L-2になるまで、以下の処理を繰り返す(ステップS702〜S707)。
【0140】
まず、ai-1<aiかつai>ai+1であるか否か、すなわち、aiが極大点か否かを調べる(ステップS703)。
【0141】
aiが極大点であれば(ステップS703;Yes)、0<K<1なる正定数Kを用いて、
v←Kv + (1-K)(i-p)T
を実行する(ステップS704)。これは、ステップS704における計算は、検出された間隔の減衰平均をとっていることに相当する。
【0142】
これによって、時刻t = iTにおける極大点間隔として値vが出力されることになる。
【0143】
そして、p←iを実行して、直前の極大点の添字を更新し(ステップS705)、繰り返しを続ける(ステップS707)。
【0144】
一方、aiが極大点でなければ(ステップS703;No)、時刻t = iTにおける極大点間隔は、値vであるとして(ステップS706)、そのままステップS707に進む。
【0145】
繰り返し(ステップS702〜S707)が終了したら、t = i(L-1)における極大点間隔は、値vを使用する(ステップS708)こととして、本処理を終了する。
【0146】
このように、本処理は、カウンタ変数iを用いた繰り返し(ステップS702〜S707)の中で、時刻t = iTにおける極大点間隔が、順次、変数vにより得られることがわかる。そこで、本処理の繰り返しの途中で、たとえば、所望の時刻に至った時点で、他の処理に制御を移行し、コルーチン的に利用するのが典型的である。
【0147】
すなわち、繰り返し(ステップS702〜S704)を途中で中断して変数v,iを保存しておき、あとから処理を再開できるようにする。
【0148】
上記の説明では、減衰平均による重み付き平均を用いたが、ステップS704において、これまでに検出された極大点間隔を所定長のリングバッファに格納しておき、このリングバッファ内の平均値や重み付き平均値を変数vに格納することとしても良い。これにより、有限個数の極大点間隔の平均値を、ある時刻t = iTの極大点間隔として用いることができるようになる。
【0149】
このほか、波形全体における極大点間隔の平均を求めるには、極大点の個数を求める変数nを用意し、ステップS701において
n←1
とした後、ステップS703において
v←v + (i-p)T; n←n+1
を実行し、ステップS707において、
v←v/n
を実行すれば、変数vに、波形全体における極大点間隔の平均が求められる。
【0150】
また、vに格納される値はTを単位としているので、上記のようにTを乗じた値を格納するのではなく、初期値として1を用い、平均を求めるためには添字の差をそのまま用いる等の手法を採用することもできる。
【0151】
さらに、各時刻に対して出力されるvの値を、配列に順次確保しておき、いずれの時刻についても後から参照できるようにしても良い。
【0152】
(包絡線を用いる手法)
本手法は、波形の包絡線により波形の概形を得て、近似三角形を求めるものである。
【0153】
図8は、波形から包絡線を求め、包絡線から近似三角形を求める手法について説明する説明図である。以下、本図を参照して説明する。
【0154】
本図(a)に示す波形801は、音声信号を表すものであり、座標列
(0,a0),(T,a1),(2T,a2),…,(iT,ai),…
をプロットしたものである。
【0155】
本手法では、この包絡線を複数回求める。図9は、波形から包絡線を求め、図10は、これから近似三角形を求める包絡線処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0156】
まず、上記の極大点処理を実行して、波形全体の極大点間隔の平均vを得る(ステップS901)。ついで、所定の正定数Cを用いて、包絡線を求める処理の繰り返し回数Qを、
Q←C/v
により計算する(ステップS902)。正定数Cは、Tよりも大きい値で、Tの数倍から数十倍程度が典型的な値である。なお、小数点以下は適宜四捨五入、切捨て、切上げ等をして丸める。
【0157】
なお、極大点処理を実行せずに、繰り返し回数Qとして、あらかじめ定めた正整数を採用することとしても良い。
【0158】
次に、座標列を記憶する一時的な配列変数b,cをRAM 103内に用意し(ステップS903)、配列bに、波形の座標列をコピーする(ステップS904)。ここで、配列変数bについて、i番目の要素をb[i]のように表記し、b[i]における時間軸方向の座標値をb[i].tと、時刻(b[i].t)Tにおける変位の座標値をb[i].aと、それぞれ表記するものとする。また、配列の長さを保持する変数を#bと表記する。すると、ステップS904における処理は、具体的には、整数i = 0,1,…,L-1のそれぞれについて、
b[i].t←i; b[i].a←ai
を実行した後に、
#b←L
を実行するものとなる。
【0159】
ついで、繰り返しのカウンタ変数kに1を設定し、kを1ずつ増やしながら、Qになるまで、以下の処理を繰り返す(ステップS905)。
【0160】
すなわち、
c[0]←b[0]; #c←1
を実行して、配列変数cの先頭に、配列変数bの先頭の要素を格納し、その有効長を1とする(ステップS906)。
【0161】
ついで、時刻方向のカウンタ変数jに1を設定し、jを1ずつ増やしながら、#b-1になるまで、以下の処理を繰り返す(ステップS907)。
【0162】
すなわち、b[j]が極大であるか否かを調べる(ステップS908)。具体的には、
b[j-1].a<b[j].aかつb[j].a>b[j+1].a
であるか否かを調べる。極大である場合(ステップS908;Yes)には、
c[#c]←b[j]; #c←#c+1
を実行して、b[j]を配列変数cに追加し(ステップS909)、jについての処理を繰り返す(ステップS910)。
【0163】
極大でなければ(ステップS908;No)、ステップS910に進む。
【0164】
図8(b)は、図8(a)に対する波形に対して、1回だけ、ステップS905〜S910の処理を適用し、配列変数cに格納された座標列を順にプロットした包絡線802である。本図では、元の波形801は点線で描かれている。本図に示すように、極大点だけを連結することで、図8(b)は、図8(a)にくらべてなだらかになっている。これは、最初に得られる「第1の包絡線」である。
【0165】
jについての繰り返し処理が終わったら、配列変数bと配列変数cとを交換する(ステップS911)。ここでは、中身をコピーして交換しても良いが、bとcが指すRAM 103内のアドレスを交換するだけでも良い。
【0166】
そして、kについての処理を繰り返す(ステップS912)。
【0167】
図8(c)は、図8(b)に対して、さらに極大点を結ぶ処理を行って得られる包絡線803を描いたものである。本図では、元の包絡線802は点線で描かれている。本図に示すように、図8(c)は、図8(b)にくらべてなだらかになっている。これは、最初に得られる「第2の包絡線」である。
【0168】
このように、極大点を結ぶ処理を繰り返すと、包絡線はどんどんなだらかになる。しかも、なだらかになる程度は、kに関する繰り返しの回数Qによって制御され、Qを元の音声信号の変化が激しければ激しいほど大きくした場合には、これらの処理を実行することにより、音声信号における声の高さなどに関わらず、同程度のなだらかさの概形が得られると期待できる。
【0169】
kについての繰り返し処理が終わったら、配列変数bに、「第Qの包絡線」の座標列が入っている。
【0170】
そこで、以降の処理では、第Qの包絡線から、近似三角形を順次取得することになる。以下では、近似三角形の斜辺が通過する点の座標を格納する変数X,Y,Zに、順次値が出力される態様を考える。
【0171】
まず、j←1を実行し(ステップS913)、j<#b-1の間(ステップS914;Yes)、以下の処理を繰り返す。すなわち、b[j]が極小点であるか否か、すなわち、
b[j-1].a>b[j].aかつb[j].a<b[j+1].a
であるか否かを判定する(ステップS915)。極小点でなければ(ステップS915;No)、
j←j+1
を実行して(ステップS916)、ステップS914に戻る。
【0172】
極小点であれば(ステップS915;Yes)、
X←b[j]
を実行し(ステップS917)、
j←j+1
を実行してループを抜け(ステップS918)、j<#b-1の間(ステップS919;Yes)、以下の処理を繰り返す。すなわち、b[j]が極大点であるか否か、すなわち、
b[j-1].a<b[j].aかつb[j].a>b[j+1].a
であるか否かを判定する(ステップS920)。極大点でなければ(ステップS920;No)、
j←j+1
を実行して(ステップS921)、ステップS919に戻る。
【0173】
一方、極大点であれば(ステップS920;Yes)、
Y←b[j]
を実行し(ステップS922)、
j←j+1
を実行してループを抜け(ステップS923)、j<#b-1の間(ステップS924;Yes)、以下の処理を繰り返す。すなわち、b[j]が極小点であるか否か、すなわち、
b[j-1].a>b[j].aかつb[j].a<b[j+1].a
であるか否かを判定する(ステップS925)。極小点でなければ(ステップS925;No)、
j←j+1
を実行して(ステップS926)、ステップS924に戻る。
【0174】
極小点であれば(ステップS925;Yes)、ステップS924〜ステップS926のループを抜けて、
Z←b[j]
を実行し(ステップS927)、
j←j+1
を実行する(ステップS928)。
【0175】
これにより、座標値X,Y,Zが得られる。
【0176】
図11は、得られた座標値X,Y,Zと近似三角形との位置関係を示す説明図である。以下、本図を参照して説明する。
変数Xには近似三角形1100の左側斜辺の途中の点1101の座標が、
変数Yには近似三角形1100の底辺に対向する頂点1102の座標が、
変数Zには近似三角形1100の右側斜辺の途中の点1103の座標が、
それぞれ得られることになる。
【0177】
波形の包絡線は、音声信号の音量の変化に相当するものと考えられるから、包絡線の極大点である頂点1102は、声が大きくなったところに相当し、包絡線の極小点である途中の点1101、1103は、声が小さくなったところに相当する。
【0178】
さて、近似三角形1100の頂点1102から垂らした垂線の足1104は、近似三角形1100の左側頂点1105と、近似三角形1100の右側頂点1106と、を結ぶ底辺を内分する。ここで、垂線の足1104と左側頂点1105との距離は、
(Y.t-X.t)×(Y.a-X.a)/Y.a
により求めることができる。一方、垂線の足1104と右側頂点1106との距離は、
(Z.t-Y.t)×(Y.a-Z.a)/Y.a
により求めることができる。
【0179】
したがって、この近似三角形1100における内分比は、
〔(Y.t-X.t)×(Y.a-X.a)〕/〔(Z.t-Y.t)×(Y.a-Z.a)〕
となる。
【0180】
また、近似三角形1100の底辺の長さは、
(Y.t-X.t)×(Y.a-X.a)/Y.a + (Z.t-Y.t)×(Y.a-Z.a)/Y.a
により求めることができる。
【0181】
そこで、近似三角形1100の形状情報を計算して(ステップS929)、これらを音声信号の時刻(X.t)T〜(Z.t)Tの区間に対応する近似三角形1100の形状情報として出力する(ステップS930)。出力は、たとえば、RAM 103に用意されたキューなどに追加する形式で行うのが典型的である。
【0182】
なお、ステップS929の処理は、当該近似三角形1100の形状が、波形を近似するものとして適切でない場合には、スキップすることとしても良い。波形を近似するものとして適切でない場合とは、たとえば以下のような場合である。
(1)近似三角形1100の高さが低い場合。すなわち、Y.aの波形の平均高さΣi=0L-1ai/Lに対する比が、所定の下限値よりも小さい場合である。
(2)近似三角形1100の底辺の長さが、所定の上限よりも長かったり所定の下限よりも短かったりする場合。音声信号から照合三角形を取得する場合には、人間が照合三角形として適切かチェックすることとなるが、ボイスチャット等に応用する場合にマイク111から入力された音声信号について近似三角形1100を求める場合には、あらかじめ用意された照合三角形の底辺の平均的な長さや最長長さ、最短長さと同じオーダー(数分の1〜数倍程度)の長さでなければならないとするものである。
【0183】
そして、
X←Z
を実行して、座標をコピーした後に(ステップS931)、ステップS919に戻る。
【0184】
また、j≧#b-1となった場合(ステップS914、S919、S924;No)、本処理を終了する。
【0185】
なお、ステップS931における処理は、次の近似三角形を求めるために左側斜辺に含まれる点を設定するものである。したがって、次のような手法を採用することもできる。
【0186】
すなわち、近似三角形1100の右側斜辺の途中の点1103の時刻Z.tと、近似三角形1100の右側頂点1106の時刻Y.t + (Z.t-Y.t)×(Y.a-Z.a)/Y.aと、の、中点1110(あるいは、適当な内分点)の時刻を次の近似三角形を探し出す開始時刻とするものである。すなわち、
j←〔Z.t + Y.t + (Z.t-Y.t)×(Y.a-Z.a)/Y.a〕/2
を実行して、ステップS914に戻るのである。
【0187】
この場合、ステップS930で形状情報が出力される近似三角形1100の区間は、音声信号の時刻(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については、対応する近似三角形がない、としても良い。
【0188】
このようにして、音声信号の各区間に対する近似三角形の列を包絡線に基づいて得ることができる。
【0189】
(平滑化を用いる手法)
上記手法では、包絡線の極大点と極小点から近似三角形を得ていたが、本手法では、波形を平滑化した曲線を考えて、この曲線の極大点と極小点から近似三角形を得る。
【0190】
平滑化には、ディジタルフィルタを用いることも可能であるが、本手法ではより簡易な手法として、一定の区間(窓)の平均、あるいは、重み付き平均を用いるものとする。ここで、平均を求めるのに適切な区間の長さは、一定値の定数としても良いが、上記の極大点間隔を利用することもできる。以下では、極大点間隔を用いる手法について説明する。
【0191】
図12(および、図10)は、波形を平滑化してから近似三角形を求める平滑化処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0192】
まず、上記の極大点処理を実行して、波形全体の極大点間隔の平均vを得る(ステップS1201)。ついで、所定の正定数Dを用いて、平均を求める区間(窓)の長さPを、
P←Dv/T
により計算する(ステップS1202)。正定数Dは、Tよりも大きい値で、Tの数倍から数十倍程度が典型的な値である。すなわち、M=D/Tは1より大きい。なお、小数点以下は適宜四捨五入、切捨て、切上げ等をして丸める。
【0193】
なお、極大点処理を実行せずに、窓の幅Pとして、あらかじめ定めた正整数を採用することとしても良い。
【0194】
次に、座標列を記憶する一時的な配列変数bをRAM 103内に用意する(ステップS1203)。
【0195】
ついで、カウンタ変数kを0,1,2,…,L-1について変化させ、以下の処理を繰り返す(ステップS1204)。すなわち、
b[k]←Σi=k-Pk+P ai/(2P+1)
のように窓k-P〜k+Pの平均値を計算して、b[k]に代入する(ステップS1205)。
【0196】
なお、窓の幅としてPを採用することとしているが、窓の右端k-Pは適宜移動しても良い。また、典型的には、
i<0の場合は、ai = a0
i≧Lの場合は、ai = aL-1
のように、入力信号の時間範囲を超えた場合の値を適当に決めておく。
【0197】
そして、
#b←k+1
を実行し(ステップS1206)、配列変数bのうち有効な値が格納されている個数を#bに代入して、処理を繰り返す(ステップS1207)。
【0198】
このようにして、配列変数bに平滑化した波形が得られたら、上記手法と同様にステップS913に進み、近似三角形の列を順次取得する。
【0199】
(音声画像処理)
上記のように、記憶部202には母音の照合三角形の形状情報と母音の口の形を表す音節画像とが対応付けられて記憶され、このほか、基本的な口の形を表す基本画像が記憶されている。
【0200】
以下では、このような状況で、ボイスチャットにおいて相手が話す音声に合わせてアバターに「口パク」のアニメーションをさせるための音声画像処理について説明する。
【0201】
図13は、音声画像処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0202】
本処理が開始されると、入力部203は、音声信号の入力を受け付ける(ステップS1301)。ボイスチャットの場合、入力部203において受け付けられる音声信号は、チャットの相手が発した音声を表すものである。したがって、相手が操作する情報処理装置100のマイク111で取得された音声信号が、NIC 109からインターネット等のコンピュータ通信網を介して送信されて、自分が操作する情報処理装置100にNIC 109を介して到着すると、入力部203による音声信号の入力が受け付けられたことになる。
【0203】
ついで、CPU 101は、音声処理部110に指示を出して、RAM 103内のバッファに蓄積された音声信号を出力するよう、予約する(ステップS1302)。ここで「予約」とは、音声処理部110が別のバッファに蓄積された現在出力中の音声信号が存在すれば、その出力が完了してから、RAM 103内のバッファに蓄積された音声信号を出力する、というものである。
【0204】
音声信号のストリーミング再生の際には、ダブルバッファリングやリングバッファなどの手法が用いられるのが典型的であり、本実施形態もこれに沿って、一定長の音声信号を重ならないバッファに受信しては出力予約をして出力させ、これを繰り返し、出力が終わったバッファは再利用するのである。
【0205】
したがって、CPU 101は、音声処理部110、RAM 103等と共働して、出力部206として機能する。ボイスチャットをしている相手の声は、スピーカやヘッドフォン、イヤフォンなどから再生される。
【0206】
ついで、入力部203により受け付けられた音声信号がRAM 103内のバッファに一定量溜まったら、CPU 101は、入力を受け付けられた音声信号の波形に対する近似三角形列を取得する(ステップS1303)。近似三角形列の取得には、上記の手法等を採用することができる。また、バッファの長さが、上記におけるLに相当する。
【0207】
したがって、CPU 101は、RAM 103等と共働して、近似部204として機能する。
【0208】
この後、CPU 101は、近似三角形列に含まれる近似三角形のそれぞれについて、記憶部202に記憶された照合三角形列のいずれとマッチするかを調べておく(ステップS1304)。
【0209】
近似三角形と照合三角形がマッチしていれば、その区間で、照合三角形に対応付けられる音節が発声されていたと推測できることになり、そうでなければ、他の音節が発声されている、あるいは、音声が発声されていないことになる。
【0210】
したがって、CPU 101は、判定部205として機能する。
【0211】
そして、当該RAM 103内のバッファに蓄積された音声信号の出力が開始されるまで待機する(ステップS1305)。この待機の間には、他の処理をコルーチン的に実行することが可能である。なお、ステップS1303〜S1304の処理を、ステップS1305における待機中に実行すると考えても良い。また、次の処理で対処すべき音声信号の入力を受け付けてしまうことも可能である。すなわち、ステップS1301〜S1304の処理は、ステップS1305以降に説明する処理とは並行して実行されることとしても良い。
【0212】
さて、RAM 103内のバッファに蓄積された音声信号の出力が開始されたら、CPU 101は、現在出力中の音声信号の再生が開始されてからの経過時間を計測し(ステップS1306)、当該経過時間を含む区間に対応する近似三角形にマッチする照合三角形があれば(ステップS1307;Yes)、この照合三角形に対応付けられる音節画像を選択する(ステップS1308)。
【0213】
一方、当該経過時間を含む区間に対応する近似三角形にマッチする照合三角形がなければ(ステップS1307;No)、基本画像を選択する(ステップS1309)。
【0214】
ここで、マッチするか否かは、以下のような判断基準によって判定可能である。
(1)照合三角形の内分比と、近似三角形の内分比が、所定の誤差範囲内にあるか否か。
(2)照合三角形の底辺の長さに割り当てられた下限〜上限の間に、近似三角形の底辺の長さが含まれるか。
【0215】
これらの両方が満たされた場合に、両者はマッチする、と考える。また、ある近似三角形に対して複数の照合三角形がマッチする場合には、上記(1)(2)に適当な重み付けをしてマッチの程度を表し指標を計算し、この指標に基づいて、より類似する方を選択する。
【0216】
指標としては、たとえば、内分比の誤差の絶対値や自乗値に定数を乗じた値と底辺長さの差の絶対値や自乗値に定数を乗じた値の和等を用いることができる。
【0217】
そして、選択された音節画像もしくは基本画像を用いて画面に表示するキャラクター(アバター)の画像を生成し(ステップS1310)、垂直同期割込が生じるまで待機する(ステップS1311)。この待機中にも他の処理をコルーチン的に実行することができる。そして、垂直同期割込が生じたら、画像処理部107に指示を出して、生成された画像をモニタに表示する(ステップS1312)。
【0218】
したがって、CPU 101は、画像処理部107やRAM 103と共働して、表示部207として機能する。
【0219】
そして、この処理を、現在出力中の音声信号の再生が完了していなければ(ステップS1313;No)、ステップS1306に戻り、現在出力中の音声信号の再生が完了していれば(ステップS1313;Yes)、ステップS1301に戻る。
【0220】
したがって、相手の声の各区間について、マッチする音節画像が存在すればその音節画像を表示し、マッチする音節画像がなければ基本画像を表示するので、音声信号に同期して口の形状が変化することとなり、アニメーションの分野で「口パク」と呼ばれる演出が可能となる。
【0221】
このように、本実施形態によれば、高速フーリエ変換等の計算負荷の高い音声認識技術を使わずに、簡易な三角形による近似およびマッチングによって音節を推定することで、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うことができるようになる。
【0222】
なお、近似三角形の高さは、その時の音声の大きさに相当すると考えられる。そこで、基本画像として、口を閉じているものから口を開いているものまで2種類乃至数種類を用意しておき、その区間における近似三角形(これは、いずれの照合三角形ともマッチしなかったものである。)の高さによって、いずれを表示するかを選択することとしても良い。
【実施例2】
【0223】
上記実施形態では、照合三角形と近似三角形とは、1個対1個でマッチするか否かを判定していたが、本実施形態は、これを複数で判定する態様に係るものである。
【0224】
一般に、典型的な音節、モーラ、シラブルの波形は、1個乃至3個の近似三角形列によって近似できる。
【0225】
図14は、ある音節に対する近似三角形列の様子を示す説明図である。以下、本図を参照して説明する。
【0226】
本図に示す近似三角形列1401は、3つの近似三角形1402(1402a、1402b、1402c)からなっており、これらの近似三角形1402は、時間軸に重なる頂点付近で互いに重なっている。
【0227】
照合三角形列として1個の照合三角形を用いる上記実施形態では、近似三角形の高さのマッチや類否における重要性は低かったが、本実施形態では、複数の近似三角形が照合三角形列に含まれるので、それぞれの高さの比をマッチや類否に用いて利用すると、より正確な判定が、計算負荷は軽いままで実現できる。
【0228】
本実施形態の場合、近似三角形列1401の形状情報は、
(1)各近似三角形1402の底辺の長さ
(2)各近似三角形1402の垂線の足による内分比
(3)各近似三角形1402の高さの比率
(4)隣り合う近似三角形1402が時間軸方向に重なる長さ
のような数値群により表現される。
【0229】
したがって、照合三角形列と近似三角形列とのマッチングは、2つの数値群がどれだけ類似しているか、を判定することで行う。
【0230】
2つの数値群の類似は、各数値群に含まれる数値に適切な重みを乗じて並べたベクトルを考え、2つのベクトルがなす角度がより小さければより類似しており、マッチ度が高い、とする手法が典型的である。ベクトルのなす角度は、ベクトル同士の内積とベクトルの長さから計算することができる。
【0231】
たとえば、日本語の場合、清音、濁音、半濁音を含めて、100種類程度の音節があると考えられるから、これらの音節のそれぞれについて照合三角形列と音節画像をあらかじめ用意しておく。
【0232】
なお、上記実施形態では、1つの音節(母音)を発声している間は、1種類の音節画像が表示されていたが、本実施形態では、1つの音節に子音と母音の複数の音が含まれることがある。そこで、音節画像は、アニメーション画像となる。
【0233】
典型的には、各近似三角形1402の区間に応じた口の形状を表す静止画像を複数しておき、これを順次表示することで、その音節を発している口の形状の変化をアニメーション表示するのである。
【0234】
本実施形態によれば、実用的な計算負荷により、多数の音節を実用的な精度で判定して、これに合わせた口の形状をアニメーション表示できるようになる。
【産業上の利用可能性】
【0235】
以上説明したように、本発明によれば、ユーザが発した声に同期して画面に表示される口の形状を変化させる処理を簡易な計算で行うのに好適な音声画像処理装置、音声画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0236】
【図1】プログラムを実行することにより、本発明の音声画像処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態に係る音声画像処理装置の概要構成を示す説明図である。
【図3】音声信号について、時間の経過を横軸に、音声信号の変位を縦軸に描いたグラフである。
【図4】本実施形態にて処理する音声信号のグラフの形状を示す説明図である。
【図5】母音に対する波形の形状を、三角形の形状で近似した様子を示す説明図である。
【図6】各音節画像と基本画像の例を示す説明図である。
【図7】極大点間隔を取得する極大点処理の制御の流れを示すフローチャートである。
【図8】波形から包絡線を求め、包絡線から近似三角形を求める手法について説明する説明図である。
【図9】波形の包絡線から近似三角形を求める包絡線処理の制御の流れを示すフローチャートである。
【図10】波形を処理して得られる座標列から近似三角形を求める処理の制御の流れを示すフローチャートである。
【図11】得られた座標値X,Y,Zと近似三角形との位置関係を示す説明図である。
【図12】波形を平滑化してから近似三角形を求める平滑化処理の制御の流れを示すフローチャートである。
【図13】音声画像処理の制御の流れを示すフローチャートである。
【図14】ある音節に対する近似三角形列の様子を示す説明図である。
【符号の説明】
【0237】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 音声画像処理装置
202 記憶部
203 入力部
204 近似部
205 判定部
206 出力部
207 表示部
501 照合三角形
801 波形
1100 近似三角形
1101 近似三角形の左側斜辺の途中の点
1102 近似三角形の底辺に対向する頂点
1103 近似三角形の右側斜辺の途中の点
1104 近似三角形の底辺に垂らした垂線の足
1105 近似三角形の左側頂点
1106 近似三角形の右側頂点
1401 近似三角形列
1402 近似三角形

【特許請求の範囲】
【請求項1】
時間の経過を第1軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第2軸にとった波形を近似する三角形であって、その底辺が当該第1軸に重なる三角形(以下「近似三角形」という。)を用いる音声画像処理装置であって、
音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する記憶部、
音声信号の入力を受け付ける入力部、
前記入力を受け付けられた音声信号の波形に対する近似三角形列を取得する近似部、
当該音声信号の区間と前記記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する判定部、
前記入力を受け付けられた音声信号を出力する出力部、
前記出力部により出力される音声信号のうち、前記判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する表示部
を備えることを特徴とする音声画像処理装置。
【請求項2】
請求項1に記載の音声画像処理装置であって、
N≦3であり、
前記記憶部は、口の基本形状を表す基本画像をさらに記憶し、
前記表示部は、前記出力部により出力される音声信号のうち、前記判定部により当該音節画像のいずれともマッチしないと判定された区間が出力される間、当該基本画像を表示する
ことを特徴とする音声画像処理装置。
【請求項3】
請求項1に記載の音声画像処理装置であって、
当該音節は母音のいずれかであり、N=1であり、当該照合三角形列は1つの照合三角形からなり、
前記判定部は、当該音声信号の区間と前記記憶される音節画像とがマッチするか否かを、当該区間に対する1つの近似三角形と、当該音節画像に対応付けられる照合三角形とがマッチするか否かにより判定する
ことを特徴とする音声画像処理装置。
【請求項4】
請求項3に記載の音声画像処理装置であって、
前記判定部は、近似三角形および照合三角形の底辺に対向する頂点から当該底辺に垂らした垂線の足が当該底辺を内分する内分比により、当該近似三角形と当該照合三角形とがマッチするか否かを判定する
ことを特徴とする音声画像処理装置。
【請求項5】
請求項4に記載の音声画像処理装置であって、
前記近似部は、当該音声信号の波形の極大点を連結した第1の包絡線を求め、所定の整数Q (Q≧1)に対し、整数i (1≦i≦Q-1)のそれぞれについて、第iの包絡線の極大点を連結した第i+1の包絡線を求め、第Qの包絡線において、隣り合う極大点と極小点を結ぶ直線から当該近似三角形の辺を取得する
ことを特徴とする音声画像処理装置。
【請求項6】
請求項5に記載の音声画像処理装置であって、
前記近似部は、当該Qを当該音声信号の波形の極大点の当該第1軸方向における間隔の平均もしくは重み付き平均に略反比例する正整数とする
ことを特徴とする音声画像処理装置。
【請求項7】
請求項4に記載の音声画像処理装置であって、
前記近似部は、当該音声信号の波形を平滑化した曲線において、隣り合う極大点と極小点を結ぶ直線から当該近似三角形の辺を取得する
ことを特徴とする音声画像処理装置。
【請求項8】
請求項7に記載の音声画像処理装置であって、
前記近似部は、当該音声信号の波形の極大点の当該第1軸方向における間隔の平均もしくは重み付き平均により当該音声信号の基本周期を推定し、当該推定された基本周期のM (M>1)倍の幅の窓に含まれる波形の平均もしくは重み付き平均をとることで、当該波形を平滑化する
ことを特徴とする音声画像処理装置。
【請求項9】
時間の経過を第1軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第2軸にとった波形を近似する三角形であって、その底辺が当該第1軸に重なる三角形(以下「近似三角形」という。)を用いる音声画像処理方法であって、当該音声画像処理方法は、音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する記憶部、入力部、近似部、判定部、出力部、表示部を有する音声画像処理装置にて実行され、
前記入力部が、音声信号の入力を受け付ける入力工程、
前記近似部が、前記入力を受け付けられた音声信号の波形に対する近似三角形列を取得する近似工程、
前記判定部が、当該音声信号の区間と前記記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する判定工程、
前記出力部が、前記入力を受け付けられた音声信号を出力する出力工程、
前記表示部が、前記出力部により出力される音声信号のうち、前記判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する表示工程
を備えることを特徴とする音声画像処理方法。
【請求項10】
時間の経過を第1軸に、音声信号の変位の絶対値、自乗値、もしくは、変位のうち負でないものを第2軸にとった波形を近似する三角形であって、その底辺が当該第1軸に重なる三角形(以下「近似三角形」という。)を用いるプログラムであって、当該プログラムは、コンピュータを、
音節を発声する口の形状を表す音節画像を、当該音節を発声する音声信号の波形に対する最大N個の近似三角形からなる照合三角形列に対応付けて記憶する記憶部、
音声信号の入力を受け付ける入力部、
前記入力を受け付けられた音声信号の波形に対する近似三角形列を取得する近似部、
当該音声信号の区間と前記記憶される音節画像とがマッチするか否かを、当該区間に対する近似三角形列と、当該音節画像に対応付けられる照合三角形列とがマッチするか否かにより判定する判定部、
前記入力を受け付けられた音声信号を出力する出力部、
前記出力部により出力される音声信号のうち、前記判定部により当該音節画像にマッチすると判定された区間が出力される間、当該マッチする音節画像を表示する表示部
として機能させることを特徴とするプログラム。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2008−241772(P2008−241772A)
【公開日】平成20年10月9日(2008.10.9)
【国際特許分類】
【出願番号】特願2007−78103(P2007−78103)
【出願日】平成19年3月26日(2007.3.26)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】