以下では、まず本発明の実施形態が前提とする2方式の音声認識誤り修正装置について説明し、その後に、本発明の複数の実施形態を説明する。
[方式1:前提とする音声認識誤り修正装置の形態]
以下、本形態の音声認識誤り修正装置について詳細に説明する。
図1に示す音声認識誤り修正装置100は、原稿テキスト集合200に含まれる原稿201を読み上げた発話音声を認識する音声認識装置220が出力する認識結果の単語列(認識単語列)を入力として受け付け、予め記憶した対応原稿の単語列を推定することで、認識単語列に含まれる誤りを修正するものである。ここで、音声認識誤り修正装置100が推定処理のために予め記憶した情報は、原稿テキスト集合200を予め読み込んで構築された対応原稿の集合であって、状態を表すノードとノード間の状態遷移を表す枝とをネットワークとして有した重み付き有限状態トランスデューサー(Weighted Finite State Transducers:以下、WFSTという)で表された対応原稿集合である。この音声認識誤り修正装置100は、WFSTのネットワーク上で最良仮説を逐次調べ、WFST上の対応原稿の単語列と認識単語列との編集距離を基準に、全ての単語の入力を待たずに最終最良仮説を近似して部分的に修正結果を逐次確定する。
図1に示した例は、地方放送局発のニュース番組に音声認識を用いて字幕を付与する場合に適用するための音声認識誤り修正装置100を含むシステム全体を模式的に示している。このような番組の発話音声は、概ね事前に用意された原稿テキストに基づいているという特徴がある。また、大規模なキー放送局は、音声認識結果に含まれる認識誤りを人手で修正するためのオペレーターを配置しているが、地方放送局は、現状では前記オペレーターを配置することが難しいことから、このような例を示した。本実施形態によれば、地方放送局のオペレーター配置の課題を解決することができる。
図1に示す原稿テキスト集合200は、人が話す予定の内容をテキストに書き起こしたものの全体を表している。原稿テキスト集合200は、例えば文、文章、段落といった単語列の区切りの単位や、そのテーマやトピック等の内容分類に応じて、多数の細分化された個別の内容に分けられる。このような個別の内容を、以下では単に原稿と呼ぶ。また、単語列の単位が一例として文であるものとして説明する。
本実施形態では、例えば下記(A1)〜(A6)の条件を前提としている。
(A1)原稿テキスト集合200内の複数の原稿文が音声認識対象として読まれる。
(A2)複数の原稿文がどのような順番で読まれるのか事前には分かっていない。
(A3)原稿テキスト集合200に含まれる原稿文には、読まれないものもある。
(A4)読む人物によっては、原稿通りに読まずに、敢えて言い回しを変えてしまう場合や、言い誤りが生じる場合がある。
(A5)音声認識装置220の認識誤りのため意昧不明になった字幕を送出して視聴者に誤解を与えたり不快にさせたりすることを回避することを大前提とする。そのため、意味不明な認識結果の場合には送出せず、代わりに、事前に編集者により校正され内容が確認されている、発話内容に最も近いと自動推定された原稿(事前原稿)を字幕として送出する。
(A6)インタビュー部分などであって認識結果に対応する原稿が元々存在しない場合、自動推定は不可能なので、元原稿が無いインタビュー部分などについては字幕を送出しない。
原稿テキスト集合200は、記者が例えばニュース番組用に入稿した原稿の電子データの集合であって、例えばハードディスク等の一般的な記憶装置やネットワーク上の記憶手段に記憶されている。この原稿テキスト集合200は、対応原稿集合のWFSTを事前に構築するためにも利用される。
音声認識装置220は、生の音声データが入力された場合に、隠れマルコフモデル(HMM)による音響モデル、言語モデルを利用して、音声データを認識し、その認識した結果を認識単語列として生成するものである。本実施形態において、音声認識装置220は、特に限定されず、従来公知のものを採用することができる。
また、なお、前記(A2)や(A3)の条件などにも示す通り、各ニュース項目をどの順番で放送するのかは事前に確定できない。そのような状況で、音声認識装置220は、音声認識を行い、その発話音声に対して、そもそも、対応する原稿が存在するのか否かを即座に調べなければならない。そのため、音声認識に用いる言語モデルは、高精度に音声認識結果と原稿との対応をとるために、原稿テキスト集合200を用いて適応化しておき、原稿通りに読み上げた場合の認識精度が高くなるようにしておくことが好ましい。
トランスデューサー構築装置240は、音声認識誤り修正装置100で利用する対応原稿の集合(対応原稿集合)としてWFSTを構築するものである。
トランスデューサー構築装置240は、音声認識の対象となる読み上げ原稿、つまり、原稿テキスト集合200に含まれる原稿文から、音声認識誤り修正装置100で利用するWFSTを事前に構築する。WFSTは、入力シンボルと出力シンボル、遷移重みを有する有限状態機械であり、単語と文などの異なる粒度の入出力を効率よく扱うことができる。このWFSTの構築については後記する。
音声認識誤り修正装置100は、音声認識装置220から認識結果の単語が入力される度に、WFSTを用いて、入力単語を受理可能な遷移を求めてそのスコアを計算し、累積スコアに対する閾値を用いて枝刈りを行いながら、従来公知のビタビアルゴリズム(Viterbi Algorithm)による探索(ビタビ探索)を用いることを前提としている。なお、ビタビアルゴリズムとは、受信系列に対して送信符号に最も近い、即ち尤度を最大にする符号系列を推定する際に、最大尤度の符号系列を、トレリス線図を用いて効果的に探索する方法である。
通常のビタビ探索では、全ての入力が観測されてから、最もスコアが良くなるパスをトレースバックして最良仮説を出力する。そのため、通常の探索方法では、全ての入力が観測され終わる前に、古い入力から順に逐次修正結果を出力するといったことはできない。例えば、テレビ放送番組の放送音声を認識した結果から字幕を制作してリアルタイムでテレビ画面の画像に重畳する場合を想定すると、通常のビタビ探索による最尤系列は番組の最後まで単語を入力しないと確定することができない。これでは番組が終了してしまうことになるので、このような運用に対して通常のビタビ探索は不適である。
一方、音声認識誤り修正装置100は、ビタビ探索を用いつつも、最尤系列を逐次近似してトレースバックする。すなわち、予め定められた処理開始条件が満たされる度に、その時点で最もスコアが良くなるパスをトレースバックして、確定できる出力遷移を決定するので、修正結果を逐次出力することができる。ここでトレースバックされるパスは、最良仮説の近似であるが、各出力遷移に対応する入力単語列と、原稿の単語列との編集距離を信頼度の基準にして同パスを確定するか否かを決定して近似精度の向上をはかる。なお、詳細は後記する。
[構築されたWFSTの例]
図2は、トランスデューサー構築装置240で構築されたWFSTの例である。WFSTは、状態を表すノードと、状態遷移を表す枝と、を有する。なお、状態遷移のことを単に遷移という場合もある。本実施形態では、入力シンボルを単語、出力シンボルを所定の単語列とする、WFSTを構築する。所定の単語列を文として説明する。
この例では、楕円形の各ノードに、識別するため3桁の数字を付している。始点ノードはノード001であり、終点ノードはノード008である。この例では、始点と終点との間には、ノード002〜ノード007が直線状に並べられている。また、始点と終点との間には、並列に、ノード010〜ノード015が直線状に並べられている。さらに、始点と終点との間には、並列に、ノード018〜ノード023が直線状に並べられている。また、この例では、状態(ノード)と状態(ノード)との間に、遷移(枝)が設定されている。ここで、ノードとノードとの間という場合、自ノード間も含まれている。各遷移には、単語が記載されているか、または、記号として<S>、<I>、<D>、<EmiX(ここでXは1〜3の1つ)>および<eps>のうちのいずれかが記載されている。
まず、図2のすべての遷移について一般化して説明すると、このWFSTは、状態と状態間の各遷移に、(Si/So:ω)のパラメーターが設定されている。ここで、Siとは同遷移が受理する単語入力を表し、Soとは同遷移が出力する所定の単語列(文)を表し、ωは遷移重み(状態遷移重み)を表す。つまり、各遷移には、3つ組のパラメーターが設定されている。ただし、図2では紙面の都合上、パラメーターをすべての遷移に記載しているわけではなく、単語が記載された合計18の遷移に、3つ組のパラメーターのうちのSi、Soのいずれかのみが記載されている。
ここで、図2に記載された単語を一般化して単語sと表記する。なお、アルファベットの大文字と小文字とを区別している。図2において、単語sは、原稿の単語列が含んでいる単語を表す。単語sが記載された各遷移は、当該遷移に記載された単語sと同じ単語が入力されたときのみ遷移可能なことを表している。つまり、原稿の単語列が含んでいるある単語sの位置に対応する認識単語列の位置に入力した単語が、原稿のある単語sと同じ単語であれば、状態遷移することができる。要するに、単語sが記載された各遷移は、音声認識された単語を受理して進む遷移である。このようにここで構築するWFSTは、全ての原稿文を自由に接続できるネットワークである。
図2において、単語sが記載された遷移についてのパラメーターは、(s/ε:0.0)で表される。ここで、sは同遷移が受理できる単語入力を表し、εはこの遷移で出力は無いことを意昧する。また、0.0は遷移重みの1つであって、この遷移に対して単語sと同じ単語が入力されたときには、ペナルティが課されないことを意味する。例えば、図2で「先月」が記載された遷移は、3つ組のパラメーターで表すと、(先月/ε:0.0)のことである。
図2において、<S>が記載された遷移は、置換単語を受理するための遷移である。つまり、原稿の単語列が含んでいるある単語sの位置に対応する認識単語列の位置に入力した単語が、原稿のある単語sとは異なる任意の単語に置換されていたときに、その置換単語を受理するための遷移である。以下、原稿の単語列が含んでいるある単語sの位置において、この単語sとは異なる任意の単語のことを、任意の単語*と表記する。この置換には、例えば「再開」が同音異義語の「再会」に翻字されて認識された場合も含まれる。
図2において、<S>が記載された遷移は、任意の単語*を受理可能である。この<S>が記載された遷移についてのパラメーターは(*/ε:ωs)で表される。ここで、*は同遷移が受理できる任意の単語入力を表し、εはこの遷移で出力は無いことを意昧する。また、ωsは遷移重みの1つであって、この遷移に対して単語sとは異なる任意の単語*が入力されたときに課すペナルティ(以下、置換ペナルティという)を意味する。この置換ペナルティωsは、ノードスコアを下げる数値で表され、例えば-1.0を用いる。例えば、図2で<S>が記載された遷移は、3つ組のパラメーターで表すと、(*/ε:-1.0)のことである。
図2において、<I>が記載された遷移は、挿入単語を受理するための遷移である。つまり、発話者に起因して、発話内容に情報の追加や言いよどみによる分節などの繰り返しがあった場合、原稿どおり又は置換されたと認識された単語列に続く位置に挿入された単語を受理するための遷移である。また、音声認識装置220に起因して、原稿通りならば1単語と認識すべきところを、複数単語として認識するような認識誤りで生じて、原稿通りの1単語に続く位置に挿入された単語を受理するための遷移である。
図2において、<I>が記載された遷移は、任意の単語*を受理可能である。この<I>が記載された遷移についてのパラメーターは(*/ε:ωi)で表される。ここで、*は同遷移が受理できる任意の単語入力を表し、εはこの遷移で出力は無いことを意昧する。また、ωiは遷移重みの1つであって、この遷移に対して任意の単語*が入力されたときに課すペナルティ(以下、挿入ペナルティという)を意味する。この挿入ペナルティωiは、ノードスコアを下げる数値で表され、例えば-1.0を用いる。例えば、図2で<I>が記載された遷移は、3つ組のパラメーターで表すと、(*/ε:-1.0)のことである。
図2において、<D>が記載された遷移は、脱落単語を受理するための遷移である。つまり、発話者に起因して、発話内容の一部に句などの脱落があった場合、認識単語列において原稿から脱落した単語の位置を特定するための遷移である。また、音声認識装置220に起因して、原稿通りならば複数単語と認識すべきところを、単語が削除されて1単語として認識するような認識誤りで生じて、認識単語列において原稿から脱落した単語の位置を特定するための遷移である。
図2において、<D>が記載された遷移は、単語の入力が無くても遷移可能である。この<D>が記載された遷移についてのパラメーターは(ε/ε:ωd)で表される。ここで、はじめのεはこの遷移で単語の入力が無いことを意昧し、次のεはこの遷移で出力が無いことを意昧する。また、ωdは遷移重みの1つであって、この遷移で単語が脱落したときに課すペナルティ(以下、脱落ペナルティという)を意味する。この脱落ペナルティωdは、ノードスコアを下げる数値で表され、例えば-1.0を用いる。例えば、図2で<D>が記載された遷移は、3つ組のパラメーターで表すと、(ε/ε:-1.0)のことである。
図2において、<EmiX>が記載された遷移は、所定の単語列として文Lを出力するための遷移であり、修正結果を出力するための遷移である。この<EmiX>が記載された遷移についてのパラメーターは(ε/L:0.0)で表される。ここで、εはこの遷移において単語の入力が無いことを意昧する。また、Lはこの遷移で出力される単語列(文)を意昧する。例えば、図2で<Emi1>が記載された遷移は、3つ組のパラメーターで表すと、(ε/先月の関東甲信地方は…:0.0)のことである。つまり、この場合、Lは、始点ノード001からノード002を経由してノード007に至る各遷移に並べられた単語列「先月 の 関東甲信 地方 は …」をすべて順番に繋げた単語列となる。なお、パラメーター0.0は遷移重みの1つであって、この遷移に対して文を出力するときには、ペナルティが課されないことを意味する。
図2において、<eps>が記載された遷移は、終点ノードと始点ノードを連結する遷移であり、イプシロン遷移(ε遷移)と呼ばれている。<eps>が記載された遷移は、原稿テキスト集合に含まれる所定の単語列(文)が、連続して発話されるという拘束を与える遷移である。<eps>が記載された遷移についてのパラメーターは(ε/ε:ωu)で表される。はじめのεはこの遷移で単語の入力が無いことを意昧し、次のεはこの遷移で出力が無いことを意昧する。また、ωuは遷移重みの1つであって、適切な重み(数値)を与えることにより、WFSTは、より長く一致する文のスコアを高くすることができるようになる。
[WFSTの構築方法]
トランスデューサー構築装置240によるWFSTの構築方法について説明する。
予めWFSTにおいて出力遷移(<EmiX>が記載された遷移)を配置するための単語列の単位を決定しておく。これは、必要とする誤り修正能力に応じて設定することができる。出力遷移を配置する位置は、原稿テキスト集合200に含まれる原稿の単位を1つの区切りとすることができる。出力遷移を配置する位置は、文章単位、句単位、あるいは、記者が原稿の読み易さのために配置した改行単位などが利用可能である。ここで、長い単位を設定すると修正精度は高くなるが、送出する字幕単語列の確定が遅くなる。逆に、短い単位を設定すると、送出する字幕単語列の確定は速くなるが修正精度が低下する。よって、どのような単位を利用するかについては、期待される音声認識の認識精度と、原稿と読み上げ音声の一致度合いと、に応じて適宜設計すればよい。
本実施形態では、WFSTにおいて出力遷移を配置する位置は、一例として文を単位に決定されていることとしている。別の観点では、図2のWFSTは、文(所定単位の単語列)毎に始点ノード001と終点ノード008との間に文を構成する各単語の入力遷移を表す枝(図2において単語sが記載された遷移)と出力遷移を表す枝(図2において<EmiX>が記載された遷移)とを含んでいる。
WFSTの構築は、まず、WFSTの始点から始めて、原稿テキスト集合200に含まれる原稿テキストを一単語ずつ読み込む度に、同単語を受理する重み0の遷移と新たなノードとを順次作成していく。ここで、重み0の遷移とは3つ組のパラメーターで表すと、(s/ε:0.0)のことである。そして、前記した予め決定された単位になったら、出力遷移を追加してWFSTの終点ノードに連結する。まだ原稿が残っていたら、再び始点から始めて、原稿テキストを一単語ずつ読み込む度に、同単語を受理する重み0の遷移と新たなノードとを順次作成していく。そして、前記した予め決定された単位になったら、出力遷移を追加してWFSTの終点ノードに連結する。以下、同様に繰り返す。
原稿テキスト集合200から、すべての原稿テキストを読み込み終えたならば、最後に、終点ノードと始点ノードとをε遷移で連結する。ここで、ε遷移とは3つ組のパラメーターで表すと、(ε/ε:ωu)のことである。ここで、遷移重みωuに適切な重みを与える。これにより、WFSTはより長く一致する文のスコアを高くすることができるようになり、他の文の接頭辞と一致する文が原稿中に存在する場合にも、適切に動作できるようになる。最後に、各単語の遷移に、置換、脱落、挿入を受理する遷移を追加する。
[トランスデューサー構築装置の構成例]
図1に示す例では、トランスデューサー構築装置240は、単語ネットワーク登録手段241と、編集ネットワーク登録手段242と、を備えている。
単語ネットワーク登録手段241は、原稿テキスト集合200に含まれる原稿テキストにおける予め定められた所定単位(例えば文単位)毎に次の一連の処理を行う。すなわち、単語ネットワーク登録手段241は、一連の処理として、原稿テキスト集合200に含まれる原稿テキストに含まれる単語列の単語を読み込む度に、WFSTのネットワークの始点ノードから、単語を受理する入力遷移の枝と新たなノードとを、読み込んだ単語列が予め定められた所定単位(例えば文単位)になるまで順次作成する。そして、WFSTのネットワークにおいて、読み込んだ単語列の出力遷移の枝を追加して終点ノードに連結する。
編集ネットワーク登録手段242は、単語ネットワーク登録手段241で作成されたWFSTのネットワークのノード間に、単語の置換に対応して任意の単語を受理する状態遷移を表す枝と、単語の挿入に対応して任意の単語を受理する状態遷移を表す枝と、単語の削除に対応して入力が無くても出力側に遷移する状態遷移を表す枝とを追加するものである。
[音声認識誤り修正装置の構成例]
図1に示す例では、音声認識誤り修正装置100とは別にトランスデューサー構築装置240を設けたが、図3に示すように、例えば音声認識誤り修正装置100がトランスデューサー構築装置240を備えるようにしてもよい。この音声認識誤り修正装置100は、図3に示すように、WFST記憶手段(対応原稿集合記憶手段)110と、ノードデータ更新手段120と、ノードデータ記憶手段130と、原稿探索手段140と、原稿出力手段150と、を備えている。
WFST記憶手段(対応原稿集合記憶手段)110は、原稿テキスト集合200を用いて予め構築されたWFST(対応原稿集合)を記憶している。このWFST(対応原稿集合)は、トランスデューサー構築装置240が構築したものである。よって、WFSTについては、図2を参照して説明したものと同じなので重複を避けるため説明を省略する。
ノードデータ更新手段120は、音声認識装置220が出力する認識単語列の単語の入力を受け付ける時刻毎に、WFSTのネットワーク上を遷移可能な状態のスコアをノードデータとして計算および更新するものである。ノードデータ更新手段120は、例えば認識単語が1単語入力するたびに、WFST記憶手段110に記憶されたWFSTを参照して逐次的にビタビ探索を行い、ノードデータを更新する。
ノードデータ更新手段120は、認識単語列として入力する単語が、対応原稿と同じ単語である場合、スコアに「0」を加算し、入力する単語が対応原稿と異なる単語である場合、スコアにペナルティの「−1」を加算する。
例えば、図2に示す例において、認識単語列として入力する単語列が、対応原稿と全く同じ単語列である場合、始点ノード001から、単語「先月」を受理して対応原稿の単語に対応する遷移を通ってノード002に進むので、ノードデータ更新手段120は、スコアに「0」を加算する。その後、例えば、「の」を受理してノード003に進むと、スコアに「0」を加算する。同様に、「関東甲信」、…を受理していくと、スコアに「0」ずつ足していくことになる。
一方、例えば、図2に示す例において、認識単語列として入力する単語列が、対応原稿と異なる単語列である場合、始点ノード001から、単語「先週」を受理すると、対応原稿の単語「先月」が置換されているので、置換に対応する遷移を通ってノード002に進む。この場合、ノードデータ更新手段120は、スコアにペナルティの「−1」を加算する。また、挿入誤りや脱落誤りに対応する遷移を通った際も、同様にノードデータ更新手段120は、スコアにペナルティの「−1」を加算する。
このように、入力する認識単語がWFSTにおける単語sと同じであった場合に、そのパスのスコアが最良となる。一方、置換、挿入、削除の編集があった場合、スコアが悪化する。例えば<D>が記載された遷移は、入力が無くても遷移できるが、<D>が記載された遷移だけを通るパスの場合、出力遷移に近づくほど、スコアが低くなっている。WFSTは、認識単語列に、誤りや言い変えが含まれると、その分だけスコアが悪くなるというネットワークとして作成されている。
ノードデータ記憶手段130は、ノードデータ更新手段120によって計算されたノードデータを更新時刻毎に記憶するものであり、例えばメモリやハードディスク等の一般的な記憶手段である。
原稿探索手段140は、最終最良仮説を確定するための全原稿についての全認識単語列の認識結果の入力を待たずに予め定められた処理開始条件が満たされる度に、その時点で記憶されているノードデータに基づいてWFSTのネットワーク上をトレースバックしながら、最終最良仮説を部分的に近似した仮説を誤り修正結果として逐次確定するものである。
原稿探索手段140は、WFST(対応原稿集合)に含まれる対応原稿の単語列と、入力された認識単語列との編集距離に基づいて最終最良仮説を近似する。原稿探索手段140は、WFSTのネットワーク上で予め定められた範囲毎に区切ったパス間において、その先頭から末尾までのパス区間での編集距離がある程度小さければ、そのパス区間が信頼できるものとして確定して出力する。ここで、編集距離が短いということは、認識単語列と原稿の単語列とがほとんどマッチしているパスを通ってきたことを意味する。逆に、編集距離が長いパス区間は信頼度が低いので、その時点では確定せずに、次回のトレースバックのときにも利用する。いつまでも信頼度が低いパス区間は、原稿には元々記載されていない違うことを話した区間である、と推定される。よって、信頼度が低いパス区間を出力しない。以下では、WFSTのネットワーク上で予め定められた範囲のパス区間を、一例として、WFSTのネットワーク上の2つの出力遷移間に挟まれたパス区間であるものとして説明する。
前記処理開始条件が満たされるとは、例えば、発話音声がない無音期間が所定の期間に達した場合、または、音声認識装置220が出力する認識単語列としての単語の入力数が所定の単語数に達した場合等を意味する。所定の期間は特に限定されないが一例として3秒間を挙げることができる。また、所定の単語数は特に限定されないが一例として20単語を挙げることができる。このときの起動信号は、例えば音声認識装置220に自動的に出力させるようにしてもよいし、操作者がポーズだと認識したときや、所定の単語数になったと認識したときに、手動で入力するようにしてもよい。これによれば、認識単語の入力毎に探索処理を開始する場合に比べて処理負荷を低減できる。また、例えば無音期間が所定の期間だけあれば、その間、認識結果の逐次受信が停止しているので、その時点のノードスコアを容易に比較することができる。
上記機能を実現するために、本実施形態では、原稿探索手段140は、一例として図3に示すように、最大スコアノード検出手段141と、トレースバック手段142と、原稿分割手段143と、出力候補記憶手段144と、編集距離算出手段145と、編集距離判別手段146と、確定出力記憶手段147と、確定時刻記憶手段148と、を備えることとした。
最大スコアノード検出手段141は、予め定められた処理開始条件が満たされた場合、その時点で記憶されているノードデータにおいてスコアが最大のノードを検出するものである。例えば、発話音声がない無音期間(ポーズ)が所定の期間に達した場合、または、認識結果としての単語の入力数が所定の単語数に達する度に、その旨を示す起動信号が、最大スコアノード検出手段141に入力する。
トレースバック手段142は、最大スコアノード検出手段141で検出されたノードから、当該ノードに到達したパスについてWFSTのネットワークを下流から上流に向かってたどり、前回のトレースバックで確定し、出力された単語系列の最後の入力単語に対応した時刻までトレースバックするものである。
図4は、図2に示したWFSTにパスP1を付加した模式図である。図4において、スコアが最大のノードがノード020であるものとする。また、前回のトレースバックで確定された最後の入力単語に対応したノードがノード007であったものとする。この場合、トレースバック手段142は、星印で示す位置から、パスP1をノード020、ノード019、ノード018の順番に逆向きにたどり、始点ノード001へ達すると、さらに終点ノード008に戻る。次に、2本目のツリーの出力遷移<Emi2>を経てノード015に達する。続いて、トレースバック手段142は、図5において、ノード015、ノード014、…の順番に逆向きにたどり、始点ノード001へ達すると、パスP2で示すように終点ノード008に戻る。次に、1本目のツリーの出力遷移<Emi1>を経てノード007に達する。
図3に戻って、原稿探索手段140の説明を続ける。
原稿分割手段143は、今回トレースバックするパスの中で、2つの出力遷移間に挟まれたパス区間毎にWFST(対応原稿集合)に含まれる対応原稿の単語列を切り出すものである。図4及び図5を用いて説明した例の場合、出力遷移<Emi1>と出力遷移<Emi2>との間に挟まれたパス区間が、原稿分割手段143により分割される。
出力候補記憶手段144は、原稿分割手段143で分割されたパス区間に対応した出力遷移の出力シンボル(切り出された原稿)を、出力候補として記憶するものであり、例えばメモリやハードディスク等の一般的な記憶手段である。図4及び図5を用いて説明した例の場合、「今週 も まとまった 雨 は …」が、出力候補として記憶される。
編集距離算出手段145は、原稿分割手段143で切り出された対応原稿毎に、入力された認識単語列との編集距離を算出するものである。本実施形態では、編集距離は、当該パス区間についての挿入、置換、削除に係る編集操作回数を、当該パス区間の単語数で除した値で定義される。ここで、認識単語列の単語の置換、挿入、削除の編集操作回数をeとし、出力遷移が対応する原稿の単語数をNrとすると、編集距離は、原稿の単語数Nrに対する、認識単語列の単語の編集操作回数eの割合(e/Nr)で表される。
具体的には、図2に示す例において、WFST上のパス区間が「ノード007→ノード008→ノード001→ノード0010→ノード0011→ノード0012→ノード0013→ノード0014→ノード0015」である場合を想定する。このパス区間は、6単語からなるものとし、単語「今週」が「今月」に置換されて認識されていた場合、編集距離は1/6となる。
編集距離判別手段146は、WFSTのネットワークを下流から上流に向かってパス区間を選択しながら、算出された編集距離が所定の閾値以下であるか否かを順次判別し、閾値以下である場合、WFSTのネットワーク上の当該パス区間の出力遷移を確定し、その出力シンボルを誤り修正結果として確定するものである。ここで、編集距離(e/Nr)が閾値T以下である場合、つまり、e/Nr≦T を満たすとき、出力遷移の出力シンボルを修正結果として確定する。また、編集距離判別手段146は、編集距離(e/Nr)が閾値Tより大きい場合、その出力シンボルを採用しない。つまり、閾値より大きな編集距離を有したパス区間の出力遷移の出力は、一旦保留され、このパス区間以降に確定された出力遷移があった場合には棄却される。なお、編集距離(e/Nr)がその定義から0〜1の範囲の値なので、閾値は0<T<1の関係を満たす。
確定出力記憶手段147は、編集距離判別手段146にて編集距離が所定の閾値以下であると判定された場合、当該所定パス区間における出力遷移の出力シンボルを誤り修正結果として記憶するものであり、例えばメモリやハードディスク等の一般的な記憶手段である。確定出力記憶手段147の記憶構造は、スタックであり、データを後入れ先出しの構造で保持する。
確定時刻記憶手段148は、今回のトレースバック処理で確定した確定時刻を記憶するものであり、例えばメモリやハードディスク等の一般的な記憶手段である。確定時刻記憶手段148は、今回トレースバックする全パス区間(切り出された全ての原稿)について編集距離判別手段146による判別処理が終了した時点で、スタックに積まれた出力シンボルに対応する最新の確定単語の時刻を確定時刻として記憶する。
原稿出力手段150は、原稿探索手段140によって誤り修正結果として確定された対応原稿を逐次出力するものである。原稿出力手段150は、WFSTのネットワークを今回トレースバックするパスの中で、切り出されたすべての対応原稿の各パス区間に対して算出された編集距離についての判定処理が全て終了するまでに確定され、スタックに積まれた出力シンボルのデータをスタックが空になるまで出力する。
この音声認識誤り修正装置100による修正出力は、間違いを正すことと、間違いを出力しないこと、の両方の意味を含んでいる。つまり、音声認識誤り修正装置100による修正結果を、仮に事前に人が見ることができたとしたときに、「これでは文章として成立していない」、「意味が異なっている」と感じるほどの間違い部分を、音声認識誤り修正装置100がその処理の中で検出し、その検出部分を出力しないという動作も、広義の誤り修正として含んでいる。
[音声認識誤り修正装置の動作]
本形態に係る音声認識誤り修正装置100による処理の流れについて図6を参照(適宜図3参照)して説明する。
(前提1)認識結果の単語入力を{ω0,ω1,…,ωk,…,ωj,…}とする。
(前提2)前回のトレースバックにより確定した部分の最後の入力単語をωkとし、そのときの出力遷移をap(時間軸に沿ったP番目の出力遷移)とする。
(前提3)認識結果の単語ωjが入力された後、所定の無音が続いたことをトリガに、逐次確定を行う場合を考える。
(前提4)ノードデータ更新手段120は、無音になる前に最後に入力した単語ωjを受理して遷移できるノードを全て計算する。
所定の無音が続いたことをトリガに、最大スコアノード検出手段141は、現時点で記憶されているノードデータにおいて最もスコアの高いノードを検出する(ステップS1)。この検出ノードで表される状態は、トレースバック開始時点の最尤状態である。そして、トレースバック手段142は、検出されたノードから、当該ノードに到達したパスについてWFST上の単語履歴を逆向きにたどり、前回のトレースバックで確定し、出力された単語系列の最後の入力単語ωk(WFSTの遷移が受理した単語がωkである遷移)に対応した確定時刻までトレースバックする(ステップS2)。ここで、前回のトレースバックで確定し、出力された単語系列の最後の入力単語ωkに対応した確定時刻としては、確定時刻記憶手段148に格納されている確定時刻を用いる。なお、単語がωkである遷移の代わりに、出力遷移aPにたどり着くまでトレースバックするようにしてもよい。
そして、原稿分割手段143は、今回トレースバックするパスの中で、2つの出力遷移間に挟まれたパス区間毎に原稿を分割し、出力候補として出力候補記憶手段144に格納する(ステップS3)。ここで、出力遷移aPにたどり着くまで逆向きに進みながら、出力可能な出力遷移aL(時間軸に沿ったL番目(ただしL>P)の出力遷移)を通過する度に原稿を分割してもよいし、出力遷移aPの側から出力可能な出力遷移aLを通過する度に原稿を分割してもよい。また、出力可能な出力遷移aLとは、出力遷移のシンボルが出力候補になるものであるが、後に編集距離判別手段146により棄却され出力されない出力遷移も含んでいる。このような出力候補の編集距離をDと表記する。
そして、編集距離算出手段145は、出力候補の編集距離Dを算出する(ステップS4)。具体的には、出力遷移aLの出力シンボルに対応する区間、すなわち、WFST上を出力遷移aLから逆向きに進んだときの直前の出力遷移aL-1と当該出力遷移aLとの間に挟まれたパス区間、についての編集操作回数(つまり、<S>、<D>、<I>を通った回数)を、同区間の単語数で割った値を、当該出力遷移aLにおける編集距離DLとして算出する。すなわち、同区間の編集操作回数をeLとし、同区間の単語数をNL rとすると、出力遷移aLにおける編集距離DLは、eL/NL rで表される。
そして、編集距離判別手段146は、所定の出力候補を選択し、算出された編集距離Dが閾値T以下であるか否かを判別する(ステップS5)。編集距離Dが閾値T以下である場合(ステップS5:Yes)、編集距離判別手段146は、WFST上の当該パス区間の出力遷移を確定し、その出力シンボルを誤り修正結果として確定する(ステップS6)。さらに、編集距離判別手段146は、今回確定した出力シンボルのデータを、確定出力記憶手段147に記憶されたスタックに積み(ステップS7)、ステップS8に進む。
そして、編集距離判別手段146は、前方に依然として選択すべき出力候補がある場合(ステップS8:No)、前記ステップS5に戻る。一方、すべての出力候補選択が選択された場合(ステップS8:Yes)、すなわち、切り出されたすべての原稿に対応した各パス区間に対して算出された編集距離についての判定処理が終了した場合、原稿出力手段150は、その時点でスタックに積まれている出力シンボルのデータをスタックが空になるまで順次出力する(ステップS9)。これにより、前方側に配置された原稿から順に出力される。
ここで、編集距離判別手段146は、すべての出力候補選択を選択した場合(ステップS8:Yes)、スタックに積まれた出力シンボルに対応する確定単語の時刻が最も新しいものを今回のトレースバック処理で確定した確定時刻として確定時刻記憶手段148に格納する。
また、前記ステップS5において、編集距離Dが閾値Tより大きい場合(ステップS5:No)、データをスタックに積むことなくステップS8に進む。
つまり、原稿出力手段150は、毎回のトレースバック処理でスタックに積んだデータを、確定された原稿として逐次出力する。この際に、音声認識結果のうち、所定のパス区間の編集距離Dが閾値Tより大きい場合、信頼度が低いパスなので、当該パス区間の出力遷移の出力シンボルは、誤り修正結果としては採用されず、出力もされない。
[編集距離の閾値Tの決め方]
音声認識の認識精度が90%くらいならば、編集距離の値も90%くらいになる可能性がある。判別に用いる編集距離の閾値Tとしては、音声認識の認識精度よりも充分低いところ、例えば単語一致率の信頼度分だけ下方にマージンを取って設定することが好ましい。ここで、単語一致率の信頼度は、WFSTのネットワークの2つの出力遷移間の単語数に依存する。
その他の要因としては、原稿テキスト集合200に含まれる原稿の候補の文章としての重なりがどのくらいの割合であるのかという点も考慮して閾値Tを決めることが好ましい。例えば、下記(E1)〜(E3)に示す文の場合、文章としての重なりが80%くらいの割合で含まれている。
(E1) 今日 の 天気 は 晴れ です
(E2) 今日 の 天気 は 雨 です
(E3) 今日 の 天気 は 曇り です
このような場合、編集距離の閾値も80%くらいに設定してしまったとしたら所望の動きが実現できない。なお、ニュース原稿の一文ごとに出力遷移を配置し、閾値Tを50%とした条件で実験した場合、問題なく動作することが確認できた。
[WFSTのオプション]
ここで説明するWFSTのオプション(オプション1から3まで)は、参考構成である。WFSTの合成や最小化は、必ずしも行わなくても良い。例えば、処理の都合上、WFSTの状態遷移をツリー構造とする場合には、下記のオプションのうち、ツリー構造を維持できなくなるような処理を導入しなくて良い。なお、ここでのツリー構造とは、終端のノードを除いては、複数のノードからの遷移による一つのノードへの合流がない構造を言う。つまり、始端ノード(始端ノードは、ツリーにおける根)からみて、枝分かれするのみである。
<オプション1:言い換えを受理するWFSTの構築>
WFSTの情報源となる原稿には、それが読まれるときに、読み飛ばされる句や、言い換えられる句、補足される句が含まれている場合がある。これらの一部には、定型で高い頻度で起こるものがある。例えば、ニュース番組の原稿では、取材元を表す「警視庁によりますと、」などの句は、読み飛ばされやすい定型句である。ただし、これを読み飛ばしたとしても、ニュース主文(5W1H)の文意に変わりはなく、実用上の問題はない。
オプション1では、このような定型の言い回しをWFSTに追加しておくことで、精度よく修正結果を出力できるようにしたものである。WFSTは、従来公知のように、音声認識デコーダや機械翻訳などに用いられており、種々の演算アルゴリズムが知られている。例えば、合成(図7(a)参照)、最小化(図7(b)参照)、決定化(図7(c)参照)を行うアルゴリズムを適用することができ、効率よい状態遷移機械を構成できるという特徴がある。上記の言い回しの追加については、原稿から構築したWFSTとは別に、言い回しを追加するためのWFSTを別途構築しておき、原稿から構築したWFSTと合成することにより、効率よく実現できる。
例えば、言い換え例については、過去の同種の番組の原稿と、実際に読み上げられた単語列と、の差分から、頻度が高く、同言い換えによって文意に変更がないものを選別して用意しておく。この選別された言い換え例ごとに、言い換えを合成するためのWFSTを構築しておき、原稿から構築したWFSTと合成演算を施すことにより、言い換えに対応可能なWFSTを構築することができる。ここで、WFSTの合成について図7(a)を参照して説明する。
図7(a)では、ノードを円形で示している。図7(a)の左側の上の図は、原稿から構築したWFSTの一例の模式図であり、図7(a)の左側の下の図は、追加されるWFSTの一例の模式図である。図7(a)の右側の図は、原稿から構築したWFSTと、追加されるWFSTとを合成した後のWFSTの模式図である。
<オプション2:WFSTを作成する際のオプションA>
WFSTを作成する際に、必要があればWFSTの最小化を行ってもよい。ここで、WFSTの最小化について図7(b)を参照して説明する。図7(b)の左側の図は、原稿から通常の手法で構築されたWFSTの一例を示す模式図である。ここで、a1〜a6は異なる単語を示す。
図7(b)の右側の図は、原稿から通常の手法で構築されたWFSTを最小化した後のWFSTの模式図である。最小化した後のWFSTには、元のWFSTの3つの単語列において共通する接頭辞(単語a1,a2)について、配列順序(単語位置)を考慮してノード(状態)を集約し、最小個数の枝(遷移)が配置されている。
WFSTの最小化によれば、同じ接頭辞を有する単語列(文)を同一の遷移で共有できるので、演算量を削減することができる。
<オプション3:WFSTを作成する際のオプションB>
また、WFSTを作成する際に、必要があればWFSTの決定化を行ってもよい。ここで、WFSTの決定化について図7(c)を参照して説明する。図7(c)の左側の図は、図7(b)の右側に示すWFSTと同じ形状のWFSTの模式図である。ただし、図7(b)において単語a4が記載されていた遷移には、代わりに出力文o1が記載されている。同様に、単語a5が記載されていた遷移には、代わりに出力文o2が記載され、単語a6の代わりに出力文o3が記載されている。
図7(c)の右側の図は、元とするWFSTを決定化した後のWFSTの模式図である。決定化した後のWFSTでは、元のWFSTと比べて、出力文o3が1つ前(1つ左側)の遷移に記載されている点が異なっている。
元のWFSTには、左から2番目のノードから次のノードへ状態遷移する際に分岐があり、この2番目のノードから図中下のノードに遷移した時点で、出力文がo1やo2ではなくo3になることが決定的であることが分かる。そこで、少しでも早く推定結果を出力するために、決定化した後のWFSTでは、出力文の位置を変更したものである。
WFSTの決定化によれば、出力文を、接頭辞がユニークとなる遷移に移動して、出力文を旱期に確定できるようになるなどの利点がある。ただし、WFSTを作成する際にWFSTの決定化を行った場合、原稿探索手段140による最尤仮説の探索処理でも対応できるように設定変更が必要である。つまり、WFSTの決定化を行わない場合に比べて、編集距離を計算するためのパス区間を出力遷移の前後にシフトさせる必要がある。加えて、前後のパス区間の伸縮分を吸収できるように、閾値Tをより厳しい値(小さい値)に設定する必要がある。
[他のオプション]
本形態は、多言語字幕の生成にも応用可能である。例えば図2に示すWFSTのノード015の次の<Emi2>が記載された出力遷移に、ノード010〜015までの和文に対応した英文を出力シンボルとすることにより、日本語の音声入力に対応した英語の字幕を生成することができる。また、日英の字幕を同時に生成する必要がある場合には、「今週 も まとまった 雨 は …」にその英訳文を併記したものを利用することができる。
以上説明したように、本実施形態に係る音声認識誤り修正装置100は、原稿中の文が、任意の順番で連続して発声されるという拘束のもと、文境界を固定せずに、認識結果と原稿との対応を単語単位でとることで、従来のブロック照合方式の自動修正誤りを解消する。一方で、より精度の高い修正出力を得るためには、出力は、文、又はそれに準じる単位があった方が望ましい。この二律背反を解消して両立させるため、音声認識誤り修正装置100は、認識結果と原稿との対応を、重み付き有限状態トランスデューサー(WFST)を用いて求めている。
そして、音声認識誤り修正装置100は、認識単語の単語列が原稿の単語列と比較して、どこと一番マッチしているのかを、従来のブロック照合方式(特許文献1の技術)の長さN(単語数N)の単語連鎖ブロックより長い範囲で照合している。従来のブロック照合方式と比べると、認識単語の単語列と原稿の単語列とを照合するための区間を、単語連鎖ブロックに相当する区間だけではなく、原稿の文章を遡っていった、もっと長い文章全体で照合する。そのため、どこでマッチさせるのがよいのかが従来よりも明白に分かり、自動修正誤りを従来よりも低減できる。
以上、実施形態に基づいて本形態に係る音声認識誤り修正装置について説明したが、本形態はこれらに限定されるものではない。例えば、発話音声の認識単語に対する推定対応原稿の信頼度が高いか否かを編集距離を用いて判別することとしたが、編集距離のほか、原稿と認識結果の一致率、一致精度、脱落率、挿入率を利用したり、それらを併用したりしてもよい。
また、例えば図2に示すWFSTの<EmiX>が記載された出力遷移に、音声認識の結果では得られない「、」や「。」、記号なども原稿の表記に従って出力シンボルに埋め込むことができる。この場合、より読みやすい字幕を生成することができる。
本形態において、字幕を付けることは必須ではない。また、音声認識の対象となる話す予定の内容がある程度決まっていて、その内容を事前に入手できるようであれば、必ずしも放送番組の音声を前提とするものでなくてもよい。
以上、説明した方式1の構成を整理すると次の通りである。
[1−1]原稿テキスト集合に含まれる原稿を読み上げた発話音声を認識する音声認識装置が出力する認識単語列を入力として受け付け、予め記憶した対応原稿集合の中から対応原稿の単語列を推定することで、前記認識単語列に含まれる誤りを修正する音声認識誤り修正装置であって、前記原稿テキスト集合を予め読み込んで構築された前記対応原稿集合であって状態を表すノードとノード間の状態遷移を表す枝とをネットワークとして有した重み付き有限状態トランスデューサで表された前記対応原稿集合を記憶する対応原稿集合記憶手段と、前記認識単語列の単語の入力を受け付ける時刻毎に、前記重み付き有限状態トランスデューサのネットワーク上を遷移可能な状態のスコアをノードデータとして計算および更新するノードデータ更新手段と、前記計算されたノードデータを更新時刻毎に記憶するノードデータ記憶手段と、最終最良仮説を確定するための全原稿についての全認識単語列の認識結果の入力を待たずに予め定められた処理開始条件が満たされる度に、その時点で記憶されている前記ノードデータに基づいて前記ネットワーク上をトレースバックしながら、前記最終最良仮説を部分的に近似した仮説を誤り修正結果として逐次確定する原稿探索手段と、前記誤り修正結果として確定された対応原稿を逐次出力する原稿出力手段と、を備えることを特徴とする音声認識誤り修正装置。
[1−2]対応原稿集合記憶手段に記憶された前記対応原稿集合として予め構築された重み付き有限状態トランスデューサは、前記ネットワークとして、前記対応原稿集合に含まれる対応原稿毎に始点ノードと終点ノードとの間に前記対応原稿の単語列を構成する各単語の入力遷移をそれぞれ表す枝と前記単語列の出力遷移を表す枝とを含み、前記終点ノードから前記始点ノードに遷移する状態遷移を表す枝とを備えると共に、単語の置換に対応して任意の単語を受理する状態遷移を表す枝と、単語の挿入に対応して任意の単語を受理する状態遷移を表す枝と、単語の削除に対応して入力が無くても出力側に遷移する状態遷移を表す枝と、のうちの少なくとも1つを備えることを特徴とする前記[1−1]の音声認識誤り修正装置。
[1−3]前記原稿探索手段は、前記対応原稿集合に含まれる対応原稿の単語列と、入力された前記認識単語列との編集距離として、前記重み付き有限状態トランスデューサのネットワーク上で予め定められた範囲のパス区間の対応原稿の単語列についての挿入、置換、削除に係る編集操作回数を、当該パス区間の単語数で除した値を算出し、前記パス区間毎に算出された前記編集距離を所定の閾値と比較することで、前記最終最良仮説を近似することを特徴とする前記[1−2]の音声認識誤り修正装置。
[1−4]前記原稿探索手段は、前記編集距離が前記閾値以下である対応原稿の単語列が確定された時点で、前記重み付き有限状態トランスデューサのネットワークにおいて当該対応原稿のパス区間以前に逐次出力が確定された対応原稿までさかのぼって、前記編集距離が前記閾値以下となったすべてのパス区間の対応原稿を前記原稿出力手段によってネットワークの上流から順次出力させ、前記編集距離が閾値より大きなすべてのパス区間の対応原稿を出力させないことを特徴とする前記[1−3]の音声認識誤り修正装置。
[5]対応原稿集合記憶手段に記憶された前記対応原稿集合として予め構築された重み付き有限状態トランスデューサは、前記ネットワークとして、前記原稿テキスト集合に含まれる単語列と同様の意味を有する予め定められた言い換え候補の単語列を受理する枝、または/および、前記原稿テキスト集合に含まれる単語列であって前記音声認識装置が出力する認識単語列において脱落する可能性があるものとして予め定められた単語列を受理する枝を、さらに備えていることを特徴とする前記[1−1]から[1−4]に記載の音声認識誤り修正装置。
[6]前記原稿探索手段は、前記発話音声がない無音期間が所定の期間に達した場合、または、前記音声認識装置が出力する認識単語列としての単語の入力数が所定の単語数に達した場合、前記処理開始条件が満たされたものとして、前記重み付き有限状態トランスデューサのネットワーク上をトレースバックすることを特徴とする前記[1−1]から[1−5]に記載の音声認識誤り修正装置。
[方式2:前提とする音声認識誤り修正装置の形態]
本形態について、図面を参照しながら説明する。本形態は、音声認識結果などの誤りの混入が不可避な単語列と、その単語列の情報源となった原稿などの対応を早期に確定する技術を用いる。これにより、音声認識結果に含まれる誤りを自動修正する。
[1.本形態を適用したシステムの構成]
図8は、本形態に係る音声認識誤り修正装置を含むシステムの構成の概略を示すブロック図である。図示するように、当該システムは、音声認識誤り修正装置100と、原稿テキスト記憶装置700と、音声認識装置720と、トランスデューサー構築装置740とを含んで構成される。
同図に示すシステムは、放送局におけるニュース番組に音声認識を用いて字幕を付与する場合に適用するための音声認識誤り修正装置600を含む。このような番組における発話音声は、概ね事前に用意された原稿テキストに基づいているという特徴がある。ところで、大規模なキー放送局では、字幕を放送するために、音声認識結果に含まれる認識誤りを人手で修正するためのオペレーターを配置している場合がある。一方で、地方放送局では、様々な事情によりそのようなオペレーターを配置することが難しいことが多い。本形態によれば、そのような地方放送局においても、オペレーターを配置することなく、音声認識謝りの修正を行うことができるようになる。
音声認識誤り修正装置600は、音声認識装置720が出力する認識結果の単語列(認識単語列)を入力として受け付け、予め記憶した対応原稿の単語列を推定することで、認識単語列に含まれる誤りを修正するものである。
ここで、音声認識誤り修正装置600が推定処理のために予め記憶した情報は、原稿テキスト記憶装置200に記憶されている原稿テキストを予め読み込んで構築された対応原稿の集合である。この対応原稿の集合は、状態を表すノードと、ノード間の状態遷移を表す枝(アーク)とをネットワーク(有向グラフ)として有する重み付き有限状態トランスデューサー(Weighted Finite State Transducer:以下、「WFST」、または単に「有限状態トランスデューサー」という)で表される。
音声認識誤り修正装置600は、WFSTのネットワーク上で最良(最尤)仮説を逐次調べ、WFST上の対応原稿の単語列と認識単語列との編集距離を基準に、全ての認識結果の単語列の入力を待たずに最終最良仮説を近似して部分的に修正結果を逐次確定する。
音声認識誤り修正装置600は、音声認識装置720から認識結果の単語が入力されるのに対応して、WFSTを用いて、入力単語を受理可能な遷移を求めてそのスコアを計算し、累積スコアに対する閾値を用いて枝刈りを行いながら、ビタビアルゴリズム(Viterbi Algorithm)による探索(ビタビ探索)を用いる。なお、ビタビアルゴリズムは、既存の技術であり、受信系列に対して送信符号に最も近い符号系列、即ち最大尤度の符号系列を推定する際に、トレリス線図を用いた探索を行う、効果的な方法である。
通常のビタビ探索では、全ての入力が観測されてから、最もスコアが良くなるパスをトレースバックして最良仮説を出力する。そのため、通常の探索方法では、全ての入力が観測され終わる前に、古い入力から順に逐次修正結果を出力するといったことはできない。例えば、テレビ放送番組の放送音声を認識した結果から字幕を制作してリアルタイムでテレビ画面の画像に重畳する場合を想定すると、通常のビタビ探索による最尤系列は番組の最後まで単語を入力しないと確定することができない。これでは番組が終了してしまうことになるので、このような運用に対して通常のビタビ探索は不適である。
一方、本形態による音声認識誤り修正装置600は、ビタビ探索を用いつつも、適時に、最尤系列を逐次近似してトレースバックする。すなわち、予め定められた処理開始条件が満たされる度に、その時点で最もスコアが良くなるパスをトレースバックして、確定できる出力遷移を決定するので、修正結果を逐次出力することができる。ここでトレースバックされるパスは、最良仮説の近似であるが、各出力遷移に対応する入力単語列と、原稿の単語列との編集距離を信頼度の基準にして同パスを確定するか否かを決定して近似精度の向上をはかる。なお、その詳細については後で説明する。
原稿テキスト記憶装置700は、原稿テキストのデータを記憶する。原稿テキストは、複数の記事を含む。各記事は、複数の文を含む。
原稿テキスト記憶装置700は、人が話す予定の内容をテキストに書き起こしたものの全体を記憶する。原稿テキスト記憶装置700は、例えば文、文章、段落といった単語列の区切りの単位や、そのテーマやトピック等の内容分類に応じて、多数の細分化された個別の内容を表すテキストを記憶する。このような個別の内容を、以下では単に原稿と呼ぶ。また、単語列の単位は一例として文である。
原稿テキスト記憶装置700は、例えばハードディスク装置や半導体メモリ等の一般的な記憶手段を用いて構築されている。原稿テキスト記憶装置700は、いわゆるクラウドサービスとして、通信ネットワーク等を通してアクセスされるものであっても良い。
音声認識装置720は、原稿テキスト記憶装置700に含まれる原稿701を人(アナウンサー等)が読み上げた発話音声を認識し、認識結果の単語列を出力する。
音声認識装置720は、生の音声データが入力された場合に、隠れマルコフモデル(HMM)による音響モデルと、言語モデルとを利用して、音声データを認識し、その認識した結果を認識単語列として生成するものである。本形態において、音声認識装置720は、特に限定されず、公知の技術を用いたものを採用することができる。
なお、後述するように、放送におけるニュース番組では、各ニュース項目に対して複数のバージョンの原稿が入稿されており、どのバージョンをどの順番で放送するのかは事前に確定できない。そのような状況で、音声認識装置720は、音声認識を行い、その発話音声に対して、そもそも、対応する原稿が存在するのか否かを即座に調べることが求められる。そのため、音声認識に用いる言語モデルは、高精度に音声認識結果と原稿との対応をとるために、原稿テキスト記憶装置700に記憶されているテキストデータを用いて予め適応化しておき、原稿通りに読み上げた場合の認識精度が高くなるようにしておくことが好ましい。
トランスデューサー構築装置740は、音声認識誤り修正装置600で利用する対応原稿の集合(対応原稿集合)としてWFSTを構築するものである。トランスデューサー構築装置740は、音声認識の対象となる読み上げ原稿、つまり、原稿テキスト記憶装置700に含まれる原稿文から、音声認識誤り修正装置600で利用するためのWFSTを事前に構築する。WFSTは、入力シンボルと出力シンボル、遷移重みを有する有限状態機械であり、単語と文などの異なる粒度の入出力を効率よく扱うことができる。このWFSTの構築については後で説明する。
トランスデューサー構築装置740は、図示するように、単語ネットワーク登録部741と、編集ネットワーク登録部742とを含んで構成される。
単語ネットワーク登録部741は、原稿テキスト記憶装置700に含まれる原稿テキストを読み出し、予め定められた所定単位(例えば文単位)ごとに、以下に述べる一連の処理を行う。即ち、単語ネットワーク登録部741は、WFSTのネットワークの始点ノードから開始して、原稿テキスト記憶装置700から原稿テキストに含まれる単語を読み込む度に、その単語を受理するための状態遷移(入力遷移)の枝と新たなノードとを作成する。単語ネットワーク登録部741は、原稿内の所定単位(例えば文単位)の最後に至るまで、順次、読み込んだ各単語について上記の枝とノードの作成を行う。
そして、WFSTのネットワークにおいて、読み込んだ単語列の出力遷移の枝を追加して終点ノードに連結する。
編集ネットワーク登録部742は、単語ネットワーク登録部741で作成されたWFSTのネットワークのノード間に、単語の置換に対応して任意の単語を受理する状態遷移を表す枝と、単語の挿入に対応して任意の単語を受理する状態遷移を表す枝と、単語の削除に対応して入力が無くても出力側に遷移する状態遷移を表す枝とを追加するものである。
なお、本形態では、システムは、例えば下記の(A1)〜(A7)の条件下で動作する。
(A1)原稿テキスト記憶装置700に記憶されている原稿文のうちの複数の原稿文が音声認識対象として読みあげられる。
(A2)1つのニュース項目に対するニュース原稿も、いくつかの更新された版(バージョン)が用意されていて、どのバージョンの原稿が何時のニュース番組で読まれるのかを事前に確定することはできない。
(A3)複数の原稿文がどのような順番で読まれるのか事前には分かっていない。
(A4)原稿テキスト記憶装置700に含まれる原稿文の中には、読みあげられずにスキップされるものもある。
(A5)読む人(アナウンサー、キャスター、記者等)によっては、元の原稿をそのまま忠実に読むのではなく、視聴者への伝わりやすさ等を考慮して敢えて言い回しを変えてしまう場合や、読み誤りが生じる場合などがある。
(A6)音声認識装置720の認識誤りに起因する意昧不明な字幕を送出して視聴者に誤解を与えたり不快にさせたりすることを回避することを優先課題としたい。そのため、意味不明な認識結果の場合には送出せず、代わりに、事前に編集者により校正され内容が確認されている、発話内容に最も近いと自動推定された原稿(事前原稿)を字幕として送出する。
(A7)インタビュー部分などであって認識結果に対応する原稿が元々存在しない場合、自動推定は不可能なので、元原稿が無いインタビュー部分などについては字幕を送出しない。
[2.一般的なWFSTの例]
図9は、一般的なWFSTの例を示す概略図である。WFSTは、状態遷移の定義として表現される。状態遷移は、状態を表すノードと、状態遷移を表す枝と、を有する。なお、状態遷移のことを単に遷移という場合もある。図示するWFSTでは、入力シンボルを単語、出力シンボルを所定の単語列とする。また、この所定の単語列は、文である。同図において、ノードは楕円形で示している。また、枝は矢印付きの線で表している。つまり、枝は、方向を有している。
同図では、楕円形の各ノードに、ノードを識別するための3桁の数字を付している。始点ノードはノード001であり、終点ノードはノード008である。この例では、始点と終点との間には、ノード002〜ノード007が直線状に並べられている。また、始点と終点との間には、上記のノード002〜ノード007の系列とは並列に、ノード010〜ノード015が直線状に並べられている。さらに、始点と終点との間には、上記のノード002〜ノード007の系列およびノード010〜ノード015の系列とは並列に、ノード018〜ノード023が直線状に並べられている。また、状態遷移を表す枝は、単語または<S>、<I>、<D>、<Emi1>、<Emi2>、<Emi3>、<eps>といった記号が付されている。また、状態遷移を表す枝は、遷移元のノードから遷移先のノードに向かって伸びている。
図示する状態遷移について一般化して説明すると、このWFSTにおいては、各遷移に、(Si/So:ω)のパラメーターが設定されている。ここで、Siは、その状態遷移が受理する単語入力を表す。また、Soは、その状態遷移が出力する単語列を表す。出力される単語列は、文または文の一部である。また、ωは状態遷移重みを表す。つまり、各遷移には、3つ組のパラメーターが設定されている。なお、図9では、便宜上、状態遷移が有するパラメーターのすべてを示しているわけではなく、各状態遷移に対応して、3つ組のパラメーターのうちのSiまたはSoのいずれかのみを示している。
ここで、同図上に記載された単語を一般化して単語sと表記する。なお、アルファベットの大文字と小文字とを区別している。同図において、単語sは、原稿の単語列が含んでいる単語である。ある状態遷移に単語sが付加されているとき、当該状態遷移はその単語sが入力されたときにのみ起こることを表している。つまり、ある状態において、その状態を遷移元とする状態遷移に単語sが付されているとき、認識単語列の中の単語として単語sが入力された場合にのみその状態遷移が起こる。つまり、単語sが記載された状態遷移は、音声認識された単語sを受理して進む遷移である。なお、状態遷移が起こるとその遷移先の状態が次の状態となる。
図示する状態遷移において、ノード002〜ノード007の系列は、「先月/の/関東甲信/地方/は/・・・」という単語列に対応する。但し、ここで、スラッシュ「/」は単語の区切りである。また、ノード010〜ノード015の系列は、「今週/も/まとまった/雨/は/・・・」という単語列に対応する。また、ノード018〜ノード023の系列は、「気象庁/に/より/ます/と/・・・」という単語列に対応する。このように、ここで構築するWFSTは、全ての原稿文を自由に接続できるネットワークである。
同図において、単語sが記載された遷移についてのパラメーターは、(s/ε:0.0)で表される。つまり、この3つ組のパラメーターは、単語sを入力として受理し、出力がないことを表す。εは、単語がないことを表す記号である。つまり、出力他の語列が空である。また、3つ組のパラメーターは、遷移重みの値が0.0であることを表す。重みの値の設定方法はさまざまであるが、一例としては、ペナルティがない場合に遷移重みの値として0.0を用い、負の値の重みをペナルティとして用いることができる。状態遷移の定義に基づいて例えば現状態を推定する場合に、この遷移重みの値の所定の系列における総計をスコアとして用いることができる。一例として、同図において単語「先月」が付された状態遷移は、3つ組のパラメーターとしては、(先月/ε:0.0)で表される。
同図において、<S>が付された状態遷移は、置換単語を受理するための遷移である。つまり、原稿の単語列が含んでいるある単語sの位置に対応する認識単語列の位置に入力した単語が、原稿のある単語sとは異なる任意の単語に置換されていたときに、その置換単語を受理するための遷移である。以下、原稿の単語列が含んでいるある単語sの位置において、この単語sとは異なる任意の単語のことを、任意の単語*と表記する。アスタリスクは、ワイルドカードを表す表記である。この置換には、例えば「再開」が同音異義語の「再会」に翻字されて認識された場合も含まれる。
同図において、<S>が付された状態遷移は、任意の単語*を受理可能である。この<S>が記載された遷移についてのパラメーターは(*/ε:ωs)で表される。この3つ組表現においては、*は同遷移が受理できる任意の単語入力を表し、εはこの遷移で出力は無いことを意昧する。また、ωsは遷移重みの1つであって、この遷移に対して単語sとは異なる任意の単語*が入力されたときに課すペナルティ(以下、置換ペナルティという)を意味する。この置換ペナルティωsは、ノードスコアを下げる数値で表され、例えば−1.0を用いる。例えば、<S>が付された状態遷移は、3つ組のパラメーターとしては、 (*/ε:−1.0)と表すことができる。
同図において、<I>が付された状態遷移は、挿入単語を受理するための遷移である。つまり、発話者に起因するなどして、発話内容に情報の追加や言いよどみによる分節などの繰り返しがあった場合、原稿どおり又は置換されたと認識された単語列に続く位置に挿入された単語を受理するための遷移である。また、音声認識装置220に起因して、原稿通りならば1単語と認識すべきところを、複数単語として認識するような認識誤りで生じて、原稿通りの1単語に続く位置に挿入された単語を受理するためにも、<I>が付された状態遷移を用いることができる。
同図において、<I>が付された状態遷移は、任意の単語*を受理可能である。この<I>が記載された遷移についてのパラメーターは、3つ組による表現で、(*/ε:ωi)で表される。ここで、*は任意の単語入力を表し、εは空の単語を表す。つまり、この状態遷移は、任意の単語を受理し、出力単語を持たない。また、ωiは遷移重みの1つであって、この遷移に対して任意の単語*が入力されたときに課すペナルティ(以下、挿入ペナルティという)を意味する。この挿入ペナルティωiは、ノードスコアを下げる数値で表され、例えば−1.0を用いる。例えば、<I>が付された状態遷移は、3つ組のパラメーターで表すと、(*/ε:−1.0)である。
なお、<I>が付された状態遷移における遷移先の状態は、同遷移における遷移元の状態と同じである。
同図において、<D>が付された状態遷移は、脱落単語を受理するための遷移である。つまり、発話者に起因するなどして、発話内容の一部に句などの脱落があった場合、認識単語列において原稿から脱落した単語の位置を特定するための遷移である。また、音声認識装置220に起因して、原稿通りならば複数単語と認識すべきところを、単語が削除されて1単語として認識するような認識誤りで生じて、認識単語列において原稿から脱落した単語の位置を特定するための遷移である。
同図において、<D>が付された状態遷移は、単語の入力が無くても起こり得る遷移である。この<D>が記載された遷移についての3つ組のパラメーターは、(ε/ε:ωd)で表される。ここで、スラッシュの前のεは、この遷移で受理する入力が無いことを表す。また、スラッシュの後のεは、この遷移で出力が無いことを意昧する。また、ωdは遷移重みの1つであって、この遷移で単語が脱落したときに課すペナルティ(以下、脱落ペナルティという)を意味する。この脱落ペナルティωdは、ノードスコアを下げる数値で表され、例えば−1.0を用いる。例えば、図9で<D>が記載された遷移は、3つ組のパラメーターで表すと、(ε/ε:−1.0)である。
なお、<D>が付された状態遷移における遷移元および遷移先の状態は、脱落する単語に関する状態遷移と同じである。例えば、ノード002からノード003への、<D>が付された状態遷移は、並列する単語「の」が脱落したときにもノード002からノード003へ遷移を可能とする(ただし、上記の脱落ペナルティを伴う)ものである。
同図において、<Emi1>や<Emi2>や<Emi3>が付された状態遷移は、所定の単語列として文を出力するための遷移である。ここで出力される文が、音声認識処理によって認識された単語列の修正結果である。これらの<Emi1>や<Emi2>や<Emi3>が付された遷移についてのパラメーターは(ε/L:0.0)で表される。ここで、εはこの遷移において単語の入力が無いことを表す。また、Lはこの遷移で出力される単語列(文)がLであることを表す。
例えば、<Emi1>が付された状態遷移は、3つ組のパラメーターで表すと、(ε/先月の関東甲信地方は…:0.0)である。つまり、この場合、Lは、始点ノード001からノード002を経由してノード007に至る各遷移に並べられた単語列「先月/の/関東甲信/地方/は/…」をすべて順番に(直列に)繋げた単語列である。なお、パラメーターにおける0.0は遷移重みの1つであって、この遷移に対して文を出力するときには、ペナルティが課されないことを意味する。なお、<Emi2>が付された状態遷移のパラメーターは、同様に、(ε/今週もまとまった雨は…:0.0)である。また、なお、<Emi3>が付された状態遷移のパラメーターは、同様に、(ε/気象庁によりますと…:0.0)である。
同図において、<eps>が記載された遷移は、終点ノードと始点ノードを連結する遷移であり、イプシロン遷移(ε遷移)と呼ばれている。<eps>が付された状態遷移は、原稿テキスト集合に含まれる所定の単語列(文)が、連続して発話されるという拘束を与える遷移である。<eps>が付された状態遷移についてのパラメーターは(ε/ε:ωu)で表される。ここで、スラッシュの前のεは、この遷移で単語の入力が無いことを表す。また、スラッシュの後のεは、この遷移で出力が無いことを表す。また、ωuは遷移重みの1つであって、適切な重み(数値)を与えることにより、WFSTは、より長く一致する文のスコアを高くすることができるようになる。
[3.本形態におけるWFST]
図10は、本形態において用いるWFSTの例を示す概略図である。図9を用いて説明した一般的なWFSTと、本形態で用いるWFSTの違いを中心に、以下、説明する。
図10に示すWFSTもまた、ノード(状態)と枝(状態遷移)から成る状態遷移図で表される。同図では、ノードを黒丸または黒四角の記号で表し、枝を矢印付きの線で表す。各ノードには、ノードを識別するための3桁の整数を付している。同図に示す状態遷移図においても、始点のノード601と終点のノード608が存在する。そして、例示する状態遷移図においては、始点のノード601から終点のノード608へ、並列する2本の系列が存在する。その第1の系列は、始点のノード601から、ノード602〜ノード607を経て、終点のノード608に至る。また第2の系列は、始点のノード601から、ノード612〜ノード617を経て、終点のノード608に至る。これらの各系列が、原稿テキストにおける文に対応する。ここでは、簡単のために2文のみを示しているが、現実には文の数に制約はない。そして、終点ノード608から始点ノード601に戻るための枝(前述の、イプシロン遷移)が存在する。
各々の状態遷移は、遷移元の状態と、遷移先の状態と、入力記号(単語)と、出力記号(単語列)と、遷移重みの値で定義される。一例として、同図において、ノード602からノード603への状態遷移は、受理する入力単語がW2であり、出力する記号はε(つまり、出力単語はない)である。また別の例として、同図において、ノード614からノード615への状態遷移は、受理する記号がε(つまり受理する単語はない)であり、出力する記号はC3という単語列である。
なお、同図においては、状態遷移の重みの表示を省略している。また、同図においては、音声認識誤りを受理するための遷移を省略している。つまり、置換単語を受理するための状態遷移や、挿入単語を受理するための状態遷移や、脱落を許容するための状態遷移の表示を省略している。
同図に示すWFSTの特徴は、原稿文をチャンク(chunk,かたまり)に分割し、チャンクの切れ目における状態遷移として出力遷移を配置した構成としている点である。なお、出力遷移とは、出力シンボルが空ではない状態遷移である。つまり、文の最後だけではなく、文の途中における状態遷移でも単語列を出力する場合がある。同図における具体例としては、原稿文(W1,W2,W3,W4,W5)を、o1とo2という複数のチャンクに分割している。チャンクo1は単語列(W1,W2,W3)であり、チャンクo2は単語列(W4,W5)である。そして、チャンクo1とo2との間に、入力記号がε(つまり、入力単語がない)であり出力記号がC1という出力遷移を設けている。なお、ノード607からノード608への状態遷移は、文末での出力遷移であり、その出力記号はC2である。同様に、原稿文(W6,W7,W8,W9,W10)もまた、o3(不図示)とo4(不図示)という複数のチャンクに分割している。チャンクo3は単語列(W6,W7,W8)であり、チャンクo4は単語列(W9,W10)である。そして、チャンクo3の後には、単語列C3を出力する出力遷移が設けられている。また、チャンクo4の後には、単語列C4を出力する出力遷移が設けられている。
上記のように、本形態では、文をチャンクに分割し、チャンクの終端に出力遷移を設けている。なお、文のチャンクへの分割のしかたは任意である。文中の文法的にあるいは意味的に切れ易い箇所でチャンクへの分割を行っても良いし(例えば、構文上の句の単位できるなど)、所定の単語数で機械的に複数のチャンクへの分割を行っても良い。また、読みやすさのために記者またはアナウンサーが改行している箇所で分割しても良い。また、原稿中の文の重複度と必要とする認識誤りの訂正能力に応じて適切な長さのチャンクに分割しても良い。また、許容される字幕の表示遅れに応じて、適切な長さのチャンクに分割しても良い。長い単語列をチャンクとして設定すると、修正精度は高くなるが、送出する字幕単語列の確定が遅くなる。短い単語列をチャンクとして設定すると、送出する字幕単語列の確定は早く行うことができるようになるが、修正精度は低下する。また、期待される音声認識の認識精度と原稿と読み上げ音声の一致度合いに応じて適切な長さのチャンクへの分割を行うようにしても良い。
[4.WFSTの構築方法]
次に、トランスデューサー構築装置740によるWFSTの構築方法について説明する。トランスデューサー構築装置740がWFSTを構築するに当たり、原稿テキスト記憶装置700に含まれる原稿テキストは、予め文に分割しておく。なお、文の最後は句点によって区切られる場合には、句点を目印に分割することができる。また、原稿テキストの構文解析を行うことによって、構文ルールから文の切れ目を検出して文への分割を行うようにしても良い。また、人手によって目印がつけられた箇所で文への分割を行うようにしたりしても良い。
本形態では、原稿テキスト記憶装置700に記憶されているテキストは、ニュース番組で取り上げられる可能性のある読み原稿である。ここで用意される原稿は、複数のニュース項目のための原稿を含む。また、各ニュース項目は、複数の文を含む。本形態では、ニュース項目が読まれる順番、あるいは文が読まれる順番を予め特定しておく必要がない。読まれる可能性のある原稿をすべて用意して、原稿テキスト記憶装置700に記憶させておけばよい。また、それらの原稿のうち、結果的に読まれないニュース項目や読まれない文があっても良い。
なお、WFSTの構築に先立って予め人手により原稿を整形しておくようにする。この整形により、必ず連続して読み上げられる単語列(文)を一つの文の単位としてまとめる。また、この整形により、原稿中において読み飛ばされる可能性のある部分を別の文として切り離しておく。
また、文は、予めチャンクに分割しておく。チャンク(即ち、出力遷移を行うまでの単語列の単位)を長く設定すると修正精度は高くなるが、出力する単語列の確定が遅くなる。逆に、チャンクを短く設定すると、送出する字幕単語列の確定は速くなるが修正精度が低下する。よって、どのような単位を利用するかについては、期待される音声認識の認識精度と、原稿と読み上げ音声の一致度合いと、に応じて適宜設計すればよい。いかなる方法で文のチャンクへの分割を行うにしても、チャンクは、文よりは短い単位である。
そして、トランスデューサー構築装置740は、チャンクを受理した直後に出力遷移を配置するように、WFSTを構成する。
トランスデューサー構築装置740による具体的なWFST構築手順は、次の通りである。WFSTの構築は、まず、WFSTの始点から開始される。
トランスデューサー構築装置740は、原稿テキスト記憶装置700から一単語ずつ読み込む度に、同単語を受理する重み0の遷移と新たなノードとを順次作成していく。ここで、重み0の遷移とは3つ組のパラメーターで表すと、(s/ε:0.0)のことである。なお、sは単語である。そして、チャンクを一単位として、そのチャンクの後に出力遷移を追加してから、次のチャンクに含まれる各単語について同様の処理を繰り返す。なお、チャンクの終端が文の終端である場合には、最後のチャンクに関する出力遷移をWFSTの終点ノードに連結する。即ち、最後のチャンクに関する出力遷移の遷移先状態を、その終点ノードとする。
まだ更なる文が残っていたら、再び始点から始めて、上記の処理を繰り返す。
以下、原稿テキスト記憶装置700に含まれる全ての文についての処理を終えるまで、同様に繰り返す。
原稿テキスト記憶装置700からすべての原稿テキストを読み込み終えた後、次に、トランスデューサー構築装置740は、終点ノードと始点ノードとをイプシロン遷移で連結する。既に述べたように、イプシロン遷移とは、3つ組のパラメーターで表すと(ε/ε:ωu)という状態遷移ことである。なお、トランスデューサー構築装置740は、このイプシロン遷移のための重みωuとして適切な値を与える。これにより、WFSTは、より長く一致する文のスコアを高くすることができるようになる。またこれにより、WFSTは、他の文の接頭辞と一致する文が原稿中に存在するような場合にも、適切に動作できるようになる。そして、最後に、トランスデューサー構築装置740は、各単語の遷移に、置換、脱落、挿入を受理する遷移を追加する。なお、図10では、置換、脱落、挿入のための状態遷移を省略している。
[5.音声認識の適応化]
原稿をもとに読み上げられる音声を音声認識装置720が実際に認識するにあたり、予め、この原稿に含まれる単語列をもとに音声認識の言語モデルを適応化しておくことが望ましい。これにより、原稿通りに読み上げられた場合の音声認識の精度を高くすることができる。
[6.出力遷移からのトレースバック]
本形態では、トレースバックを開始するノードを、出力遷移の直前のノードのみに限定する。つまり、図10に例示したWFSTの状態遷移図において、トレースバックの対象となるノードは黒四角の記号で示したノードのみである。そして、黒丸の記号で示しているノードをトレースバックの対象としない。つまり、トレースバックの対象となるノードは、各チャンクの終端に当たるノードのみである。
WFSTのすべてのノードを対象としてその最尤ノード(時刻tにおいてすべてのノードの中で最もスコアの高いノード)からトレースバックを行うのと比べて、本形態の上記の方法では、出力の遅延を短縮することができる。つまり、本形態では、音声認識処理の結果に応じた修正後の字幕の表示の遅延を短縮することができる。
なお、既に述べたWFSTの構築方法においては、文を予めチャンクに分割しておき、各チャンクの終端に続いて出力遷移を設けた。しかしながら、文をチャンクに分割しないようにして(言い換えれば、1文を1チャンクとして)、トレースバックを開始するノードを出力遷移の直前のノードのみに限定することも可能である。そしてこのような場合にも、すべてのノードを対象としてその最尤ノードからトレースバックを行うのと比べて、出力の遅延を短縮することができる。
[7.字幕文出力の確定方法]
音声認識誤り修正装置600が、出力する単語列を確定するための方法について説明する。
時刻tにおける出力遷移の直前の最尤ノード(言い換えれば、チャンクの終端に当たるノードの中の最尤ノード)であるn(チルダ)(t)は、下の式(1)で表される。
式(1)において、Qは、トレースバックの対象となるノードの集合である。つまり、Qは、出力遷移の直前のノードの集合である。nは、集合Qに属するノードである。そして、Ln(t)は、時刻tにおけるノードnのスコアである。なお、このスコアLn(t)は、下の式(2)で表される。
式(2)において、eは状態遷移であり、efおよびetは、それぞれ、状態遷移eの遷移元および遷移先のノードである。またewは、状態遷移eの状態遷移重みの値である。また、eiは、状態遷移eの入力記号である。そして、eiは、単語W、ε(空入力)、*(いずれの入力にもマッチするワイルドカード)のいずれかである。つまり、式(2)に示すとおり、時刻tにおけるノードnのスコア(尤度)は、ノードnを遷移先ノードとするすべての状態遷移の中で、時刻t−1におけるその状態遷移eの遷移元ノードefのスコアに、その状態遷移eの重み値ewを加算したものである。
上記の式(1)による最尤ノードを求めるために、音声認識誤り修正装置600は、スコアLn(t)に関して、閾値による枝刈りを行いながら、効率的なビタビ探索を行う。
そして、音声認識誤り修正装置600は、式(1)により求められた最尤ノードにたどり着くまでに通過した状態遷移eを、順次トレースバックして、状態遷移の系列を得る。既に出力済みの単語の時刻t−t´までトレースバックした結果はht−t´は、下の式(3)で表される。
式(3)において、{et−t´,・・・}は、WFSTの始端を含まない状態遷移の集合である。また、{・・・,et}は、WFSTの終端を含まない状態遷移の集合である。そして、O(チルダ)tは、下の式(4)で表されるように、始端と終端とに挟まれた区間lt k(つまり、lt kは文)の列である(k=1,2,・・・)。
式(4)において、rtは、O(チルダ)tに含まれる区間lt k(文)の数である。さらに、このlt kは、下の式(5)に示すように、チャンクの列である。
式(5)において、mt,kは、区間lt kに含まれるチャンクの数である。
音声認識誤り修正装置600は、この区間lt kごとに下の式(6)で表されるチャンクの列を出力する。つまり、下の式(6)で表されるものが、音声認識誤り修正装置600によって出力される字幕文である。
式(6)において、E(チルダ)(ot,k u)は、誤り率に基づく誤りスコアである。また、Tは、誤りスコアに関する閾値であり、0<T<1である。誤りスコアE(チルダ)(ot,k u)は、下の式(7)によって求められる。
式(7)において、2入力の関数E(チルダ)(o1,o2)は、下の式(8)に示すように、E(チルダ)(o1)とE(チルダ)(o2)の、単語数の重みを付けた平均である。
式(8)において、N1とN2は、それぞれ、チャンクo1とo2に含まれる単語の数である。また、E(チルダ)(o)は、チャンクoにおける受理単語数Nrと、誤りを受理したことによる遷移の通過数Neとから求めた誤り率(編集距離)であり、下の式(9)で表される。
つまり、式(7)に示した通り、区間lt kに含まれるチャンクot,k uの誤りスコアであるE(チルダ)(ot,k u)は、次に述べるように定義される。即ち、E(チルダ)(ot,k u)は、チャンクot,k uにおいて式(9)で計算される誤り率と、ひとつ前のチャンクot,k u−1で計算される誤りスコアとの単語数による重み付き平均の値に基づく。ただし、その単語数による重み付き平均の値が所定の閾値Tよりも小さい場合には、E(チルダ)(ot,k u)の値はゼロである(式(7)の右辺上段のケース)。一方、その単語数による重み付き平均の値が閾値T以上の場合にはその重み付き平均の値をそのままE(チルダ)(ot,k u)の値とする(式(7)の右辺下段のケース)。このように、E(チルダ)(ot,k u)の値は、ひとつ前のチャンクot,k u−1についてのE(チルダ)(ot,k u−1)の値に依存して定義されており、式(7)で再帰的に計算することにより出力を確定できる。
なお、式(7)において場合分けして、閾値Tよりも低い場合の誤りスコアをカットオフして0にしていることにより、前のチャンクにおける誤りの程度が小さい場合には、後ろの方のチャンクまでその誤りスコアを波及させないようにしている。
なお、式(6)や式(7)に示した閾値Tの具体的な値は適宜定めればよいが、例えばT=0.5とする、あるいは0.4≦T≦0.6の範囲内の値とすることが好適である。Tの値が大きすぎると(1に近づくと)高い誤り率を許容してしまうという不都合がある。他方で、Tの値が小さすぎると誤りに対して厳格になりすぎて、本来読み上げられている原稿に対して出力できる字幕の密度が低くなり過ぎるという不都合がある。したがって、前記の0.4≦T≦0.6の範囲が好適であり、特にT=0.5とすることが好適である。
[8.音声認識誤り修正装置の構成]
次に、音声認識誤り修正装置の構成について説明する。
図11は、音声認識誤り修正装置600の概略機能構成を示す機能ブロック図である。図示するように、音声認識誤り修正装置600は、WFST記憶部610と、ノードデータ更新部620と、ノードデータ記憶部630と、原稿探索部640と、出力部650とを含んで構成される。
WFST記憶部610(有限状態トランスデューサー情報記憶部)は、原稿テキストに対応して、音声認識結果として入力される単語を順次受理しながら状態遷移していく有限状態トランスデューサーであって、音声認識結果に含まれる単語の誤りをも受理しながら状態遷移していく有限状態トランスデューサーの、状態に関する情報、および状態遷移に関して遷移元状態と遷移先状態と入力シンボルと出力シンボルと遷移重みとを含む情報、とを記憶する。そして、WFST記憶部610は、出力シンボルが空でない状態遷移であるところの出力遷移を状態遷移の一部として含んで記憶している。また、原稿テキストに含まれる文を複数のチャンクに分割し、チャンクに含まれる単語を入力シンボルとして受理する状態遷移のパスの後に出力遷移を設けたWFSTの、状態に関する情報および状態遷移に関する情報を記憶する。
具体的には、WFST記憶部610は、原稿テキスト記憶装置700(図8)に基づいて予めトランスデューサー構築装置740が構築したWFSTを記憶している。具体的には、WFST記憶部610は、状態遷移図(ネットワーク)と等価な情報を記憶する。その情報とは、状態(ノード)の識別情報およびその状態の属性情報と、状態遷移(枝)の識別情報およびその状態遷移の属性情報である。状態遷移の属性情報は、遷移元状態の識別情報と、遷移先状態の識別情報と、遷移に関する重みの値とを少なくとも含む。
ノードデータ更新部620は、原稿テキストに対応する音声の認識結果である認識単語の入力を外部から受け付けるとともに、受け付けた認識単語に応じて、WFSTにおける状態ごとの当該時刻(その時刻)でのスコアを算出し、算出された前記スコアを用いてノードデータ記憶部630を更新する。
具体的には、ノードデータ更新部620は、音声認識装置720が出力する認識単語列に含まれる単語の入力を受け付ける時刻毎に、WFSTのネットワーク上を遷移可能な状態のスコアをノードデータとして計算および更新するものである。ノードデータ更新部620は、例えば、音声認識装置720から認識単語を1単語受け付ける都度、WFST記憶部610に記憶されたWFSTを参照して逐次的にビタビ探索を行い、ノードデータ記憶部630に記憶されているノードデータを更新する。
ノードデータ更新部620は、認識単語列の一部として入力される単語に応じて、状態遷移した場合のスコアを計算する。ノードデータ更新部620は、状態遷移の重みの値に基づいて、スコアを計算する。WFSTの例として述べたように、対応原稿と一致する単語が原稿通りの順で入力された場合には、重みの値として「0」をスコアに加算する。対応原稿と異なる単語が入力された場合、重みの値として「−1]をスコアに加算する。この「−1」はペナルティの意味を有する。
例えば、図9に示した例において、認識単語列として入力する単語列が、対応原稿と全く同じ単語列である場合、始点ノード001から、単語「先月」を受理して対応原稿の単語に対応する遷移を通ってノード002に進む。そして、この状態遷移に対応して、ノードデータ更新部620は、スコアに「0」を加算する。次に、ノード002から、例えば単語「の」を受理してノード003に進む。そして、この状態遷移に対応して、ノードデータ更新部620は、スコアに「0」を加算する。同様に、「関東甲信」、…を順次受理していくと、スコアには、各単語に対応する状態遷移の重みの値である「0」ずつ足していくことになる。
しかし他方で、例えば図9に示した例において、認識単語列として入力する単語列が、対応原稿と異なる単語列である場合、異なる状態遷移をする。つまり、始点ノード001から、例えば単語「先週」を受理すると、対応原稿の単語「先月」が置換されているので、置換に対応する遷移を通ってノード002に進む。この場合、ノードデータ更新部620は、スコアにその状態遷移の重みの値である「−1」(ペナルティ)を加算する。また、挿入誤りや脱落誤りに対応する遷移を通った場合にも、同様にノードデータ更新部620は、スコアにペナルティの「−1」を加算する。
このように、入力される認識単語がWFSTにおける状態遷移で受理する単語sと同じであった場合に、その遷移におけるスコアが最良となる。一方、置換、挿入、削除の編集に相当する状態遷移は、スコアが悪化する要因となる。ここで「編集」とは、本来あるべき単語を置換したり、削除したり、本来あるべき単語ではないものを挿入したりすることによって得られる結果を言う。例えば<D>が記載された状態遷移は、マッチする入力単語が無くても遷移できるが、<D>が記載された遷移だけを通るパスの場合、その遷移の数が多いほど、ペナルティが加算され、スコアが低くなる。WFSTは、認識単語列に、誤りや言い変えが含まれると、その分だけスコアが悪くなるという結果を生む。
ノードデータ記憶部630は、WFSTにおける状態の尤度を表すスコアを記憶する。つまり、ノードデータ記憶部630は、ノードデータ更新部620によって計算されるノードデータを記憶するものである。ノードデータ更新部620は、上述した計算結果に基づき、ノードデータ記憶部630をタイムリーに更新する。ノードデータ記憶部630は、例えば、半導体メモリやハードディスク装置等の一般的な記憶手段を用いて構成される。
原稿探索部640は、処理開始を示す起動信号を外部から受け付けると、ノードデータ記憶部630を参照することにより、その時点における最尤ノードを決定するとともに、WFST記憶部610とノードデータ記憶部630とを参照して、最尤ノードから状態遷移を遡ることにより、状態遷移が確定済みの所定の時刻までのトレースバック処理を行い、当該トレースバック処理した状態遷移のパスを出力候補とするとともに、出力候補となったパスに関して、当該パスに誤りに関する状態遷移が含まれる割合に応じた誤りスコアを算出し、算出された誤りスコアに基づいて誤りの度合いが所定の閾値より小さい場合に当該パスの出力候補を、確定出力とする。また、原稿探索部640は、チャンクごとに誤りスコアを算出するとともに、チャンクごとの誤りスコアに基づいて誤りの度合いが所定の閾値より小さい場合に、当該チャンクに対応する出力遷移の出力シンボルを、確定出力とするものであり、且つ、原稿探索部640は、チャンクごとの誤りスコアを算出する際に、当該チャンクと当該チャンクの直前のチャンクの区間に関して誤りに関する状態遷移が含まれる割合に応じた誤りスコアを、当該チャンクの誤りスコアとして算出する。
また、原稿探索部640は、出力遷移の遷移元状態に対応するノードの中で最尤であるノードをその時点における最尤ノードとして決定する。言い換えれば、原稿探索部640は、出力遷移の遷移元状態ではない状態に関しては、最尤ノードであるか否かを考慮しない。
具体的には、原稿探索部640は、最終最良仮説を確定するための全原稿についての全認識単語列の認識結果の入力を待たず、予め定められた処理開始条件が満たされる都度、最尤の修正結果を求めるものである。原稿探索部640は、処理開始条件が満たされると、その時点でノードデータ記憶部630に記憶されているノードデータに基づいて、WFSTのネットワーク上をトレースバックしながら、最終最良仮説を部分的に近似した仮説を誤り修正結果として逐次確定する。
原稿探索部640は、WFSTに含まれる対応原稿の単語列と、入力された認識単語列との編集距離に基づいて最終最良仮説を近似する。原稿探索部640は、WFSTのネットワーク上で予め定められた範囲毎に区切ったパス間において、その先頭から末尾までのパス区間での編集距離がある程度小さければ、そのパス区間が信頼できるものとして確定して出力する。ここで、編集距離が短いということは、認識単語列と原稿の単語列とがほとんどマッチしているパスを通ってきたことを意味する。逆に、編集距離が長いパス区間は信頼度が低いので、その時点では確定せずに、次回のトレースバックのときにも利用する。いつまでも信頼度が低いパス区間は、原稿には元々記載されていない違うことを話した区間である、と推定される。よって、信頼度が低いパス区間を出力しない。
原稿探索部640における処理開始条件とは、例えば、発話音声がない無音期間が所定の期間に達した場合、または、音声認識装置720が出力する認識単語列としての単語の入力数が所定の単語数に達した場合等である。上記の所定の期間は、特に限定されないが一例として3秒間とする。また、上記の所定の単語数は、特に限定されないが一例として20単語とする。原稿探索部640に入力される起動信号は、上記の処理開始条件が成立したことを示す信号である。このときの起動信号は、例えば音声認識装置720が自動的にonするようにしてもよいし、操作者による手動の操作によってonするようにしても良い。この操作者は、ポーズ(所定の長さの無音)を認識したときや、所定の単語数を音声認識装置720が出力した認識したときに、起動信号をonする操作を行う。音声認識装置720が自動的に起動信号をonする場合には、音声認識の結果を利用してポーズを検出したり、音声認識結果として出力する単語の数をカウントしたりすることにより、起動信号を切り替えるきっかけとする。この構成により、認識単語が一単語入力される度に探索処理を開始する場合に比べて、処理負荷を低減できる。また、無音期間が所定の期間だけ継続していれば、その間、認識結果の単語が音声認識装置720側から渡されてこないので、装置の処理の負荷がその時点に集中することなく、ノードスコアを容易に比較することができる。
上記の機能を実現するために、原稿探索部640は、さらに次の構成を有する。即ち、原稿探索部640は、最尤ノード検出部641と、トレースバック部642と、原稿分割部643と、出力候補記憶部644と、誤りスコア算出部645と、誤りスコア判別部646と、確定出力記憶部647と、確定時刻記憶部648とを含んで構成される。
最尤ノード検出部641は、外部から受信する起動信号をトリガーとして動作し、その時点で記憶されているノードデータにおいてスコアが最大のノードを検出するものである。この起動信号は、上で述べたとおり、予め定められた処理開始条件が満たされたときに外部から供給されるものである。
トレースバック部642は、最尤ノード検出部641で特定されたノードから、当該ノードに到達するまでのパスについて、WFSTのネットワークを下流から上流に向かってたどる。このとき、トレースバック部642は、前回のトレースバックで確定した箇所まで、ネットワークを遡る。つまり、トレースバック部642は、前回確定して出力された単語系列の最後の入力単語に対応した時刻までトレースバックする。
原稿分割部643は、トレースバックするパスの中で、出力遷移に対応する区間ごとに単語列を切り出す。ここで、出力遷移とは、既に説明したように記号の出力を伴う状態遷移である。トランスデューサー構築装置740がWFSTを構築するときに、チャンクの終端の直後に、出力遷移が設けられている。つまり、原稿分割部643によって分割された結果の区間は、前述のチャンクの単位である。原稿分割部643は、トレースバックされた結果得られるパス全体を分割し、分割した結果得られる各々の単語列を出力する。
出力候補記憶部644は、原稿分割部643が分割した結果得られたパス区間に対応した出力遷移の出力シンボル(切り出された原稿)を、出力候補として記憶する。出力候補記憶部644は、例えば、半導体メモリやハードディスク装置等の一般的な記憶手段を用いて構成される。
誤りスコア算出部645は、原稿分割部643によって分割して切り出された区間(チャンク)毎に、誤りスコアを算出する。誤りスコア算出部645は、既に説明した式(7)を用いて誤りスコアを算出する。
誤りスコア判別部646は、誤りスコア算出部645によって算出された誤りスコアが所定の閾値Tより小さいか否かを判定する。つまり、誤りスコア判別部646は、既に説明した式(6)に含まれる条件に基づいて判別する。
確定出力記憶部647は、誤りスコア判別部646による判定結果に基づいて確定された出力(確定出力と呼ぶ)を記憶する。具体的には、誤りスコア判別部646によって誤りスコアが閾値Tより小さいと判定された場合、確定出力記憶部647は、当該所定パス区間における出力遷移の出力シンボルを誤り修正結果として記憶する。その他の場合、確定出力記憶部647は、当該所定パス区間における出力遷移の出力シンボルを誤り修正結果として記憶しない。なお、確定出力記憶部647は、例えば半導体メモリやハードディスク装置等の一般的な記憶手段を用いて構成される。また、確定出力記憶部647の記憶構造はスタックであり、確定出力記憶部647は後入れ先出し(LIFO)の構造でデータを保持する。
確定時刻記憶部648は、最新のトレースバック処理で確定した確定時刻を記憶する。確定時刻記憶部648は、例えば半導体メモリやハードディスク装置等の一般的な記憶手段である。確定時刻記憶部648は、今回トレースバックする全パス区間(切り出された全ての原稿)について、誤りスコア判別部646による判別処理が終了した時点で、スタックに積まれた出力シンボルに対応する最新の確定単語の時刻を確定時刻として記憶する。
出力部650は、原稿探索部640によって誤り修正結果として確定された対応原稿(つまり、確定出力)を逐次出力するものである。出力部650は、WFSTのネットワークを今回トレースバックするパスの中で、切り出されたすべての対応原稿の各パス区間に対して算出された誤りスコアについての判定処理が全て終了するまでに確定された出力シンボルのデータを出力する。具体的には、出力部は、確定出力記憶部647のスタックに積まれている出力シンボルのデータを、そのスタックが空になるまで出力する。
この音声認識誤り修正装置600は、間違って音声認識された単語を修正して出力するとともに、大幅に間違った認識結果を出力しない、という動作を行う。つまり、音声認識誤り修正装置600による修正結果を、仮に事前に人が見ることができたとしたときに、「これでは文章として成立していない」、「意味が異なっている」と感じるほどの間違い部分を、音声認識誤り修正装置600がその処理の中で検出し、その検出部分を出力しないという動作も、広義の誤り修正として含んでいる。これは、誤りスコアを算出し、その誤りスコアに基づく判別を行っていることによるものである。
[9.音声認識誤り修正装置の動作手順]
図12は、音声認識誤り修正装置600による処理の手順を示すフローチャートである。なお、このフローチャートの処理の前提は、次の4点である。
(前提1)認識結果の単語入力を{ω0,ω1,…,ωk,…,ωj,…}とする。
(前提2)前回のトレースバックにより確定した部分の最後の入力単語をωkとし、そのときの出力遷移をaP(時間軸に沿ったP番目の出力遷移)とする。
(前提3)認識結果の単語ωjが入力された後、所定の無音が続いたことをトリガーに、逐次確定を行う場合を考える。
(前提4)ノードデータ更新部620は、無音になる前に最後に入力した単語ωjを受理して遷移できるノードを全て計算する。
以下では、このフローチャートを参照しながら、音声認識誤り修正装置600による処理の流れについて説明する。
まずステップS501において、外部からの起動信号の入力をトリガーとして、最尤ノード検出部641は、その時点で記憶されているノードデータにおいて最もスコアの高いノードを、最尤ノードとして検出する。この検出ノードで表される状態は、トレースバック開始時点の最尤状態である。
次にステップS502において、トレースバック部642は、ステップS501において検出された最尤ノードから、前回のトレースバック処理で確定された時刻まで、トレースバックする。具体的には、トレースバック部642は、検出された最尤ノードに到達したパスについてWFST上の単語履歴を逆向きに(時間をさかのぼる方向に)たどり、前回のトレースバックで確定し、出力された単語系列の最後の入力単語ωkを求める。また、トレースバック部642は、対応する状態遷移(受理する単語がωkである状態遷移)を求める。そして、それらの単語および状態遷移に対応する確定時刻までトレースバックする。なお、トレースバック部642は、確定時刻記憶部648を参照し、その確定時刻記憶部648に格納されている確定時刻を、上記の最後の入力単語ωkに対応した確定時刻とする。
なお、受理単語がωkである状態遷移の代わりに、出力遷移aPにたどり着くまでトレースバックするようにしてもよい。
次にステップS503において、原稿分割部643は、原稿を分割し、分割結果として得られた単語列をそれぞれ出力候補とする。具体的には、原稿分割部643は、今回トレースバックするパスの中で、2つの出力遷移間に挟まれたパス区間毎に原稿を分割する。そして、原稿分割部643は、得られたそれぞれの出力候補を、出力候補記憶部644に格納する。
なお、ここでの処理の方法として、出力遷移aPにたどり着くまで逆向きに(つまり、時間を遡る方向に)進みながら、出力可能な出力遷移aL(時間軸に沿ったL番目(ただしL>P)の出力遷移)を通過する度に原稿を分割してもよい。また、出力遷移aPの側から出力可能な出力遷移aLを通過する度に原稿を分割してもよい。
なお、出力可能な出力遷移aLとは、出力遷移のシンボルが出力候補になるものであるが、後に、誤りスコア判別部646によって棄却される出力遷移(つまり、出力部650からは結局出力されない出力遷移)をも含んでいる。
次にステップS504において、誤りスコア算出部645は、出力候補の誤りスコアを算出する。具体的には、誤りスコア算出部645は、式(7)によってチャンクot,k uの誤りスコアE(チルダ)(ot,k u)を算出する。
次にステップS505において、誤りスコア判別部646は、出力候補のうちの一つを選択し、その出力候補に関して算出された誤りスコアが閾値T未満であるか否かを判別する。誤りスコアが閾値T未満である場合(ステップS505:YES)には、次のステップS506に進む。誤りスコアが閾値T以上である場合(ステップS505:NO)には、ステップS508に飛ぶ。
次にステップS506に進んだ場合、誤りスコア判別部646は、WFSTのネットワーク上の当該パス区間(チャンク)の出力遷移を確定し、その出力シンボルを誤り修正結果として確定する。
次にステップS507において、誤りスコア判別部646は、今回確定した出力シンボルのデータを、確定出力記憶部647に書き込む。前述のとおり、確定出力記憶部647は後入れ先出しの構造を有するスタックである。
これらのステップS506およびS507の処理は、ステップS505における分岐制御により、現在のチャンクの誤りスコアが閾値T未満である場合のみに実行される。
次にステップS508に進むと、誤りスコア判別部646は、すべての出力候補を判別し終えたか否かを判断する。すべての出力候補の判別が終了している場合(ステップS508:YES)、次のステップS509に進む。すべての出力候補の判別が終了していない場合、すなわち依然として選択すべき出力候補がある場合(ステップS508:NO)、ステップS505に戻って次の出力候補を選択する。
つまり、切り出されたすべての原稿に対応した各パス区間に対して算出された誤りスコアについての判定処理が終了した場合に、次のステップS509に進む。
ステップS509において、誤りスコア判別部646は、確定時刻記憶部648を更新する。つまり、誤りスコア判別部646は、スタックに積まれた出力シンボルに対応する確定単語の時刻が最も新しいものを今回のトレースバック処理で確定した確定時刻として確定時刻記憶部648に格納する。
次にステップS510において、出力部650は、その時点で確定出力記憶部647に書き込まれている出力シンボルのデータを、確定出力記憶部647が空になるまで順次読み出し、出力する。これにより、スタックに積まれていたすべての出力データは、出力される。なお、出力部650は、WFSTのネットワークの前方側に配置された原稿から順に(つまり、時刻の早い側から順に)出力する。
つまり、出力部650は、毎回のトレースバック処理でスタックに積んだデータを、確定された原稿として逐次出力する。このとき、音声認識結果のうち、所定のパス区間の誤りスコアが閾値T以上である場合、信頼度が低いパスなので、当該パス区間の出力遷移の出力シンボルは、誤り修正結果としては採用されない。したがって、出力部650は、そのような信頼度の低いパス区間の出力シンボルを、出力しない。
ステップS10の処理が終了すると、音声認識誤り修正装置100は、このフローチャート全体の処理を終了する。
[10.字幕文出力の具体例と評価]
以上、説明したように、本形態による音声認識誤り修正装置600の処理の特徴は、(1)文をチャンクに分割すること、(2)チャンクの終端に出力遷移を設けること、(3)出力遷移の箇所からトレースバックすること、である。このような特徴的な処理をすることによる作用を、具体的な処理例とともに、次に説明する。
図13は、本形態による字幕文出力の確定方法の実例を示す概略図である。同図の(A)および(B)は、それぞれ、入力される認識結果の単語列と、それらの単語に対応するWFSTの状態遷移と、その結果としての出力シンボルとの関係を示し、また算出される誤りスコアを付記している。
まず、同図(A)の例において、入力される単語列は「今日/の/関東/地域/は」である。これらの単語を受け付けると、WFSTは、次のように遷移する。即ち、始端からスタートして、入力単語「今日」は、対応する原稿内の「今日」にマッチして、ペナルティの無い状態遷移が起こる。次の単語「の」は、対応する原稿内の「の」にマッチして、ペナルティの無い状態遷移が起こる。次の単語「関東」は、対応する原稿内の「関東」にマッチして、ペナルティの無い状態遷移が起こる。次の単語「地域」は、発話者による読み替えまたは音声認識装置720による認識誤りにより入力された単語である。したがって、対応する原稿内の「地方」にはマッチせず、置換の状態遷移が起こる。次の単語「は」は、対応する原稿内の「は」にマッチして、ペナルティの無い状態遷移が起こる。そして、「晴れ」と「です」は入力されていないが、脱落の状態遷移が起こると、黒四角で示すチャンクの終端の状態にたどり着く。そして、出力遷移における出力シンボルである「今日の関東地方は晴れです。」が、出力候補となる。ここで、このチャンクに関する誤り率は3/7である。即ち、誤りスコアは、3/7である。閾値Tを0.5とする場合、この誤りスコアは閾値Tよりも小さい。そして、音声認識誤り修正装置600は、出力候補である「今日の関東地方は晴れです。」の出力を確定することができる。
次に、同図(B)の例で示すWFSTのネットワークにおいては、一連の区間が、abcdefのチャンクと、ghijkのチャンクとに分割されている。そして、各チャンクの終端に、出力遷移が設けられている。そして、入力される単語列はabcxeyghである。これらの単語を受け付けると、WFSTは、次のように遷移する。即ち、始端からスタートして、入力単語a,b,cのそれぞれは、対応する原稿内のa,b,cにマッチして、これらの単語の各々に関するペナルティの無い状態遷移が起こる。次の入力単語xについては、原稿内の単語dの置換の状態遷移が起こる。次の入力単語eは、原稿内のeにマッチして、ペナルティの無い状態遷移が起こる。そして、次の入力単語yについては、原稿内の単語fの置換の状態遷移が起こる。その遷移先がチャンクの終端の状態であり、その次の出力遷移における出力シンボルがabcdefである。ここまでのチャンクの誤りスコアは、2/6である(正常な状態遷移が4つで、置換の状態遷移が2つなので、2/(4+2))。
続いて同図(B)内で、入力単語g,hのそれぞれは、対応する原稿内のg,hにマッチして、これらの単語の各々に関するペナルティの無い状態遷移が起こる。ここで入力単語列は終わるが、対応する原稿内のi,j,kについては脱落の状態遷移が起こり得る。ここで、原稿内のghijkの列の区間だけについて謝り率は3/5であり、閾値T(=0.5)を超えている。何故なら、g,hが入力にマッチして、i,j,kが脱落しているからである。しかしながら、式(9)によって計算される誤りスコアは、前のチャンクにおける誤りスコアとの加重平均(チャンク内の単語数による加重平均)をとって、5/11である。この誤りスコア5/11は閾値Tより小さい。したがって、音声認識誤り修正装置100は、出力候補abcdefを出力するとともに、次のチャンクに対応する出力候補ghijkをも出力する。
同図(A)の例によって示した通り、音声認識誤り修正装置600は、単語「は」より後の入力単語が仮にすべて誤っていた(音声認識装置720による認識誤りなど)としても、早期に対応する字幕文を出力することができる。これは、単語「は」より後の入力単語がすべて誤っていたとしても誤りスコアが閾値Tより小さいためである。
また、同図(B)の例によって示した通り、予めチャンクを分割しておいた場合には、式(9)の作用で、現在着目するチャンクの、前方の確定済のチャンクの誤りスコアを利用することによって、さらに早期に、現在着目するチャンクの出力を確定できる。
[11.誤りスコアに関する閾値Tの決め方]
もし音声認識装置の認識精度が90%くらいであれば、誤りスコアの基礎となる単語の誤り率は10%程度になる可能性がある。本形態で誤りスコア判別部646による判別に用いるための閾値Tとしては、音声認識の認識精度に応じて、単語一致率の信頼度分だけマージンを取って設定することが好ましい。ここで、単語一致率の信頼度は、WFSTのネットワークの2つの出力遷移間の単語数に依存する。
閾値Tを設定するためのその他の要因としては、原稿テキスト記憶装置700に記憶される原稿の候補の文章としての重なりがどのくらいの割合であるのかという点がある。例えば、下記(E1)〜(E3)に示す文の場合、文章としての重なりが80%くらいの割合で含まれている。
(E1) 今日 の 天気 は 晴れ です
(E2) 今日 の 天気 は 雨 です
(E3) 今日 の 天気 は 曇り です
このような場合、閾値Tも80%くらいに設定してしまうと、所望の動きが実現できない。
なお、ニュース原稿の文を適切にチャンクに分割して出力遷移を配置し、閾値Tを50%とした条件で実験した場合、良好に動作することが確認できた。
以上説明したように、本形態に係る音声認識誤り修正装置600は、文の順序は変わり得るとは言え、原則として、原稿テキストに含まれる文が連続して発声されるという拘束を利用して、認識結果と原稿テキストとを対応付けることで、認識誤りを修正することができる。つまり、従来技術によるブロック照合方式の自動修正誤りを解消する。
また、本形態による音声認識誤り修正装置600は、認識単語の単語列が原稿テキスト内に含まれる単語列のどこと一番マッチしているのかを、従来技術による方式より長い範囲で照合している。つまり、従来のブロック照合方式が単語連鎖ブロックに相当する区間だけを照合するのに対して、音声認識誤り修正装置600は、原稿の文章を遡りながらもっと長い文章全体で照合する。そのため、どこでマッチさせるのがよいのかが従来よりも明白に分かり、自動修正誤りを従来よりも低減できる。
本形態による音声認識誤り修正装置600は、文を複数のチャンクに分割し、チャンクの終端に出力遷移を設けている。これにより、文の途中であっても、確定させた単語列を出力することができる。
また、本形態による音声認識誤り修正装置600は、出力遷移が存在する箇所のみからトレースバックするように限定した。これにより、計算量を抑制することができる。
以上、前提となる形態を説明したが、本形態はさらに次のような変形例でも実施することが可能である。また、複数の変形例を組み合わせて実施しても良い。
[変形例1]音声認識誤り修正装置の構成
音声認識誤り修正装置600が、内部にトランスデューサー構築装置740を備えるようにしてもよい。
[変形例2]言い換えを受理するWFSTの構築
WFSTの情報源となるアナウンス用原稿には、それが読まれるときに、読み飛ばされる句や、言い換えられる句、補足される句が含まれている場合がある。これらの一部には、定型で高い頻度で省略/言い換え/補足が行われる。例えば、ニュース番組の原稿では、取材元を表す「警視庁によりますと」などといった句は、読み飛ばされやすいことの多い句である。このような句が読み飛ばされたとしても、ニュース主文の文意に変わりはなく、言い換えればいわゆる5W1Hに関する変化はなく、ニュース番組としての実用上の問題はない。
本変形例では、このような定型的な言い回しのバリエーションをWFSTに追加しておくことで、精度よく修正結果を出力できるようにする。上記の言い回しのバリエーションの追加は、原稿から構築したWFSTとは別に、言い回しのバリエーションを追加するための別のWFSTを構築しておき、原稿から構築したWFSTと合成することにより、効率よく行うことができる。なお、WFSTの合成や、最小化や、決定化などを行うための公知のアルゴリズムを適用することができる。
上記のような言い換え例を含んだWFSTを構築するためには、過去の同種の番組の原稿テキストと、実際に読み上げられた単語列との差分を分析し、頻度が高く、且つ言い換えによって文意に変更がないものを予め選別して収集しておく。そして、この選別された言い換え例ごとに、言い換えを合成するためのWFSTを構築しておき、原稿から構築したWFSTと、言い換え例のWFSTとを合成する演算(既存技術による演算)を施すことにより、言い換えに対応可能なWFSTを構築することができる。
[変形例3]認識結果への付加
音声認識の結果では得られない記号等(句点や、読点や、その他の記号等)を、出力状態遷移における出力シンボル内に含めるようにしても良い。例えば、ニュース原稿に予めそれらの記号等を含めておき、そのニュース原稿に基づいてWFSTを構築するときに、出力シンボル内にそれらの記号等が残るようにする。そのようなWFSTを用いて音声認識誤り修正装置100を稼働させることにより、それらの記号等を含んだ読みやすい字幕を出力することができる。
[変形例4]認識結果に対応するその他の出力(多言語字幕)
上記の変形例3に加え、出力遷移における出力シンボルとして、原稿のテキストを他国語等に翻訳した結果の単語列を用いても良い。これにより、読み上げられた元の原稿とは異なる言語での字幕を出力することができる。また、複数のWFSTを同時に並行して稼働させることにより、複数ヶ国語の字幕を出力することもできる。また、出力遷移における出力シンボルとして、番組の進行をコントロールするためのキューに相当する記号を含めるようにしても良い。このキューが出力されることをトリガーとして、ハイブリッドキャストなどの番組連動サービスに対して、起動や場面転換等の指示情報を与えることもできる。これにより、より多彩な放送サービスを実現することができる。
[変形例5]WFSTの最小化
本変形例では、WFSTを作成する際に、可能であればWFSTの最小化を行う。WFSTの最小化とは、与えられた状態遷移図において、集約可能な複数の状態(ノード)を集約したり、集約可能な複数の状態遷移(枝)を集約したりすることである。WFSTを集約すること自体は、既存技術によって行うことができる。WFSTの最小化の一例は次の通りである。即ち、WFSTのネットワークにおいて、共通する複数の部分ネットワークを同一の状態遷移の列として構成し直す。このようなWFSTの最小化を用いることにより、共通する単語列についての状態遷移を削減することができる。例えば、同じ接頭辞を有する単語列(文)を同一の遷移で共有できる。これにより、演算量を削減することができる。
[変形例6]WFSTの決定化
WFSTを作成する際に、必要があればWFSTの決定化を行う。具体的には、WFSTのネットワークにおいて、状態遷移の途中で、出力シンボルが決定する場合には、少しでも早く推定結果を出力するために、出力文の位置を前のほうに変更する。WFSTの決定化を行うことにより、例えば、接頭辞がユニークとなる遷移に出力文を移動する。これにより、出力文を旱期に確定できるようになるなどの利点がある。ただし、WFSTを作成する際にWFSTの決定化を行った場合、原稿探索部640による最尤仮説の探索処理でも対応できるように設定変更が必要である。つまり、WFSTの決定化を行わない場合に比べて、誤りスコアを計算するためのパス区間を出力遷移の前後にシフトさせる必要がある。加えて、前後のパス区間の伸縮分を吸収できるように、閾値Tをより厳しい値(誤り率がより小さい値)に設定する必要がある。
[変形例7]誤りスコアの求め方
本形態では、式(9)に示した誤り率(編集距離)に基づいて誤りスコアを計算した。これに限らず、原稿と認識結果の一致率、一致精度、脱落率、挿入率を利用したり、それらを併用したりすることによって、誤りスコアを算出するようにしても良い。
以上、説明した方式2の構成を整理すると次の通りである。
[2−1]原稿テキストに対応して、音声認識結果として入力される単語を順次受理しながら状態遷移していく有限状態トランスデューサーであって、前記音声認識結果に含まれる単語の誤りをも受理しながら状態遷移していく前記有限状態トランスデューサーの、状態に関する情報、および状態遷移に関して遷移元状態と遷移先状態と入力シンボルと出力シンボルと遷移重みとを含む情報、とを記憶する有限状態トランスデューサー情報記憶部と、前記有限状態トランスデューサーにおける前記状態の尤度を表すスコアを記憶するノードデータ記憶部と、前記原稿テキストに対応する音声の認識結果である認識単語の入力を外部から受け付けるとともに、受け付けた前記認識単語に応じて、前記有限状態トランスデューサーにおける前記状態ごとの当該時刻でのスコアを算出し、算出された前記スコアを用いて前記ノードデータ記憶部を更新するノードデータ更新部と、処理開始を示す起動信号を外部から受け付けると、ノードデータ記憶部を参照することにより、その時点における最尤ノードを決定するとともに、前記有限状態トランスデューサー情報記憶部と前記ノードデータ記憶部とを参照して、前記最尤ノードまでの状態遷移を遡ることにより、状態遷移が確定済みの所定の時刻までのトレースバック処理を行い、当該トレースバック処理した状態遷移のパスを出力候補とするとともに、出力候補となった前記パスに関して、当該パスに前記誤りに関する状態遷移が含まれる割合に応じた誤りスコアを算出し、算出された前記誤りスコアに基づいて誤りの度合いが所定の閾値より小さい場合に当該パスの出力候補を、確定出力とする原稿探索部と、前記原稿探索部によって求められた前記確定出力を出力する出力部と、を具備する音声認識誤り修正装置であって、前記有限状態トランスデューサー情報記憶部は、出力シンボルが空でない状態遷移であるところの出力遷移を前記状態遷移の一部として含んで記憶しており、前記原稿テキストに含まれる文を複数のチャンクに分割し、前記チャンクに含まれる単語を入力シンボルとして受理する状態遷移のパスの後に前記出力遷移を設けた前記有限状態トランスデューサーの、前記状態に関する情報および前記状態遷移に関する情報を記憶する、ことを特徴とする音声認識誤り修正装置。
[2−2]前記原稿探索部は、前記チャンクごとに前記誤りスコアを算出するとともに、前記チャンクごとの前記誤りスコアに基づいて誤りの度合いが所定の閾値より小さい場合に、当該チャンクに対応する前記出力遷移の出力シンボルを、前記確定出力とするものであり、且つ、前記原稿探索部は、前記チャンクごとの前記誤りスコアを算出する際に、当該チャンクと当該チャンクの直前のチャンクの区間に関して前記誤りに関する状態遷移が含まれる割合に応じた誤りスコアを、当該チャンクの誤りスコアとして算出する、ことを特徴とする前記[2−1]の音声認識誤り修正装置。
[2−3]原稿テキストに対応して、音声認識結果として入力される単語を順次受理しながら状態遷移していく有限状態トランスデューサーであって、前記音声認識結果に含まれる単語の誤りをも受理しながら状態遷移していく前記有限状態トランスデューサーの、状態に関する情報、および状態遷移に関して遷移元状態と遷移先状態と入力シンボルと出力シンボルと遷移重みとを含む情報、とを記憶する有限状態トランスデューサー情報記憶部と、前記有限状態トランスデューサーにおける前記状態の尤度を表すスコアを記憶するノードデータ記憶部と、前記原稿テキストに対応する音声の認識結果である認識単語の入力を外部から受け付けるとともに、受け付けた前記認識単語に応じて、前記有限状態トランスデューサーにおける前記状態ごとの当該時刻でのスコアを算出し、算出された前記スコアを用いて前記ノードデータ記憶部を更新するノードデータ更新部と、処理開始を示す起動信号を外部から受け付けると、ノードデータ記憶部を参照することにより、その時点における最尤ノードを決定するとともに、前記有限状態トランスデューサー情報記憶部と前記ノードデータ記憶部とを参照して、前記最尤ノードまでの状態遷移を遡ることにより、状態遷移が確定済みの所定の時刻までのトレースバック処理を行い、当該トレースバック処理した状態遷移のパスを出力候補とするとともに、出力候補となった前記パスに関して、当該パスに前記誤りに関する状態遷移が含まれる割合に応じた誤りスコアを算出し、算出された前記誤りスコアに基づいて誤りの度合いが所定の閾値より小さい場合に当該パスの出力候補を、確定出力とする原稿探索部と、前記原稿探索部によって求められた前記確定出力を出力する出力部と、を具備する音声認識誤り修正装置であって、前記有限状態トランスデューサー情報記憶部は、出力シンボルが空でない状態遷移であるところの出力遷移を前記状態遷移の一部として含んで記憶しており、前記原稿探索部は、前記出力遷移の遷移元状態に対応するノードの中で最尤であるノードをその時点における前記最尤ノードとして決定する、ことを特徴とする音声認識誤り修正装置。
次に、上述した、前提となる形態の音声認識誤り修正装置(方式1および方式2)に基づいて、本発明の複数の実施形態を説明する。
[第1実施形態]
第1実施形態による音声認識誤り修正装置は、上述した方式1の音声認識誤り修正装置に、さらに、原稿の更新に合わせてWFSTを動的に更新する機能を設けたものである。
図14は、本実施形態による音声認識誤り修正装置の概略機能構成を示すブロック図である。同図に示すように、本実施形態による音声認識誤り修正装置800は、既に説明した音声認識誤り修正装置100(前提形態の方式1,図3)が備える構成に加えて、トランスデューサー更新部801を含んで構成される。また、この音声認識誤り修正装置800には、構築後のトランスデューサーを更新する元となる更新原稿810のデータが供給される。更新原稿810は、テキストを含むデータであり、例えば、報道番組等におけるニュース項目の差し替え原稿である。
トランスデューサー更新部801は、この更新原稿810を読み込むとともに、更新原稿810にしたがってWFST記憶手段110およびノードデータ記憶手段130を更新する。このとき、トランスデューサー更新部801は、原稿探索手段140によって進行中の探索処理の支障にならないように、WFST記憶手段110およびノードデータ記憶手段130を更新する。なお、トランスデューサー更新部801による更新処理の詳細については、後述する。
[第2実施形態]
第2実施形態による音声認識誤り修正装置は、上述した方式2の音声認識誤り修正装置に、さらに、原稿の更新に合わせてWFSTを動的に更新する機能を設けたものである。
図15は、本実施形態による音声認識誤り修正装置の概略機能構成を示すブロック図である。同図に示すように、本実施形態による音声認識誤り修正装置900は、既に説明した音声認識誤り修正装置600(前提形態の方式2,図11)が備える構成に加えて、トランスデューサー更新部901を含んで構成される。また、この音声認識誤り修正装置900には、構築後のトランスデューサーを更新する元となる更新原稿910のデータが供給される。更新原稿910は、テキストを含むデータであり、例えば、報道番組等におけるニュース項目の差し替え原稿である。
トランスデューサー更新部901は、この更新原稿910を読み込むとともに、更新原稿910にしたがってWFST記憶部610およびノードデータ記憶部630を更新する。このとき、トランスデューサー更新部901は、原稿探索部640によって進行中の探索処理の支障にならないように、WFST記憶部610およびノードデータ記憶部630を更新する。なお、トランスデューサー更新部901による更新処理の詳細については、後述する。
[第1実施形態および第2実施形態におけるWFSTの構築と更新(変更)]
ここで、トランスデューサー更新部(801または901)によるWFSTの更新について説明する。WFSTの更新は、音声認識処理進行中などにおける原稿の変更によって発生する。原稿の変更が行われるのは、例えば、ニュース原稿の一部が、文単位、フレーズ単位、単語単位などで差し替えられる場合である。差し替えとは、表現(単語や文なお)の挿入、削除、置換などを含む。また、差し替えとは、複数の文を1つの文に統合したり、逆に1つの文を複数の文に分割したりする場合を含む。なお、以下で、第1実施形態によるトランスデューサー更新部801と第2実施形態によるトランスデューサー更新部901とに共通の事項については、まとめて説明する。
音声認識誤り修正装置(800または900)は、WFSTの各ノードnについて、時刻tに、音声認識結果の単語htが入力される都度、そのノードスコアLt(n)とそのスコアを与えた遷移aを記録して探索を進める。ノードスコアLt(n)は、下の式(10)で与えられる。
式(10)において、n’(a)は遷移aの遷移元のノードであり、Saは遷移aの遷移重みであり、anはノードnに流入する遷移の集合である。
また、そのノードスコアLt(n)に対応する遷移がAt(n)であり、下の式(11)で表される。
進行中の探索を妨げないために、トランスデューサー更新部(801または901)は、各ノードのスコア履歴を保存しながらWFSTを更新する。なおここで、スコア履歴とは、(Lt’(n),At’(n))で表される情報である。但し、t’=1,2,・・・,t である。即ちスコア履歴とは、1からtまでの各々の時刻における、ノードスコアと、遷移のペアの情報である。
ここで、例えば原稿文中の数字が1箇所更新された場合などに、既存のWFST中に同じプレフィクスを有する文があり、それらの状態のスコア履歴を既に用いて探索が進行している可能性もある。したがって、同じプレフィックスを有する文の状態とスコア履歴を利用できる形で、原稿文の更新に伴う遷移の追加を行えるようにすることが望ましい。そこで、プレフィックスを共通にする文同士が状態を共有できるように、WFSTを木構造とする。
なお、プレフィックスとは、先頭から所定箇所までの一連の遷移に含まれる入力単語の列にあたる。言い換えれば、プレフィックスとは、原稿文における先頭から所定箇所までの単語列にあたる。
図16、図17、図18は、木構造としたWFSTの例を示す概略図である。これら3つの図の全体が、一つのWFSTを示している。この一つのWFSTを便宜上3つの図に分割して示している。ここで「木構造」という意味は、上流ノード側から見て、終端ノード(最も右のノード)を除いては、枝同士の合流がないことを表す。
同図に示すWFSTは、次の4つの原稿文に基づいて構築されたものである。
原稿文1:最高気温が25度以上の夏日でした
原稿文2:最高気温が25度5分の都心
原稿文3:銀座の甘味どころでこのメニューが登場
原稿文4:夏の味覚かき氷です
これらの原稿文とWFSTにおける状態遷移との関係は、次の通りである。即ち、原稿文1は、ノード番号で表すと、000−002−003−004−005−006−007−008−009−010−011−012−001という一連の遷移に対応している。また、原稿文2は、000−002−003−004−005−006−013−014−015−016−017−001という一連の遷移に対応している。また、原稿文3は、000−002−018−019−020−021−022−023−024−025−026−027−001という一連の遷移に対応している。また、原稿文4は、000−002−028−029−030−031−032−033−001という一連の遷移に対応している。
原稿文1および2において、先頭の「最高気温が25度」という単語列が共有されているため、図示するWFSTは、この単語列をプレフィックスとして、原稿文1と原稿文2に共通の遷移として構成している。つまり、原稿文1と原稿文2に関して、上記の000−002−003−004−005−006という一連の遷移が共有されている。ただし、構築するWFSTにおいて遷移を共有するのはプレフィックスの部分に関してだけであり、文の途中から、下流の共通の状態に遷移するような枝の合流は、設けない。
この原稿が更新された場合の、トランスデューサー更新部(801または901)によるWFSTの更新方法について説明する。更新された原稿は、次の通りである。
原稿文1a:最高気温が25度以上の夏日でした
原稿文2a:最高気温が24度5分の都心
原稿文3a:銀座の甘味どころでかき氷が登場
つまり、原稿文1と1aとの間には変更がなく、原稿文2と2aとの間では「25度」が「24度」に変更され、原稿文3と4を統合して原稿文3aとされた。
この原稿の更新に伴い、トランスデューサー更新部(801または901)は、更新後の原稿を1単語ずつ読み込み、次の処理を行う。即ち、更新前において同単語の遷移がある場合には、トランスデューサー更新部(801または901)は、WFSTを更新しない。今回読み込んだ単語の遷移が更新前のWFSTにおいてはなかった場合には、トランスデューサー更新部(801または901)は、WFST上で新たな遷移を作成する。なお、トランスデューサー更新部(801または901)は、新たな遷移を作成する場合には、その新たに枝分かれする遷移から文末までの一連の遷移を作成する。つまり、文末におけるイプシロン遷移を除けば、WFSTは木構造を維持する。言い換えれば、下流方向において遷移による複数の枝の合流を行わないようにする。
また、トランスデューサー更新部(801または901)は、更新原稿によって出力遷移にたどり着いたノードを記録しておく。
図19、図20、図21は、更新原稿に基づいてノードを追加した後のWFSTを示す概略図である。ここでも、これら3つの図の全体が、一つのWFSTを示している。この段階では、原稿の更新によって必要となった新たなノードおよび遷移は追加されているが、原稿の更新によって不要となったノードや遷移は削除されていない。
同図に示すように、原稿の更新によって新たに追加されたノードは、ノード034からノード040までに至る一連のノードと、ノード041からノード044までに至る一連のノードである。ノード034からノード040までに至る一連のノードは、原稿文2aに含まれる「24/度/5/分/の/都心」という単語列に対応する。また、ノード041からノード044までに至る一連のノードは、原稿文3aに含まれる「かき氷/が/登場」という単語列に対応する。また、出力遷移にたどり着いたノードは、ノード012,040,044である。また、更新後の原稿に対応させると、ノード017,027,033にはたどり着かない。
音声認識誤り修正装置は、上記の更新後には、これらのノード017,027,033にはたどり着かないことを前提として探索を進める必要がある。そのための枝刈りの方法として、次に2種類の方法を説明する。
(第1の枝刈り方法)
第1の枝刈り方法は、第1実施形態または第2実施形態のいずれにも適用可能である。この第1の枝刈り方法においては、トランスデューサー更新部(801または901)は、たどり着かないノード017,027,033に至る枝を削除する。具体的には、トランスデューサー更新部(801または901)は、ノード013から017までに至る一連のノードと、それらのノードに関する遷移とを削除する。これらのノードは、更新前の原稿に含まれていた「5/分/の/都心」という入力と、「最高気温が25度5分の都心。」という出力に関するものであり、更新後にはこの入力単語列が原稿内には含まれない。また、トランスデューサー更新部(801または901)は、ノード023から027までに至る一連のノードと、それらのノードに関する遷移とを削除する。これらのノードは、更新前の原稿に含まれていた「この/メニュー/が/登場」という入力と、「銀座の甘味どころでこのメニューが登場。」という出力に関するものであり、更新後にはこの入力単語列が原稿内には含まれない。また、トランスデューサー更新部(801または901)は、ノード029から033までに至る一連のノードと、それらのノードに関する遷移とを削除する。これらのノードは、更新前の原稿に含まれていた「夏/の/味覚/かき氷/です」という入力と、「夏の味覚かき氷です。」という出力に関するものであり、更新後にはこの入力単語列が原稿内には含まれない。
図22、図23、図24は、この第1の枝刈り方法によって、不必要なノードおよび遷移を削除した後のWFSTを示す概略図である。これら3つの図の全体が、一つのWFSTを示している。なお、削除されたノードがあるため、ノードの番号は再度振り直されている。
同図が示すWFSTは、更新後の原稿文1a〜3aにそれぞれ対応した、一連の遷移の系列を有する。原稿文1aに対応する一連の遷移は、ノード番号で表すと、ノード000−002−003−004−005−006−007−008−009−010−011−012−001を通るものである。また、原稿文2aに対応する一連の遷移は、ノード000−002−003−004−018−019−020−021−022−023−024−001を通るものである。また、原稿文3aに対応する一連の遷移は、ノード000−002−013−014−015−016−017−025−026−027−001を通るものである。なお、原稿文1aと2aとが、共通のプレフィックスを有し、そのプレフィックスに対応する遷移の部分を共有していることは、既に述べたとおりである。
(第2の枝刈り方法)
第2の枝刈り方法を適用できるのは、第2実施形態におけるトランスデューサー更新部901のみである。第2実施形態の音声認識誤り修正装置900は、既に説明したように、トレースバックを開始するノードを限定している。その限定されたノードの集合Qについての情報を音声認識誤り修正装置900は予め記憶している。この第2の枝刈り方法においては、トランスデューサー更新部901は、WFSTの状態遷移図からノードや遷移を削除するのではなく、トレースバックを開始するノードを限定することにより、実質的に状態遷移図から枝刈りをしたのと同様の効果を生じさせる。つまり、トレースバックを開始する候補であるノードの集合Qから、上記の枝刈り対象となったノードを除去する。具体的には、ノード集合Qに、ノード013から017までの一連のノードと、ノード023から027までの一連のノードと、ノード029から033までの一連のノードとの中のいずれかが含まれていても、それらのノードを集合Qから除外する。
この第2の枝刈り方法を用いれば、WFSTのデータにおいて実際にノードや遷移を削除する必要がないため、第1の枝刈り方法よりも高速に、不要な枝を刈ることが可能となる。
不要な遷移の枝を刈る2種類の方法は、以上に述べたとおりである。
次に、上記の方法でトランスデューサー更新部(801または901)がWFSTを更新した場合のスコア履歴について説明する。時刻tにおいて、音声認識誤り修正装置(800または900)は、最新の認識結果単語htを音声認識装置から受け取る。上記時刻tよりも前の時刻(t−u)に上記のWFSTの更新が起こった場合のスコア履歴は次に述べる通りである。
図25は、時刻(t−u)における各ノードのスコア履歴を示す概略図、つまりWFST更新直前の各ノードに関する履歴の記憶状況を示す概略図である。である。同図に示すノードおよび遷移は、更新前のWFST(図16,図17,図18に示したもの)に基づくものである。なお、図25は、WFST全体の中の一部のノードのみを示している。つまり、「甘味」−020−「どころ」−021−「で」−022−「この」−023−「メニュー」−024−「が」−025−[登場]−026という一連のノードおよび遷移である。この時刻においては、ここに示した各ノードにおける、時刻(t−u)、(t−u−1)、(t−u−2)、(t−u−3)、・・・のスコア履歴が記憶されている。上述したWFSTの更新方法では、更新後の文と更新前の文との間で共通のプレフィックスの部分にあたるノードをそのまま利用できる。つまり、トランスデューサー更新部(801または901)は、このプレフィックス部分にあたるスコア履歴(ノード020,021,022におけるスコア履歴)を維持したまま、そのプレフィックスの後ろの部分に新たな遷移を追加する。
図26は、上記図25の時刻(t−u)よりも後の、時刻tにおけるトランスデューサー更新部(801または901)による更新後のWFSTのスコア履歴を示す概略図である。つまり、WFST更新後に所定時間経過した時刻における各ノードに関する履歴の記憶状況を示す概略図である。図26に示すノードおよび遷移は、更新後のWFST(図22,図23,図24に示したもの)に基づくものである。前述の通り、ノード番号は振り直されている。なお、図26は、WFST全体の中の一部のノードのみを示している。つまり、「甘味」−015−「どころ」−016−「で」−017−「かき氷」−018−「が」−019−[登場]−020という一連のノードおよび遷移である。これらのノードのうち、ノード015,016,017については、時刻tから遡って、時刻(t−u−1)以前の履歴をも記憶している。また、ノード018,019,020については、時刻t、(t−1)、・・・、(t−u)の履歴を記憶している。トランスデューサー更新部(801または901)がこのような更新方法をとるため、つまり、更新前と共通のプレフィックスをそのまま利用できるようにしているため、探索は次のように進行する。即ち、たとえ時刻(t−u)に認識結果「どころ」が入力されて、ノード016が最尤ノードになっていたとしても、時刻(t−u)以後の入力単語による遷移から、ノード016の時刻(t−u)のスコア履歴にたどり着くことが可能である。
つまり、ここで述べる実施形態の方法によれば、進行中の探索を妨げることなく、WFSTを編集することが可能である。
以下に、上で説明した第1実施形態および第2実施形態における特徴的な構成をまとめる。
トランスデューサー更新部(801または901)は、原稿データについての更新原稿データを取得し、この更新原稿データに基づいて、有限状態トランスデューサー情報記憶部(WFST記憶手段110またはWFST記憶部610)における状態に関する情報および状態遷移に関する情報を更新する。これにより、オンラインでの原稿変更への対応を行える。
また、原稿の更新によって状態遷移図のツリー構造内に不要な枝が生じた場合にも、第1の枝刈り方法または第2の枝刈り方法を用いることにより、削除された原稿文に基づく状態および状態遷移を探索することはない。これにより、処理効率が上がるとともに、既に削除された原稿文に対応した誤った修正結果を出力してしまうことを防ぐことができる。
また第1の枝刈り方法を用いる場合、トランスデューサー更新部(801または901)は、上記の更新原稿データに基づいて、更新後の原稿テキストにおいて不要となった状態および状態遷移については有限状態トランスデューサー情報記憶部から削除する。
また第2の枝刈り方法を用いる場合、第2実施形態によるトランスデューサー更新部901は、更新原稿データに基づいて、更新後の原稿テキストにおいて不要となった状態に対応するノードを、トレースバック開始の対象とする集合から除外する。
その前提として、第2実施形態においては、既に述べたように、WFST記憶部610は、出力シンボルが空でない状態遷移であるところの出力遷移を状態遷移の一部として含んで記憶するとともに、前記出力遷移の遷移元状態に対応するノードの集合を特定する情報を記憶している。また、原稿探索部640は、WFST記憶部610に記憶されている出力遷移の遷移元状態に対応するノードの集合の情報を参照し、前記集合に含まれるノードの中で最尤であるノードをその時点における最尤ノードとして決定する。つまり、トレースバックを開始するノードの候補を、限定している。
この構成により、WFST記憶部610から、不要となった状態および状態遷移を削除することなく、正しい探索を続けることができる。つまり、原稿の更新に伴うWFSTの更新を、正しく且つ高速に行うことができる。
また、トランスデューサー更新部(801または901)は、更新原稿データに基づいて、更新後の原稿テキストに含まれる文のうち先頭から共通の単語列を有する複数の文について、共通の単語列の部分について状態および状態遷移を共通のものとするよう状態に関する情報および前記状態遷移に関する情報を更新するとともに、更新原稿データを取得する前に前記ノードデータ記憶部に記憶された前記スコアのうち、更新後の原稿テキストに含まれる単語列に対応する前記スコアを削除せず維持する。
これにより、状態遷移の木構造に新たに枝が付け加えられた場合にも、原稿の更新前に蓄積していたスコアの履歴情報を維持し、その後の探索処理において利用できる。つまり、WFSTをオンラインで更新しても、進行中の探索処理を正しく続けることができる。
第1実施形態におけるWFST記憶手段110および第2実施形態におけるWFST記憶部610は、それぞれ、原稿テキストに含まれる文のうち先頭から共通の単語列を有する複数の文について、共通の単語列の部分について状態および状態遷移を共通のものとするよう状態に関する情報および状態遷移に関する情報を記憶する。つまり、WFST記憶手段110およびWFST記憶部610は、ツリーの構造(終端の状態における合流を除く)を有する状態遷移図に相当する情報を記憶する。これにより、複数の文に共通のプレフィックス部分に対応する状態および状態間の遷移を、文ごとに設けず、共通の状態として記憶する。これにより、先頭部分が共通の複数の文が原稿内に含まれている場合にも、効率よく処理を行うことができる。
なお、上述した各実施形態における各装置の全部または一部の機能をコンピューターで実現するようにしても良い。その場合、それらの機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。