(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-25
(45)【発行日】2024-05-08
(54)【発明の名称】未知語検出方法及び未知語検出装置
(51)【国際特許分類】
G10L 15/06 20130101AFI20240426BHJP
【FI】
G10L15/06 300J
(21)【出願番号】P 2020147193
(22)【出願日】2020-09-02
【審査請求日】2023-01-27
(73)【特許権者】
【識別番号】000233169
【氏名又は名称】株式会社日立ソリューションズ・テクノロジー
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】孫 慶華
【審査官】冨澤 直樹
(56)【参考文献】
【文献】国際公開第2007/097176(WO,A1)
【文献】特開2010-039539(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34
(57)【特許請求の範囲】
【請求項1】
プロセッサとメモリを有する計算機が、入力テキストから未知語を検出する未知語検出方法であって、
前記計算機が、前記入力テキストを音素配列に変換する音素変換ステップと、
前記計算機が、前記音素配列を受け付けて、予め設定された言語モデルを参照して前記音素配列を出力テキストに変換する認識ステップと、
前記計算機が、前記入力テキストと上記変換された前記出力テキストを比較して未知語を検出する未知語検出ステップと、
を含
み、
前記音素変換ステップは、
形態素解析によって前記入力テキストを、同形異音語の形態素配列を含む、形態素配列に変換するステップと、
変換された前記形態素配列を、所定のポーズに囲まれるフレーズ単位に切り出してフレーズ単位の形態素配列を生成するステップと、
前記フレーズ単位の形態素配列から、前記フレーズ単位の音素配列を生成するステップと、
前記フレーズ単位の音素配列に対して音声合成を行って音声を生成するステップと、
前記音声を予め設定された音声モデルを参照して前記音素配列に変換するステップと、
を含むことを特徴とする未知語検出方法。
【請求項2】
請求項1に記載の未知語検出方法であって、
前記計算機が、前記未知語を前記言語モデルに登録する単語登録ステップを、さらに含むことを特徴とする未知語検出方法。
【請求項3】
請求項1に記載の未知語検出方法であって、
前記音素変換ステップでは、
予め設定した音声合成辞書で前記形態素配列を前記音素配列に変換し、
前記音声合成辞書は、前記言語モデルとは異なる手法で構成されたことを特徴とする未知語検出方法。
【請求項4】
請求項2に記載の未知語検出方法であって、
前記単語登録ステップでは、
前記言語モデルに前記未知語を登録する際には、使用方法が類似する単語の統計情報を当該未知語の統計情報として登録することを特徴とする未知語検出方法。
【請求項5】
プロセッサとメモリを有し、入力テキストから未知語を検出する未知語検出装置であって、
前記入力テキストを音素配列に変換する音素変換部と、
前記音素配列を受け付けて、予め設定された言語モデルを参照して前記音素配列を出力テキストに変換する認識部と、
前記入力テキストと上記変換された前記出力テキストを比較して未知語を検出する未知語検出部と、
を有し、
前記音素変換部は、
形態素解析によって前記入力テキストを、同形異音語の形態素配列を含む、形態素配列に変換し、
変換された前記形態素配列を、所定のポーズに囲まれるフレーズ単位に切り出してフレーズ単位の形態素配列を生成し、
前記フレーズ単位の形態素配列から、前記フレーズ単位の音素配列を生成し、
前記フレーズ単位の音素配列に対して音声合成を行って音声を生成し、
前記音声を予め設定された音声モデルを参照して前記音素配列に変換することを特徴とする未知語検出装置。
【請求項6】
請求項5に記載の未知語検出装置であって、
前記未知語を前記言語モデルに登録する単語登録部を、さらに有することを特徴とする未知語検出装置。
【請求項7】
請求項5に記載の未知語検出装置であって、
前記音素変換部は、
予め設定した音声合成辞書で前記形態素配列を前記音素配列に変換し、前記音声合成辞書は、前記言語モデルとは異なる手法で構成されたことを特徴とする未知語検出装置。
【請求項8】
請求項6に記載の未知語検出装置であって、
前記単語登録部は、
前記言語モデルに前記未知語を登録する際には、使用方法が類似する単語の統計情報を当該未知語の統計情報として登録することを特徴とする未知語検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声認識技術に関するものであり、特に音声認識システムに含まれていない語彙(未知語)を検出する装置及び方法に関する。
【背景技術】
【0002】
近年、深層学習などの技術の進歩により、音声認識の精度が大きく向上した。読み上げ音声や講演音声などにおいては、音声認識精度はすでに人間を超えるレベルになってきた。それを背景に、音声認識システムは広く使われるようになった。例えば、会議の議事録作成やコールセンターの会話履歴の自動生成など、音声認識ビジネスの市場は大きく成長している。
【0003】
音声認識システムには、大きく分けて、音声から特徴を抽出して音素配列に変換する音響モデルと、音素配列から単語配列に変換する言語モデルで構成されている。音声認識の誤りについては、音響モデルに起因する周囲の雑音や発音の訛りによるものと、言語モデルに起因する未知語(音声認識システムに登録されていない単語)によるものと、大きく分類できる。
【0004】
未知語を検出する技術としては、特許文献1が知られている。特許文献1の技術は、認識音声に含まれる未知語が、繰り返して複数回出現していることに注目し、音素特徴的に似たパターンが繰り返されて、かつ、既知語でないものに対して、登録を行っている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記特許文献1では、繰り返し出現する音素列を未知語候補として抽出しているため、出現回数の少ない未知語は検出できない、という問題があり、検出精度の向上が必要となる。
【0007】
汎用的な音声認識製品における言語モデルは、大規模なテキストコーパスから学習することが広く行われている。しかし、すべての語彙を網羅するテキストコーパスを用意することができない。
【0008】
特に、言語は日々進化していて、新語が毎日のように作られているので、未知語の問題はどうしても避けれられない。未知語では、新語や固有名詞などの種類が挙げられる。例えば、2019年新語流行語大賞にある、「タピる」や「令和」などは典型的な新語である。
【0009】
そして、ユーザ特有の省略語や固有名詞なども存在する。例えば、商品名である「ABC2020」、研究開発本部の略語である「研開」については、ユーザ自身が登録しなければならない。しかし、ユーザにとっては、未知語登録は人手に頼る部分が大きく、非常にコストがかかる。特に、どの単語が未知語であるのか、何を登録すべきなのか、について分かりにくく、ユーザにとって大きな負担となる。
【0010】
コールセンターの利用を想定した場合、オペレーターとカスタマーとの会話履歴がすでに大量に蓄積されていたり、オペレーター用のQ&Aマニュアルが整備されていたりして、音声認識のターゲットドメイン(業務内容や利用シーン)におけるテキストコーパス(以降、ドメインテキストと呼ぶ)が存在することが多い。
【0011】
ターゲットドメインに特化した音声認識用言語モデルをチューニングするためには、ドメインテキストに含まれる未知語を、音声認識システムに登録することが必要である。これまでは、未知語の登録がユーザにとって、大きな負担となっていた。
【0012】
そこで、ドメインテキストから自動的に未知語を検出し、自動登録可能な単語を自動登録し、自動登録できない単語だけ、ユーザに提示することができれば、登録作業コストを大きく削減することができる。
【0013】
本発明は、上記問題点に鑑みてなされたもので、登録すべき未知語を自動的にユーザに提示することを目的とする。
【課題を解決するための手段】
【0014】
本発明は、プロセッサとメモリを有する計算機が、入力テキストから未知語を検出する未知語検出方法であって、前記計算機が、前記入力テキストを音素配列に変換する音素変換ステップと、前記計算機が、前記音素配列を受け付けて、予め設定された言語モデルを参照して前記音素配列を出力テキストに変換する認識ステップと、前記入力テキストと上記変換された前記出力テキストを比較して未知語を検出する未知語検出ステップと、を含む。
【発明の効果】
【0015】
本発明によれば、登録すべき未知語を自動的にユーザに提示することが可能となって、ユーザの負担を減らす効果がある。
【0016】
本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。
【図面の簡単な説明】
【0017】
【
図1A】従来の音声認識部の概要を説明するブロック図である。
【
図1B】本発明の実施例1による未知語自動検出装置の概略構成を示すブロック図である。
【
図2】本発明の実施例1に係る未知語自動検出装置の構成の一例を説明する図である。
【
図3】本発明の実施例1における音声合成部の処理を説明する図である。
【
図4】本発明の実施例1におけるテキスト変換部の処理を説明する図である。
【
図5】本発明の実施例1における未知語検出部の処理を説明する図である。
【
図6】本発明の実施例1における形態素解析モジュールから出力される形態素配列の一例を示す図である。
【
図7】本発明の実施例1における音素配列生成モジュールから出力される確率付き音素配列の一例を示す図である。
【
図8】本発明の実施例1における音声認識ユーザ辞書登録部の処理を説明する図である。
【
図9】本発明の実施例2に係る未知語自動検出装置の機能の一例を説明する図である。
【
図10】本発明の実施例2における音声合成部の処理を説明する図である。
【
図11】本発明の実施例2におけるテキスト変換部の処理を説明する図である。
【
図12】本発明の実施例3における未知語自動検出装置の概略構成を示すブロック図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態を添付図面に基づいて説明する。
【実施例1】
【0019】
本実施例では、ユーザの用意したドメインテキストから、音声合成システムを利用した音声認識システムの未知語自動検出を行い、登録語候補を提示することを想定した基本構成を説明する。なお、ドメインテキストは、音声認識のターゲットドメイン(業務内容や利用シーン)におけるテキストコーパスである。
【0020】
<システム構成>
図1Aは、従来の音声認識部(音声認識システム)の構成を示す図である。従来から、音声認識部30は、予め設定された音響モデル310を用いて入力音声から音声特徴を抽出する音響特徴解析部31と、予め設定された言語モデル320を用いて音響特徴からテキストに変換(デコード)するテキスト変換部で構成される。本実施例は、このような音声システムの言語モデルをチューニングする未知語自動検出装置を想定している。なお、以下では、音響モデル310と言語モデル320を合わせて音声認識辞書300とする。
【0021】
以下では、○○装置、○○部、○○モジュールという表現で内部処理の各単位を呼称するが、ハードウェアとしての実現も、ソフトウェアプログラムとして実現されたシステム、又はプログラムという形態で実現することも可能である。また、図面には、○○装置、○○部、○○モジュールについて、○○の部分のみを表記し、装置、部、モジュールを省略することもある。
【0022】
また、以下の説明では、日本語音声認識を例にしているが、ほかの言語、もしくは、複数言語の混じっている場合も処理が可能である。ただし、その場合は、その言語に対応したプログラム及びデータを用いなければならない。
【0023】
<構成>
図1Bは、本発明の実施例1による未知語自動検出装置100の概略構成の一例を示すブロック図である。
【0024】
当該未知語自動検出装置100は、記憶装置101と、テキスト入力I/F(インタフェース)102と、CPU103と、主記憶装置であるメモリ104と、スピーカーに接続するための音声出力I/F105と、テキスト提示I/F106と、を有し、これらの構成部はバス107によって相互に接続されている。
【0025】
未知語自動検出装置100は、例えば、カーナビゲーション装置や、携帯電話機、パーソナルコンピュータ等のデバイスに、未知語自動検出ユニットとして組み込まれている。そのため、
図1Bに示した各ハードウェアは、未知語自動検出装置が組み込まれたデバイスの構成を用いて実現している。
【0026】
メモリ104には、テキスト入力部10と、音声合成部20と、音声認識部30と、未知語検出部40と、音声合成ユーザ辞書登録部50と、音声認識ユーザ辞書登録部60がプログラムとしてロードされて、CPU103によって実行される。
【0027】
CPU103は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、CPU103は、音声認識プログラムに従って処理を実行することで音声認識部30として機能する。他のプログラムについても同様である。さらに、CPU103は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【0028】
記憶装置101は、不揮発性の記憶媒体で構成されて、各プログラムが使用するデータを格納する。データとしては、例えば、音声合成辞書210と、形態素辞書220と、フレーズ辞書230と、音響モデル310と、言語モデル320が含まれる。なお、音声合成辞書210と、形態素辞書220と、フレーズ辞書230と、音響モデル310と、言語モデル320は、周知又は公知の技術で生成すればよいので、本実施例では詳述しない。
【0029】
<機能>
図2は、未知語自動検出装置100の構成の一例を説明する図である。
図2に示すように、未知語自動検出装置100は、テキスト入力部10と、音声合成部20と、音声合成ユーザ辞書登録部50と、テキスト変換部32と、未知語検出部40と、音声認識ユーザ辞書登録部60を機能として有している。
【0030】
以下、それぞれについて詳細に説明する。特に、テキスト変換部32は本発明の特徴となる部分である。そして、音声合成ユーザ辞書登録部50は、より高精度に未知語を検出するための処理であるが、必須ではない。
【0031】
テキスト入力部10は、ユーザが用意したドメインテキストを受け付けて、そのまま音声合成部20に出力する。
【0032】
音声合成部20は、音声合成辞書210を参照して入力テキストから音声合成を行い、音素配列を生成してテキスト変換部32へ出力する。テキスト変換部32は、音素配列を入力して音声認識辞書300を参照してテキストに変換するテキスト変換モジュール(
図11)を有する。
【0033】
未知語検出部40は、変換されたテキストの単語配列(出力テキスト)と、音声合成部20からの形態素配列を入力して、後述するように言語モデル320に登録されていない未知語の候補を検出する。音声認識ユーザ辞書登録部60は、未知語の候補から選択された未知語を音声認識辞書300へ登録する。なお、図示の例では、未知語検出部40へ音声合成部20からの形態素配列を入力する例を示したが、これに限定されるものではなく、入力テキストを未知語検出部40へ入力してもよい。
【0034】
音声合成部20は、音声合成システムに含まれるモジュールを利用することを想定している。
図3は、音声合成部20の処理を説明する図である。
【0035】
音声合成部20は、文分割モジュール21と、形態素解析モジュール22と、フレーズ解析モジュール23と、音素配列生成モジュール24と、音声波形生成モジュール25で構成されている。
【0036】
図3を用いて、音声合成部20の各機能ブロックについて、説明する。
図3において、音声波形生成モジュール25は、音声合成ユーザ辞書登録部50に必要な処理であり、音声合成ユーザ辞書登録部50が不要な場合は、この音声波形生成モジュール25も不要となる。音声合成ユーザ辞書登録部50が不要な場合は、音声認識部30が音素配列でテキストの変換を実施する場合であり、この場合は合成音声を利用しないからである。
【0037】
文分割モジュール21は、入力したテキストを文単位に分割する機能を有する。本実施例の文分割モジュール21は、周知又は公知の音声合成に含まれるモジュールであるため、本実施例1ではその説明を省略する。
【0038】
形態素解析モジュール22は、入力された文単位のテキストに対して、形態素解析を行うモジュールである。本実施例の形態素解析モジュール22は、周知又は公知の音声合成の形態素解析とほぼ同じだが、音声合成の場合は、最も確率の高い形態素配列のみを出力されるのに対して、本実施例の形態素解析モジュール22は、すべての同形異音語の形態素配列510を出力する。
【0039】
図6は、形態素解析モジュール22が出力する形態素配列510の一例を示す図である。形態素解析モジュール22は、「明日7時集合」と入力されたときに、
図6で示したような接続可能な複数の同形異音語の形態素(図中T1a、T1bやT2a、T2b)をすべて出力する。
【0040】
形態素解析モジュール22が同形異音語の形態素配列510を出力することにより、ありうるすべての読み方に対して、未知語検出部40で未知語検出を行い、同形異音語の形態素について未登録による未知語も検出可能である。
【0041】
この形態素解析モジュール22で得られた形態素配列510は、フレーズ解析モジュール23と未知語検出部40のテキスト表記正規化モジュールに出力される。
【0042】
ここで、音声認識用の言語モデルを学習するときに発話テキストを形態素に分解してから、言語モデルを学習することが知られている。本形態素解析モジュール22に用いる形態素解析のアルゴリズム(手法)やモデルは、言語モデル320の学習時に用いたものと異なることが推奨される。その理由は、音声認識と音声合成で同じ形態素解析を用いた場合、同じような解析エラーが起こる確率が高いので、未知語検出の精度が低下する。
【0043】
例えば、未知語である「西国分寺」に対して、形態素解析結果が「西:さい」「国分寺:こくぶんじ」となった場合は、「さいこくぶんじ」の合成音声が音声認識部30に入力される。
【0044】
しかし、同じ形態素解析を用いて学習した音声認識の言語モデル320は、「さいこくぶんじ」を「西国分寺」に変換する可能性があるので、未知語の検出ができない。しかし、音声合成部20の形態素解析(形態素解析モジュール22、形態素辞書220)と音声認識部30の形態素解析が異なる場合は、「さいこくぶんじ」を「再国分寺」に変換される可能性が高いので、未知語の検出率が高まる。
【0045】
フレーズ解析モジュール23は、入力された形態素配列510をフレーズ単位に切り出してフレーズ単位の形態素配列520を出力する。ただし、フレーズ境界は長ポーズが挿入可能なケースに限る。日本語のポーズは、呼吸を伴う長ポーズと、呼吸を伴わない短ポーズが存在する。なお、長ポーズ、短ポーズは、ポーズの長さに応じて予め設定することができる。
【0046】
長ポーズの前後は、文脈的につながりが弱く、長ポーズで区切られているフレーズ区間が音声認識の区間となることが多い。そこで、音声認識部30の特徴を考慮して、フレーズ単位(以降、単にフレーズといった場合は、長ポーズに挟まれているフレーズのことを指す)での未知語検出を行う。そうすることにより、音声認識部30がフレーズを跨いだ候補単語列の検索を防げることができ、未知語に起因しない認識エラーを防止することができる。
【0047】
例えば、「明日は田氏が行く」に対して、「/あ/, /し/, /た/, /わ/」と「/た/, /し/,/が/, /い/, /く/」の2つのフレーズに切られた音素配列(本発明は、読みやすくするために、音素配列をシラブルで表現することがある。例えば、シラブル「た」は、音素/t/と音素/a/で構成されているが、読みやすくするために、以降、音素配列をシラブル表記の「/た/」で表記する。)が、別々にテキスト変換部32に出力する。
【0048】
そこで、文単位でテキスト変換部32に出力する場合は、「/あ/, /し/, /た/, /わ/, /た/, /し/,/が/, /い/, /く/」の音素配列が、「明日私が行く」に変換される可能性が高い。そうなった場合、未知語による認識エラーではないので、未知語の自動検出精度に影響する。
【0049】
音素配列生成モジュール24は、フレーズ単位の形態素配列520から、音声認識に対応した音素配列530を生成する。生成された音素配列530は、テキスト変換部32に出力するとともに、音声波形生成モジュール25にも出力する。
【0050】
音素配列生成モジュール24は、形態素配列に同形異義語が存在するときに、出現確率付き音素配列530を出力すると、テキスト変換部32では高精度に解析ができる。ただし、確率決定できない場合は同じ確率に設定するとよい。
図7は、確率付き音素配列の一例を示す図である。
【0051】
音声波形生成モジュール25では、入力された音素配列530に対して音声合成を行い、ユーザに音声を提示する。ユーザは読み間違った単語に対して、音声合成ユーザ辞書登録部50が音声合成辞書210内の音声合成ユーザ辞書の登録を行い、テキストから音素配列の予測ミスを防ぐことができ、音声認識部30の未知語検出精度を向上させることができる。
【0052】
音声合成ユーザ辞書登録部50は、音声出力I/F105とテキスト提示I/F106を介してユーザに合成音声と入力テキストを提示し、読み間違いの検出をユーザに依頼する。ユーザは読み間違いを発見した場合は、テキスト入力I/F102を介して音声合成ユーザ辞書に検出された単語を登録し、音声合成部20をチューニングする。音声合成ユーザ辞書登録は、周知又は公知の音声合成システムが有する機能であり、本発明ではその説明を省略する。
【0053】
この音声合成ユーザ辞書登録部50は、必須ではないが、音声合成辞書210の未知語を検出できるうえ、音声合成部20のチューニングともなる。音声合成製品も利用しているユーザに対しては、一石二鳥である。
【0054】
一方、音声合成辞書210に登録した単語(音声合成部20にとっての未知語)は、音声認識部30にとっても、未知語である可能性が高いので、同時に音声認識部30にも登録することがコストの削減につながる。
【0055】
テキスト変換部32では、入力された確率付き音素配列530に対して、音声認識の言語モデル320を用いて、N通りの単語配列610に変換する(Nベスト出力とも呼ばれる)。周知又は公知の音声認識ではN=1となっていることが多いため、N=1でも問題ない。これは、音素配列530からNベストを出力する機能は、音声認識にとって、広く知られた機能なので、その説明を省略する。
【0056】
周知又は公知の音声認識は、入力された音声に対して、音響モデル310を使って、音素配列に変換するが、本実施例では、音響モデル310の影響を除くため、音声合成部20で生成された音素配列530を直接テキスト変換部32へ入力するようにした。そうすることで、より正確に言語モデル320をチューニングすることが可能となる。
【0057】
未知語検出部40では、音声合成部20で入力テキスト11から得られた形態素配列510と、音声認識部30で得られた認識結果(複数の単語配列610)に対して、表記の正規化を行ってから、比較を行う。未知語検出部40は、表記の異なる部分を未知語の登録候補として、音声認識ユーザ辞書登録部60に出力する。
【0058】
図5は、未知語検出部40の処理を説明する図である。未知語検出部40は、テキスト表記正規化モジュール41、42と、単語比較モジュール43を含んで、形態素配列510と単語配列610を入力して未知語リスト730を出力する。
【0059】
テキスト表記正規化モジュール41、42は、表記の揺れを吸収する。例えば、送り仮名の揺れ:「引っ越し」と「引越し」や、カタカナ表記の揺れ:「センター」と「センタ」、数字表記の揺れ:「10」と「十」、漢字かなの揺れ:「為」と「ため」などを統一することにより、単語比較が正確になる。周知又は公知の音声合成部には、テキスト正規化処理モジュールが含まれているので、本実施例ではテキスト表記正規化モジュール41、42についての詳細な説明を省略する。
【0060】
単語比較モジュール43は、「正規化した正解単語配列710」と「正規化した認識結果単語配列720」を比較し、異なる部分を抽出する。
【0061】
例えば、一例では、「私は研開所属です」の例では、「正規化した認識結果単語配列720」は「私」「は」「見解」「所属」「です」であり、「正規化した正解単語配列710」は、「私」「は」「研開」「所属」「です」となる。単語比較モジュール43は、2つの単語系列を比較すると、「研開」と「見解」が異なるため、正解単語配列710の「表記=研開;読み=けんかい;品詞=固有名詞」を未知語リスト730として抽出し、音声認識ユーザ辞書登録部60に出力する。
【0062】
図8は、音声認識ユーザ辞書登録部60の処理を説明する図である。音声認識ユーザ辞書登録部60は、単語存在確認モジュール61と、既存単語修正モジュール62と新規単語登録モジュール63とで構成される。
【0063】
音声認識ユーザ辞書登録部60は、入力された登録候補単語730A(又は未知語リスト730)をテキスト提示I/F106を介してユーザに提示し、単語(未知語)登録をサポートする。
【0064】
未知語自動検出装置100のユーザは、テキスト入力I/F102を介して登録する未知語を指定又は修正する。音声認識ユーザ辞書登録部60は、言語モデル320内に予め設定された音声認識ユーザ辞書に指定された単語を登録する。なお、登録候補単語730Aは、未知語リスト730の全部又は一部を含むことができる。
【0065】
単語存在確認モジュール61は、入力された登録候補単語と同じ表記の単語がすでに音声認識辞書300の言語モデル320(音声認識ユーザ辞書)に登録されているか否かを判定する(S1)。
【0066】
音声認識ユーザ辞書登録部60は、登録されていない場合は単語登録をユーザに依頼する。新規単語登録モジュール63は、ユーザからの指令に基づいて音声認識辞書300の言語モデル320に単語を登録する。
【0067】
単語存在確認モジュール61は、同じ表記の単語がすでに登録されている場合は、登録単語の登録情報が間違っていないか、ユーザに修正の有無を依頼する(S2)。ユーザが修正する必要がないと、判断した場合は、新しい単語として登録することをユーザに依頼する(S3)。この音声認識ユーザ辞書登録部60は、ユーザがテキスト提示I/F106やテキスト入力I/F102を介して、作業することになる。
【0068】
既存単語修正モジュール62は、修正すべき項目(表記、読み、品詞など)を修正したうえ、既存単語を上書きして、言語モデル320を更新する。
【0069】
新規単語登録モジュール63では、入力された単語の表記、読み、品詞などの項目に加え、統計情報も付与してから、言語モデル320を更新する。なお、音声認識ユーザ辞書に登録する統計情報とは、単語の出現確率を表すN-gram等の周知又は公知の値を使用することができるが、音声認識部30に依存するものなので、本実施例1ではこれに限定されない。
【0070】
登録単語に付与する統計情報は、認識しやすくするための統計値を事前に用意し、すべての新規登録単語に対して、この統計値を利用する方法が考えられる。しかし、このような登録方法だと、従来正しく認識した音声に対しても影響し、ドメインテキスト以外の発話の認識率が下がることもある。
【0071】
この問題を解決するために、より文脈を考慮した音声認識を実現する必要がある。例えば、言語モデル320に登録する単語の「使い方の近い単語」を指定し、その単語の統計情報を用いることができる。
【0072】
一例では、「A商店」を新規単語として登録しようとした場合は、音声認識の言語モデル320に含まれている「B商店」の統計情報を用いて登録することができる。「使い方の近い単語」はユーザが指定してもよいが、ウェブでの自動検索やWord2Vecのような単語距離を算出する手法を使っててもよい。いずれの手法を用いるのかについては、本実施例1では限定しない。なお、「使い方の近い単語」は、単語のカテゴリ(例えば、商店名)が類似する単語で構成することができる。
【0073】
なお、上記では単語存在確認モジュール61は、言語モデル320に未知語が登録されていない場合は未知語の登録をユーザに依頼する例を示したが、これに限定されるものではない。例えば、単語存在確認モジュール61は、未知語が言語モデル320に登録されていない場合には、新規単語登録モジュール63に未知語の登録を指令して、自動的に未知語を登録するようにしてもよい。
【0074】
以上のように、本実施例の未知語自動検出装置100では、テキストが存在する場合、音声合成部20を用いて、音声合成した後、音声認識部30でテキスト化して、入力テキストと出力テキストの差異を出力し、音声認識辞書300に登録すべき単語(未知語)を作業者に提示することが可能となる。
【0075】
音声認識部30と同様に音声合成部20でも同じく未知語の問題が存在する。ただし、本実施例では、未知語に対して、音声合成部20は表記から発音を推測するのに対して、音声認識部30は発音(音素配列)から既知の単語配列610を生成するため、検出された未知語は必ず音声合成部20に登録する必要はない。
【実施例2】
【0076】
実施例2では、実施例1と同じく、ユーザの用意したドメインテキストから、音声合成部20を利用した音声認識部30での未知語の自動検出を行い、登録語候補を提示することを想定した構成を説明する。なお、未知語自動検出装置100の構成は、前記実施例1と同様である。
【0077】
図9は、実施例2の未知語自動検出装置100の機能の一例を説明する図である。以下では、実施例1と差異のある音声合成ユーザ辞書登録部50とテキスト変換部32について説明する。
【0078】
図10は、音声合成部20の処理を説明する図である。前記実施例1では、音素配列生成モジュール24から生成された音素配列530をテキスト変換部32に出力していたが、実施例2では、音声波形生成モジュール25で合成された音声540をテキスト変換部32に出力する。それ以外の処理は前記実施例1と同様である。
【0079】
図11は、実施例2のテキスト変換部32の処理を説明する図である。音声認識部30は、音響モデル310を用いて、入力された音声540から音素に変換する音素配列変換モジュール322が追加された点が前記実施例1と相違する。音素配列変換モジュール322は、音声認識システムにおいて周知又は公知の技術であるため、ここでは詳細の説明を省略する。
【0080】
実施例2が、実施例1と機能的に相違する点を説明する。実施例1はテキスト変換部32に音素配列530を入力することにより、音声認識の音響モデル310の影響を受けずに、音声認識の言語モデル320のみを評価(テスト)することができる。
【0081】
その一方、音声合成部20と音声認識部30の音素定義の違いを吸収する必要がある。例えば、「後押し」という単語では、音声合成部20から出力する音素配列530が「アトーシ」になっていることに対して、音声認識部30では「アトオシ」として登録されているため、「後押し」の単語は探索候補から外れる。特に、異なるメーカーの音声合成システムを利用した場合は、音素定義の違いによる未知語の誤検出が顕著となる場合がある。
【0082】
そこで、実施例2では、合成した音声540をテキスト変換モジュール321に入力するため、音声合成部20と音声認識部30の音素の定義の違いを吸収することが可能となる。
【0083】
そのため、実施例2では、音声認識部30と異なるメーカーの音声合成部20も利用することが可能となる。さらに、複数メーカーの音声合成エンジンを同時に利用することにより、多数決により、さらに精度の高い未知語の検出が可能となる。
【実施例3】
【0084】
図12は、実施例3の未知語自動検出装置100の構成の一例を説明するブロック図である。
【0085】
前記実施例1のように未知語の検出にすべての機能を1つのデバイスだけで実現してもよいが、
図12に示すように、複数の端末1101-1~1100-Nとサーバ1001で構成することができる。
【0086】
サーバ1001は、CPU1002と、メモリ1003と、通信I/F1004と、記憶装置1005をバス1006で相互に接続する。メモリ1003と記憶装置1005は、前記実施例1の未知語自動検出装置100と同様に未知語の検出を実施する。
【0087】
サーバ1001は、ネットワーク1007を介して端末1101-1~1100-Nに接続される。
【0088】
端末1101-1は、CPU1101と、メモリ1102と、通信I/F1104と、音声出力I/F1103と、テキスト入力I/F1105と、テキスト提示I/F1106を有する。端末1101-2~Nも同様の構成であり、前記実施例1に示したように登録する単語の確認や修正を実施する。なお、サーバ1001は、前記実施例1の未知語自動検出装置100の機能の全部もしくは一部を実現すればよい。
【0089】
<結び>
以上のように、上記実施例1~3の未知語自動検出装置100は、以下のような構成とすることができる。
【0090】
(1)プロセッサ(CPU103)とメモリ(104)を有する計算機(100)が、入力テキスト(11)から未知語を検出する未知語検出方法であって、前記計算機が、前記入力テキスト(11)を音素配列(530)に変換する音素変換ステップ(音声合成部20)と、前記計算機が、前記音素配列(530)を受け付けて、予め設定された言語モデル(320)を参照して前記音素配列(530)を出力テキスト(単語配列610)に変換する認識ステップ(音声認識部30)と、前記入力テキスト(11)と上記変換された前記出力テキスト(610)を比較して未知語を検出する未知語検出ステップ(未知語検出部40)と、を含むことを特徴とする未知語検出方法。
【0091】
上記構成により、未知語自動検出装置100は、入力テキスト11を音素配列530に変換してから、言語モデル320を用いて音素配列530を単語配列610(出力テキスト)に変換し、入力テキスト11と単語配列610を比較して、言語モデル320で認識できない単語を未知語として自動的に検出することが可能となる。これにより、入力テキスト11から言語モデル320に登録すべき未知語を自動的にユーザに提示することが可能となって、音声認識部30を使用するユーザの負担を減らす効果がある。
【0092】
(2)上記(1)に記載の未知語検出方法であって、前記計算機が、前記未知語を言語モデル(320)に登録する単語登録ステップ(音声認識ユーザ辞書登録部60)を、さらに含むことを特徴とする未知語検出方法。
【0093】
上記構成により、未知語自動検出装置100は、自動的に検出した未知語を言語モデル320に登録することで、音声認識部30の認識精度を向上させることが可能となる。
【0094】
(3)上記(1)に記載の未知語検出方法であって、前記音素変換ステップ(20)では、音声合成によって前記入力テキスト(11)を音素配列(530)に変換することを特徴とする未知語検出方法。
【0095】
上記構成により、未知語自動検出装置100は、音声合成部20は表記から発音を推測するのに対して、音声認識部30は発音(音素配列)から既知の単語配列610を生成するため、検出された未知語は必ず音声合成部20に登録する必要はない。これにより、音声認識部30のメンテナンスを行うことなく、言語モデル320のチューンを行うことが可能となる。
【0096】
(4)上記(1)に記載の未知語検出方法であって、前記音素変換ステップ(20)では、所定のポーズに囲まれるフレーズ単位に区切られた音素配列(530)を出力することを特徴とする未知語検出方法。
【0097】
長ポーズの前後は、文脈的につながりが弱く、長ポーズで区切られているフレーズ区間が音声認識の区間となることが多い。そこで、未知語自動検出装置100は、音声認識部30の特徴を考慮して、フレーズ単位での未知語検出を行う。これにより、音声認識部30がフレーズを跨いだ候補単語列の検索を防げることができ、未知語に起因しない認識エラーを防止できる。
【0098】
(5)上記(3)に記載の未知語検出方法であって、前記音声合成では、形態素解析(22)によって前記入力テキスト(11)を形態素配列(510)に変換するステップと、予め設定した音声合成辞書(210)で前記形態素配列(510)を前記音素配列(530)に変換するステップを含み、前記音声合成辞書(210)は、前記言語モデル(320)とは異なる手法で構成されたことを特徴とする未知語検出方法。
【0099】
同じ形態素解析を用いて学習した音声認識の言語モデル320は、未知語を既知の単語配列に変換する可能性があるので、未知語の検出ができない場合がある。しかし、音声合成部20の形態素解析モジュール22及び形態素辞書220と、音声認識部30の形態素解析が異なる場合は、未知語を既知の単語配列に変換される可能性が低くなり、未知語の検出率を向上させることができる。
【0100】
(6)上記(1)に記載の未知語検出方法であって、前記単語登録ステップ(60)では、前記言語モデル(320)に前記未知語を登録する際には、使用方法が類似する単語の統計情報を当該未知語の統計情報として登録することを特徴とする未知語検出方法。
【0101】
上記構成により、未知語自動検出装置100は、統計情報(出現確率)を用いることで、より文脈を考慮した音声認識を実現することができる。
【0102】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【0103】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0104】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0105】
10 テキスト入力部
20 音声合成部
30 音声認識部
40 未知語検出部
50 音声合成ユーザ辞書登録部
60 音声認識ユーザ辞書登録部
100 未知語自動検出装置
101 記憶装置
102 テキスト入力I/F
103 CPU
104 メモリ
105 音声出力I/F
106 テキスト提示I/F
210 音声合成辞書
220 形態素辞書
230 フレーズ辞書
310 音響モデル
320 言語モデル