以下、図を参照して、本発明の実施の形態について説明する。
まず、本発明の実施の形態において用いられる読唇手法、および、本明細書で用いるいくつかの用語について説明する。
なお、以下、「発話する」「発音する」「発声する」「言葉を発する」「話す」など言葉を声に出す動作を表す用語を用いる場合、特に断りがない限り、声を出さずに、声を出す場合と同様に口を動かす動作も含むものとする。
人が言葉を話すとき、それぞれの言葉に応じて所定の口の形を形作って発声することで、それぞれの言葉に対応し、他の人が認識できる音声が発せられる。また、人が同じ言葉を話すときには、同じ音が発せられるように、その都度類似した口の動きをする。従って、同じ人が同じ言葉を話すときには、非常に類似した口の動きとなる。また、異なる人が同じ言語の同じ言葉を話すときも、類似度の高い口の動きとなる。
“基本口形”とは、人が言葉を話すときに、言葉の中の各音を発するために形作られる口形であり、発せられる音または口形の特徴などに応じて、複数の種類に分類される。従って、人が話す言葉に含まれる各音を発音するとき、人の口の形は、発音する音の種類に応じて、基本口形の中のいずれかの口形となる。そして、ある基本口形から別の基本口形へと口形の変化が繰り返され、その口形の変化に合わせて発声が行われることで言葉が発せられる。
基本口形は以下の特徴を有する。
特徴1.同じ基本口形でも、発音される音が異なるものがある。換言すれば、複数の種類の音に対応する基本口形が存在する。
特徴2.基本口形のうち母音に対応する口形が形作られていても、必ずしもその口形に対応する母音が発音されているとは限らない。
特徴3.日本語の場合、ア、イ、ウ、エ、オの5つの母音を発するときに形作られる口形(以下、母音口形と称する)、および、唇を閉じた状態の口形(以下、閉唇口形と称する)の合計6種類に基本口形を分類することができる。なお、以下、5種類の母音口形を、それぞれ、対応する母音ごとに、ア口形、イ口形、ウ口形、エ口形、オ口形と称する。
また、日本語の各音は、単口形音と複口形音に分類される。
“単口形音”とは、発音するときの口形が、初口形を含まず、終口形のみで構成される音である。単口形音を発音する場合、例えば、図1の単口形音の発音期間Su1のほとんどの期間Pe1において、単口形音の母音に対応する終口形が現れる。
また、“複口形音”とは、発音するときの口形に初口形と終口形が含まれる音である。複口形音を発音する場合、例えば、図2の複口形音の発音期間Su11の前半の期間Pb11において、その音の母音に対応する基本口形とは異なる初口形が現れた後、期間Pe11において、その音の母音に対応する終口形が現れる。
ここで、“初口形”とは、話者が言葉の中の1つの音を発音するとき、その音を発音するために予め形作る必要がある口形であって、その音の母音に対応する口形とは異なる口形である。
また、“終口形”とは、話者が言葉の中の1つの音を発音するとき、その音を発し終える際に形作られる口形である。
なお、日本語以外にも、日本語と同様に単口形音と複口形音に各音が分類される言語が多く存在する。すなわち、日本語以外にも、話者が言葉の中の1つの音を発音しようとしたとき、その音の母音とは異なる口形、すなわち、初口形を形作る必要がある音を有する言語が数多く存在する。
なお、以下、初口形が出現する期間を初口形期間と称し、終口形が出現する期間を終口形期間と称する。すなわち、図2の期間Pb11が初口形期間に相当し、図1の期間Pe1および図2の期間Pe11が終口形期間に相当する。
図3は、促音(ッ)および撥音(ン)を除く日本語の各音を単独で発音した場合に出現する基本口形のパターン(以下、口形パターンと称する)をまとめた表である。表内の各欄の上段には、各音が平仮名で示されており、下段には、各音に対応する口形パターンが示されている。
図3に示されるように、口形パターンは、小文字のアルファベットと大文字のアルファベットによる記号(以下、口形記号と称する)により表される。小文字のアルファベットは初口形の種類を表し、大文字のアルファベットは終口形の種類を表す。具体的には、小文字のiは初口形がイ口形であることを示し、小文字のuは初口形がウ口形であることを示し、小文字のxは初口形が閉唇口形であることを示す。また、大文字のAは終口形がア口形であることを示し、大文字のIは終口形がイ口形であることを示し、大文字のUは終口形がウ口形であることを示し、大文字のEは終口形がエ口形であることを示し、大文字のOは終口形がオ口形であることを示す。
例えば、「あ」の口形パターンの欄には大文字の「A」が示されており、「あ」の口形パターンは、初口形がなく、終口形がア口形であることが分かる。また、例えば、「ど」の口形パターンの欄には「uO」が示されており、「ど」の口形パターンは、初口形がウ口形、かつ、終口形がオ口形であることが分かる。
なお、図3の複口形音の列に含まれる欄のうち斜線で示される欄の音は、単口形音となる。
ここで、図3を参照しながら、日本語における初口形と終口形の特徴について説明する。
日本語における初口形の特徴は以下のとおりである。
特徴1.初口形は、イ口形、ウ口形、閉唇口形のいずれかである。
特徴2.必ずしも全ての音に初口形が必要というわけではない。換言すれば、発音時に初口形が現れない音がある。具体的には、ア行,カ行,ハ行,ガ行の音は初口形を必要としない。また、サ行、タ行、ナ行、ラ行、ザ行、および、ダ行のイ段の音は初口形を必要としない。さらに、サ行、タ行、ナ行、ヤ行、ラ行、ザ行、ダ行、キャ行、シャ行、チャ行、ニャ行、ヒャ行、リャ行、ギャ行、および、ジャ行のウ段の音は初口形を必要としない。
特徴3.サ行、タ行、ナ行、ヤ行、ラ行、ザ行、ダ行、キャ行、シャ行、チャ行、ニャ行、ヒャ行、リャ行、ギャ行、および、ジャ行のア段の音、サ行、タ行、ナ行、ラ行、ザ行、ダ行、キャ行、シャ行、チャ行、ニャ行、ヒャ行、リャ行、ギャ行、および、ジャ行のエ段の音の初口形はイ口形となる。
特徴4.サ行、タ行、ナ行、ヤ行、ラ行、ザ行、ダ行、キャ行、シャ行、チャ行、ニャ行、ヒャ行、リャ行、ギャ行、および、ジャ行のオ段の音、ワ行のア段およびオ段の音、並びに、ウァ行およびファ行のア段、イ段、エ段およびオ段の音の初口形はウ口形となる。
特徴5.マ行、バ行、パ行、ミャ行、ビャ行、および、ピャ行の全ての音の初口形は閉唇口形となる。
特徴6.単独で発音する場合に初口形が必要な音でも、他の音と続けて発音する場合には、直前の音との関係により初口形が不要となる場合がある。換言すれば、単独で発音する場合に初口形が現れる音でも、他の音と続けて発音する場合には、直前の音との関係により初口形が現れなくなる場合がある。より具体的には、イ段の音の後のイ口形の初口形、ウ段の音の後のウ口形の初口形、および、閉唇により発音された音の後の閉唇口形の初口形は不要となる。
特徴7.地方の方言においては、初口形が上記と異なる特徴を持つことがある。
なお、以上では、日本語における初口形の特徴を示したが、言語の種類によっては、初口形の特徴が日本語と相違する場合がある。
日本語における終口形の特徴は以下のとおりである。
特徴1.終口形はすべての音で形作られる。換言すれば、全ての音の発音時に必ず終口形が現れる。
特徴2.撥音および促音以外の音の終口形は、その音の母音に対応する母音口形となる。
特徴3.撥音または促音の終口形は、イ口形、ウ口形、閉唇口形のいずれかになる。
特徴4.長音の終口形は、その前の音の終口形と同じ口形になる。
なお、以下、単語や文章などを発音した場合に現れる口形を、口形パターンを用いて表現したデータを口形パターンデータと称する。すなわち、口形パターンデータは、単語や文章などを発音した場合に現れる初口形および終口形の種類の並びを示すデータである。
ところで、日本語においては、複数の音を連続して発音した場合、前または後の音の影響により、以下のルールに基づいて口形が変化する。
ルール1.初口形が1つ前の音の終口形と同じ場合、その初口形は、1つ前の音の終口形に吸収され、出現しない。このルールは、上述した日本語の初口形の特徴6に基づくものである。
例えば、「イセ」と発音する場合、イの口形パターンは「I」、セの口形パターンは「iE」であり、イの終口形とセの初口形は同じイ口形である。従って、ルール1に従い、セの初口形はイの終口形に吸収され、出現しないため、「イセ」の口形パターンデータは、「IiE」ではなく、「IE」となる。
ルール2.促音または撥音が、初口形が閉唇口形となる音の前に来る場合、その促音または撥音を発音するときの口形は閉唇口形となり、その後の閉唇口形の初口形は出現しなくなる。
例えば、「コップ」のプの前のッ、「サンマ」のマの前のンを発音するときの口形は、ルール2に従い、閉唇口形となる。
ルール3.促音または撥音が、ア段またはエ段の音の後に来る場合、その促音または撥音を発音するときの口形はイ口形となる。ただし、ルール2がルール3より優先される。
例えば、「バット」のバの後のッを発音するときの口形、および、「エンド」のエの後のンを発音するときの口形は、ルール3に従い、イ口形となる。
ルール4.促音または撥音が、オ段の音の後に来る場合、その促音または撥音を発音するときの口形はウ口形となる。ただし、ルール2がルール4より優先される。
例えば、「ヨット」のヨの後のッを発音するときの口形、および、「ロンリ」のロの後のンを発音するときの口形は、ルール4に従い、ウ口形となる。
ルール5.促音または撥音が、イ段またはウ段の音の後に来る場合、その促音または撥音を発音するときの口形は、前の音の終口形と同じ口形となる。すなわち、その促音または撥音を発音するときの口形は、前の音の終口形に吸収される。ただし、ルール2がルール5より優先される。
例えば、「キンシ」のキの後のンを発音するときの口形は、ルール5に従い、キの終口形と同じイ口形となり、「ズット」のズの後のッを発音する場合の口形は、ルール5に従い、ズの終口形と同じウ口形となる。
このように、初口形および終口形は、人が発した言葉を構成する各音に応じて、一定の法則に従って現れるため、人が発した言葉を認識するために非常に有効な情報となる。
なお、以下、口形パターンデータにおける音節、すなわち、口形に基づく音節を口形音節と称する。口形音節は、終口形と次に続く初口形または終口形との間で分割され、音声に基づく音節とは異なる。例えば、「交通(こうつう)」と発音した場合、音声による音節数は4である。一方、「こうつう」の「うつう」の部分においては、初口形が出現せず、ウ口形の終口形が連続し、口形が変化しない。従って、「交通」の口形パターンデータは「OU」となり、口形音節数は2となる。
次に、本発明を適用した読唇システムについて説明する。図4は、本発明を適用した読唇システム101の一実施の形態を示すブロック図である。読唇システム101は、上述した人が言葉を話すときの口の動きの特徴を利用して、言葉を認識する読唇処理を行うシステムである。読唇システム101は、画像取得部111、読唇処理部112、認識結果出力部113、登録データ入力部114、口形辞書管理部115、および、登録情報表示部116を含むように構成される。
画像取得部111は、撮影部131および画像入力部132を含むように構成され、人の顔を撮影し、撮影した画像(以下、顔画像と称する)を読唇処理部112に供給する。
画像取得部111の構成要素のうち、撮影部131は、カメラなどにより構成される。撮影部131は、人の顔を撮影し、撮影した顔画像をフレーム毎に画像入力部132に供給する。
画像入力部132は、必要に応じて、顔画像に画像処理を施す。画像入力部132は、顔画像を読唇処理部112の口検出部141に供給する。
読唇処理部112は、口検出部141、基本口形データ生成部142、基本口形データ登録部143、基本口形データ記憶部144、および、認識処理部145を含むように構成され、顔画像における人の口の動きに基づいて言葉を認識する。
読唇処理部112の構成要素のうち、口検出部141は、顔画像における人の口の位置を検出する。口検出部141は、人の口を含む所定の領域の画像を顔画像から抽出し、抽出した画像(以下、口形画像と称する)を、基本口形データ生成部142または認識処理部145に供給する。
基本口形データ生成部142は、基本口形データを生成し、生成した基本口形データを基本口形データ登録部143に供給する。また、基本口形データ生成部142は、図示せぬ外部の出力装置等を用いて、基本口形データを生成するときのガイダンスを行う。
図5は、基本口形データのデータ構造の一例を示す図である。基本口形データの各レコードは、インデックス(index)、基本口形、および、基本口形画像のフィールドを含むように構成される。
インデックスのフィールドには、基本口形データの各レコードを識別するための番号が設定される。具体的には、ア口形のレコードのインデックスには0が設定され、イ口形のレコードのインデックスには1が設定され、ウ口形のレコードのインデックスには2が設定され、エ口形のレコードのインデックスには3が設定され、オ口形のレコードのインデックスには4が設定され、閉唇口形のレコードのインデックスには5が設定される。
基本口形のフィールドには、基本口形の種類を示す記号が設定される。具体的には、ア口形のレコードの基本口形にはAが設定され、イ口形のレコードの基本口形にはIが設定され、ウ口形のレコードの基本口形にはUが設定され、エ口形のレコードの基本口形にはEが設定され、オ口形のレコードの基本口形にはOが設定され、閉唇口形のレコードの基本口形にはXが設定される。
基本口形画像のフィールドは、人の口の形が基本口形になっているときの口形画像である基本口形画像が登録される。図5において、画像BPaはア口形の基本口形画像であり、画像BPiはイ口形の基本口形画像であり、画像BPuはウ口形の基本口形画像であり、画像BPeはエ口形の基本口形画像であり、画像BPoはオ口形の基本口形画像であり、画像BPxは閉唇口形の基本口形画像である。
なお、複数のユーザを対象に読唇処理を行う場合、各ユーザの基本口形画像が登録された基本口形データが、ユーザごとに生成される。
基本口形データ登録部143は、基本口形データを基本口形データ記憶部144に記憶させる。
認識処理部145は、図12などを参照して後述するように、口形画像、基本口形データ、および、口形辞書記憶部153に記憶されている口形辞書に基づいて、人が発した言葉を認識する。認識処理部145は、認識結果を示す情報を認識結果出力部113、または、口形パターンデータ生成部151に供給する。
認識結果出力部113は、図25などを参照して後述するように、認識処理部145による認識結果を後段の装置に出力する。
登録データ入力部114は、外部から入力される、口形辞書に登録する語句およびその読みを含む登録データを取得する。登録データ入力部114は、取得した登録データを口形辞書管理部115の口形パターンデータ生成部151および口形辞書登録部152に供給する。
口形パターンデータ生成部151は、図10および図29を参照して後述するように、登録データの読み、または、認識処理部145による認識結果に基づいて、口形辞書に登録する語句に対応する口形パターンデータを生成する。口形パターンデータ生成部151は、生成した口形パターンデータを口形辞書登録部152に供給する。
口形辞書登録部152は、図10および図29を参照して後述するように、口形辞書記憶部153に記憶されている口形辞書へのデータの登録を行う。また、口形辞書登録部152は、口形辞書に登録した内容を示す登録情報を登録情報表示部116に供給する。
図6は、口形辞書のデータ構造の一例を示す図である。口形辞書の各レコードは、インデックス(index)、語句、読み、および、口形パターンデータのフィールドを含むように構成される。
インデックスのフィールドは、口形辞書の各レコードを識別するための番号が設定される。
語句のフィールドには、読唇システム101において認識する対象となる語句が登録される。
読みのフィールドには、同じレコードの語句に対する読みが登録される。
口形パターンデータのフィールドには、同じレコードの語句に対応する口形パターンデータが登録される。
すなわち、口形辞書の各レコードには、インデックス、認識する対象となる語句、その語句の読み、および、その語句に対応する口形パターンデータが関連づけられて登録されている。
なお、図10または図29を参照して後述する処理により、ユーザが口形辞書のデータを全て登録するようにしてもよいし、あるいは、出荷時などに予めいくつかのデータを口形辞書に登録しておき、必要に応じてユーザがデータを追加するようにしてもよい。
登録情報表示部116は、例えば、ディスプレイなどにより構成され、口形辞書への登録情報を表示する。
図7は、図4の認識処理部145の機能的構成を示すブロック図である。
認識処理部145は、検出部171および認識部172を含むように構成される。
検出部171は、類似度検出部181および口形検出部182を含むように構成され、口形画像に基づいて、発話中に現れる初口形および終口形を検出する。
検出部171の構成要素のうち、類似度検出部181は、図13などを参照して後述するように、口形画像の各フレームにおける人の口形と各基本口形との類似度を検出する。類似度検出部181は、検出した類似度を示す情報を口形検出部182に供給する。
口形検出部182は、口形期間検出部191および基本スコア算出部192を含むように構成され、類似度に基づいて、発話中に現れる初口形および終口形を検出する。
口形検出部182の構成要素のうち、口形期間検出部191は、図15などを参照して後述するように、類似度に基づいて、口形画像の各フレームのうち、人が話し始めたフレーム(以下、発話開始フレームと称する)、および、人が話し終えたフレーム(以下、発話終了フレームと称する)を検出する。また、口形期間検出部191は、図17などを参照して後述するように、類似度の時系列の変化に基づいて、発話開始フレームと発話終了フレームの間の期間(以下、発話期間と称する)において、初口形が現れる初口形期間、および、終口形が現れる終口形出現期間を検出する。さらに、口形期間検出部191は、図17などを参照して後述するように、口形画像の初口形期間内のフレームのうち、実際に初口形が出現した可能性が高いフレーム(以下、初口形出現フレームと称する)を検出する。口形期間検出部191は、類似度、初口形期間、初口形出現フレーム、および、終口形期間を示す情報を、基本スコア算出部192に供給する。
基本スコア算出部192は、初口形期間および終口形期間における類似度に基づいて、発話中に現れる初口形および終口形を検出する。より具体的には、基本スコア算出部192は、図12などを参照して後述するように、各初口形期間および終口形期間における人の口形と各基本口形との類似度を示す基本スコアを算出する。基本スコア算出部192は、算出した基本スコアを示す情報を認識部172に供給する。
認識部172は、発話中に現れる初口形および終口形に基づいて、人が発した言葉を認識する。より具体的には、認識部172は、図12を参照して後述するように、基本スコアに基づいて、口形辞書に登録されている各語句の中から人が発した言葉を認識する。認識部172は、認識結果を示す情報を認識結果出力部113に供給する。
次に、図8乃至図29を参照して、読唇システム101の処理について説明する。
まず、図8のフローチャートを参照して、読唇システム101により実行される基本口形データ登録処理について説明する。なお、この処理は、例えば、ユーザが、読唇システム101の図示せぬ操作部を介して、基本口形データ登録処理の開始の指令を入力したとき開始される。
ステップS1において、基本口形データ生成部142は、ユーザに口の形を指示する。具体的には、基本口形データ生成部142は、6種類の基本口形のうち、まだ基本口形画像を生成していない基本口形を1つ選択する。基本口形データ生成部142は、図示せぬ外部の出力装置等を用いて、選択した基本口形に対応する口の形をするようにユーザに指示する。例えば、基本口形データ生成部142は、「“ア”の口の形をしてください。」というようなガイダンス音声を外部の出力装置に出力させる。
ステップS2において、画像取得部111は、顔画像取得処理を行う。顔画像取得処理の詳細は、図9を参照して後述するが、この処理により、ステップS1において、指示された口の形をしたユーザの顔画像が複数フレーム撮影される。
ステップS3において、口検出部141は、口形画像を生成する。具体的には、口検出部141は、所定の手法に基づいて、顔画像の各フレームにおけるユーザの口の位置を検出する。口の位置を検出する手法の詳細については、例えば、特開平9−171559号公報などに開示されている。口検出部141は、各フレームにおいて、ユーザの口の中心を中心とする所定の領域(例えば、縦120×横160ドット)の画像を抽出することにより、口形画像を生成する。口検出部141は、生成した口形画像を基本口形データ生成部142に供給する。
ステップS4において、基本口形データ生成部142は、基本口形画像を選択する。具体的には、基本口形データ生成部142は、取得した口形画像の各フレームのうち画像が安定したフレームを、基本口形画像として選択する。基本口形データ生成部142は、例えば、前のフレームとの画素値の差分が所定の値より小さくなるフレームを基本口形画像として選択する。
ステップS5において、基本口形データ生成部142は、全ての基本口形について処理したかを判定する。まだ全ての基本口形について処理していないと判定された場合、処理はステップS1に戻り、ステップS5において、全ての基本口形について処理したと判定されるまで、ステップS1乃至S5の処理が繰り返し実行される。すなわち、全ての基本口形に対応する基本口形画像が生成される。
ステップS5において、全ての基本口形について処理したと判定された場合、処理はステップS6に進む。
ステップS6において、基本口形データ生成部142は、基本口形データを生成する。具体的には、基本口形データ生成部142は、各基本口形画像に、対応するインデックス番号、および、基本口形の種類を示す記号を関連づけた基本口形データを生成する。基本口形データ生成部142は、生成した基本口形データを基本口形データ登録部143に供給する。
ステップS7において、基本口形データ登録部143は、基本口形データ記憶部144に基本口形データを記憶させ、基本口形データ登録処理は終了する。
次に、図9のフローチャートを参照して、図8のステップS2の顔画像取得処理の詳細について説明する。
ステップS21において、撮影部131は、ユーザの顔を撮影する。撮影部131は、撮影した画像、すなわち、顔画像をフレーム毎に画像入力部132に供給する。
ステップS22において、画像入力部132は、必要に応じて画像処理を施して、顔画像取得処理は終了する。例えば、画像入力部132は、必要に応じて、A/D(Analog/Digital)変換、画像サイズの変換、カラー画像からモノクロ画像への変換、ノイズ除去、特徴量の抽出、周波数成分分解などの画像処理を顔画像に対して施す。画像入力部132は、画像処理を施した顔画像を口検出部141に供給する。なお、画像処理を施さない場合、画像入力部132は、撮影部131により撮影された顔画像を、そのまま口検出部141に供給する。
次に、図10のフローチャートを参照して、読唇システム101により実行される口形辞書登録処理について説明する。なお、この処理は、例えば、ユーザが、読唇システム101の図示せぬ操作部を介して、口形辞書へのデータの登録の指令を入力したとき、開始される。
ステップS41において、登録データ入力部114は、登録データを取得する。具体的には、ユーザは、新たに登録したい語句、および、その読みを含む登録データを登録データ入力部114に入力する。登録データ入力部114は、ユーザにより入力された登録データを取得し、口形パターンデータ生成部151および口形辞書登録部152に供給する。
ステップS42において、口形パターンデータ生成部151は、口形パターンデータを生成する。具体的には、口形パターンデータ生成部151は、まず、図3の表に基づいて、入力された語句の読みの各音を口形パターンに置き換えた口形パターンデータを生成する。なお、このとき、長音は直前の音と同じであるため無視される。例えば、「チズ」と「チーズ」は同じ口形パターンデータとなる。また、撥音および促音は、上述したルール2乃至5に基づいて、口形パターンに置き換えられる。
次に、口形パターンデータ生成部151は、生成した口形パターンデータにおいて同じ口形記号が連続する場合、1つの口形記号にまとめる。例えば、「AAA」のようにア口形の口形記号が連続する場合、「A」に置き換えられる。
最後に、口形パターンデータ生成部151は、上述したルール1に従って、1つ前の終口形と同じ初口形を削除する。例えば、「IiA」は、「i」が一つ前の「I」に吸収され、「IA」に置き換えられる。
口形パターンデータ生成部151は、このようにして生成した口形パターンデータを口形辞書登録部152に供給する。
ステップS43において、口形辞書登録部152は、すでに登録されているデータであるかを判定する。口形辞書登録部152は、口形辞書記憶部153に記憶されている口形辞書に、生成された口形パターンデータと一致する口形パターンデータが登録されていない場合、まだ登録されていないデータであると判定し、処理はステップS44に進む。
ステップS44において、口形辞書登録部152は、データを登録する。具体的には、口形辞書登録部152は、登録データに含まれる語句および読みと、その語句に対応する口形パターンデータとを関連づけ、さらに、インデックスを付加して、口形辞書記憶部153に記憶されている口形辞書に登録する。また、口形辞書登録部152は、登録した語句、読み、および、口形パターンデータを示す登録情報を登録情報表示部116に供給する。
ステップS45において、登録情報表示部116は、登録情報を出力し、口形辞書登録処理は終了する。具体的には、登録情報表示部116は、新たに登録した語句、読み、および、口形パターンデータをユーザに対して表示する。
ステップS43において、口形辞書登録部152は、口形辞書記憶部153に記憶されている口形辞書に、生成された口形パターンデータと一致する口形パターンデータが登録されている場合、すでに登録されているデータであると判定し、処理はステップS46に進む。
ステップS46において、登録情報表示部116は、すでに登録されているデータであることを通知し、口形辞書登録処理は終了する。具体的には、口形辞書登録部152は、登録しようとしたデータがすでに登録されていることを示す情報を登録情報表示部116に供給する。登録情報表示部116は、登録しようとしたデータがすでに登録されていることを通知する情報を表示する。なお、情報を表示する代わりに、あるいは、情報の表示とともに、音声を用いてユーザに登録しようとしたデータがすでに登録されていることを通知するようにしてもよい。また、このとき、例えば、画像、テキスト情報、音声メッセージなどを用いて、登録する語句の変更を指示する情報をユーザに対して出力するようにしてもよい。
なお、口形パターンデータが同じで、語句および読みが異なるデータ、あるいは、読みおよび口形パターンデータが同じで、語句が異なるデータをそれぞれ個別に口形辞書に登録できるようにしてもよい。
また、ユーザは、所定の操作を行うことにより、口形辞書の各レコードを削除したり、各レコードのデータを修正したりすることが可能である。
次に、図11のフローチャートを参照して、読唇システム101により実行される読唇処理について説明する。なお、この処理は、例えば、ユーザが、読唇システム101の図示せぬ操作部を介して、読唇処理の開始の指令を入力したとき、開始される。
ステップS101において、撮影部131は、ユーザの顔の撮影を開始する。撮影部131は、撮影したユーザの顔画像、すなわち、話者の顔画像の画像入力部132への供給を開始する。
ステップS102において、画像入力部132は、画像処理を開始する。具体的には、画像入力部132は、必要に応じて、図9のステップS22と同様の顔画像に対する画像処理を開始し、画像処理を施した顔画像の口検出部141への供給を開始する。
ステップS103において、口検出部141は、口形画像の生成を開始する。具体的には、口検出部141は、上述した図8のステップS3と同様の処理を開始し、生成した口形画像の類似度検出部181への供給を開始する。
ステップS104において、読唇処理部112は、認識処理を実行する。認識処理の詳細は、図12を参照して後述するが、この処理により、ユーザが発した言葉が認識される。
ステップS105において、認識結果出力部113は、認識結果出力処理を実行する。認識結果出力処理の詳細は、図25を参照して後述するが、この処理により、ユーザが発した言葉を認識した結果が出力される。
ステップS106において、読唇システム101は、処理の停止が指令されたかを判定する。処理の停止が指令されていないと判定された場合、処理はステップS104に戻り、ステップS106において、処理の停止が指令されたと判定されるまで、ステップS104乃至S106の処理が繰り返し実行される。
一方、ステップS106において、例えば、ユーザが、読唇システム101の図示せぬ操作部を介して、読唇処理の停止の指令を入力したとき、読唇システム101は、処理の停止が指令されたと判定し、読唇処理は終了する。
次に、図12のフローチャートを参照して、図11のステップS104の認識処理の詳細について説明する。
ステップS121において、類似度検出部181は、類似度検出処理を実行する。ここで、図13のフローチャートを参照して、類似度検出処理の詳細について説明する。
ステップS141において、類似度検出部181は、基本口形画像の画素値の平均値と標準偏差を算出する。具体的には、類似度検出部181は、発話者であるユーザの基本口形データを基本口形データ記憶部144から読み出す。類似度検出部181は、以下の式(1)に基づいて、基本口形データに含まれる各基本口形画像の画素値の平均値Mを算出する。
なお、Wは基本口形画像の横方向の画素数、Hは基本口形画像の縦方向の画素数、g(x,y)は基本口形画像の座標(x,y)の画素の画素値を表す。
また、類似度検出部181は、以下の式(2)に基づいて、各基本口形画像の画素値の標準偏差Sを算出する。
また、口形期間検出部191はカウンタの値をリセットする。すなわち、口形期間検出部191はカウンタの値を初期値に設定する。
なお、各基本口形画像の画素値の平均値および標準偏差を予め算出し、基本口形データに登録しておき、ステップS141において、基本口形画像の画素値の平均値および標準偏差の算出を行わないようにしてもよい。
ステップS142において、類似度検出部181は、全てのフレームについて処理したかを判定する。類似度検出部181は、口検出部141から取得した口形画像の各フレームのうち、まだ処理していないフレームがある場合、または、口検出部141からの口形画像の供給が継続している場合、まだ全てのフレームについて処理していないと判定し、処理はステップS143に進む。
ステップS143において、類似度検出部181は、対象フレームの画素値の平均値と標準偏差を算出する。具体的には、類似度検出部181は、まだ処理していない口形画像のフレームのうち先頭のフレーム(時間軸方向において最も古いフレーム)を、処理を行う対象である対象フレームに選択する。類似度検出部181は、上述した式(1)および(2)と同様の計算式により、対象フレームの画素値の平均値と標準偏差を算出する。
ステップS144において、類似度検出部181は、対象フレームにおけるユーザの口形と基本口形との類似度を求める。具体的には、類似度検出部181は、以下の式(3)に基づいて、対象フレームにおけるユーザの口形と各基本口形の類似度として、対象フレームと各基本口形画像との類似度を求める。
なお、T(G1,G2)は画像G1と画像G2との類似度を表し、S(G1)は画像G1の画素値の標準偏差を表し、S(G2)は画像G2の画素値の標準偏差を表し、g1(x,y)は画像G1の座標(x,y)の画素値を表し、g2(x,y)は画像G2の座標(x,y)の画素値を表し、M(G1)は画像G1の画素値の平均値を表し、M(G2)は画像G2の画素値の平均値を表す。
例えば、式(3)において、G1を対象フレーム、G2を基本口形画像とすることで、対象フレームと各基本口形画像との類似度を求めることができる。
図14は、ユーザが「カーナビ」と発音した場合に、式(3)に基づいて検出したユーザの口形と各基本口形との類似度の時系列の変化の例を示している。図14の横軸は口形画像のフレーム番号を示し、縦軸は類似度の値を示す。また、曲線Ca1はア口形に対する類似度の時系列の変化を表し、曲線Ci1はイ口形に対する類似度の時系列の変化を表し、曲線Cu1はウ口形に対する類似度の時系列の変化を表し、曲線Ce1はエ口形に対する類似度の時系列の変化を表し、曲線Co1はオ口形に対する類似度の時系列の変化を表し、曲線Cx1は閉唇口形に対する類似度の時系列の変化を表す。なお、以下、適宜、図14に示される類似度の時系列の変化の例を用いて、読唇システム101の処理を説明する。
類似度検出部181は、求めた類似度を示す情報を口形期間検出部191に供給する。
なお、類似度を求める方法は、上述した例に限定されるものではない。例えば、正規化相関を用いずに、以下の式(4)に基づいて、類似度を算出するようにしてもよい。
また、例えば、対象フレームおよび基本口形画像から唇の輪郭を抽出して、唇の輪郭の類似度を求めたり、対象フレームおよび基本口形画像から唇の縦または横、あるいはその両方の長さを検出して、検出した長さに基づいて類似度を求めるようにしてもよい。
ステップS145において、口形期間検出部191は、発話期間検出処理を実行する。ここで、図15のフローチャートを参照して、発話期間検出処理の詳細について説明する。
ステップS161において、口形期間検出部191は、前のフレームとの類似度の差分を算出する。具体的には、口形期間検出部191は、各基本口形について、対象フレームと1つ前のフレームとの類似度の差分を算出する。
ステップS162において、口形期間検出部191は、前のフレームとの類似度の差が所定の閾値未満かつ閉唇口形に対する類似度が最大であるかを判定する。口形期間検出部191は、全ての基本口形について、前のフレームとの類似度の差が所定の閾値未満、かつ、対象フレームにおいて、各基本口形に対する類似度のうち閉唇口形に対する類似度が最大であると判定した場合、すなわち、対象フレームにおけるユーザの口形が閉唇口形である可能性が高い場合、処理はステップS163に進む。
ステップS163において、口形期間検出部191は、カウンタの値を1つインクリメントする。
ステップS164において、口形期間検出部191は、カウンタの値が所定の閾値を超えているかを判定する。カウンタの値が所定の閾値を超えていると判定された場合、すなわち、前のフレームとの類似度の差が所定の閾値未満かつ閉唇口形に対する類似度が最大である状態(以下、閉唇安定状態と称する)が所定の期間以上連続している場合、さらに換言すれば、ユーザの口形が閉唇口形である可能性が高い状態が所定の期間以上連続している場合、処理はステップS165に進む。
ステップS165において、口形期間検出部191は、発話期間が確定していない発話開始フレームが検出されているかを判定する。口形期間検出部191は、対象フレームより前のフレームにおいて発話開始フレームが検出されており、かつ、対象フレームより前で最も対象フレームに近いフレームにおいて検出された発話開始フレームと対象フレームとの間に発話終了フレームが検出されていない場合、すなわち、対応する発話終了フレームが検出されていない発話開始フレームが検出されている場合、発話期間が確定していない発話開始フレームが検出されていると判定し、処理はステップS166に進む。
ステップS166において、口形期間検出部191は、発話終了フレームを設定する。具体的には、口形期間検出部191は、対象フレームを含む期間であって、閉唇安定状態が連続している期間の1つ前のフレームを、発話終了フレームに設定する。
ステップS165において、口形期間検出部191は、発話開始フレームが検出されていない場合、または、対象フレームより前で最も対象フレームに近いフレームにおいて検出された発話開始フレームと対象フレームとの間に発話終了フレームが検出されている場合、すなわち、対応する発話終了フレームが検出されていない発話開始フレームが検出されていない場合、発話期間が確定していない発話開始フレームが検出されていないと判定し、ステップS166の処理はスキップされ、発話期間検出処理は終了する。
ステップS164において、カウンタの値が所定の閾値を超えてないと判定された場合、すなわち、閉唇安定状態がまだ所定の期間以上連続していない場合、ステップS165およびS166の処理はスキップされ、発話期間検出処理は終了する。
ステップS162において、口形期間検出部191は、少なくとも1つの基本口形について、前のフレームとの類似度の差が所定の閾値以上であるか、または、対象フレームにおいて、各基本口形に対する類似度のうち閉唇口形に対する類似度が最大でないと判定した場合、すなわち、対象フレームにおいてユーザの口形が閉唇口形である可能性が低い場合、処理はステップS167に進む。
ステップS167において、ステップS165の処理と同様に、発話期間が確定していない発話開始フレームが検出されているかが判定される。発話期間が確定していない発話開始フレームが検出されていないと判定された場合、処理はステップS168に進む。
ステップS168において、口形期間検出部191は、カウンタの値が所定の閾値を超えているかを判定する。カウンタの値が所定の閾値を超えていると判定された場合、すなわち、1つ前のフレームまで閉唇安定状態が所定の期間以上連続していた場合、処理はステップS169に進む。
ステップS169において、口形期間検出部191は、発話開始フレームを設定する。具体的には、口形期間検出部191は、対象フレーム、すなわち、閉唇安定状態が連続していた期間の最後のフレームの次のフレームを発話開始フレームに設定する。
ステップS168において、カウンタの値が所定の閾値を超えていないと判定された場合、すなわち、1つ前のフレームにおいて、閉唇安定状態が所定の期間以上連続していなかった場合、ステップS169の処理はスキップされ、処理はステップS170に進む。
ステップS167において、発話期間が確定していない発話開始フレームが検出されていると判定された場合、ステップS168およびS169の処理はスキップされ、処理はステップS170に進む。
ステップS170において、口形期間検出部191は、カウンタの値をリセットし、すなわち、カウンタの値を初期値に設定し、発話期間検出処理は終了する。
図16は、各基本口形に対する類似度が、上述した図14に示されるように変化する場合に検出された発話開始フレームおよび発話終了フレームの位置の例を示す図である。なお、図16は、図14に発話開始フレームであるフレームFs1および発話終了フレームであるフレームFe1の位置を示す補助線を追加した図である。
人が言葉を発する場合、通常、言葉を発する前および言葉を発した後に、口を閉じた状態がしばらく継続する。従って、言葉を発する前において、例えば、図16の先頭のフレームからフレームFs1までの期間のように、閉唇口形に対する類似度が最も高く、かつ、全ての基本口形に対する類似度がほとんど変化しない閉唇安定状態が連続し、言葉を発した後にも、例えば、図16のフレームFe1から最終フレームまでの期間のように、閉唇安定状態が連続する。
上述した発話期間検出処理では、言葉を発する前に現れる閉唇安定状態が所定の期間以上連続する期間の最後のフレームの次のフレーム、すなわち、図16のフレームFs1が発話開始フレームとして検出され、言葉を発した後に現れる閉唇安定状態が所定の期間以上連続する期間の1つ前のフレーム、すなわち、図16のフレームFe1が発話終了フレームとして検出される。そして、閉唇安定状態が連続する期間を除く、発話開始フレームから発話終了フレームまでの期間が、発話期間として検出される。
図13に戻り、ステップS146において、類似度検出部181は、発話終了フレームが検出されたかを判定する。発話終了フレームが検出されていないと判定された場合、処理はステップS142に戻る。その後、ステップS142において、全てのフレームについて処理したと判定されるか、ステップS146において、発話終了フレームが検出されたと判定されるまで、ステップS142乃至S146の処理が繰り返し実行される。すなわち、各フレームにおけるユーザの口形と各基本口形との類似度、並びに、発話開始フレームおよび発話終了フレームの検出が行われる。
ステップS146において、ステップS145の発話期間検出処理の結果、発話終了フレームが検出されたと判定された場合、すなわち、新たな発話期間が検出された場合、類似度検出処理は終了する。
ステップS142において、類似度検出部181は、例えば、ユーザが、読唇システム101の図示せぬ操作部を介して、読唇処理の停止の指令を入力し、口検出部141からの口形画像の供給が停止され、かつ、口検出部141から取得した口形画像の全てのフレームについて処理した場合、全てのフレームについて処理したと判定し、処理はステップS147に進む。
ステップS147において、口形期間検出部191は、発話終了フレームを設定する。具体的には、口形期間検出部191は、口形画像の最終フレームの状態が閉唇安定状態である場合、最終フレームを含む期間であって、閉唇安定状態が連続している期間の1つ前のフレームを発話終了フレームに設定する。また、口形期間検出部191は、口形画像の最終フレームの状態が閉唇安定状態でない場合、最終フレームを発話終了フレームに設定する。なお、このステップS147の処理は、発話期間検出処理により発話終了フレームが検出されなかった場合の処理である。
ステップS148において、口形期間検出部191は、発話開始フレームが検出されているかを判定する。発話開始フレームが検出されていないと判定された場合、処理はステップS149に進む。
ステップS149において、口形期間検出部191は、発話開始フレームを設定し、類似度検出処理は終了する。具体的には、口形期間検出部191は、口形画像の2番目のフレームの状態が閉唇安定状態である場合、2番目のフレームを含む期間であって、閉唇安定状態が連続している期間の最後のフレームの次のフレームを発話開始フレームに設定する。また、口形期間検出部191は、口形画像の2番目のフレームの状態が閉唇安定状態でない場合、口形画像の先頭のフレームを発話開始フレームに設定する。
ステップS148において、発話開始フレームが検出されていると判定された場合、ステップS149の処理はスキップされ、類似度検出処理は終了する。
図12に戻り、ステップS122において、口形期間検出部191は、口形期間検出処理を実行する。ここで、図17のフローチャートを参照して、口形期間検出処理の詳細について説明する。
ステップS181において、口形期間検出部191は、各基本口形に対する類似度の時系列の変化の傾向を分析する。具体的には、口形期間検出部191は、発話期間内の各フレームについて、1つ前のフレームからの各基本口形に対する類似度の変化の傾向を「増加」「減少」「平衡」のいずれかに分類する。例えば、ア口形に対する類似度が1つ前のフレームから所定の閾値以上増加している場合、そのフレームにおけるア口形に対する類似度の変化の傾向は「増加」に分類される。また、例えば、イ口形に対する類似度が1つ前のフレームから所定の閾値以上減少している場合、そのフレームにおけるイ口形に対する類似度の変化の傾向は「減少」に分類される。さらに、例えば、閉唇口形に対する類似度が1つ前のフレームから変化した値の絶対値が所定の閾値未満である場合、そのフレームにおける閉唇口形に対する類似度の変化の傾向は「平衡」に分類される。
なお、以下、類似度の変化の傾向が「増加」であると判定されたフレームを増加傾向フレーム、類似度の変化の傾向が「減少」であると判定されたフレームを減少傾向フレーム、類似度の変化の傾向が「平衡」であると判定されたフレームを平衡フレームと称する。なお、類似度の変化の傾向は各基本口形に対して求められるので、同じフレームにおいて、基本口形ごとに類似度の変化の傾向の分類が異なる場合がある。例えば、同じフレームが、ア口形に対しては増加傾向フレームとなり、イ口形に対しては減少傾向フレームとなる場合がある。
図18は、図16のウ口形に対する類似度の変化を表す曲線Cu1上に、各フレームのウ口形に対する類似度の変化の傾向の分類を示した図である。なお、図18において、上向きの黒い三角が増加傾向フレームを表し、下向きの黒い三角が減少傾向フレームを表し、黒丸が平衡フレームを表す。
なお、図18おいては、フレームFs1より前のフレーム、および、フレームFe1より後のフレームについても、類似度の変化の傾向の分類が示されているが、実際には、ステップS181において、発話期間内のフレームについてのみ類似度の変化の傾向が分析される。
また、前のフレームとの類似度の差分値により、類似度の変化の傾向を分析する以外に、例えば、類似度の時系列のグラフの微分値などを用いて、類似度の変化の傾向を分析するようにしてもよい。
ステップS182において、口形期間検出部191は、類似度の変化が大きい期間を検出する。具体的には、口形期間検出部191は、基本口形を1つ選択し、選択した基本口形に対する増加傾向フレームが連続する期間が所定の閾値より短い期間を検出する。口形期間検出部191は、検出した期間ごとに、選択した基本口形に対する類似度の隣接するフレーム間の差分の合計値を求める。口形期間検出部191は、求めた合計値が所定の閾値より小さい場合、その期間内の、選択した基本口形に対する増加傾向フレームを平衡フレームに変更する。すなわち、類似度の増加が連続する期間が短く、かつ、類似度の変化が小さい期間内の、選択した基本口形に対する増加傾向フレームが平衡フレームに変更される。
また、口形期間検出部191は、選択した基本口形に対する減少傾向フレームが連続する期間が所定の閾値より短い期間を検出する。口形期間検出部191は、検出した期間ごとに、選択した基本口形に対する類似度の隣接するフレーム間の差分の絶対値の合計値を求める。口形期間検出部191は、求めた合計値が所定の閾値より小さい場合、その期間内の、選択した基本口形に対する減少傾向フレームを平衡フレームに変更する。すなわち、類似度の減少が連続する期間が短く、かつ、類似度の変化が小さい期間内の、選択した基本口形に対する減少傾向フレームが平衡フレームに変更される。
口形期間検出部191は、残った増加傾向フレームからなる期間を、選択した基本口形に対する類似度の増加傾向期間として検出する。すなわち、増加傾向期間は、選択した基本口形に対する類似度が大きく増加する期間、または、類似度の増加が連続する期間が長い期間である。また、口形期間検出部191は、残った減少傾向フレームからなる期間を、選択した基本口形に対する類似度の減少傾向期間として検出する。すなわち、減少傾向期間は、選択した基本口形に対する類似度が大きく減少する期間、または、類似度の減少が連続する期間が長い期間である。
口形期間検出部191は、この処理を全ての基本口形について実行する。
図19は、図18のウ口形に対する類似度の変化を表す曲線Cu1上に、ウ口形に対する類似度の増加傾向期間のフレームおよび減少傾向期間のフレームの位置を示した図である。図19において、上向きの白い三角が増加傾向期間のフレームを表し、下向きの白い三角が減少傾向期間のフレームを表す。また、上向きの黒い三角は、増加傾向期間に含まれなかったため、増加傾向フレームから平衡フレームに変更されたフレームを表し、下向きの黒い三角は、減少傾向期間に含まれなかったため、減少傾向フレームから平衡フレームに変更されたフレームを表す。
また、図20は、図16の各基本口形に対する類似度の変化を表す曲線Ca1乃至Cx1上に、各基本口形に対する類似度の増加傾向期間のフレームおよび減少傾向期間のフレームの位置を示した図である。図20において、黒丸がア口形に対する類似度の増加傾向期間および減少傾向期間のフレームを表し、黒の四角がイ口形に対する類似度の増加傾向期間および減少傾向期間のフレームを表し、黒の三角がウ口形に対する類似度の増加傾向期間および減少傾向期間のフレームを表し、白丸がエ口形に対する類似度の増加傾向期間および減少傾向期間のフレームを表し、白の四角がオ口形に対する類似度の増加傾向期間および減少傾向期間のフレームを表し、白の三角が閉唇口形に対する類似度の増加傾向期間および減少傾向期間のフレームを表している。
このステップS182の処理により、認識処理において誤差の原因となる可能性がある類似度の細かな振動が除去される。
ステップS183において、口形期間検出部191は、各フレームを初口形フレームと終口形フレームに分類する。具体的には、口形期間検出部191は、発話期間内のフレームについて、少なくとも1つの基本口形に対して平衡フレームでないフレームを初口形フレームに分類し、すべての基本口形に対して平衡フレームであるフレームを終口形フレームに分類する。すなわち、口形期間検出部191は、初口形が現れる期間は口の動きが大きく、終口形が現れる期間は口の動きが小さいという特徴を利用して、初口形フレームと終口形フレームとを分類する。
図21は、図16に、初口形フレームおよび終口形フレームの分類などを追加して示した図である。なお、図21の曲線Ca1乃至Cx1の下部に白丸が示されているフレームが初口形フレームであり、白の四角で示されるフレームが終口形フレームである。
ステップS184において、口形期間検出部191は、連続する期間が短い終口形フレームを初口形フレームに変更する。具体的には、口形期間検出部191は、終口形フレームが連続する期間が所定の閾値より短い期間における終口形フレームを、初口形フレームに変更する。すなわち、終口形フレームが連続する期間が短い期間が終口形期間から除外される。例えば、図21において、フレームF11乃至F13は、終口形フレームが連続する期間が短いため、終口形フレームから初口形フレームに変更される。
また、口形期間検出部191は、初口形フレームが連続する期間を初口形期間として検出し、終口形フレームが連続する期間を終口形期間として検出する。例えば、図21の例においては、期間Pb11乃至Pb14がそれぞれ初口形期間と検出され、期間Pe11乃至Pe13がそれぞれ終口形期間として検出される。
ステップS185において、口形期間検出部191は、発話終了フレームの位置を補正する。具体的には、口形期間検出部191は、発話終了フレームの位置を、発話期間における最後の終口形フレームに補正する。例えば、図21において、発話期間内の最後の終口形期間である期間Pe13の最後のフレームFe2に発話終了フレームが変更される。これにより、発話期間は、フレームFs1からフレームFe2までの期間に変更される。
発話が終了して唇を閉じる際、発話時の最後の口形から閉唇の口形へ変化する段階で類似度が大きく変化するが、この期間は、発話の内容に関係がなく発話期間から除外することが望ましいため、この発話期間の変更により発話期間から除去される。
また、口形期間検出部191は、初口形期間および終口形期間に基づいて、口形音節を検出する。具体的には、口形期間検出部191は、終口形期間の最後のフレームごとに発話期間を分割し、分割した各期間を口形音節とする。例えば、図21においては、期間Pb11の最初のフレームから期間Pe11の最後のフレームまでの期間、期間Pb12の最初のフレームから期間Pe12の最後のフレームまでの期間、および、期間Pb13の最初のフレームから期間Pe13の最後のフレームまでの期間の3つの口形音節が検出される。
図22は、「交通(こうつう)」と発音した場合の各基本口形に対する類似度の時系列の変化の例を示している。なお、図14などと同様に、図22の横軸は口形画像のフレーム番号を示し、縦軸は類似度の値を示す。また、曲線Ca11はア口形に対する類似度の時系列の変化を表し、曲線Ci11はイ口形に対する類似度の時系列の変化を表し、曲線Cu11はウ口形に対する類似度の時系列の変化を表し、曲線Ce11はエ口形に対する類似度の時系列の変化を表し、曲線Co11はオ口形に対する類似度の時系列の変化を表し、曲線Cx11は閉唇口形に対する類似度の時系列の変化を表す。
図22の例の場合、例えば、閉唇安定状態が所定の期間以上連続する期間を除いたフレームFs21およびフレームFe21までの期間が発話期間として検出される。また、例えば、発話期間において、各基本口形に対する類似度の変化が小さい状態が連続する期間である期間Pe21および期間Pe22が終口形期間として検出される。さらに、例えば、発話期間において、終口形期間以外の期間である期間Pb21および期間Pb22が初口形期間として検出される。従って、期間Pb21の最初のフレームから期間Pe21の最後のフレームまでの期間Ps21、および、期間Pb22の最初のフレームから期間Pe22の最後のフレームまでの期間Ps22の2つの口形音節が検出される。
このように、発話期間、および、口形音節が正確に検出されることにより、ユーザが発した言葉の認識率を向上させることができる。
ステップS186において、口形期間検出部191は、初口形出現フレームを検出し、口形期間検出処理は終了する。初口形は終口形に比べて出現する期間が非常に短く、初口形が現れる期間において、その初口形に対応する基本口形に対する類似度の変化を表すグラフの形状は、上に凸、かつ、ピークの幅が狭い波形となる特徴がある。口形期間検出部191は、この特徴に基づいて、初口形として現れる可能性がある基本口形、すなわち、イ口形、ウ口形、および、閉唇口形のそれぞれについて、平衡フレームが連続する期間が所定の閾値より短い期間であって、その期間の1つ前のフレームが増加傾向フレーム、および、その期間の1つ後のフレームが減少傾向フレームとなる期間内のフレーム、または、平衡フレームがなく増加傾向フレームからすぐに減少傾向フレームに変化する場合の増加傾向フレームを、その基本口形に対する初口形出現フレームとして検出する。
図23は、図21に、各基本口形の初口形出現フレームの位置を追加して示した図である。図23において、白丸はイ口形の初口形出現フレームを表し、白の菱形はウ口形の初口形出現フレームを表し、白の四角は閉唇口形の初口形出現フレームを表す。なお、図23においては、初口形期間および終口形期間の位置を明確に示すための補助線が追加されている。
図23の例においては、イ口形の初口形出現フレームが、第2口形音節において1フレーム検出され、ウ口形の初口形出現フレームは検出されず、閉唇口形の初口形出現フレームが、第3口形音節において2フレーム検出されている。
口形期間検出部191は、類似度、各基本口形の初口形期間および初口形出現フレーム、並びに、終口形期間を示す情報を、基本スコア算出部192に供給する。
図12に戻り、ステップS123において、基本スコア算出部192は、基本スコアを算出する。具体的には、基本スコア算出部192は、各基本口形に対する初口形の基本スコア、および、各基本口形に対する終口形の基本スコアを、口形音節ごとに算出する。
より具体的には、基本スコア算出部192は、各基本口形に対する初口形の基本スコアとして、その基本口形の初口形出現フレームにおける類似度の平均値を口形音節ごとに算出する。
例えば、図23の例について考えた場合、第1口形音節においては、各基本口形とも初口形出現フレームが検出されていないので、第1口形音節における各基本口形の初口形の基本スコアは0とされる。
また、第2口形音節におけるイ口形の初口形の基本スコアは、第2口形音節のイ口形の初口形出現フレームにおけるイ口形に対する類似度の平均値とされる。いまの場合、第2口形音節においてイ口形の初口形出現フレームは1つしか検出されていないので、その初口形出現フレームにおけるイ口形に対する類似度が、第2口形音節におけるイ口形の初口形の基本スコアとされる。第2口形音節におけるウ口形および閉唇口形の初口形の基本スコアは、第2口形音節において、ウ口形および閉唇口形の初口形出現フレームは検出されていないので、0とされる。
さらに、第3口形音節におけるイ口形およびウ口形の初口形の基本スコアは、第3口形音節において、イ口形およびウ口形の初口形出現フレームは検出されていないので、0とされる。第3口形音節における閉唇口形の初口形の基本スコアは、第3口形の閉唇口形の初口形出現フレームにおける閉唇口形に対する類似度の平均値とされる。
また、基本スコア算出部192は、各基本口形に対する終口形の基本スコアとして、その基本口形に対する類似度の各終口形期間における平均値を算出する。
例えば、図23の例について考えた場合、第1口形音節における各基本口形の終口形の基本スコアは、終口形期間Pe11における各基本口形に対する類似度の平均値とされる。例えば、第1口形音節におけるア口形の終口形の基本スコアは、終口形期間Pe11におけるア口形に対する類似度の平均値となる。また、第2口形音節における各基本口形の終口形の基本スコアは、終口形期間Pe12における各基本口形に対する類似度の平均値とされる。さらに、第3口形音節における各基本口形の終口形の基本スコアは、終口形期間Pe13における各基本口形に対する類似度の平均値とされる。
図24は、図23の類似度の例に基づいて算出した基本スコアの値の例を示している。図24の例において、第1口形音節では、全ての基本口形の初口形の基本スコアが0、かつ、ア口形の終口形の基本スコアが最大となり、第2口形音節では、イ口形の初口形の基本スコアが最大、かつ、ア口形の終口形の基本スコアが最大となり、第3口形音節では、閉唇口形の初口形の基本スコアが最大、かつ、イ口形の終口形の基本スコアが最大となっている。基本スコアが最大となる基本口形の種類を並べると、ア口形の終口形−イ口形の初口形−ア口形の終口形−閉唇口形の初口形−イ口形の終口形となり、「カーナビ」の口形パターンデータである「AiAxI」と一致する。
基本スコア算出部192は、算出した基本スコアを示す情報を認識部172に供給する。
なお、上述した各期間の類似度の平均値以外にも、類似度の中間値や最大値などを用いて基本スコアを算出するようにすることも可能である。
図12に戻り、ステップS124において、認識部172は、認識スコアを算出し、認識処理は終了する。具体的には、認識部172は、算出された基本スコアを用いて、口形辞書に登録されている各語句が、ユーザが発した言葉である確率を示す認識スコアを算出する。
例えば、図24の基本スコアを用いて、「ラジオ」に対する認識スコアを算出する場合について考える。「ラジオ」の口形パターンデータは「iAIO」であり、「iA」+「I」+「O」の3つの口形音節により構成される。「ラジオ」の第1口形音節のイ口形の初口形の基本スコアは0.000000であり、第1口形音節のア口形の終口形の基本スコアは3.277173であり、第2口形音節のイ口形の終口形の基本スコアは1.101432であり、第3口形音節のオ口形の終口形の基本スコアは-0.314880である。従って、「ラジオ」に対する認識スコアは4.063725(=0.000000+3.277173+1.101432−0.314880)となる。
このように、各語句の口形パターンデータに対して基本スコアを適用することにより、各語句に対する認識スコアを算出する。従って、認識スコアは、口形辞書に登録されている口形パターンデータと、実際に出現したユーザの初口形および終口形の種類の並びとの類似度を示しているといえる。
なお、検出した口形音節数と、口形辞書の語句の口形音節数とが異なる場合、口形音節数の違いに応じて、認識スコアの値を下げるようにしてもよい。例えば、図24の基本スコアを用いて、「エアコン」に対する認識スコアを算出した場合、認識スコアは5.463864となる。しかし、検出された口形音節数、すなわち、「カーナビ」の口形音節数は3であり、「エアコン」の口形音節数は4なので、その差は1となる。従って、例えば、算出した認識スコアから口形音節数の差に相当する値αを引いた値(5.463864−α)を、「エアコン」に対する認識スコアとするようにしてもよい。
また、まず終口形だけを用いて各語句に対する認識スコアを算出し、その時点で認識スコアが上位の語句のみを対象に、初口形を含めた認識スコアを算出するようにしてもよい。これにより、認識スコアの精度を向上させることができる。
認識部172は、口形辞書に登録されている各語句に対する認識スコアを算出し、算出した結果を示す情報を認識結果出力部113に供給する。
次に、図25のフローチャートを参照して、図11のステップS105の認識結果出力処理の詳細について説明する。
ステップS201において、認識結果出力部113は、口形辞書に登録されている語句を認識スコアの高い順にソートする。
ステップS202において、認識結果出力部113は、認識結果を出力して、認識結果出力処理は終了する。
図26は、認識結果の出力例を示している。認識結果出力部113は、図26に示されるように、口形辞書に記憶されている語句を認識スコアの高い順に並べたデータを、後段の装置に出力したり、図示せぬディスプレイに表示させたりする。
読唇システム101から認識結果を取得した後段の装置は、取得した認識結果に対応する動作を行う。例えば、後段の装置が、車両の電子機器を制御する制御装置である場合、いまの場合、「カーナビ」の認識スコアが最も高いので、ユーザの発した言葉が「カーナビ」であると認識して、それに対応する動作を行う。
なお、全ての語句を出力せずに、認識スコアが上位の語句のみを出力するようにしてもよい。また、語句の代わりに口形パターンデータを出力するようにしてもよい。
以上のように、従来の口の動きに基づいて言葉を認識する技術(例えば、特開平11−149296号公報など)では行われていない、発音された音を識別するために有効な情報である初口形および終口形に基づいて、人が発した言葉を認識することにより、認識率を大幅に向上させることができる。
また、複数の基本口形に対する類似度を同時に求め、各基本口形に対する類似度の時系列の変化を詳細に分析することにより、微細な口形の変化まで検出することができ、話者が言葉を構成するそれぞれの音を出すために形成した初口形および終口形、音が変化した部分などを正確に検出することができる。従って、単純に各基本口形との類似度に基づいて言葉を認識するよりも、より高い精度で言葉を認識することが可能になる。
図27および図28は、本発明を適用した読唇システムを用いて、ユーザの発した言葉を認識する実験の結果を示している。図27および図28の左端の列、および、上端の行には口形辞書に登録されている語句が示されており、表内の数値は、上端の各列に示される言葉をユーザが発した場合に、左端の各行に示される語句に対して算出された認識スコアを示している。例えば、図27には、ユーザが「ラジオ」と発音した場合における、「ラジオ」に対する認識スコアは10.806753、「エアコン」に対する認識スコアは7.152163であることが示されている。
図27および図28に示されるように、全てのケースで、ユーザが発した言葉と一致する語句に対する認識スコアが最も高くなっている。すなわち、読唇システム101により、確実にユーザが発した言葉を認識できることが示されている。
また、複雑な演算処理を用いないので、簡単かつ迅速にユーザの発した言葉を認識することができる。
さらに、人の話す言葉の音波をマイクロホンなどにより検出して得られる音声情報を用いずに、人の口の形のみに基づいて言葉を認識するので、音声情報に基づいて言葉を認識する音声認識技術が持つ以下の問題点が発生しない。
音(音波)を検出できない場合、言葉を認識することができない。また、話者の声の音量により、認識率が変動する。従って、話者の位置が遠かったり、声が小さかったり、声が発せられなかったりすると、言葉の認識が困難または不可能になる。
騒音の影響により認識率が低下する。騒音レベルが高いとほとんど認識できなくなる。
騒音や他人が話した言葉により誤認識が発生する場合がある。例えば、音声認識装置が、車内の車載装置に指示を与えるための音声コマンドを認識する場合、騒音によるノイズを音声コマンドと認識したり、ラジオから流れる音声を音声コマンドと認識して、誤動作する場合がある。例えば、車内のエアコンの温度の設定を、「エアコン 28」のように短い音声コマンドにより行うようにした場合、騒音によるノイズを音声コマンドが発せられたと誤認識したり、ラジオから「省エネのためエアコンは28度に設定しましょう」とアナウンスが流れ、騒音などの影響により音声コマンドが発せられたと誤認識した場合、意図していないのにエアコンの温度が変更されてしまう。
複数の人が同時に話すと、声が重なって分離できなくなり、特定の人の言葉を認識することが困難になる。
マイクロホンなどの音声検出手段が必要となる。
従って、本発明によれば、音声認識と比較して、以下の効果を得ることができる。
人が声を出しても出さなくても、また、話者の声の音量に関わらず、口の動きが同じであれば、同じ認識結果を得ることができる。従って、例えば、他の人に言葉を聞かれずに、言葉を認識させたり、防音ガラスの向こうにいる人の言葉を認識することができる。また、例えば、カメラに望遠レンズを取り付けることで、数10m離れた場所にある車の中にいる人や、1km以上離れた場所にいる人など、遠方にいる人が発した言葉を認識することができる。
騒音により認識率が低下しない。騒音レベルが高い環境下においても、言葉を認識することができる。
特定の人物のみの言葉が認識されるので、騒音や他人が話した言葉により誤認識が発生しない。例えば、読唇システム101が、車内の車載装置に指示を与えるための操作コマンドを認識する場合、例えば、騒音やラジオから流れる音声などにより車載装置の誤動作が引き起こされることがない。なお、ここでいう操作コマンドとは、有声または無声に関わらず、音声コマンドと同じ口の動きにより車内の車載装置に指示を与えるためのコマンドのことである。
複数の人が同時に話しても、特定の人が話している言葉を確実に認識することができる。また、複数の人の顔が画像に含まれる場合、各個人の顔を認識し、各個人の口の形および動きを検出することにより、各個人が発した言葉を個別に認識することが可能である。これにより、例えば、車内にいる複数の人々が、それぞれ操作コマンドを用いて、同時にラジオ、エアコンなどの車載装置の操作を行うことができる。
マイクロホンなどの音声検出手段が不要である。
また、図15などを参照して上述したように、基本口形との類似度の変化に基づいて、発話期間を検出することにより、騒音の影響などを受けずに、正確に発話期間を検出することができる。
なお、以上の説明では、図10の口形辞書登録処理において、登録する語句の読みに基づいて口形パターンデータを生成して、口形辞書に登録する例を示したが、実際のユーザの口の動きに基づいて口形パターンデータを生成して、口形辞書に登録するようにしてもよい。ここで、図29を参照して、実際のユーザの口の動きに基づいて口形パターンデータを生成して、口形辞書に登録するようにした場合の口形辞書登録処理について説明する。
ステップS301において、図8のステップS2の処理と同様に、顔画像取得処理が実行され、登録する語句を発音したときのユーザの顔画像が取得される。
ステップS302において、図8のステップS3の処理と同様に、口形画像が生成される。
ステップS303乃至S305の処理は、上述した図12のステップS121乃至S123の処理と同様であり、その説明は繰り返しになるので省略するが、この処理により、登録する語句を発音したときの基本スコアが算出される。
ステップS306において、口形パターンデータ生成部151は、口形パターンデータを生成する。具体的には、口形パターンデータ生成部151は、基本スコア算出部192から、基本スコアを示す情報を取得する。口形パターンデータ生成部151は、各口形音節の初口形および終口形において基本スコアが最大となる基本口形の種類の並びに基づいて、口形パターンデータを生成する。例えば、基本スコアが図24に示される結果となった場合、各口形音節の初口形および終口形において基本スコアが最大となる基本口形の種類の並びは、ア口形の終口形−イ口形の初口形−ア口形の終口形−閉唇口形の初口形−イ口形の終口形となるので、その並びに基づいて、「AiAxI」の口形パターンデータが生成される。なお、初口形の基本スコアの最大値が所定の閾値以下の口形音節については、初口形が存在しないと判定するようにしてもよい。口形パターンデータ生成部151は、生成した口形パターンデータを口形辞書登録部152に供給する。
ステップS307において、上述した図10のステップS43の処理と同様に、すでに登録されているデータであるかが判定され、まだ登録されていないデータであると判定された場合、処理はステップS308に進む。
ステップS308において、上述した図10のステップS41の処理と同様に、登録データが取得される。
ステップS309において、口形辞書登録部152は、データを登録する。具体的には、口形辞書登録部152は、登録データに含まれる語句および読みと、口形パターンデータ生成部151により生成された口形パターンデータとを関連づけて、口形辞書記憶部153に記憶されている口形辞書に登録する。また、口形辞書登録部152は、登録した語句、読み、および、口形パターンデータを示す登録情報を登録情報表示部116に供給する。
ステップS310において、上述した図10のステップS45の処理と同様に、登録情報が出力され、口形辞書登録処理は終了する。
ステップS307において、すでに登録されているデータであると判定された場合、処理はステップS311に進む。
ステップS311において、上述した図10のステップS46の処理と同様に、すでに登録されているデータであることが通知され、口形辞書登録処理は終了する。
これにより、実際のユーザの口形に対応した口形パターンデータが口形辞書に登録されるので、さらに認識率を向上させることができる。
また、以上の説明では、読唇システム101が、口形辞書に登録されている各語句に対する認識スコアを認識結果として出力する例を示したが、他の形態の認識結果を出力するようにすることも可能である。
例えば、認識部172が、口形辞書に登録されている語句のうち、認識スコアが最大となる語句を抽出し、抽出した語句またはその口形パターンデータを認識結果として出力するようにしてもよい。
また、例えば、基本スコア算出部192が、図29のステップS306の口形パターンデータ生成部151の処理と同様に、基本スコアに基づいて口形パターンデータを生成し、生成した口形パターンデータを認識結果として出力するようにしてもよい。
さらに、例えば、基本スコア算出部192が、基本スコアに基づいて口形パターンデータを生成した後、認識部172が、生成された口形パターンデータと一致する語句、または、類似度の高い口形パターンデータを有する語句を口形辞書から検索し、検索した語句を認識結果として出力するようにしてもよい。
また、以上の説明では、基本口形の種類を5種類の母音口形および閉唇口形の6種類とする例を示したが、必要に応じて、これ以外の種類に基本口形を分類するようにしてもよい。
さらに、日本語には初口形および終口形の構成は同じであるが、音が異なる言葉、すなわち、同口形異音語が存在する。例えば、他の装置への動作の指示を行うための操作コマンドを読唇システム101に認識させる場合、口形辞書に登録するコマンドに同口形異音語が含まれないように操作コマンドの種類を構成するようにすることで、すなわち、口形パターンデータと操作コマンドとが1対1に対応するようにすることで、操作コマンドの認識率を向上させることができる。
また、本発明の実施の形態においては、周囲の騒音が大きくても発話期間を正確に検出できるので、複数の短い操作コマンドを組み合わせることにより、同口形異音語による誤認識率を容易に低下させることができる。例えば、「ボイスコマンド」「エアコン」「28度」や「ボイスコマンド」「ラジオ」「チャンネル」「1」のように、短い単語を区切って発するように操作コマンドを定め、「ボイスコマンド」が検出されたときにのみ、後に続く言葉に操作を指示する意図があると判定するようにすれば、会話のなかで「エアコン」や「ラジオ」などの単語が発せられても、操作を指示する意図があると誤認識されることがなくなる。
さらに、読唇システム101により得られた認識結果を、音声認識装置の音声認識の補助として用いたり、音声認識結果と組み合わせて言葉を認識するようにすることも可能である。例えば、音声認識の結果と読唇システム101の認識結果の双方に基づいて、言葉を認識するようにすることで、騒音が大きい、声の検出レベルが低い、音声情報にノイズが乗る等の要因による音声認識の認識率の低下を抑制することができる。また、同口形異音語が口形辞書に登録されている場合、音声認識した結果と組み合わせて判定することで、同口形異音語のいずれが発せられたかを認識することができる。
また、音声と口の動きの両方で言葉を認識した場合と、口の動きでのみで言葉を認識した場合とで、すなわち、話者が音声を発した場合と発しなかった場合とで、認識結果を用いて動作する装置の処理を変更するようにしてもよい。例えば、車両に搭載されている車載装置に対して、ドライバが、声に出して「ボイスコマンド」「メール」「確認」と操作コマンドを与えた場合には、車載装置や携帯電話機などに着信したメールの文章を読み上げるようにし、声を出さずに口だけを動かして「ボイスコマンド」「メール」「確認」と操作コマンドを与えた場合には、メールの文章をドライバだけに見えるように表示するようにすることができる。このようにすれば、同乗者にメールの内容を知られたくない場合においても、同乗者に気づかれずにメールを確認することができる。
また、以上の説明では、話者であるユーザの口形を示す情報として、ユーザの口を含む画像を用いる例を示したが、他の形態の情報を用いるようにしてもよい。例えば、ユーザの顔に照射された可視光、赤外線、紫外線、電波やX線などの電磁波、または、超音波など音波の反射波をユーザの口形を示す情報として用いるようにして、反射波を分析することにより、ユーザの口の形や動きを検出するようにしてもよい。あるいは、ユーザの顔の熱により発せられる赤外線を検出する赤外線画像センサにより検出された画像をユーザの口形を示す情報として用いるようにして、その画像を分析することにより、ユーザの口の形や動きを検出するようにしてもよい。あるいは、静電容量センサや近距離レーダなどの物体センサを用いて、ユーザの口や唇の形や動きを検出するようにしてもよい。
さらに、画像を用いて口の形や動きを検出する場合、2次元の画像を分析するようにしてもよいし、X線CT(Computed Tomography)などによる3次元の画像を分析するようにしてもよい。
また、以上の説明では、各ユーザの実際の基本口形画像を含む基本口形データを生成し、生成した基本口形データを用いて読唇処理を行う例を示したが、例えば、各基本口形に対する平均的な人の口形を表す画像を、CG(Computer Graphics)などにより作成したり、あるいは、モデルを使って作成し、作成した画像を用いた基本口形データを予め登録しておき、その基本口形データを用いて読唇処理を行うようにすることも可能である。
なお、以上の説明では、言葉を認識する対象となる話者が人である場合の例を示したが、本発明によれば、例えば、人の口の動きを正確に再現するロボットが話者である場合においても、話者が発した言葉を正確に認識することができる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図30は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータ400の構成の例を示すブロック図である。CPU(Central Processing Unit)401は、ROM(Read Only Memory)402、または記録部408に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)403には、CPU401が実行するプログラムやデータなどが適宜記憶される。これらのCPU401、ROM402、およびRAM403は、バス404により相互に接続されている。
CPU401にはまた、バス404を介して入出力インタフェース405が接続されている。入出力インタフェース405には、キーボード、マウス、マイクロホン、カメラなどよりなる入力部406、ディスプレイ、スピーカなどよりなる出力部407が接続されている。CPU401は、入力部406から入力される指令に対応して各種の処理を実行する。そして、CPU401は、処理の結果を出力部407に出力する。
入出力インタフェース405に接続されている記録部408は、例えばハードディスクからなり、CPU401が実行するプログラムや各種のデータを記憶する。通信部409は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
また、通信部409を介してプログラムを取得し、記録部408に記憶してもよい。
入出力インタフェース405に接続されているドライブ410は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア411が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部408に転送され、記憶される。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図30に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア411、または、プログラムが一時的もしくは永続的に格納されるROM402や、記録部408を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部409を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、CPU401、ROM402、RAM403、バス404、および、入出力インタフェース405を、例えば、ワンチップマイコンにより構成することが可能である。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。