音声認識装置、音声認識方法および音声認識プログラム
【課題】デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を精度良く実行すること。
【解決手段】オンラインテンプレート収集部140が、コントローラ200から取得するメタ情報と、発話区間の信号とを基にして、テンプレートメモリ142に記憶されたテンプレートを順次更新する。テンプレート選択部150は、入力信号と一致度の高いテンプレートをテンプレートメモリ142から検索し、雑音除去部160に出力する。雑音除去部160は、入力信号からテンプレートの信号を除去することで雑音成分を除去し、音声認識部170が、雑音成分の除去された信号に対して音声認識を実行する。
【解決手段】オンラインテンプレート収集部140が、コントローラ200から取得するメタ情報と、発話区間の信号とを基にして、テンプレートメモリ142に記憶されたテンプレートを順次更新する。テンプレート選択部150は、入力信号と一致度の高いテンプレートをテンプレートメモリ142から検索し、雑音除去部160に出力する。雑音除去部160は、入力信号からテンプレートの信号を除去することで雑音成分を除去し、音声認識部170が、雑音成分の除去された信号に対して音声認識を実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声認識装置等に関する。
【背景技術】
【0002】
マイク等から入力された入力音声をテキストに変換する音声認識技術が存在する。例えば、この音声認識技術は、ロボットに各種のコマンドを入力する場合に利用される。音声認識技術を利用することにより、利用者は音声によってロボットを制御することができる。
【0003】
しかし、ロボットが動作すると、ロボット自身の動作に伴う動作音が発生する。また、ロボットが設置される環境中において人工的な雑音が発生する場合がある。このため、動作音や人工的な雑音の影響により、音声認識を精度良く実行することができないという問題がある。
【0004】
上述の問題を解消するべく、各種の技術が存在する。例えば、従来技術1では、動作音のテンプレートを予め生成しておき、音声認識を実行する場合に、テンプレートを用いて入力音声から動作音を取り除くことで、音声認識の誤認識を低減させる。
【0005】
また、従来技術2では、動作音を取得するための特別なマイクロホンを利用する。この従来技術2では、マイクロホンから取得した動作音を用いて入力音声から動作音を取り除くことで、音声認識の誤認識を低減させる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−323900号公報
【特許文献2】特開2008−122927号公報
【特許文献3】特開平06−242795号公報
【特許文献4】特開2002−116794号公報
【特許文献5】特開2001−157988号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した従来技術では、デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を効率よく実行することができないという問題があった。
【0008】
上記の従来技術1では、音声認識時に発生し得る動作音を予測してテンプレートを生成しておくことが前提となっている。このため、外部環境が変化し、予測したものと異なる動作音が発生する環境下では、この都度新たなテンプレートを準備する作業が行われる。したがって、音声認識を行う環境に適応するための作業コストがかかり、効率的な運用ができない。
【0009】
また、従来技術2では、特別なマイクロホンを利用する場合に、マイクロホンからの入力信号を取得する専用のチャネルを、音声認識を行うデバイス側で用意することになる。更に、このマイクロホンは、利用者の音声を取り込まないような特別な処理機能および構造となっているため、汎用的なマイクと比較して高価なものとなる。したがって、特別なマイクロホンを利用して音声認識を行うと、コスト増大の原因となる。
【0010】
開示の技術は、上記に鑑みてなされたものであって、デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を精度良く実行することができる音声認識装置、音声認識方法および音声認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示する技術は、一つの態様において、発話区間検出部、テンプレート更新部、雑音除去部、音声認識部を有する。発話区間検出部は、集音装置から取得する信号に基づいて、該信号に含まれる発話区間を検出する。テンプレート更新部は、発話区間検出部によって検出された発話区間の信号と、記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定する。また、テンプレート更新部は、一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と発話区間の信号とを平均化した値によってテンプレートの信号を更新する。また、テンプレート更新部は、一致度が閾値未満の場合には、発話区間の信号をテンプレートとして記憶部に記憶する。雑音除去部は、記憶部に記憶されたテンプレートを利用して集音装置が取得する信号から雑音成分を除去する。音声認識部は、雑音除去部が雑音成分を除去した発話区間の信号を基にして、音声認識を実行する。
【発明の効果】
【0012】
本願の開示する技術の一つの態様によれば、デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を精度良く実行することができる。
【図面の簡単な説明】
【0013】
【図1】図1は、本実施例にかかる音声認識装置の構成を示す図である。
【図2】図2は、発話区間を検出する処理を説明するための図である。
【図3】図3は、テンプレートのデータ構造を示す図である。
【図4】図4は、テンプレートのデータの内容の一例を示す図(1)である。
【図5】図5は、テンプレートのデータの内容の一例を示す図(2)である。
【図6】図6は、候補テンプレート信号の一例を示す図である。
【図7】図7は、発話区間の信号の一例を示す図(1)である。
【図8】図8は、発話区間の信号の一例を示す図(2)である。
【図9】図9は、発話区間の信号の一例を示す図(3)である。
【図10】図10は、図6の候補テンプレート信号と図7の発話区間の信号との一致度を示す図である。
【図11】図11は、図6の候補テンプレート信号と図8の発話区間の信号との一致度を示す図である。
【図12】図12は、図6の候補テンプレート信号と図9の発話区間の信号との一致度を示す図である。
【図13】図13は、テンプレート検出部の構成を示す図である。
【図14】図14は、音声認識装置の処理手順を示すフローチャートである。
【図15】図15は、オンラインテンプレート収集部の処理手順を示すフローチャートである。
【図16】図16は、実施例にかかる音声認識装置を構成するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する音声認識装置、音声認識方法および音声認識プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0015】
図1は、本実施例にかかる音声認識装置の構成を示す図である。図1に示すように、この音声認識装置100は、マイク110、ADC(Analog Digital Converter)部120、ディレイ部130を有する。また、音声認識装置100は、オンラインテンプレート収集部140、テンプレート選択部150、雑音除去部160、音声認識部170を有する。この音声認識装置100は、コントローラ200に接続する。例えば、コントローラ200は、図示しないロボットに搭載される。
【0016】
マイク110は、マイク110周辺の音を集音する装置である。マイク110は、集音した信号をADC部120に出力する。
【0017】
ADC部120は、マイク110から取得した信号をAD(Analog Digital)変換する処理部である。ADC部120は、AD変換後の信号をディレイ部130、オンラインテンプレート収集部140、テンプレート選択部150に出力する。
【0018】
ディレイ部130は、ADC部120から取得した信号を一旦保持し、所定の時間が経過した後に、信号を雑音除去部160に出力する。すなわち、ディレイ部130は、ADC部120から取得した信号の出力を遅らせることによって、後述するテンプレート選択部150がテンプレートを検索するために要する時間を確保する。例えば、テンプレート選択部150が、テンプレートを検索するのに5フレーム遅れる場合には、ディレイ部130は、信号を5フレーム分たけ遅延させる。
【0019】
オンラインテンプレート収集部140は、ADC部120から取得した信号に基づいて、信号に含まれる雑音成分を学習し、雑音成分の信号を格納したテンプレートを生成する処理部である。ここで、雑音成分は、ロボット自身の動作により発生する動作音や、ロボットが配置される環境中において発生する人工的な音を示す環境音が含まれる。オンラインテンプレート収集部140の詳細な説明は後述する。
【0020】
テンプレート選択部150は、ADC部120から取得した信号と一致度が高いテンプレートを選択し、選択したテンプレートを雑音除去部160に出力する処理部である。テンプレート選択部150の詳細な説明は後述する。
【0021】
雑音除去部160は、ディレイ部130から取得した信号からテンプレートの信号を除去することで、信号に含まれる雑音成分を除去する処理部である。雑音除去部160は、雑音成分を除去した信号を音声認識部170に出力する。
【0022】
音声認識部170は、信号に含まれる音声をテキストに変換する処理部である。例えば、音声認識部170は、所定のテキストと信号の周波数特性とを対応づけたマッチングテーブルを保持しており、このマッチングテーブルと信号の特徴とを比較して、信号に含まれる音声のテキストを判定する。なお、音声認識部170は、その他の音声認識技術を利用して、信号に含まれる音声をテキストに変換してもよい。音声認識部170は、テキストの情報をコントローラ200に出力する。
【0023】
コントローラ200は、音声認識装置100から取得するテキストに基づいて、ロボットの移動制御を行う処理部である。ここでは、ロボットの図示を省略する。コントローラ200は、例えば、テキストの内容が「前進」の場合には、ロボットの動作部を駆動させ、ロボットを前進させる。
【0024】
また、コントローラ200は、ロボットの駆動状態を監視し、駆動状態を識別するメタ情報を定期的に生成する。コントローラ200は、生成したメタ情報を音声認識装置100のテンプレート収集部140、テンプレート選択部150に出力する。
【0025】
ここで、メタ情報は、動作音および環境音に応じて種別が区別される。コントローラ200は、ロボットが動作している場合に、動作音のメタ情報を生成する。コントローラ200は、ロボットが停止している場合に、環境音のメタ情報を生成する。
【0026】
ロボットが動作している場合に生成されるメタ情報の生成処理の一例を説明する。まず、コントローラ200は、メタ情報の種別に「動作音」を設定する。そして、コントローラ200は、例えば、モータ等のロボットの各駆動部や、タイマにアクセスし、動作しているモータの種別、動作速度、動作時間の情報等を取得し、メタ情報に格納する。なお、コントローラ200は、メタ情報の各情報に優先順位を設定しても良い。例えば、優先順位1位「モータの種別」、優先順位2位「動作の速度」、優先順位3位「動作時間」とする。
【0027】
ロボットが停止している場合に生成されるメタ情報の生成処理の一例を説明する。まず、コントローラ200は、メタ情報の種別に「環境音」を設定する。そして、コントローラ200は、例えば、ロボットが有する各種センサを含む各種処理部にアクセスし、ロボットの位置、方向、これらの情報を取得した時間の情報等を取得し、メタ情報に格納する。なお、コントローラ200は、メタ情報の各情報に優先順位を設定しても良い。例えば、優先順位1位「位置」、優先順位2位「方向」、優先順位3位「時間」とする。
【0028】
次に、図1に示したオンラインテンプレート収集部140について詳細に説明する。図1に示すように、このオンラインテンプレート収集部140は、発話区間検出部141、テンプレートメモリ142、テンプレート更新部143を有する。
【0029】
発話区間検出部141は、ADC部120から取得した信号に含まれる発話区間を検出し、検出した発話区間の信号をテンプレート更新部143に出力する。例えば、発話区間検出部141は、信号の振幅の大きさが所定の大きさ以上となる状態が所定の時間以上継続する区間が存在する場合に、かかる区間を発話区間として検出する。
【0030】
図2は、発話区間を検出する処理を説明するための図である。図2の縦軸は、信号の振幅を示し、横軸は時間経過に対応するサンプル数を示す。図2に示す例では、区間10a、10cにおいて、信号の振幅が所定の大きさ未満となっており、区間10bにおいて、信号が所定の大きさ以上となっているものとする。そして、区間10bの時間間隔が所定の時間以上となっているものとする。この場合には、発話区間検出部141は、区間10bを発話区間と判定する。発話区間検出部141は、発話区間10bの信号をテンプレート更新部143に出力する。
【0031】
テンプレートメモリ142は、複数のテンプレートを記憶する記憶部である。このテンプレートは、雑音成分の信号と、該雑音成分の信号が発生した時点において、コントローラ200が生成したメタ情報とを対応づけて格納する。
【0032】
図3は、テンプレートのデータ構造を示す図である。図3に示すように、このテンプレートは、メタ情報部と、データ部とを有する。メタ情報部は、メタ情報を格納する領域である。データ部は、雑音成分の信号を格納する領域である。
【0033】
メタ情報部は、種別と、複数の検索候補1〜3と、その他メタ情報と、更新回数を有する。このうち種別は、メタ情報が、動作音に対応するものか、環境音に対応するものかを区別する情報である。複数の検索候補は、コントローラ200によって生成されたメタ情報のうち、一部のメタ情報が、各検索候補に一つずつ格納される。メタ情報のうち、検索候補に格納されなかった残りのメタ情報が、その他メタ情報に格納される。更新回数は、テンプレートが更新された回数を示す。
【0034】
ここで、テンプレートのデータの内容の一例を具体的に示す。図4および図5は、テンプレートのデータの内容の一例を示す図である。図4に示すテンプレートにおいて、種別には「動作音」が格納され、検索候補1には「モータ2」が格納され、検索候補2には「速度」が格納される。検索候補3には「動作時間」が格納され、その他メタ情報には「内部状態」が格納され、更新回数は「10」となる。
【0035】
図5に示すテンプレートにおいて、種別には「環境音」が格納され、検索候補1には「位置」が格納され、検索候補2には「方向」が格納される。検索候補3には「取得時間」が格納され、その他メタ情報は「内部状態」が格納される。また、更新回数は「5」となる。
【0036】
図1の説明に戻る。テンプレート更新部143は、発話区間の信号によって、テンプレートメモリ142を更新する処理部である。
【0037】
まず、テンプレートメモリ142が初期状態の場合のテンプレート更新部143の処理について説明する。テンプレート更新部143は、発話区間の信号と、この信号を取得したタイミングでコントローラ200から取得するメタ情報とを対応づけて、テンプレートを新規に生成し、生成したテンプレートをテンプレートメモリ142に記憶する。
【0038】
ここで、テンプレート更新部143は、テンプレートを新規に生成する場合には、発話区間の信号を、テンプレートのデータ部に格納する。また、テンプレート更新部143は、メタ情報の種別が動作音の場合には、テンプレートの種別を動作音とする。テンプレート更新部143は、メタ情報の種別が環境音の場合には、テンプレートの種別を環境音とする。
【0039】
また、テンプレート更新部143は、メタ情報に含まれる各情報のうち、優先順位に基づいて、テンプレートの検索候補1〜3に情報を格納し、残りの情報を、その他メタ情報に格納する。
【0040】
例えば、メタ情報に格納された情報が優先順位1位「モータ2」、優先順位2位「速度」、優先順位3位「動作時間」となっている場合には、テンプレート更新部143は、検索候補1に「モータ2」を格納する。また、テンプレート更新部143は、検索候補2に「速度」、検索候補3に「動作時間」を格納する。また、テンプレート更新部143は、更新回数を初期値の「1」に設定する。
【0041】
続いて、テンプレートメモリ142が初期状態ではない場合のテンプレート更新部143の処理について説明する。テンプレート更新部143は、コントローラ200から取得したメタ情報に対応するテンプレートを、テンプレートメモリ142から検索する。そして、テンプレート更新部143は、検索したテンプレートのデータ部の信号と発話区間の信号との一致度が閾値以上の場合に、データ部の信号と、発話区間の信号とを平均化したものを新たなデータ部の信号とすることで、テンプレートを更新する。
【0042】
テンプレート更新部143が、コントローラ200から取得したメタ情報に対応するテンプレートを検索する処理について説明する。まず、テンプレート更新部143は、コントローラ200から取得したメタ情報の種別と同一の種別となるテンプレートを検索する。
【0043】
続いて、テンプレート更新部143は、メタ情報と、検索したテンプレートの検索候補1〜3、その他メタ情報とを比較し、一致する情報の数が所定数以上となるテンプレートを検索する。テンプレート更新部143が検索したテンプレートは、更新対象となるテンプレートの候補となる。以下の説明において、更新対象となるテンプレートの候補を候補テンプレートと表記する。
【0044】
なお、テンプレート更新部143は、メタ情報に対応するテンプレートが存在しない場合には、テンプレートメモリ142が初期状態の場合と同様にして、新規にテンプレートを生成し、生成したテンプレートをテンプレートメモリ142に記憶する。
【0045】
候補テンプレートを検索した後に、テンプレート更新部143は、候補テンプレートのデータ部の信号と、発話区間の信号との一致度を相互相関によって算出する。例えば、テンプレート更新部143は、式(1)を用いて一致度を算出する。式(1)で求められる一致度の値は、正規化された相互相関の値となる。以下の説明において、候補テンプレートのデータ部の信号を候補テンプレート信号と表記する。
【0046】
【数1】
【0047】
式(1)において、関数fは、候補テンプレート信号に対応する。関数gは、発話区間の信号に対応する。Nは、相関範囲に対応する。また、式(1)によって求められる一致度の値は、−1から1の値をとる。一致度が1に近づくほど、候補テンプレート信号と、発話区間の信号とがより一致していることとなる。
【0048】
テンプレート更新部143は、一致度と所定の閾値とを比較する。例えば、閾値を「0.7」とする。この閾値の値は、利用者が任意に変更可能である。テンプレート更新部143は、発話区間の信号との一致度が閾値以上となる信号を格納する候補テンプレートを、更新対象のテンプレートとして判定する。
【0049】
ここで、候補テンプレート信号と発話区間の信号との一致度の具体例を示す。図6は、候補テンプレート信号の一例を示す図である。図7〜図9は、発話区間の信号の一例を示す図である。図6〜図9の縦軸は、信号の振幅を示し、横軸は時間経過に対応するサンプル数を示す。
【0050】
図10は、図6の候補テンプレート信号と図7の発話区間の信号との一致度を示す図である。図10の縦軸は一致度に対応し、横軸は時間経過に対応するサンプル数を示す。図10に示すように、候補テンプレート信号と発話区間の信号とは一致度が高く、サンプル数「14000」付近で、一致度が閾値20aを超えている。このような場合には、候補テンプレートを、更新対象のテンプレートとして判定する。
【0051】
図11は、図6の候補テンプレート信号と図8の発話区間の信号との一致度を示す図である。図11の縦軸は一致度に対応し、横軸は時間経過に対応するサンプル数を示す。図11に示すように、候補テンプレート信号と発話区間の信号とは一致度が高く、サンプル数「16000」付近で、一致度が閾値20aを超えている。このような場合には、候補テンプレートを、更新対象のテンプレートとして判定する。
【0052】
図12は、図6の候補テンプレート信号と図9の発話区間の信号との一致度を示す図である。図12の縦軸は一致度に対応し、横軸は時間経過に対応するサンプル数を示す。図12に示すように、候補テンプレート信号と発話区間の信号とは一致度が低く、一致度が閾値20aを超えていない。このような場合には、候補テンプレートを、更新対象のテンプレートとして判定しない。
【0053】
テンプレート更新部143は、更新対象のテンプレートのデータ部の信号と、発話区間の信号とを平均化した信号を算出する。例えば、テンプレート更新部143は、一致度r(t)が最大となるtoptを基準点としてfとgの位置を一致させ、式(2)によって、平均化した信号f’を算出する。式(2)において、nは更新回数に対応する。
【0054】
【数2】
【0055】
テンプレート更新部143は、式(2)によって平均化した信号f’によって、更新対象のテンプレートのデータ部の信号を更新する。また、テンプレート更新部143は、テンプレートの更新回数に1を加算する。
【0056】
また、テンプレート更新部143は、テンプレートを更新する場合に、メタ情報の一致状況に応じて、テンプレートのメタ情報の検索候補1〜3、その他メタ情報に格納された情報を入れ替えても良い。例えば、テンプレート更新部143は、候補テンプレートを検索する場合に、検索候補1の情報にヒットせず、検索候補2、3の情報にヒットした場合には、検索候補2、3の情報を検索候補1、2に設定し、検索候補1の情報を検索候補3に設定する。また、テンプレート更新部143は、検索候補1〜3の情報にヒットせず、その他メタ情報の情報にヒットした場合には、ヒットした情報を、検索候補1〜3に格納しても良い。
【0057】
なお、テンプレート更新部143は、一致度が閾値以上となる信号を保持する候補テンプレートが存在しない場合には、テンプレートメモリ142が初期状態の場合と同様にして、新規にテンプレートを生成する。テンプレート更新部143は、生成したテンプレートをテンプレートメモリ142に記憶する。
【0058】
図1の説明に戻る。テンプレート選択部150は、テンプレート検出部151およびテンプレート出力部152を有する。
【0059】
テンプレート検出部151は、信号から雑音成分を取り除くためのテンプレートをテンプレートメモリ142から検出する処理部である。テンプレート検出部151は、検出したテンプレートの格納位置をテンプレート出力部152に通知する。テンプレート検出部151は、該当するテンプレートを複数検出した場合には、各テンプレートの格納位置をテンプレート出力部152に通知する。
【0060】
テンプレート出力部152は、テンプレート検出部151から通知される格納位置のテンプレートをテンプレートメモリ142から取得し、取得したテンプレートを雑音除去部160に出力する。
【0061】
なお、テンプレート出力部152は、テンプレート検出部151からテンプレートに対応する位相情報をテンプレート毎に取得する。テンプレート出力部152は、複数のテンプレートを雑音除去部160に出力する場合には、位相情報を基準として、各テンプレートの信号を合成し、合成した信号を雑音除去部160に出力する。例えば、位相情報は、テンプレートの信号の大きさが最大となるタイミングに対応する。
【0062】
ここで、テンプレート検出部151の構成について説明する。図13は、テンプレート検出部151の構成を示す図である。図13に示すように、テンプレート検出部151は、テンプレート候補抽出部151b、一時記憶部151c〜151f、比較部151g、151hを有する。
【0063】
テンプレート候補抽出部151bは、コントローラ200から取得したメタ情報に対応するテンプレートを、テンプレートメモリ142から検索する処理部である。テンプレート候補抽出部151bは、テンプレートを一時記憶部151e、150fに記憶する。
【0064】
テンプレート候補抽出部151bが、コントローラ200から取得したメタ情報に対応するテンプレートを検索する処理について説明する。テンプレート候補抽出部151bは、更新回数が所定回数以上のテンプレートから、メタ情報と同一の種別となるテンプレートを検索する。テンプレート候補抽出部151bは、例えば、更新回数と比較される所定の回数を5とする。
【0065】
続いて、テンプレート候補抽出部151bは、メタ情報と、検索したテンプレートの検索候補1〜3とを比較して、一致する情報の数が所定数以上となるテンプレートを抽出する。テンプレート候補検索部151bは、複数のテンプレートを抽出した場合には、複数のテンプレートを一時記憶部151e、151fに記憶する。例えば、3個のテンプレートを抽出した場合には、テンプレートを3つずつ一時記憶部151e、150fに記憶する。
【0066】
また、テンプレート候補抽出部151bは、テンプレートの格納位置と、テンプレートのデータ部の信号とを対応づけて、一時記憶部151e,151fに記憶しても良い。
【0067】
一時記憶部151cおよび一時記憶部151dは、ADC部120から出力される信号を記憶する記憶部である。一時記憶部151e、151fは、テンプレート候補抽出部151bから出力されるテンプレートのデータ部の信号を記憶する記憶部である。例えば、一時記憶部151e、151fは、複数のテンプレートの信号を記憶する場合には、テンプレート毎に信号を記憶する。
【0068】
比較部151gは、一時記憶部151cに記憶された信号と、一時記憶部151eに記憶されたテンプレートの信号との一致度を算出し、一致度が所定の閾値以上となる信号のテンプレートを判定する。比較部151gは、式(1)に基づいて一致度を算出する。そして、比較部151gは、判定したテンプレートの格納位置をテンプレート出力部152に出力する。
【0069】
比較部151gの処理について具体的に説明する。比較部151gは、一時記憶部151cに記憶された信号を所定のサンプル数毎に、複数のフレームに分割する。図13に示す例では、フレーム1〜6に分割する。また、比較部151gは、一時記憶部151eに記憶されたテンプレートのデータ部の信号を所定のサンプル数毎に分割する。例えば、比較部151gが分割するサンプル数を1024サンプルとする。
【0070】
信号を分割した後に、比較部151gは、一時記憶部151cのフレームと、一時記憶部151eの各フレームとを先頭のフレームから順に比較し、一致度を順次算出する。比較部151gは、全てのフレームの一致度が閾値以上となるテンプレートの信号を判定する。比較部151gは、判定したテンプレートの信号が格納された格納位置をテンプレート出力部152に通知する。
【0071】
例えば、図13において、一時記憶部151eの1段目のフレーム1〜5と、一時記憶部151cのフレーム1〜5との一致度が全て閾値以上とする。この場合には、比較部151gは、一時記憶部151eの1段目の信号を格納するテンプレートの格納位置を、テンプレート出力部152に通知する。
【0072】
なお、比較部151gは、一致度が閾値未満となった時点で、該当するテンプレートの信号に対応するテンプレートを候補から除外する。例えば、一時記憶部151eの2段目のフレーム1〜5と、一時記憶部151cのフレーム1〜5との一致度が1フレーム目から閾値以上とならないとする。この場合には、比較部151gは、1フレーム目の一致度を算出した後に、2段目の信号に対応するテンプレートを候補から除外する。また、一時記憶部151eの3段目のフレーム1〜5と、一時記憶部151cのフレーム1〜5との一致度が2フレーム目から閾値以上とならないとする。この場合には、比較部151gは、2フレーム目の一致度を算出した後に、3段目の信号に対応するテンプレートを候補から除外する。
【0073】
ところで、比較部151gは、全てのフレームの一致度が閾値以上となるテンプレートの信号を判定した場合に、一致度が最大となるタイミングを、位相情報としてテンプレート出力部152に出力する。
【0074】
比較部151hは、一時記憶部151dに記憶された信号と、一時記憶部151fに記憶されたテンプレートの信号との一致度を算出し、一致度が所定の閾値以上となる信号のテンプレートを判定する。比較部151hは、式(1)に基づいて一致度を算出する。そして、比較部151hは、判定したテンプレートの格納位置をテンプレート出力部152に出力する。
【0075】
比較部151hの処理について具体的に説明する。比較部151hは、記憶部150dに記憶された信号を所定のサンプル数毎に、複数のフレームに分割する。図13に示す例では、フレーム2〜7に分割する。また、比較部151hは、一時記憶部151dに記憶されたテンプレートのデータ部の信号を所定のサンプル数毎に分割する。例えば、比較部151hが分割するサンプル数を1024サンプルとする。
【0076】
信号を分割した後に、比較部151hは、一時記憶部151dのフレームと、一時記憶部151fの各フレームとを先頭のフレームから順に比較し、一致度を順次算出する。比較部151hは、全てのフレームの一致度が閾値以上となるテンプレートの信号を判定する。比較部151hは、判定したテンプレートの信号が格納された格納位置をテンプレート出力部152に通知する。
【0077】
例えば、図13において、一時記憶部151fの2段目のフレーム1〜5と、一時記憶部151dのフレーム2〜6との一致度が全て閾値以上とする。この場合には、比較部151hは、一時記憶部151fの2段目の信号を格納するテンプレートの格納位置を、テンプレート出力部152に通知する。
【0078】
なお、比較部151hは、一致度が閾値未満となった時点で、該当するテンプレートの信号を候補から除外する。例えば、一時記憶部151fの1段目のフレーム1〜5と、一時記憶部151cのフレーム2〜6との一致度が1フレーム目から閾値以上とならないとする。この場合には、比較部151hは、1フレーム目の一致度を算出した後に、1段目の信号に対応するテンプレートを候補から除外する。また、一時記憶部151fの3段目のフレーム1〜5と、一時記憶部151cのフレーム2〜6との一致度が1フレーム目から閾値以上とならないとする。この場合には、比較部151hは、1フレーム目の一致度を算出した後に、3段目の信号に対応するテンプレートを候補から除外する。
【0079】
ところで、上記の各処理部120〜170は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、上記処理部120〜170は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。
【0080】
次に、本実施例1にかかる音声認識装置100の処理手順について説明する。図14は、音声認識装置の処理手順を示すフローチャートである。図14に示す処理は、例えば、マイク110に音が入力されたことを契機にして実行される。なお、図14のステップS103の処理と、ステップS104の処理は並列的に実行される。
【0081】
図14に示すように、音声認識装置100は、入力音声を取得し(ステップS101)、AD変換する(ステップS102)。音声認識装置100は、テンプレート更新処理を行い(ステップS103)、テンプレートを選択する(ステップS104)。
【0082】
音声認識装置100は、テンプレートを用いて入力音声から雑音成分を除去する(ステップS105)。音声認識装置100は、音声認識を実行し(ステップS106)、音声認識結果をコントローラ200に出力する(ステップS107)。
【0083】
次に、音声認識装置100のオンラインテンプレート収集部140の処理手順について説明する。図15は、オンラインテンプレート収集部の処理手順を示すフローチャートである。図15に示すフローチャートは、図14のステップS103に示したテンプレート更新処理に対応するものである。
【0084】
図15に示すように、オンラインテンプレート収集部140は、発話区間を検出し(ステップS201)、コントローラ200からメタ情報を取得する(ステップS202)。オンラインテンプレート収集部140は、メタ情報とテンプレートとを比較し(ステップS203)、テンプレートの候補が存在するか否かを判定する(ステップS204)。
【0085】
オンラインテンプレート収集部140は、テンプレートの候補が存在しない場合には(ステップS204,No)、テンプレートに信号を登録する(ステップS205)。そして、オンラインテンプレート収集部140は、テンプレートにメタ情報を登録し(ステップS206)、テンプレートの更新処理を終了する。
【0086】
一方、オンラインテンプレート収集部140は、テンプレートの候補が存在する場合には(ステップS204,Yes)、テンプレートと発話区間の信号との一致度が閾値以上か否かを判定する(ステップS207)。
【0087】
オンラインテンプレート収集部140は、テンプレートと発話区間の信号との一致度が閾値未満の場合には(ステップS207,No)、ステップS205に移行する。一方、オンラインテンプレート収集部140は、テンプレートと発話区間の信号との一致度が閾値以上の場合には(ステップS207,Yes)、テンプレートの信号を更新する(ステップS208)。また、オンラインテンプレート収集部140は、テンプレートのメタ情報を更新し(ステップS209)、テンプレートの更新処理を終了する。
【0088】
次に、本実施例にかかる音声認識装置100の効果について説明する。音声認識装置100は、発話区間の信号との間で一致度が閾値以上となる信号を格納するテンプレートを検出し、発話区間の信号とテンプレートの信号とを平均化したものによって、テンプレートを順次更新する。そして、音声認識装置100は、更新したテンプレートを利用して音声信号から雑音成分を除去する。この音声認識装置100は、環境が動的に変化する場合でも、雑音成分を順次テンプレートに学習でき、特別なマイクを利用しなくても、テンプレートにより雑音成分を除去できる。このため、音声認識装置100によれば、デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を効率的に実行することができる。
【0089】
人の音声は、同じ人が言葉を発声した場合でも、異なる周波数、位相となるため、各信号の一致度が低く。このため、平均化を繰り返し実行することで、人の音声はテンプレートに学習されることはない。これに対して、ロボットの動作音や人工的な環境音は、それぞれ非常に近い周波数、位相となるため、各信号の一致度が高くなり、雑音成分としてテンプレートに学習することができる。
【0090】
また、ロボットの動作音を取得する場合に、ざわつきや設置場所の反響効果が動作音に付加されている場合がある。動作音の反響音は、設置場所が変わらない限り、ほぼ一定になり、各信号の一致度が高くなるため、反響効果も含めて雑音成分をテンプレートに学習することができる。これに対して、ざわつき等は、取得する度に変わる成分であるため、各信号の一致度は低く、テンプレートに学習されることはない。
【0091】
また、音声認識装置100は、動作体の駆動状態を含むメタ情報とテンプレートとを対応づけて記憶する。そして、音声認識装置100は、発話区間の信号に対応するメタ情報をキーにして更新対象となるテンプレートを検索する。このため、テンプレートを更新する場合に、メタ情報によって更新対象を絞り込むことできる。
【0092】
また、音声認識装置は、発話区間の信号に対応するメタ情報をキーにして雑音成分のテンプレートを検索する。このため、雑音成分のテンプレートを、メタ情報によって絞り込むことができる。
【0093】
また、音声認識装置100は、発話区間の信号と、複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択する。このため、音声認識装置は、テンプレートの信号を全て比較する処理を省くことができるので、テンプレートを選択する処理負荷を軽減することができる。
【0094】
また、音声認識装置100は、複数のテンプレートを選択して、雑音成分を除去する場合に、各テンプレートの位相に基づいて、各テンプレートを合成する。このため、音声データに複数種類の雑音成分が含まれている場合でも、各雑音成分をそれぞれ除去することができる。
【0095】
ところで、図1に示した音声認識装置100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、音声認識装置100の分散、統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、オンラインテンプレート収集部140、テンプレート選択部150の処理をまとめて実行する処理部を音声認識装置100に設けても良い。または、音声認識装置100を、ロボットに搭載しても良い。
【0096】
なお、図1のテンプレート選択部150は、コントローラ200から取得するメタ情報とテンプレートのメタ情報を比較して、発話区間の信号に対応するテンプレートを選択していたが、これに限定されるものではない。例えば、テンプレート選択部150は、テンプレートメモリ142に記憶された全てのテンプレートの信号と発話区間の信号とを比較して、一致度が閾値以上となるテンプレートを選択してもよい。こうすることで、テンプレート選択部150は、メタ情報によって検出できない雑音成分のテンプレートを選択することができる。
【0097】
また、音声認識装置100は、既知のパーソナルコンピュータ、ワークステーション、移動体通信端末またはPDAなどの情報処理装置に、音声認識装置100の各機能を搭載することによって実現することもできる。
【0098】
図16は、実施例にかかる音声認識装置を構成するコンピュータのハードウェア構成を示す図である。図16に示すように、このコンピュータ300は、各種演算処理を実行するCPU(Central Processing Unit)301と、ユーザからのデータの入力を受け付ける入力装置302と、モニタ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304、ネットワークを介して他のコンピュータとの間でデータの享受を行うネットワークインターフェース装置305、マイク306を有する。また、コンピュータ300は、各種情報を一時記憶するRAM(Random Access Memory)307と、ハードディスク装置308を有する。各装置301〜308は、バス309に接続される。
【0099】
ハードディスク装置308は、発話区間検出プログラム308a、テンプレート更新プログラム308b、雑音除去プログラム308c、音声認識プログラム308dを記憶する。
【0100】
CPU301は、ハードディスク装置308に記憶された各プログラム308a〜308dを読み出して、RAM307に展開する。これにより、発話区間検出プログラム308aは、発話区間検出プロセス307aとして機能する。テンプレート更新プログラム308bは、テンプレート更新プロセス307bとして機能する。雑音除去プログラム308cは、雑音除去プロセス307cとして機能する。音声認識プログラム308dは、音声認識プロセス307dとして機能する。
【0101】
発話区間検出プロセス307aは、図1の発話区間検出部141に対応する。テンプレート更新プロセス307bは、図1のテンプレート更新部143に対応する。雑音除去プロセス307cは、図1のテンプレート選択部150、雑音除去部160に対応する。音声認識プロセス307dは、図1の音声認識部170に対応する。各プロセス307a〜307dによりCPU301は、マイク306からの入力信号から雑音成分を除去し、音声認識を実行する。
【0102】
なお、上記のプログラム308a〜308dは、必ずしもハードディスク装置308に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラム308a〜308dを、コンピュータ300が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等に接続された記憶装置に、各プログラム308a〜308dを記憶させておいてもよい。この場合、コンピュータ300がこれらから各プログラム308a〜308dを読み出して実行するようにしてもよい。
【0103】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0104】
(付記1)集音装置から取得する信号に基づいて、該信号に含まれる発話区間を検出する発話区間検出部と、
前記発話区間検出部によって検出された発話区間の信号と、記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の信号をテンプレートの信号として前記記憶部に記憶するテンプレート更新部と、
前記記憶部に記憶されたテンプレートを利用して前記集音装置が取得する信号から雑音成分を除去する雑音除去部と、
前記雑音除去部が雑音成分を除去した発話区間の信号を基にして、音声認識を実行する音声認識部と
を有することを特徴とする音声認識装置。
【0105】
(付記2)前記記憶部は、動作体の駆動状態を含むメタ情報とテンプレートとを対応付けて記憶し、前記テンプレート更新部は、前記発話区間の信号に対応するメタ情報を基にして、発話区間のメタ情報と類似のメタ情報に対応づけられたテンプレートを検索し、検索したテンプレートの信号と発話区間の信号との一致度が閾値以上か否かを判定することを特徴とする付記1に記載の音声認識装置。
【0106】
(付記3)前記雑音除去部は、前記集音装置から取得した信号と前記記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上となるテンプレートを選択し、選択したテンプレートを利用して信号の雑音成分を除去することを特徴とする付記1または2に記載の音声認識装置。
【0107】
(付記4)前記雑音除去部は、前記集音装置から取得した信号の一部と、前記記憶部に記憶された複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択することを特徴とする付記3に記載の音声認識装置。
【0108】
(付記5)前記雑音除去部は、前記集音装置から取得したメタ情報と類似のメタ情報に対応づけられたテンプレートを前記記憶部から検索し、検索したテンプレートの信号と集音装置から取得した信号との一致度が閾値以上か否かを判定することを特徴とする付記3または4に記載の音声認識装置。
【0109】
(付記6)前記雑音除去部は、複数のテンプレートの信号を位相に基づいて合成し、集音装置が集音した信号から合成したテンプレートの信号を除去することで、雑音成分を除去することを特徴とする付記3、4または5に記載の音声認識装置。
【0110】
(付記7)コンピュータが実行する音声認識方法であって、
集音装置から取得する信号に基づいて、該信号に含まれる発話区間の信号を検出し、
検出した前記発話区間の信号と、記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の情報をテンプレートの信号として前記記憶装置に記憶し、
前記記憶装置に記憶されたテンプレートを利用して前記発話区間の雑音成分を除去し、音声認識を実行することを特徴とする音声認識方法。
【0111】
(付記8)前記記憶装置は、動作体の駆動状態を含むメタ情報とテンプレートとを対応付けて記憶し、前記コンピュータは、テンプレートを更新する場合に、前記発話区間の信号に対応するメタ情報を基にして、発話区間のメタ情報と類似のメタ情報に対応づけられたテンプレートを検索し、検索したテンプレートの信号と発話区間の信号との一致度が閾値以上か否かを判定する付記7に記載の音声認識方法。
【0112】
(付記9)雑音成分を除去する場合に、前記集音装置から取得した信号と前記記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上となるテンプレートを選択し、選択したテンプレートを利用して信号の雑音成分を除去することを特徴とする付記7または8に記載の音声認識方法。
【0113】
(付記10)雑音成分を除去する場合に、前記集音装置から取得した信号の一部と、前記記憶装置に記憶された複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択することを特徴とする付記9に記載の音声認識方法。
【0114】
(付記11)雑音成分を除去する場合に、前記集音装置から取得した時点で得られるメタ情報と類似のメタ情報に対応づけられたテンプレートを前記記憶装置から検索し、検索したテンプレートの信号と集音装置から取得した信号との一致度が閾値以上か否かを判定することを特徴とする付記9または10に記載の音声認識方法。
【0115】
(付記12)雑音成分を除去する場合に、複数のテンプレートの信号を位相に基づいて合成し、集音装置が集音した信号から合成したテンプレートの信号を除去することで、雑音成分を除去することを特徴とする付記9、10または11に記載の音声認識方法。
【0116】
(付記13)コンピュータに、
集音装置から取得する信号に基づいて、該信号に含まれる発話区間の信号を検出し、
検出した前記発話区間の信号と、記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の情報をテンプレートの信号として前記記憶装置に記憶し、
前記記憶装置に記憶されたテンプレートを利用して前記発話区間の雑音成分を除去し、音声認識を実行させる音声認識プログラム。
【0117】
(付記14)前記記憶装置は、動作体の駆動状態を含むメタ情報とテンプレートとを対応付けて記憶し、前記コンピュータは、テンプレートを更新する場合に、前記発話区間の信号に対応するメタ情報を基にして、発話区間のメタ情報と類似のメタ情報に対応づけられたテンプレートを検索し、検索したテンプレートの信号と発話区間の信号との一致度が閾値以上か否かを判定する付記13に記載の音声認識プログラム。
【0118】
(付記15)雑音成分を除去する場合に、前記集音装置から取得した信号と前記記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上となるテンプレートを選択し、選択したテンプレートを利用して信号の雑音成分を除去することを特徴とする付記13または14に記載の音声認識プログラム。
【0119】
(付記16)雑音成分を除去する場合に、前記集音装置から取得した信号の一部と、前記記憶装置に記憶された複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択することを特徴とする付記15に記載の音声認識プログラム。
【0120】
(付記17)雑音成分を除去する場合に、前記集音装置から取得した時点で得られるメタ情報と類似のメタ情報に対応づけられたテンプレートを前記記憶装置から検索し、検索したテンプレートの信号と集音装置から取得した信号との一致度が閾値以上か否かを判定することを特徴とする付記15または16に記載の音声認識プログラム。
【0121】
(付記18)雑音成分を除去する場合に、複数のテンプレートの信号を位相に基づいて合成し、集音装置が集音した信号から合成したテンプレートの信号を除去することで、雑音成分を除去することを特徴とする付記15、16または17に記載の音声認識プログラム。
【符号の説明】
【0122】
100 音声認識装置
120 ADC部
130 ディレイ部
140 オンラインテンプレート収集部
150 テンプレート選択部
160 雑音除去部
170 音声認識部
200 コントローラ
【技術分野】
【0001】
本発明は、音声認識装置等に関する。
【背景技術】
【0002】
マイク等から入力された入力音声をテキストに変換する音声認識技術が存在する。例えば、この音声認識技術は、ロボットに各種のコマンドを入力する場合に利用される。音声認識技術を利用することにより、利用者は音声によってロボットを制御することができる。
【0003】
しかし、ロボットが動作すると、ロボット自身の動作に伴う動作音が発生する。また、ロボットが設置される環境中において人工的な雑音が発生する場合がある。このため、動作音や人工的な雑音の影響により、音声認識を精度良く実行することができないという問題がある。
【0004】
上述の問題を解消するべく、各種の技術が存在する。例えば、従来技術1では、動作音のテンプレートを予め生成しておき、音声認識を実行する場合に、テンプレートを用いて入力音声から動作音を取り除くことで、音声認識の誤認識を低減させる。
【0005】
また、従来技術2では、動作音を取得するための特別なマイクロホンを利用する。この従来技術2では、マイクロホンから取得した動作音を用いて入力音声から動作音を取り除くことで、音声認識の誤認識を低減させる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−323900号公報
【特許文献2】特開2008−122927号公報
【特許文献3】特開平06−242795号公報
【特許文献4】特開2002−116794号公報
【特許文献5】特開2001−157988号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した従来技術では、デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を効率よく実行することができないという問題があった。
【0008】
上記の従来技術1では、音声認識時に発生し得る動作音を予測してテンプレートを生成しておくことが前提となっている。このため、外部環境が変化し、予測したものと異なる動作音が発生する環境下では、この都度新たなテンプレートを準備する作業が行われる。したがって、音声認識を行う環境に適応するための作業コストがかかり、効率的な運用ができない。
【0009】
また、従来技術2では、特別なマイクロホンを利用する場合に、マイクロホンからの入力信号を取得する専用のチャネルを、音声認識を行うデバイス側で用意することになる。更に、このマイクロホンは、利用者の音声を取り込まないような特別な処理機能および構造となっているため、汎用的なマイクと比較して高価なものとなる。したがって、特別なマイクロホンを利用して音声認識を行うと、コスト増大の原因となる。
【0010】
開示の技術は、上記に鑑みてなされたものであって、デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を精度良く実行することができる音声認識装置、音声認識方法および音声認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本願の開示する技術は、一つの態様において、発話区間検出部、テンプレート更新部、雑音除去部、音声認識部を有する。発話区間検出部は、集音装置から取得する信号に基づいて、該信号に含まれる発話区間を検出する。テンプレート更新部は、発話区間検出部によって検出された発話区間の信号と、記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定する。また、テンプレート更新部は、一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と発話区間の信号とを平均化した値によってテンプレートの信号を更新する。また、テンプレート更新部は、一致度が閾値未満の場合には、発話区間の信号をテンプレートとして記憶部に記憶する。雑音除去部は、記憶部に記憶されたテンプレートを利用して集音装置が取得する信号から雑音成分を除去する。音声認識部は、雑音除去部が雑音成分を除去した発話区間の信号を基にして、音声認識を実行する。
【発明の効果】
【0012】
本願の開示する技術の一つの態様によれば、デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を精度良く実行することができる。
【図面の簡単な説明】
【0013】
【図1】図1は、本実施例にかかる音声認識装置の構成を示す図である。
【図2】図2は、発話区間を検出する処理を説明するための図である。
【図3】図3は、テンプレートのデータ構造を示す図である。
【図4】図4は、テンプレートのデータの内容の一例を示す図(1)である。
【図5】図5は、テンプレートのデータの内容の一例を示す図(2)である。
【図6】図6は、候補テンプレート信号の一例を示す図である。
【図7】図7は、発話区間の信号の一例を示す図(1)である。
【図8】図8は、発話区間の信号の一例を示す図(2)である。
【図9】図9は、発話区間の信号の一例を示す図(3)である。
【図10】図10は、図6の候補テンプレート信号と図7の発話区間の信号との一致度を示す図である。
【図11】図11は、図6の候補テンプレート信号と図8の発話区間の信号との一致度を示す図である。
【図12】図12は、図6の候補テンプレート信号と図9の発話区間の信号との一致度を示す図である。
【図13】図13は、テンプレート検出部の構成を示す図である。
【図14】図14は、音声認識装置の処理手順を示すフローチャートである。
【図15】図15は、オンラインテンプレート収集部の処理手順を示すフローチャートである。
【図16】図16は、実施例にかかる音声認識装置を構成するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する音声認識装置、音声認識方法および音声認識プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0015】
図1は、本実施例にかかる音声認識装置の構成を示す図である。図1に示すように、この音声認識装置100は、マイク110、ADC(Analog Digital Converter)部120、ディレイ部130を有する。また、音声認識装置100は、オンラインテンプレート収集部140、テンプレート選択部150、雑音除去部160、音声認識部170を有する。この音声認識装置100は、コントローラ200に接続する。例えば、コントローラ200は、図示しないロボットに搭載される。
【0016】
マイク110は、マイク110周辺の音を集音する装置である。マイク110は、集音した信号をADC部120に出力する。
【0017】
ADC部120は、マイク110から取得した信号をAD(Analog Digital)変換する処理部である。ADC部120は、AD変換後の信号をディレイ部130、オンラインテンプレート収集部140、テンプレート選択部150に出力する。
【0018】
ディレイ部130は、ADC部120から取得した信号を一旦保持し、所定の時間が経過した後に、信号を雑音除去部160に出力する。すなわち、ディレイ部130は、ADC部120から取得した信号の出力を遅らせることによって、後述するテンプレート選択部150がテンプレートを検索するために要する時間を確保する。例えば、テンプレート選択部150が、テンプレートを検索するのに5フレーム遅れる場合には、ディレイ部130は、信号を5フレーム分たけ遅延させる。
【0019】
オンラインテンプレート収集部140は、ADC部120から取得した信号に基づいて、信号に含まれる雑音成分を学習し、雑音成分の信号を格納したテンプレートを生成する処理部である。ここで、雑音成分は、ロボット自身の動作により発生する動作音や、ロボットが配置される環境中において発生する人工的な音を示す環境音が含まれる。オンラインテンプレート収集部140の詳細な説明は後述する。
【0020】
テンプレート選択部150は、ADC部120から取得した信号と一致度が高いテンプレートを選択し、選択したテンプレートを雑音除去部160に出力する処理部である。テンプレート選択部150の詳細な説明は後述する。
【0021】
雑音除去部160は、ディレイ部130から取得した信号からテンプレートの信号を除去することで、信号に含まれる雑音成分を除去する処理部である。雑音除去部160は、雑音成分を除去した信号を音声認識部170に出力する。
【0022】
音声認識部170は、信号に含まれる音声をテキストに変換する処理部である。例えば、音声認識部170は、所定のテキストと信号の周波数特性とを対応づけたマッチングテーブルを保持しており、このマッチングテーブルと信号の特徴とを比較して、信号に含まれる音声のテキストを判定する。なお、音声認識部170は、その他の音声認識技術を利用して、信号に含まれる音声をテキストに変換してもよい。音声認識部170は、テキストの情報をコントローラ200に出力する。
【0023】
コントローラ200は、音声認識装置100から取得するテキストに基づいて、ロボットの移動制御を行う処理部である。ここでは、ロボットの図示を省略する。コントローラ200は、例えば、テキストの内容が「前進」の場合には、ロボットの動作部を駆動させ、ロボットを前進させる。
【0024】
また、コントローラ200は、ロボットの駆動状態を監視し、駆動状態を識別するメタ情報を定期的に生成する。コントローラ200は、生成したメタ情報を音声認識装置100のテンプレート収集部140、テンプレート選択部150に出力する。
【0025】
ここで、メタ情報は、動作音および環境音に応じて種別が区別される。コントローラ200は、ロボットが動作している場合に、動作音のメタ情報を生成する。コントローラ200は、ロボットが停止している場合に、環境音のメタ情報を生成する。
【0026】
ロボットが動作している場合に生成されるメタ情報の生成処理の一例を説明する。まず、コントローラ200は、メタ情報の種別に「動作音」を設定する。そして、コントローラ200は、例えば、モータ等のロボットの各駆動部や、タイマにアクセスし、動作しているモータの種別、動作速度、動作時間の情報等を取得し、メタ情報に格納する。なお、コントローラ200は、メタ情報の各情報に優先順位を設定しても良い。例えば、優先順位1位「モータの種別」、優先順位2位「動作の速度」、優先順位3位「動作時間」とする。
【0027】
ロボットが停止している場合に生成されるメタ情報の生成処理の一例を説明する。まず、コントローラ200は、メタ情報の種別に「環境音」を設定する。そして、コントローラ200は、例えば、ロボットが有する各種センサを含む各種処理部にアクセスし、ロボットの位置、方向、これらの情報を取得した時間の情報等を取得し、メタ情報に格納する。なお、コントローラ200は、メタ情報の各情報に優先順位を設定しても良い。例えば、優先順位1位「位置」、優先順位2位「方向」、優先順位3位「時間」とする。
【0028】
次に、図1に示したオンラインテンプレート収集部140について詳細に説明する。図1に示すように、このオンラインテンプレート収集部140は、発話区間検出部141、テンプレートメモリ142、テンプレート更新部143を有する。
【0029】
発話区間検出部141は、ADC部120から取得した信号に含まれる発話区間を検出し、検出した発話区間の信号をテンプレート更新部143に出力する。例えば、発話区間検出部141は、信号の振幅の大きさが所定の大きさ以上となる状態が所定の時間以上継続する区間が存在する場合に、かかる区間を発話区間として検出する。
【0030】
図2は、発話区間を検出する処理を説明するための図である。図2の縦軸は、信号の振幅を示し、横軸は時間経過に対応するサンプル数を示す。図2に示す例では、区間10a、10cにおいて、信号の振幅が所定の大きさ未満となっており、区間10bにおいて、信号が所定の大きさ以上となっているものとする。そして、区間10bの時間間隔が所定の時間以上となっているものとする。この場合には、発話区間検出部141は、区間10bを発話区間と判定する。発話区間検出部141は、発話区間10bの信号をテンプレート更新部143に出力する。
【0031】
テンプレートメモリ142は、複数のテンプレートを記憶する記憶部である。このテンプレートは、雑音成分の信号と、該雑音成分の信号が発生した時点において、コントローラ200が生成したメタ情報とを対応づけて格納する。
【0032】
図3は、テンプレートのデータ構造を示す図である。図3に示すように、このテンプレートは、メタ情報部と、データ部とを有する。メタ情報部は、メタ情報を格納する領域である。データ部は、雑音成分の信号を格納する領域である。
【0033】
メタ情報部は、種別と、複数の検索候補1〜3と、その他メタ情報と、更新回数を有する。このうち種別は、メタ情報が、動作音に対応するものか、環境音に対応するものかを区別する情報である。複数の検索候補は、コントローラ200によって生成されたメタ情報のうち、一部のメタ情報が、各検索候補に一つずつ格納される。メタ情報のうち、検索候補に格納されなかった残りのメタ情報が、その他メタ情報に格納される。更新回数は、テンプレートが更新された回数を示す。
【0034】
ここで、テンプレートのデータの内容の一例を具体的に示す。図4および図5は、テンプレートのデータの内容の一例を示す図である。図4に示すテンプレートにおいて、種別には「動作音」が格納され、検索候補1には「モータ2」が格納され、検索候補2には「速度」が格納される。検索候補3には「動作時間」が格納され、その他メタ情報には「内部状態」が格納され、更新回数は「10」となる。
【0035】
図5に示すテンプレートにおいて、種別には「環境音」が格納され、検索候補1には「位置」が格納され、検索候補2には「方向」が格納される。検索候補3には「取得時間」が格納され、その他メタ情報は「内部状態」が格納される。また、更新回数は「5」となる。
【0036】
図1の説明に戻る。テンプレート更新部143は、発話区間の信号によって、テンプレートメモリ142を更新する処理部である。
【0037】
まず、テンプレートメモリ142が初期状態の場合のテンプレート更新部143の処理について説明する。テンプレート更新部143は、発話区間の信号と、この信号を取得したタイミングでコントローラ200から取得するメタ情報とを対応づけて、テンプレートを新規に生成し、生成したテンプレートをテンプレートメモリ142に記憶する。
【0038】
ここで、テンプレート更新部143は、テンプレートを新規に生成する場合には、発話区間の信号を、テンプレートのデータ部に格納する。また、テンプレート更新部143は、メタ情報の種別が動作音の場合には、テンプレートの種別を動作音とする。テンプレート更新部143は、メタ情報の種別が環境音の場合には、テンプレートの種別を環境音とする。
【0039】
また、テンプレート更新部143は、メタ情報に含まれる各情報のうち、優先順位に基づいて、テンプレートの検索候補1〜3に情報を格納し、残りの情報を、その他メタ情報に格納する。
【0040】
例えば、メタ情報に格納された情報が優先順位1位「モータ2」、優先順位2位「速度」、優先順位3位「動作時間」となっている場合には、テンプレート更新部143は、検索候補1に「モータ2」を格納する。また、テンプレート更新部143は、検索候補2に「速度」、検索候補3に「動作時間」を格納する。また、テンプレート更新部143は、更新回数を初期値の「1」に設定する。
【0041】
続いて、テンプレートメモリ142が初期状態ではない場合のテンプレート更新部143の処理について説明する。テンプレート更新部143は、コントローラ200から取得したメタ情報に対応するテンプレートを、テンプレートメモリ142から検索する。そして、テンプレート更新部143は、検索したテンプレートのデータ部の信号と発話区間の信号との一致度が閾値以上の場合に、データ部の信号と、発話区間の信号とを平均化したものを新たなデータ部の信号とすることで、テンプレートを更新する。
【0042】
テンプレート更新部143が、コントローラ200から取得したメタ情報に対応するテンプレートを検索する処理について説明する。まず、テンプレート更新部143は、コントローラ200から取得したメタ情報の種別と同一の種別となるテンプレートを検索する。
【0043】
続いて、テンプレート更新部143は、メタ情報と、検索したテンプレートの検索候補1〜3、その他メタ情報とを比較し、一致する情報の数が所定数以上となるテンプレートを検索する。テンプレート更新部143が検索したテンプレートは、更新対象となるテンプレートの候補となる。以下の説明において、更新対象となるテンプレートの候補を候補テンプレートと表記する。
【0044】
なお、テンプレート更新部143は、メタ情報に対応するテンプレートが存在しない場合には、テンプレートメモリ142が初期状態の場合と同様にして、新規にテンプレートを生成し、生成したテンプレートをテンプレートメモリ142に記憶する。
【0045】
候補テンプレートを検索した後に、テンプレート更新部143は、候補テンプレートのデータ部の信号と、発話区間の信号との一致度を相互相関によって算出する。例えば、テンプレート更新部143は、式(1)を用いて一致度を算出する。式(1)で求められる一致度の値は、正規化された相互相関の値となる。以下の説明において、候補テンプレートのデータ部の信号を候補テンプレート信号と表記する。
【0046】
【数1】
【0047】
式(1)において、関数fは、候補テンプレート信号に対応する。関数gは、発話区間の信号に対応する。Nは、相関範囲に対応する。また、式(1)によって求められる一致度の値は、−1から1の値をとる。一致度が1に近づくほど、候補テンプレート信号と、発話区間の信号とがより一致していることとなる。
【0048】
テンプレート更新部143は、一致度と所定の閾値とを比較する。例えば、閾値を「0.7」とする。この閾値の値は、利用者が任意に変更可能である。テンプレート更新部143は、発話区間の信号との一致度が閾値以上となる信号を格納する候補テンプレートを、更新対象のテンプレートとして判定する。
【0049】
ここで、候補テンプレート信号と発話区間の信号との一致度の具体例を示す。図6は、候補テンプレート信号の一例を示す図である。図7〜図9は、発話区間の信号の一例を示す図である。図6〜図9の縦軸は、信号の振幅を示し、横軸は時間経過に対応するサンプル数を示す。
【0050】
図10は、図6の候補テンプレート信号と図7の発話区間の信号との一致度を示す図である。図10の縦軸は一致度に対応し、横軸は時間経過に対応するサンプル数を示す。図10に示すように、候補テンプレート信号と発話区間の信号とは一致度が高く、サンプル数「14000」付近で、一致度が閾値20aを超えている。このような場合には、候補テンプレートを、更新対象のテンプレートとして判定する。
【0051】
図11は、図6の候補テンプレート信号と図8の発話区間の信号との一致度を示す図である。図11の縦軸は一致度に対応し、横軸は時間経過に対応するサンプル数を示す。図11に示すように、候補テンプレート信号と発話区間の信号とは一致度が高く、サンプル数「16000」付近で、一致度が閾値20aを超えている。このような場合には、候補テンプレートを、更新対象のテンプレートとして判定する。
【0052】
図12は、図6の候補テンプレート信号と図9の発話区間の信号との一致度を示す図である。図12の縦軸は一致度に対応し、横軸は時間経過に対応するサンプル数を示す。図12に示すように、候補テンプレート信号と発話区間の信号とは一致度が低く、一致度が閾値20aを超えていない。このような場合には、候補テンプレートを、更新対象のテンプレートとして判定しない。
【0053】
テンプレート更新部143は、更新対象のテンプレートのデータ部の信号と、発話区間の信号とを平均化した信号を算出する。例えば、テンプレート更新部143は、一致度r(t)が最大となるtoptを基準点としてfとgの位置を一致させ、式(2)によって、平均化した信号f’を算出する。式(2)において、nは更新回数に対応する。
【0054】
【数2】
【0055】
テンプレート更新部143は、式(2)によって平均化した信号f’によって、更新対象のテンプレートのデータ部の信号を更新する。また、テンプレート更新部143は、テンプレートの更新回数に1を加算する。
【0056】
また、テンプレート更新部143は、テンプレートを更新する場合に、メタ情報の一致状況に応じて、テンプレートのメタ情報の検索候補1〜3、その他メタ情報に格納された情報を入れ替えても良い。例えば、テンプレート更新部143は、候補テンプレートを検索する場合に、検索候補1の情報にヒットせず、検索候補2、3の情報にヒットした場合には、検索候補2、3の情報を検索候補1、2に設定し、検索候補1の情報を検索候補3に設定する。また、テンプレート更新部143は、検索候補1〜3の情報にヒットせず、その他メタ情報の情報にヒットした場合には、ヒットした情報を、検索候補1〜3に格納しても良い。
【0057】
なお、テンプレート更新部143は、一致度が閾値以上となる信号を保持する候補テンプレートが存在しない場合には、テンプレートメモリ142が初期状態の場合と同様にして、新規にテンプレートを生成する。テンプレート更新部143は、生成したテンプレートをテンプレートメモリ142に記憶する。
【0058】
図1の説明に戻る。テンプレート選択部150は、テンプレート検出部151およびテンプレート出力部152を有する。
【0059】
テンプレート検出部151は、信号から雑音成分を取り除くためのテンプレートをテンプレートメモリ142から検出する処理部である。テンプレート検出部151は、検出したテンプレートの格納位置をテンプレート出力部152に通知する。テンプレート検出部151は、該当するテンプレートを複数検出した場合には、各テンプレートの格納位置をテンプレート出力部152に通知する。
【0060】
テンプレート出力部152は、テンプレート検出部151から通知される格納位置のテンプレートをテンプレートメモリ142から取得し、取得したテンプレートを雑音除去部160に出力する。
【0061】
なお、テンプレート出力部152は、テンプレート検出部151からテンプレートに対応する位相情報をテンプレート毎に取得する。テンプレート出力部152は、複数のテンプレートを雑音除去部160に出力する場合には、位相情報を基準として、各テンプレートの信号を合成し、合成した信号を雑音除去部160に出力する。例えば、位相情報は、テンプレートの信号の大きさが最大となるタイミングに対応する。
【0062】
ここで、テンプレート検出部151の構成について説明する。図13は、テンプレート検出部151の構成を示す図である。図13に示すように、テンプレート検出部151は、テンプレート候補抽出部151b、一時記憶部151c〜151f、比較部151g、151hを有する。
【0063】
テンプレート候補抽出部151bは、コントローラ200から取得したメタ情報に対応するテンプレートを、テンプレートメモリ142から検索する処理部である。テンプレート候補抽出部151bは、テンプレートを一時記憶部151e、150fに記憶する。
【0064】
テンプレート候補抽出部151bが、コントローラ200から取得したメタ情報に対応するテンプレートを検索する処理について説明する。テンプレート候補抽出部151bは、更新回数が所定回数以上のテンプレートから、メタ情報と同一の種別となるテンプレートを検索する。テンプレート候補抽出部151bは、例えば、更新回数と比較される所定の回数を5とする。
【0065】
続いて、テンプレート候補抽出部151bは、メタ情報と、検索したテンプレートの検索候補1〜3とを比較して、一致する情報の数が所定数以上となるテンプレートを抽出する。テンプレート候補検索部151bは、複数のテンプレートを抽出した場合には、複数のテンプレートを一時記憶部151e、151fに記憶する。例えば、3個のテンプレートを抽出した場合には、テンプレートを3つずつ一時記憶部151e、150fに記憶する。
【0066】
また、テンプレート候補抽出部151bは、テンプレートの格納位置と、テンプレートのデータ部の信号とを対応づけて、一時記憶部151e,151fに記憶しても良い。
【0067】
一時記憶部151cおよび一時記憶部151dは、ADC部120から出力される信号を記憶する記憶部である。一時記憶部151e、151fは、テンプレート候補抽出部151bから出力されるテンプレートのデータ部の信号を記憶する記憶部である。例えば、一時記憶部151e、151fは、複数のテンプレートの信号を記憶する場合には、テンプレート毎に信号を記憶する。
【0068】
比較部151gは、一時記憶部151cに記憶された信号と、一時記憶部151eに記憶されたテンプレートの信号との一致度を算出し、一致度が所定の閾値以上となる信号のテンプレートを判定する。比較部151gは、式(1)に基づいて一致度を算出する。そして、比較部151gは、判定したテンプレートの格納位置をテンプレート出力部152に出力する。
【0069】
比較部151gの処理について具体的に説明する。比較部151gは、一時記憶部151cに記憶された信号を所定のサンプル数毎に、複数のフレームに分割する。図13に示す例では、フレーム1〜6に分割する。また、比較部151gは、一時記憶部151eに記憶されたテンプレートのデータ部の信号を所定のサンプル数毎に分割する。例えば、比較部151gが分割するサンプル数を1024サンプルとする。
【0070】
信号を分割した後に、比較部151gは、一時記憶部151cのフレームと、一時記憶部151eの各フレームとを先頭のフレームから順に比較し、一致度を順次算出する。比較部151gは、全てのフレームの一致度が閾値以上となるテンプレートの信号を判定する。比較部151gは、判定したテンプレートの信号が格納された格納位置をテンプレート出力部152に通知する。
【0071】
例えば、図13において、一時記憶部151eの1段目のフレーム1〜5と、一時記憶部151cのフレーム1〜5との一致度が全て閾値以上とする。この場合には、比較部151gは、一時記憶部151eの1段目の信号を格納するテンプレートの格納位置を、テンプレート出力部152に通知する。
【0072】
なお、比較部151gは、一致度が閾値未満となった時点で、該当するテンプレートの信号に対応するテンプレートを候補から除外する。例えば、一時記憶部151eの2段目のフレーム1〜5と、一時記憶部151cのフレーム1〜5との一致度が1フレーム目から閾値以上とならないとする。この場合には、比較部151gは、1フレーム目の一致度を算出した後に、2段目の信号に対応するテンプレートを候補から除外する。また、一時記憶部151eの3段目のフレーム1〜5と、一時記憶部151cのフレーム1〜5との一致度が2フレーム目から閾値以上とならないとする。この場合には、比較部151gは、2フレーム目の一致度を算出した後に、3段目の信号に対応するテンプレートを候補から除外する。
【0073】
ところで、比較部151gは、全てのフレームの一致度が閾値以上となるテンプレートの信号を判定した場合に、一致度が最大となるタイミングを、位相情報としてテンプレート出力部152に出力する。
【0074】
比較部151hは、一時記憶部151dに記憶された信号と、一時記憶部151fに記憶されたテンプレートの信号との一致度を算出し、一致度が所定の閾値以上となる信号のテンプレートを判定する。比較部151hは、式(1)に基づいて一致度を算出する。そして、比較部151hは、判定したテンプレートの格納位置をテンプレート出力部152に出力する。
【0075】
比較部151hの処理について具体的に説明する。比較部151hは、記憶部150dに記憶された信号を所定のサンプル数毎に、複数のフレームに分割する。図13に示す例では、フレーム2〜7に分割する。また、比較部151hは、一時記憶部151dに記憶されたテンプレートのデータ部の信号を所定のサンプル数毎に分割する。例えば、比較部151hが分割するサンプル数を1024サンプルとする。
【0076】
信号を分割した後に、比較部151hは、一時記憶部151dのフレームと、一時記憶部151fの各フレームとを先頭のフレームから順に比較し、一致度を順次算出する。比較部151hは、全てのフレームの一致度が閾値以上となるテンプレートの信号を判定する。比較部151hは、判定したテンプレートの信号が格納された格納位置をテンプレート出力部152に通知する。
【0077】
例えば、図13において、一時記憶部151fの2段目のフレーム1〜5と、一時記憶部151dのフレーム2〜6との一致度が全て閾値以上とする。この場合には、比較部151hは、一時記憶部151fの2段目の信号を格納するテンプレートの格納位置を、テンプレート出力部152に通知する。
【0078】
なお、比較部151hは、一致度が閾値未満となった時点で、該当するテンプレートの信号を候補から除外する。例えば、一時記憶部151fの1段目のフレーム1〜5と、一時記憶部151cのフレーム2〜6との一致度が1フレーム目から閾値以上とならないとする。この場合には、比較部151hは、1フレーム目の一致度を算出した後に、1段目の信号に対応するテンプレートを候補から除外する。また、一時記憶部151fの3段目のフレーム1〜5と、一時記憶部151cのフレーム2〜6との一致度が1フレーム目から閾値以上とならないとする。この場合には、比較部151hは、1フレーム目の一致度を算出した後に、3段目の信号に対応するテンプレートを候補から除外する。
【0079】
ところで、上記の各処理部120〜170は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、上記処理部120〜170は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。
【0080】
次に、本実施例1にかかる音声認識装置100の処理手順について説明する。図14は、音声認識装置の処理手順を示すフローチャートである。図14に示す処理は、例えば、マイク110に音が入力されたことを契機にして実行される。なお、図14のステップS103の処理と、ステップS104の処理は並列的に実行される。
【0081】
図14に示すように、音声認識装置100は、入力音声を取得し(ステップS101)、AD変換する(ステップS102)。音声認識装置100は、テンプレート更新処理を行い(ステップS103)、テンプレートを選択する(ステップS104)。
【0082】
音声認識装置100は、テンプレートを用いて入力音声から雑音成分を除去する(ステップS105)。音声認識装置100は、音声認識を実行し(ステップS106)、音声認識結果をコントローラ200に出力する(ステップS107)。
【0083】
次に、音声認識装置100のオンラインテンプレート収集部140の処理手順について説明する。図15は、オンラインテンプレート収集部の処理手順を示すフローチャートである。図15に示すフローチャートは、図14のステップS103に示したテンプレート更新処理に対応するものである。
【0084】
図15に示すように、オンラインテンプレート収集部140は、発話区間を検出し(ステップS201)、コントローラ200からメタ情報を取得する(ステップS202)。オンラインテンプレート収集部140は、メタ情報とテンプレートとを比較し(ステップS203)、テンプレートの候補が存在するか否かを判定する(ステップS204)。
【0085】
オンラインテンプレート収集部140は、テンプレートの候補が存在しない場合には(ステップS204,No)、テンプレートに信号を登録する(ステップS205)。そして、オンラインテンプレート収集部140は、テンプレートにメタ情報を登録し(ステップS206)、テンプレートの更新処理を終了する。
【0086】
一方、オンラインテンプレート収集部140は、テンプレートの候補が存在する場合には(ステップS204,Yes)、テンプレートと発話区間の信号との一致度が閾値以上か否かを判定する(ステップS207)。
【0087】
オンラインテンプレート収集部140は、テンプレートと発話区間の信号との一致度が閾値未満の場合には(ステップS207,No)、ステップS205に移行する。一方、オンラインテンプレート収集部140は、テンプレートと発話区間の信号との一致度が閾値以上の場合には(ステップS207,Yes)、テンプレートの信号を更新する(ステップS208)。また、オンラインテンプレート収集部140は、テンプレートのメタ情報を更新し(ステップS209)、テンプレートの更新処理を終了する。
【0088】
次に、本実施例にかかる音声認識装置100の効果について説明する。音声認識装置100は、発話区間の信号との間で一致度が閾値以上となる信号を格納するテンプレートを検出し、発話区間の信号とテンプレートの信号とを平均化したものによって、テンプレートを順次更新する。そして、音声認識装置100は、更新したテンプレートを利用して音声信号から雑音成分を除去する。この音声認識装置100は、環境が動的に変化する場合でも、雑音成分を順次テンプレートに学習でき、特別なマイクを利用しなくても、テンプレートにより雑音成分を除去できる。このため、音声認識装置100によれば、デバイスコストを削減しつつ、外部環境の変化に対応して音声認識を効率的に実行することができる。
【0089】
人の音声は、同じ人が言葉を発声した場合でも、異なる周波数、位相となるため、各信号の一致度が低く。このため、平均化を繰り返し実行することで、人の音声はテンプレートに学習されることはない。これに対して、ロボットの動作音や人工的な環境音は、それぞれ非常に近い周波数、位相となるため、各信号の一致度が高くなり、雑音成分としてテンプレートに学習することができる。
【0090】
また、ロボットの動作音を取得する場合に、ざわつきや設置場所の反響効果が動作音に付加されている場合がある。動作音の反響音は、設置場所が変わらない限り、ほぼ一定になり、各信号の一致度が高くなるため、反響効果も含めて雑音成分をテンプレートに学習することができる。これに対して、ざわつき等は、取得する度に変わる成分であるため、各信号の一致度は低く、テンプレートに学習されることはない。
【0091】
また、音声認識装置100は、動作体の駆動状態を含むメタ情報とテンプレートとを対応づけて記憶する。そして、音声認識装置100は、発話区間の信号に対応するメタ情報をキーにして更新対象となるテンプレートを検索する。このため、テンプレートを更新する場合に、メタ情報によって更新対象を絞り込むことできる。
【0092】
また、音声認識装置は、発話区間の信号に対応するメタ情報をキーにして雑音成分のテンプレートを検索する。このため、雑音成分のテンプレートを、メタ情報によって絞り込むことができる。
【0093】
また、音声認識装置100は、発話区間の信号と、複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択する。このため、音声認識装置は、テンプレートの信号を全て比較する処理を省くことができるので、テンプレートを選択する処理負荷を軽減することができる。
【0094】
また、音声認識装置100は、複数のテンプレートを選択して、雑音成分を除去する場合に、各テンプレートの位相に基づいて、各テンプレートを合成する。このため、音声データに複数種類の雑音成分が含まれている場合でも、各雑音成分をそれぞれ除去することができる。
【0095】
ところで、図1に示した音声認識装置100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、音声認識装置100の分散、統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、オンラインテンプレート収集部140、テンプレート選択部150の処理をまとめて実行する処理部を音声認識装置100に設けても良い。または、音声認識装置100を、ロボットに搭載しても良い。
【0096】
なお、図1のテンプレート選択部150は、コントローラ200から取得するメタ情報とテンプレートのメタ情報を比較して、発話区間の信号に対応するテンプレートを選択していたが、これに限定されるものではない。例えば、テンプレート選択部150は、テンプレートメモリ142に記憶された全てのテンプレートの信号と発話区間の信号とを比較して、一致度が閾値以上となるテンプレートを選択してもよい。こうすることで、テンプレート選択部150は、メタ情報によって検出できない雑音成分のテンプレートを選択することができる。
【0097】
また、音声認識装置100は、既知のパーソナルコンピュータ、ワークステーション、移動体通信端末またはPDAなどの情報処理装置に、音声認識装置100の各機能を搭載することによって実現することもできる。
【0098】
図16は、実施例にかかる音声認識装置を構成するコンピュータのハードウェア構成を示す図である。図16に示すように、このコンピュータ300は、各種演算処理を実行するCPU(Central Processing Unit)301と、ユーザからのデータの入力を受け付ける入力装置302と、モニタ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304、ネットワークを介して他のコンピュータとの間でデータの享受を行うネットワークインターフェース装置305、マイク306を有する。また、コンピュータ300は、各種情報を一時記憶するRAM(Random Access Memory)307と、ハードディスク装置308を有する。各装置301〜308は、バス309に接続される。
【0099】
ハードディスク装置308は、発話区間検出プログラム308a、テンプレート更新プログラム308b、雑音除去プログラム308c、音声認識プログラム308dを記憶する。
【0100】
CPU301は、ハードディスク装置308に記憶された各プログラム308a〜308dを読み出して、RAM307に展開する。これにより、発話区間検出プログラム308aは、発話区間検出プロセス307aとして機能する。テンプレート更新プログラム308bは、テンプレート更新プロセス307bとして機能する。雑音除去プログラム308cは、雑音除去プロセス307cとして機能する。音声認識プログラム308dは、音声認識プロセス307dとして機能する。
【0101】
発話区間検出プロセス307aは、図1の発話区間検出部141に対応する。テンプレート更新プロセス307bは、図1のテンプレート更新部143に対応する。雑音除去プロセス307cは、図1のテンプレート選択部150、雑音除去部160に対応する。音声認識プロセス307dは、図1の音声認識部170に対応する。各プロセス307a〜307dによりCPU301は、マイク306からの入力信号から雑音成分を除去し、音声認識を実行する。
【0102】
なお、上記のプログラム308a〜308dは、必ずしもハードディスク装置308に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラム308a〜308dを、コンピュータ300が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等に接続された記憶装置に、各プログラム308a〜308dを記憶させておいてもよい。この場合、コンピュータ300がこれらから各プログラム308a〜308dを読み出して実行するようにしてもよい。
【0103】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0104】
(付記1)集音装置から取得する信号に基づいて、該信号に含まれる発話区間を検出する発話区間検出部と、
前記発話区間検出部によって検出された発話区間の信号と、記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の信号をテンプレートの信号として前記記憶部に記憶するテンプレート更新部と、
前記記憶部に記憶されたテンプレートを利用して前記集音装置が取得する信号から雑音成分を除去する雑音除去部と、
前記雑音除去部が雑音成分を除去した発話区間の信号を基にして、音声認識を実行する音声認識部と
を有することを特徴とする音声認識装置。
【0105】
(付記2)前記記憶部は、動作体の駆動状態を含むメタ情報とテンプレートとを対応付けて記憶し、前記テンプレート更新部は、前記発話区間の信号に対応するメタ情報を基にして、発話区間のメタ情報と類似のメタ情報に対応づけられたテンプレートを検索し、検索したテンプレートの信号と発話区間の信号との一致度が閾値以上か否かを判定することを特徴とする付記1に記載の音声認識装置。
【0106】
(付記3)前記雑音除去部は、前記集音装置から取得した信号と前記記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上となるテンプレートを選択し、選択したテンプレートを利用して信号の雑音成分を除去することを特徴とする付記1または2に記載の音声認識装置。
【0107】
(付記4)前記雑音除去部は、前記集音装置から取得した信号の一部と、前記記憶部に記憶された複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択することを特徴とする付記3に記載の音声認識装置。
【0108】
(付記5)前記雑音除去部は、前記集音装置から取得したメタ情報と類似のメタ情報に対応づけられたテンプレートを前記記憶部から検索し、検索したテンプレートの信号と集音装置から取得した信号との一致度が閾値以上か否かを判定することを特徴とする付記3または4に記載の音声認識装置。
【0109】
(付記6)前記雑音除去部は、複数のテンプレートの信号を位相に基づいて合成し、集音装置が集音した信号から合成したテンプレートの信号を除去することで、雑音成分を除去することを特徴とする付記3、4または5に記載の音声認識装置。
【0110】
(付記7)コンピュータが実行する音声認識方法であって、
集音装置から取得する信号に基づいて、該信号に含まれる発話区間の信号を検出し、
検出した前記発話区間の信号と、記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の情報をテンプレートの信号として前記記憶装置に記憶し、
前記記憶装置に記憶されたテンプレートを利用して前記発話区間の雑音成分を除去し、音声認識を実行することを特徴とする音声認識方法。
【0111】
(付記8)前記記憶装置は、動作体の駆動状態を含むメタ情報とテンプレートとを対応付けて記憶し、前記コンピュータは、テンプレートを更新する場合に、前記発話区間の信号に対応するメタ情報を基にして、発話区間のメタ情報と類似のメタ情報に対応づけられたテンプレートを検索し、検索したテンプレートの信号と発話区間の信号との一致度が閾値以上か否かを判定する付記7に記載の音声認識方法。
【0112】
(付記9)雑音成分を除去する場合に、前記集音装置から取得した信号と前記記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上となるテンプレートを選択し、選択したテンプレートを利用して信号の雑音成分を除去することを特徴とする付記7または8に記載の音声認識方法。
【0113】
(付記10)雑音成分を除去する場合に、前記集音装置から取得した信号の一部と、前記記憶装置に記憶された複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択することを特徴とする付記9に記載の音声認識方法。
【0114】
(付記11)雑音成分を除去する場合に、前記集音装置から取得した時点で得られるメタ情報と類似のメタ情報に対応づけられたテンプレートを前記記憶装置から検索し、検索したテンプレートの信号と集音装置から取得した信号との一致度が閾値以上か否かを判定することを特徴とする付記9または10に記載の音声認識方法。
【0115】
(付記12)雑音成分を除去する場合に、複数のテンプレートの信号を位相に基づいて合成し、集音装置が集音した信号から合成したテンプレートの信号を除去することで、雑音成分を除去することを特徴とする付記9、10または11に記載の音声認識方法。
【0116】
(付記13)コンピュータに、
集音装置から取得する信号に基づいて、該信号に含まれる発話区間の信号を検出し、
検出した前記発話区間の信号と、記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の情報をテンプレートの信号として前記記憶装置に記憶し、
前記記憶装置に記憶されたテンプレートを利用して前記発話区間の雑音成分を除去し、音声認識を実行させる音声認識プログラム。
【0117】
(付記14)前記記憶装置は、動作体の駆動状態を含むメタ情報とテンプレートとを対応付けて記憶し、前記コンピュータは、テンプレートを更新する場合に、前記発話区間の信号に対応するメタ情報を基にして、発話区間のメタ情報と類似のメタ情報に対応づけられたテンプレートを検索し、検索したテンプレートの信号と発話区間の信号との一致度が閾値以上か否かを判定する付記13に記載の音声認識プログラム。
【0118】
(付記15)雑音成分を除去する場合に、前記集音装置から取得した信号と前記記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上となるテンプレートを選択し、選択したテンプレートを利用して信号の雑音成分を除去することを特徴とする付記13または14に記載の音声認識プログラム。
【0119】
(付記16)雑音成分を除去する場合に、前記集音装置から取得した信号の一部と、前記記憶装置に記憶された複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択することを特徴とする付記15に記載の音声認識プログラム。
【0120】
(付記17)雑音成分を除去する場合に、前記集音装置から取得した時点で得られるメタ情報と類似のメタ情報に対応づけられたテンプレートを前記記憶装置から検索し、検索したテンプレートの信号と集音装置から取得した信号との一致度が閾値以上か否かを判定することを特徴とする付記15または16に記載の音声認識プログラム。
【0121】
(付記18)雑音成分を除去する場合に、複数のテンプレートの信号を位相に基づいて合成し、集音装置が集音した信号から合成したテンプレートの信号を除去することで、雑音成分を除去することを特徴とする付記15、16または17に記載の音声認識プログラム。
【符号の説明】
【0122】
100 音声認識装置
120 ADC部
130 ディレイ部
140 オンラインテンプレート収集部
150 テンプレート選択部
160 雑音除去部
170 音声認識部
200 コントローラ
【特許請求の範囲】
【請求項1】
集音装置から取得する信号に基づいて、該信号に含まれる発話区間を検出する発話区間検出部と、
前記発話区間検出部によって検出された発話区間の信号と、記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の信号をテンプレートの信号として前記記憶部に記憶するテンプレート更新部と、
前記記憶部に記憶されたテンプレートを利用して前記集音装置が取得する信号から雑音成分を除去する雑音除去部と、
前記雑音除去部が雑音成分を除去した発話区間の信号を基にして、音声認識を実行する音声認識部と
を有することを特徴とする音声認識装置。
【請求項2】
前記記憶部は、動作体の駆動状態を含むメタ情報とテンプレートとを対応付けて記憶し、前記テンプレート更新部は、前記発話区間の信号に対応するメタ情報を基にして、発話区間のメタ情報と類似のメタ情報に対応づけられたテンプレートを検索し、検索したテンプレートの信号と発話区間の信号との一致度が閾値以上か否かを判定することを特徴とする請求項1に記載の音声認識装置。
【請求項3】
前記雑音除去部は、前記集音装置から取得した信号と前記記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上となるテンプレートを選択し、選択したテンプレートを利用して信号の雑音成分を除去することを特徴とする請求項1または2に記載の音声認識装置。
【請求項4】
前記雑音除去部は、前記集音装置から取得した信号の一部と、前記記憶部に記憶された複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択することを特徴とする請求項3に記載の音声認識装置。
【請求項5】
前記雑音除去部は、前記集音装置から取得した時点で得られるメタ情報と類似のメタ情報に対応づけられたテンプレートを前記記憶部から検索し、検索したテンプレートの信号と集音装置から取得した信号との一致度が閾値以上か否かを判定することを特徴とする請求項3または4に記載の音声認識装置。
【請求項6】
前記雑音除去部は、複数のテンプレートの信号を位相に基づいて合成し、集音装置が集音した信号から合成したテンプレートの信号を除去することで、雑音成分を除去することを特徴とする請求項3、4または5に記載の音声認識装置。
【請求項7】
コンピュータが実行する音声認識方法であって、
集音装置から取得する信号に基づいて、該信号に含まれる発話区間の信号を検出し、
検出した前記発話区間の信号と、記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の情報をテンプレートの信号として前記記憶装置に記憶し、
前記記憶装置に記憶されたテンプレートを利用して前記発話区間の雑音成分を除去し、音声認識を実行することを特徴とする音声認識方法。
【請求項8】
コンピュータに、
集音装置から取得する信号に基づいて、該信号に含まれる発話区間の信号を検出し、
検出した前記発話区間の信号と、記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の情報をテンプレートの信号として前記記憶装置に記憶し、
前記記憶装置に記憶されたテンプレートを利用して前記発話区間の雑音成分を除去し、音声認識を実行させる音声認識プログラム。
【請求項1】
集音装置から取得する信号に基づいて、該信号に含まれる発話区間を検出する発話区間検出部と、
前記発話区間検出部によって検出された発話区間の信号と、記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の信号をテンプレートの信号として前記記憶部に記憶するテンプレート更新部と、
前記記憶部に記憶されたテンプレートを利用して前記集音装置が取得する信号から雑音成分を除去する雑音除去部と、
前記雑音除去部が雑音成分を除去した発話区間の信号を基にして、音声認識を実行する音声認識部と
を有することを特徴とする音声認識装置。
【請求項2】
前記記憶部は、動作体の駆動状態を含むメタ情報とテンプレートとを対応付けて記憶し、前記テンプレート更新部は、前記発話区間の信号に対応するメタ情報を基にして、発話区間のメタ情報と類似のメタ情報に対応づけられたテンプレートを検索し、検索したテンプレートの信号と発話区間の信号との一致度が閾値以上か否かを判定することを特徴とする請求項1に記載の音声認識装置。
【請求項3】
前記雑音除去部は、前記集音装置から取得した信号と前記記憶部に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上となるテンプレートを選択し、選択したテンプレートを利用して信号の雑音成分を除去することを特徴とする請求項1または2に記載の音声認識装置。
【請求項4】
前記雑音除去部は、前記集音装置から取得した信号の一部と、前記記憶部に記憶された複数のテンプレートの信号の一部とをそれぞれ比較し、一致度が閾値以上となるテンプレートを選択することを特徴とする請求項3に記載の音声認識装置。
【請求項5】
前記雑音除去部は、前記集音装置から取得した時点で得られるメタ情報と類似のメタ情報に対応づけられたテンプレートを前記記憶部から検索し、検索したテンプレートの信号と集音装置から取得した信号との一致度が閾値以上か否かを判定することを特徴とする請求項3または4に記載の音声認識装置。
【請求項6】
前記雑音除去部は、複数のテンプレートの信号を位相に基づいて合成し、集音装置が集音した信号から合成したテンプレートの信号を除去することで、雑音成分を除去することを特徴とする請求項3、4または5に記載の音声認識装置。
【請求項7】
コンピュータが実行する音声認識方法であって、
集音装置から取得する信号に基づいて、該信号に含まれる発話区間の信号を検出し、
検出した前記発話区間の信号と、記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の情報をテンプレートの信号として前記記憶装置に記憶し、
前記記憶装置に記憶されたテンプレートを利用して前記発話区間の雑音成分を除去し、音声認識を実行することを特徴とする音声認識方法。
【請求項8】
コンピュータに、
集音装置から取得する信号に基づいて、該信号に含まれる発話区間の信号を検出し、
検出した前記発話区間の信号と、記憶装置に記憶された複数のテンプレートの信号とをそれぞれ比較して、一致度が閾値以上であるテンプレートが存在するか否かを判定し、
前記一致度が閾値以上のテンプレートが存在する場合には、該テンプレートの信号と前記発話区間の信号とを平均化した値によって前記テンプレートの信号を更新し、
前記一致度が閾値未満の場合には、前記発話区間の情報をテンプレートの信号として前記記憶装置に記憶し、
前記記憶装置に記憶されたテンプレートを利用して前記発話区間の雑音成分を除去し、音声認識を実行させる音声認識プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−132950(P2012−132950A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−282438(P2010−282438)
【出願日】平成22年12月17日(2010.12.17)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願日】平成22年12月17日(2010.12.17)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]