(57)【要約】【課題】語句として認識するべき文字列とその発音を、これまでより精度良く取得する。【解決手段】本発明のシステムは、語句として認識する候補となる候補文字列を入力テキストから複数選択し、選択したそれぞれの候補文字列について、当該候補文字列に含まれる各文字に対して予め定められた発音を組み合わせることで、当該候補文字列の発音の候補を複数生成し、生成した発音の各候補をそれぞれ各候補文字列に対応付けたデータを、各語句がテキスト中に出現する頻度を示す数値を記録した言語モデルデータと組み合わせて、語句を示す文字列と発音の組ごとにその出現頻度を示す頻度データを生成し、生成した頻度データに基づいて入力音声を音声認識して、入力音声に含まれる複数の語句のそれぞれについて当該語句を示す文字列を発音に対応付けた認識データを生成し、候補文字列および発音の候補の組合せのうち認識データに含まれる組合せを選択して出力する。【選択図】図６
2008216756.tif 000002
【特許請求の範囲】
【請求項１】
入力テキストおよび入力音声から、語句として認識するべき文字列とその発音を取得するシステムであって、
語句として認識する候補となる候補文字列を前記入力テキストから少なくとも１つ選択する候補選択部と、
選択したそれぞれの前記候補文字列について、当該候補文字列に含まれる各文字に対して予め定められた発音を組み合わせることで、当該候補文字列の発音の候補を少なくとも１つ生成する発音生成部と、
生成した前記発音の候補をそれぞれ前記候補文字列に対応付けたデータを、各語句がテキスト中に出現する頻度に基づく数値を予め記録した言語モデルデータと組み合わせて、語句を示す文字列と発音の組ごとにその出現頻度を示す頻度データを生成する頻度生成部と、
生成した前記頻度データに基づいて前記入力音声を音声認識して、前記入力音声に含まれる複数の語句のそれぞれについて当該語句を示す文字列を発音に対応付けた認識データを生成する音声認識部と、
前記候補文字列および前記発音の候補の組合せのうち前記認識データに含まれる組合せを選択して出力する出力部と
を備えるシステム。
【請求項２】
前記頻度生成部は、それぞれの前記候補文字列が前記入力テキストに出現する頻度を算出し、当該頻度に基づいてそれぞれの前記候補文字列が出現する確率を算出することで、前記言語モデルデータを生成し、生成した前記言語モデルデータと、前記発音の候補をそれぞれ前記候補文字列に対応付けたデータとを組み合わせて、前記頻度データを生成する
請求項1に記載のシステム。
【請求項３】
前記頻度生成部は、２以上の前記候補文字列の組ごとに、当該候補文字列の組が前記入力テキストに連続して出現する確率を算出して、前記言語モデルデータとして生成する
請求項２に記載のシステム。
【請求項４】
前記頻度生成部は、語句として認識不能な何らかの文字列を示す未知語シンボルを含む語句集合の中から選択した２以上の語句の組ごとに、当該語句の組がテキスト中に連続して出現する頻度を示す数値を記録した前記言語モデルデータとして取得し、前記未知語シンボルにそれぞれの前記候補文字列を対応付けることで、前記頻度データを生成する
請求項１に記載のシステム。
【請求項５】
前記候補選択部は、前記入力テキストに含まれるある文字列に先頭側または末尾側から順次他の文字を追加する処理を、追加後の文字列の前記入力テキストにおける出現頻度が、追加前の文字列の前記入力テキストにおける出現頻度と比較して低下するまで繰り返し、当該追加前の文字列を前記候補文字列として選択する
請求項１に記載のシステム。
【請求項６】
前記発音生成部は、前記候補文字列のそれぞれについて、当該候補文字列に含まれるそれぞれの文字の発音を、文字を１または複数の発音に対応付けた発音辞書から検索して組み合わせることで、複数の発音の候補を生成する
請求項１に記載のシステム。
【請求項７】
前記出力部は、前記認識データに含まれる前記候補文字列および前記発音の候補の組合せを、当該組合せが予め定められた基準回数以上前記認識データに出現することを条件に出力する
請求項１に記載のシステム。
【請求項８】
前記音声認識部は、前記頻度データに基づいて、前記入力音声に一致する発音の組合せおよび当該発音の組合せに対応する文字列の組合せのうち、発音および文字列の組に対応する出現頻度の積を最大化する組合せを選択して、前記認識データとして出力し、
前記出力部は、さらに、前記候補文字列および前記発音の候補の中から、前記音声認識部において算出した前記出現頻度の積が大きい方から予め定められた基準数の文字列および発音の組合せに含まれる、前記候補文字列および前記発音の候補を選択して出力する
請求項１に記載のシステム。
【請求項９】
前記入力テキストおよび前記入力音声は、共通する予め定められた分野の事象を内容とするものであり、
前記出力部は、前記候補文字列および前記発音の候補の組合せのうち前記認識データに含まれる組合せを出力して、前記予め定められた分野の音声処理に用いられる辞書に登録する
請求項１に記載のシステム。
【請求項１０】
入力テキストおよび入力音声から、語句として認識するべき文字列とその発音を取得する方法であって、
語句として認識する候補となる候補文字列を前記入力テキストから少なくとも１つ選択することと、
選択したそれぞれの前記候補文字列について、当該候補文字列に含まれる各文字に対して予め定められた発音を組み合わせることで、当該候補文字列の発音の候補を少なくとも１つ生成することと、
生成した前記発音の候補をそれぞれ前記候補文字列に対応付けたデータを、各語句がテキスト中に出現する頻度に基づく数値を予め記録した言語モデルデータと組み合わせて、語句を示す文字列と発音の組ごとにその出現頻度を示す頻度データを生成することと、
生成した前記頻度データに基づいて前記入力音声を音声認識して、前記入力音声に含まれる複数の語句のそれぞれについて当該語句を示す文字列を発音に対応付けた認識データを生成することと、
前記候補文字列および前記発音の候補の組合せのうち前記認識データに含まれる組合せを選択して出力することと
を備える方法。
【請求項１１】
入力テキストおよび入力音声から、語句として認識するべき文字列とその発音を取得するシステムとして、情報処理装置を機能させるプログラムであって、
前記情報処理装置を、
語句として認識する候補となる候補文字列を前記入力テキストから少なくとも１つ選択する候補選択部と、
選択したそれぞれの前記候補文字列について、当該候補文字列に含まれる各文字に対して予め定められた発音を組み合わせることで、当該候補文字列の発音の候補を少なくとも１つ生成する発音生成部と、
生成した前記発音の候補をそれぞれ前記候補文字列に対応付けたデータを、各語句がテキスト中に出現する頻度に基づく数値を予め記録した言語モデルデータと組み合わせて、語句を示す文字列と発音の組ごとにその出現頻度を示す頻度データを生成する頻度生成部と、
生成した前記頻度データに基づいて前記入力音声を音声認識して、前記入力音声に含まれる複数の語句のそれぞれについて当該語句を示す文字列を発音に対応付けた認識データを生成する音声認識部と、
前記候補文字列および前記発音の候補の組合せのうち前記認識データに含まれる組合せを選択して出力する出力部と
して機能させるプログラム。
【請求項１２】
入力テキストおよび入力音声から、語句として認識するべき文字列とその発音を取得するシステムであって、
語句として認識する候補となる候補文字列を前記入力テキストから少なくとも１つ選択する候補選択部と、
選択したそれぞれの前記候補文字列について、当該候補文字列に含まれる各文字に基づいて、当該候補文字列の発音の候補を少なくとも１つ生成する発音生成部と、
生成した前記候補文字列および対応する前記発音の候補を、当該発音の候補が前記入力音声に含まれ、かつ、当該発音の候補が前記入力音声中に出現する文脈および当該候補文字列が前記入力テキスト中に出現する文脈が予め定められた基準以上近似することを条件に選択して出力する語句取得部と
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、語句として新たに認識するべき文字列等を取得するシステム、方法およびプログラムに関する。特に、本発明は、音声処理のために、語句として認識するべき文字列および発音の組を取得するシステム、方法およびプログラムに関する。
【背景技術】
【０００２】
大語彙連続音声認識( Large Vocabulary Continuous Speech Recognition : LVCSR )システムにおいて、音声を精度良く認識するためには、その音声に含まれる語句を記録した単語辞書、および、各語句の出現頻度等を導き出すことのできる言語モデルが必要となる。そして、音声認識処理の精度を向上させるためには、これらの単語辞書および言語モデルが、認識するべき音声に含まれる語句を網羅的に包含していることが望ましい。一方で、辞書等を記憶する記憶装置の容量や頻度値を算出するＣＰＵの性能は限られているので、これらの単語辞書および言語モデルが、不要な語句を含まない必要最小限なものであることが望ましい。
【０００３】
下記の各文献については後述する。
【非特許文献１】T. Nagano, S. Mori, and M. Nishimura, "A Stochastic Approach to Phoneme and Accent Estimation," in Proc. INTERSPEECH, 2005.
【非特許文献２】S. Mori and D. Takuma, "Word N-gram Probability Estimation From A Japanese Raw Corpus," in Proc. ICSLP, 2004.
【非特許文献３】ＩＢＭ  ＶｉａＶｏｉｃｅ  ｆｏｒ  Ｗｉｎｄｏｗｓ  製品説明、ホームページＵＲＬ「http://japan.nuance.com/viavoice/」
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、必要最小限な語句のみを含む辞書を人手で作成しようとすると膨大な手間や費用を要する。即ち例えば、日本語のテキストから辞書を作成しようとすると、まず、単語やフレーズの区切りを解析する作業が必要となる。次に、各単語に正確な発音を与える作業が必要となる。発音とは、発音記号などで表される読み方の情報であり、このような発音の情報を与えるためには、言語に関する専門的な知識が必要な場合がある。このような手間や費用は、特に、特定の専門分野に特化した音声認識を実現しようとした場合に問題となり得る。それは、これまでに蓄積されてきた一般辞書等の情報があまり参考にならず、さらには、需要が小さいため十分な手間や費用を費やすことができないからである。
【０００５】
これに対し、従来、新たに語句として認識するべき文字列とその発音を、ある程度自動的に検出する技術が研究されている（非特許文献１−３を参照）。しかしながら、これらの技術は人手の検出作業を支援するものに過ぎなかったり、あるいは、自動的に検出できたとしても不必要な語句を多く含んでいるために人手の修正作業を多く必要としたりする場合があった。
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の形態においては、入力テキストおよび入力音声から、語句として認識するべき文字列とその発音を取得するシステムであって、語句として認識する候補となる候補文字列を入力テキストから少なくとも１つ選択する候補選択部と、選択したそれぞれの候補文字列について、当該候補文字列に含まれる各文字に対して予め定められた発音を組み合わせることで、当該候補文字列の発音の候補を少なくとも１つ生成する発音生成部と、生成した発音の候補をそれぞれ候補文字列に対応付けたデータを、各語句がテキスト中に出現する頻度を示す数値を予め記録した言語モデルデータと組み合わせて、語句を示す文字列と発音の組ごとにその出現頻度を示す頻度データを生成する頻度生成部と、生成した頻度データに基づいて入力音声を音声認識して、入力音声に含まれる複数の語句のそれぞれについて当該語句を示す文字列を発音に対応付けた認識データを生成する音声認識部と、候補文字列および発音の候補の組合せのうち認識データに含まれる組合せを選択して出力する出力部とを備えるシステムを提供する。また、当該システムとして情報処理装置を機能させるプログラム、および、当該システムとして情報処理装置により語句を取得させる方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、語句として認識するべき文字列およびその発音が新たに取得される処理の例を示す。この第１例は、文字列および発音の取得に音声認識システム（例えば非特許文献３を参照。）を利用する例である。まず、利用者が音声認識システムに対し「たんぱく質のリン酸化」と発声すると（Ｓ１０）、音声認識システムは、その発声を入力音声として、その内容を示すテキストを生成する（Ｓ２０）。この例では、リン酸化という語句が辞書に登録されておらず、または、登録されていたとしてもその出現頻度が極めて低いものとして処理された結果、認識の精度はあまり高くない。このため、「たんぱく質ノリ３回」などと誤認識されている。
【０００９】
利用者は、認識結果であるテキストを見て、誤認識されていたことに気がつくと、誤認識されている部分の正しい文字列を入力してテキストを修正する（Ｓ３０）。そして、文字列の取得を支援するシステムは、修正後のテキストから、発音の候補を複数生成する（Ｓ４０）。例えば、当該システムは、漢字の辞書を予め有しており、「酸」という漢字に対応付けられている「ｓａｎ」という発音と「ｓｕ」という発音とを辞書から読み出す。また、「化」という漢字に対応付けられている「ｋａ」という発音と「ｋｅ」という発音を読み出す。読み出したそれぞれの発音を組み合わせると、「ｒｉｎｓａｎｋａ」、「ｒｉｎｓｕｋａ」および「ｒｉｎｓａｎｋｅ」という各発音が発音の候補として生成される。
【００１０】
そして、当該システムは、Ｓ１０において利用者から取得した入力音声と、これらの各発音の候補とを比較する。その結果、入力音声と最も近い発音の候補「ｒｉｎｓａｎｋａ」が選択されて、「リン酸化」という文字列に対応付けて出力される（Ｓ５０）。このように、音声認識システムを利用すれば、音声認識システムの辞書に登録されていない新たな語句について、その文字列および発音を対応付けて取得することができる。
以上、このような第１例の処理によって、新たな語句を取得することもできる。しかしながら、特定の専門分野の辞書を作成しようとする場合など、誤認識される語句が膨大となると、多くの手間や時間が必要となってしまう。
【００１１】
図２は、文字列およびその発音が出現する頻度を算出した例を示す。精度の良い音声処理を実現するためには、語句として認識するべき文字列やその発音のみならず、各語句の出現頻度の情報を利用することが望ましい。図２には、ある先後文字列の次に、それぞれの後続文字列が連続する頻度を示している。例えば、「リン酸」という先後文字列の次に、「化」という後続文字列が連続する頻度は、０．８という数値で表される。この数値は、ある学習用テキストにおいて、「リン酸」という文字列の全出現箇所を列挙したうえで、それに後続する文字列ごとに出現頻度を算出することで算出される。詳しくは非特許文献２を参照されたい。
【００１２】
以上、この方法によっても、文字列の出現頻度を網羅的に計算することはできる。しかしながら、１以上の文字から成る全ての文字列が語句となり得るとして出現頻度を算出すると、その算出結果の情報は膨大となってしまい、それを利用した音声処理の効率を低下させてしまう場合がある。
これに対し、本実施形態に係る語句取得システム３０は、新たに語句として認識するべき文字列およびその発音を、効率的に、かつ不必要な語句を除外して高精度に取得することを目的とする。以下、具体的構成を述べる。
【００１３】
図３は、本実施形態に係る語句取得システム３０およびその周辺全体の構成を示す。語句取得システム３０は、音声とテキストを入力する。これらのテキストおよび音声は、共通する予め定められた分野の事象を内容とするものである。そしてその分野とは、音声認識等の辞書に登録したい語句の出現が予測される分野から選択されることが望ましい。例えば、化学分野の語句を登録したい場合には化学分野のテキストおよび音声を用いる。以下、入力したものを入力音声、および、入力テキストと呼ぶ。
【００１４】
語句取得システム３０は、語句として認識する候補となる候補文字列を入力テキストから少なくとも１つ選択する。そして、語句取得システム３０は、選択したそれぞれの候補文字列について、その候補文字列の発音の候補を複数生成する。このようにして生成されたデータを候補データ５０と呼ぶ。一方、語句取得システム３０は、それぞれの候補文字列について、その候補文字列が入力テキストに出現する頻度を算出する。このようにして算出した頻度に基づき各候補文字列が出現する確率を算出したデータを言語モデルデータ４０と呼ぶ。言語モデルデータ４０は、候補文字列毎にその出現頻度や出現確率を算出した数値であってもよいし、これに代えて、又は、これに加えて、連続する複数の候補文字列の組のそれぞれについて、その候補文字列の組が入力テキスト中で連続して出現する頻度や出現する確率を算出したものであってもよい。
【００１５】
次に、語句取得システム３０は、言語モデルデータ４０を候補データ５０と組み合わせて、語句を示す文字列と発音の組ごとにその出現頻度を示す頻度データを生成する。たとえば、ある候補文字列が発音の各候補で発音される確率が等しいものとすれば、言語モデルデータ４０には候補文字列の出現頻度が含まれているので、候補文字列およびその発音の候補ごとに、その出現頻度を算出することができる。そして、語句取得システム３０は、この頻度データに基づいて入力音声を音声認識する。
【００１６】
語句取得システム３０は、候補データ５０として生成した候補文字列および発音の候補の組の中から、音声認識の処理過程で得られた、文字列および発音の組の組合せを選択して、音声処理装置２０に出力する。即ち、出力されるのは、入力音声中に発音が出現しており、かつ、対応する文字列が入力テキスト中に高頻度で出現していた語句となる。音声認識がｎ−ｇｒａｍモデルを採用している場合、単一の語句の頻度のみならず前後の文脈も含めた頻度が考慮される。即ち、その音声が入力音声中に出現した文脈と、対応する文字列が入力テキスト中に頻出した文脈とが類似することが、語句として認識されるための更なる条件となる。
【００１７】
出力された語句は辞書記憶部２５に登録されて、入力音声や入力テキストに対応する分野の音声処理用の辞書として用いられてもよい。例えば、音声処理装置２０は、辞書記憶部２５を用いて、入力音声を認識して認識結果を示すテキストを出力する。これに代えて、音声処理装置２０は、辞書記憶部２５を用いて、テキストから合成音声を生成してもよい。この際、辞書記憶部２５には必要十分な量の語句しか登録されていないので、音声処理装置２０を実現するハードウェア資源を少なくすることができ、かつ認識処理の効率を高めることができる。
【００１８】
図４ａは、言語モデルデータ４０に含まれる各頻度値の具体例を入力テキストの例と対比して示す。図４ｂは、言語モデルデータ４０の一例を表形式により示す。図４ａおよび図４ｂを参照して、図４ｂに示す表形式のデータが入力テキストから生成される処理の概要を述べる。日本語などの言語では、テキスト中で各語句を示す文字列は連続しており、語句の区切りはテキストに明示されない。このため、語句として認識するべき文字列を適切に選択するためには、語句の区切りを適切に認識することが望ましい。一方で、語句の区切りが明示されていない以上、テキストのみでは語句の区切りを一意に定めるのは難しい。このため、語句取得システム３０は、１以上の文字から成る各文字列を語句であると仮定して、各語句が他の各語句と連続して入力テキスト中に出現する頻度を算出し、その頻度に基づく出現確率の組を言語モデルデータ４０とする。
【００１９】
具体的には、図４ａの例では、入力テキストに「これをリン酸化という」という文字列が含まれている。そして、「これを」という文字列に「リン酸化」という文字列が連続して入力テキスト中に出現する頻度はｐ１である。また、「リン酸化」という文字列と「という」という文字列が連続して入力テキスト中に出現する頻度はｐ２である。一方、「リン酸化という」文字列については「リン酸化／という」という区切りのみならず、「リン酸／化という」という区切りも想定される。この場合、「これを」に「リン酸」が連続する頻度は例えばｑ１となる。
【００２０】
また、「これをリン酸」という文字列は、「これをリン酸化という」という文字列のみならず、「これをリン酸という」のような文脈の文字列にも表れる。したがって、この頻度ｑ１は、このような多様な文脈のそれぞれにおいて出現する頻度の合計となる。同様に、「これをリン／酸化／という」という語句の区切りも想定される。この場合、「酸化」に「という」が連続する頻度はｒ２である。この頻度ｒ２は、入力テキスト中で「この化学反応のことを酸化という」のような文脈が現れれば、そのような文脈が現れる頻度も考慮されて算出される。
【００２１】
以上のような頻度値は、先行語ごと、又は、後続語ごとに、合計すると１となるように正規化されて、出現確率値に変換される。たとえば図４ｂに示すように、「これをリン」という先行語に連続する可能性のあるあらゆる語句のうち（これらの語句の確率値は合計すると１である）、「酸化」という語句が後続する確率は０．０５であり、「酸化という」という語句が後続する確率は０．０５である。このような確率値を予め算出しておけば、ある語句の次にどのような語句が後続する可能性が高いかを知ることができ、音声認識の精度を高めることができる。
【００２２】
図５は、候補データ５０の具体例を示す。日本語の漢字のような表意文字は、複数の発音を有している。したがって、たとえ語句として認識するべき文字列が定まったとしても、その発音を一意に定めるのは難しい場合がある。例えば、候補文字列「リン酸化」について、「酸」という漢字は「サン」という発音の他「ス」という発音を有する。また、「化」という漢字は「カ」という発音の他「バ」や「バケ」という発音を有する。このため、「リン酸化」という候補文字列は、「リンサンカ」、「リンスカ」および「リンサンバ」などの様々な発音の候補を有する。このように、候補文字列の発音の候補を、候補文字列中の文字のみから生成して、生成した発音の候補のそれぞれをその候補文字列に対応付けたデータが候補データ５０である。
【００２３】
候補データ５０は、候補文字列毎に、それぞれの発音の候補に対応付けて、その候補文字列がその発音の候補により発音される確率値を更に含んでいてもよい。図５の例では、リン酸化、が、リンサンカと発音される確率はｓ１である。この確率値は、発音生成部３１０が、候補文字列毎に、対応する発音の候補のそれぞれについて等しい値を対応付けることにより生成されてもよい。即ち、発音の候補が６つであれば、各発音の候補には１／６が対応付けられる。これに代えて、発音生成部３１０が文字ｎ−ｇｒａｍ等の技術を利用して発音の候補を生成した場合には（非特許文献１を参照。）、最も確からしいとして生成された発音の候補には、他の発音の候補と比較してより高い確率値を対応付けてもよいし、文字n-gramに基づく確率に従って確率値を対応付けてもよい。
【００２４】
図６は、語句取得システム３０の機能構成を示す。語句取得システム３０は、後述のＣＰＵ１０００、ＲＡＭ１０２０およびホストコントローラ１０８２を協働させることによって、候補選択部３００と、発音生成部３１０と、辞書記憶部３１５と、頻度生成部３２０と、頻度記憶部３２５と、音声認識部３３０と、出力部３４０として機能する。また、頻度生成部３２０、頻度記憶部３２５、音声認識部３３０および出力部３４０は、本発明に係る語句取得部として機能する。候補選択部３００は、語句として認識する候補となる候補文字列を入力テキストから少なくとも１つ選択する。候補文字列は、入力テキスト中に含まれる１以上の文字から成る全ての文字列であってもよいし、それらのうちの一部の文字列であってもよい。例えば、ある化学分野の入力テキストからは、「リン酸化」という候補文字列が選択される。何れの文字列を候補文字列として選択すればよいかについては後述する。
【００２５】
発音生成部３１０は、選択したそれぞれの候補文字列について、その候補文字列に含まれる各文字に対して予め定められた発音を組み合わせることで、その候補文字列の発音の候補を少なくとも１つ生成する。発音の候補の生成には、例えば発音辞書が用いられてもよい。即ち、辞書記憶部３１５は、文字を１又は複数の発音に対応付けた発音辞書を記憶している。この発音辞書は、日本語のひらがなやカタカナには原則として１ずつの発音を対応付けている一方、漢字については２以上の発音を対応付けている場合がある。そして、発音生成部３１０は、候補文字列中の文字を１ずつ走査したうえで、各文字に対応する発音を、発音辞書から検索して組み合わせることで、複数の発音の候補を生成する。発音生成部３１０は、生成した発音の候補をそれぞれ候補文字列に対応付けた候補データ５０を頻度生成部３２０に出力する。
【００２６】
頻度生成部３２０は、各語句がテキスト中に出現する頻度を示す数値を予め記録した言語モデルデータ４０と、候補データ５０を組み合わせて、頻度データを生成する。たとえば、ある候補文字列が発音の各候補で発音される確率が等しいものとすれば、言語モデルデータ４０には候補文字列の出現頻度が含まれているので、候補文字列およびその発音の候補ごとに、その出現頻度を算出することができる。より具体的には、ある候補文字列１の出現頻度が数値０．８として言語モデルデータ４０に記録されていたとして、その候補文字列１に発音の候補１および２が対応付けられていれば、候補文字列１および発音の候補１の組についてはその半分の数値０．４が、候補文字列２および発音の候補２の組についても数値０．４が、それぞれ対応付けられて、頻度データとして生成される。
【００２７】
また、この言語モデルデータ４０は、予め一般的な語句について解析した出現頻度を示すものであってもよいが、好ましくは入力テキストに基づいて生成されてもよい。具体的には、頻度生成部３２０は、候補データ５０に含まれるそれぞれの候補文字列が入力テキストに出現する頻度や、それぞれの候補文字列が他のそれぞれの候補文字列と連続して入力テキストに出現する頻度を算出して、それらの頻度に基づいて言語モデルデータ４０を生成してもよい。頻度生成部３２０は、このようにして言語モデルデータ４０と候補データ５０とを組み合わせることによって生成した頻度データを、頻度記憶部３２５に格納する。
【００２８】
次に、音声認識部３３０は、この頻度データに基づいて入力音声を音声認識する。音声認識は、たとえばｎ−ｇｒａｍモデルと呼ばれる方式で実現される。具体的には、音声認識部３３０は、入力音声に含まれる各音素の発音を特定したうえで、特定した発音をその発声順に配列した発音列と、頻度データに含まれる各発音とを比較する。そして、音声認識部３３０は、発音列に一致する発音の組合せのうち、対応する出現頻度の積を最大化する組合せを頻度データの中から検索する。そして、音声認識部３３０は、検索された発音の組合せを、頻度データ中でそれに対応する文字列の組合せに対応付けた認識データを生成する。
【００２９】
なお、一般名称や助詞・動詞等を適切に認識できるようにするため、音声認識部３３０は、外部から予め取得した言語モデルデータをこの頻度データに加えて使用することが望ましい。また、音声認識部３３０は、入力音声の音声波形を精度良く発音のデータに変換できるようにするため、音声波形のパターンと発音のデータの組についてその出現確率を記録した音響モデルデータを外部から取得して、この頻度データに加えて使用することが必要である。
【００３０】
認識結果を示すこの認識データには、入力音声に含まれる複数の語句のそれぞれについて、当該語句を示す文字列が発音に対応付けられている。出力部３４０は、候補選択部３００が生成した候補文字列および発音生成部３１０が生成した発音の候補の組合せのうち、この認識データに含まれる組合せを選択して出力する。即ち、例えば、入力音声に「リンサンカ」という発音が含まれており、それが「リン酸化」という文字列として音声認識されたのであれば、候補文字列「リン酸化」について対応付けられていた「リンスカ」などの発音は除外されて、「リンサンカ」という発音のみが「リン酸化」に対応付けて出力される。このように、音声認識の結果から語句を検索することで、入力音声に含まれる発音を有し、かつ、その発音の文脈がその発音に対応する文字列が入力テキストで頻出する文脈と類似する語句を、精度良く取得できる。
【００３１】
図７は、語句取得システム３０が語句として認識するべき文字列を選択して出力する処理の流れを示す。まず、まず、候補選択部３００は、候補文字列を入力テキストから選択する（Ｓ７００）。後の処理の効率化のため、候補文字列は語句として認識する可能性の高いものに限定することが望ましい。図８を参照してその一例を述べる。
図８は、Ｓ７００における具体的処理の一例を示す。候補選択部３００は、入力テキストに含まれるある文字列について、その先頭側又は後尾側から順次他の文字列を追加する。たとえば、候補選択部３００は、「アデニル酸シクラーゼ」という文字列について、その末尾に「活」を追加して、「アデニル酸シクラーゼ活」という文字列を生成する。また、候補選択部３００は、その先頭に「り」を追加して、「りアデニル酸シクラーゼ」という文字列を生成する。このような処理を、追加後の文字列の入力テキストにおける出現頻度が、追加前の文字列の入力テキストにおける出現頻度と比較して低下するまで繰り返す。出現頻度が低下した場合において、当該追加前の文字列の先頭側および後尾側のうち、当該追加語の文字列を生成するために文字を追加した何れか一方は、候補文字列の境界の候補となる。そして、候補選択部３００は、当該追加前の文字列を、当該追加前の文字列の先頭側および後尾側の何れもが境界の候補となったことを条件に、候補文字列として選択する。このようにすることで、入力テキスト中にある程度の頻度で出現する文字列を、一定の意味のまとまりを有する可能性があるものとして、候補文字列として選択することができる。なお、候補文字列の選択は、語句として認識するべき文字列を包含するために充分な文字列集合を生成できるものであれば、他の方法で実現されてもよい。
【００３２】
図７に戻る。次に、発音生成部３１０は、選択したそれぞれの候補文字列について、発音の候補を少なくとも１つ生成する（Ｓ７１０）。発音の候補は、上記のように発音辞書に基づいて生成されてもよいし、文字ｎ−ｇｒａｍと呼ばれる手法により生成されてもよい。文字ｎ−ｇｒａｍと呼ばれる手法は、文字および発音の組のそれぞれについて、互いに同一の内容を示す学習用テキストおよび学習用音声中に、その文字および発音の組が出現する頻度を利用するものである。詳細については非特許文献１を参照されたい。
【００３３】
そして、頻度生成部３２０は、頻度データを生成するべく以下の処理を行う（Ｓ７２０）。まず、頻度生成部３２０は、入力テキストに基づいて言語モデルデータ４０を生成する。言語モデルデータ４０は、入力テキストに含まれる文字列のそれぞれについて、その文字列が入力テキストに出現する頻度、および／または、その文字列が他の文字列と連続して入力テキストに出現する頻度を表したうえで、その頻度に基づいて各候補文字列が出現する確率を算出することで生成される。生成処理の具体的な実現方法は、確率的な単語分割技術として例えば非特許文献２に記載されているから、詳細な説明を省略する。
【００３４】
次に、頻度生成部３２０は、発音の候補をそれぞれ候補文字列に対応付けた候補データ５０を、言語モデルデータ４０と組み合わせて頻度データを生成する。頻度データは、候補文字列および発音の組ごとに、その出現頻度を表したものである。図９にその一例を示す。
図９は、Ｓ７２０において生成され、頻度記憶部３２５に記憶される頻度データの一例を示す。この頻度データは、ｂｉ−ｇｒａｍモデルと呼ばれる言語モデルに用いられる。即ち、発音および文字列の連続する２つの組のそれぞれについて、それが入力テキストに出現する頻度を表している。一例として、「これをリン」という文字列と「コレヲリン」という発音を有する先行語に連続して、「酸化」という文字列と「サンカ」という発音の組を有する後続語が出現する確率は、０．０５である。この頻度データを参照すれば、入力音声をどのように語句に区切り、かつ、どのような文字列に対応付けると、出現頻度が高い語句の組合せとなるのかを容易に判別することができる。
【００３５】
図７に戻る。次に、音声認識部３３０は、生成したこの頻度データに基づいて入力音声を音声認識して、入力音声に含まれる複数の語句のそれぞれについて当該語句を示す文字列を発音に対応付けた認識データを生成する（Ｓ７３０）。そして、出力部３４０は、候補文字列および発音の候補の組合せのうちこの認識データに含まれる組合せを選択して出力する（Ｓ７４０）。図１０を参照して、この音声認識処理の一例を述べる。
【００３６】
図１０は、Ｓ７３０における音声認識処理の一例を示す。音声認識部３３０は、入力音声「リンサンカトイウ」に一致する発音の組合せおよび当該発音の組合せに対応する文字列の組合せを頻度データから検索する。この結果、たとえば、「リン（リン）／酸化（サンカ）／という（トイウ）」の組合せと、「リン酸（リンサン）／化（カ）／という（トイウ）」の組合せとが検索される（以下、ある文字列とそれに対応するある発音とを有する語句を、文字列（発音）のように表記する。）。なお、語句の境界が同じでも対応する文字列が異なれば他の組合せとして検出される。たとえば、頻度データにおいて発音「サンカ」が文字列「参加」に対応付けられていれば、同じ語句の区切り「リン／サンカ／トイウ」であっても、発音および文字列の異なる組み合わせとして検出される。
【００３７】
そして、音声認識部３３０は、発音の組合せおよび文字列の組合せごとに、その組合せの出現頻度を算出する。たとえばｂｉ−ｇｒａｍモデルを例とすると、音声認識部３３０は、発音の組合せに含まれる隣接した２つの発音の組ごとに、その頻度を頻度データから読み出す。図１０の例では、「リン（リン）／酸化（サンカ）／という（トイウ）」において、「リン（リン）／酸化（サンカ）」が連続する頻度ｐ１および「酸化（サンカ）／という（トイウ）」が連続する頻度ｐ２が読み出される。そして、音声認識部３３０は、読み出したそれぞれの頻度を乗じることで、「リン（リン）／酸化（サンカ）／という（トイウ）」という発音の組合せが出現する頻度Ｐ１を算出する。
【００３８】
同様に、「リン酸（リンサン）／化（カ）／という（トイウ）」において、「リン酸（リンサン）／化（カ）」が連続する頻度ｑ１および「化（カ）／という（トイウ）」が連続する頻度ｑ２が読み出される。そして、音声認識部３３０は、読み出したそれぞれの頻度を乗じることで、「リンサン／カ／トイウ」という発音の組合せが出現する頻度Ｐ２を算出する。
音声認識部３３０は、このようにして算出した頻度の積を最大化する発音および文字列の組合せを選択する。即ち図１０の例では、音声認識部３３０は、Ｐ１およびＰ２を比較して大きい方に対応する発音および文字列の組合せを選択して、認識データとして出力する。以上、頻度データを用いれば、同一の入力音声について、複数の単語区切りや複数の文字列の候補が存在する場合であっても、文脈中における語句の出現頻度を反映して適切な区切り・文字列を出力することができる。
【００３９】
なお、音声認識処理の目的は音声の内容を示すテキストを一意に定めることであるから、出現頻度の積を最大化するテキストが認識データとして生成されることが望ましい。一方で本実施形態に係る語句取得システム３０は、入力音声中の発音を、文脈を考慮してある程度良く使われる文字列に対応付けて出力することを目的とする。このため、出力するべき発音および文字列の組は、出現頻度の積が最大の組合せに含まれていなくとも、その積がある程度高い組み合わせに含まれていればよい。すなわち、出力部３４０は、候補文字列および発音の候補の中から、音声認識部３３０において算出した出現頻度の積が大きい方から予め定められた基準数の文字列および発音の組合せに含まれるものを選択して出力してもよい。
【００４０】
一方、出力する語句の数を制限して語句取得の精度を向上させるためには、語句が認識データ中に基準回数以上出現することを条件としてもよい。即ち、出力部３４０は、認識データに含まれる候補文字列および発音の候補の組合せを、当該組合せが予め定められた基準回数以上認識データに出現することを条件に出力してもよい。
【００４１】
以上、本実施形態に係る語句取得システム３０によれば、同様の又は互いに近似する分野の入力音声と入力テキストがあれば、それらが同一の内容を同一の順序で述べたようなものでなくとも、その分野で用いられる語句を示す文字列およびその発音を自動的に取得することができる。語句の発音は入力音声の中から、語句の文字列は入力テキストの中から選択される。語句として取得する候補文字列および対応する発音の候補は、当該発音の候補が入力音声中に出現する文脈および当該候補文字列が入力テキスト中に出現する文脈が予め定められた基準以上近似することを条件に選択される。これにより、不必要な語句断片は含まれにくくなり、選択される語句集合の品質を高めることができる。
【００４２】
本願発明者が実証したところによれば、実際に専門的な用語を充分に取得できていることが確かめられた。また、取得した語句集合は従来型の技術で自動生成した辞書と比較して半分以下のデータサイズであり、さらには、音声認識用の辞書として利用すると従来よりも性能が向上することが確かめられた。
続いて、入力テキストから上記言語モデルデータ４０を生成するのではなく、一般分野の語句について予め生成された言語モデルデータを言語モデルデータ４０として利用する処理を変形例として説明する。
【００４３】
図１１は、本実施形態の変形例における音声認識処理の一例を示す。まず、頻度生成部３２０は、言語モデルデータ４０として一般分野の語句について生成された言語モデルデータを取得する。この言語モデルデータは、語句集合の中から選択した２以上の語句の組ごとに、当該語句の組がテキスト中に連続して出現する頻度を示す数値（例えば出現確率）記録したものである。このテキストが入力テキストではなく予め準備された学習用テキストである点が、上記図１−図１０を参照して説明した実施形態とは異なる。従って、この言語モデルデータ４０は入力テキスト中に出現するような専門的な語句を含んでいない。
【００４４】
このような専門的な語句があっても文全体としての認識を適切に行えるようにするため、言語モデルデータ４０は、語句として認識不能な何らかの文字列を示す未知語シンボルについて、その出現頻度の情報を記録している。詳細には、言語モデルデータ４０は、未知語シンボルを語句とみなして、未知語シンボルと実際の語句とを含む語句集合について、それに含まれる語句の組が連続して出現する頻度を記録している。図１１の例では、言語モデルデータ４０は、「これを」という文字列に何らかの認識不能な文字列が連続する頻度としてｒ１を記録している。
【００４５】
そして、頻度生成部３２０は、言語モデルデータ４０に含まれる各未知語シンボルに、それぞれの候補文字列を対応付けることで、頻度データを生成する。たとえば、この頻度データにおいて、文字列「これを」に、「リン酸化（リンサンカ）」が連続する頻度はｒ１であり、文字列「これを」に、「リン酸（リンサン）」が連続する頻度もｒ１である。即ち、何れの文字列であってもそれがこの頻度データに含まれていない文字列であれば、「これを」に連続する頻度はｒ１である。
【００４６】
そして、音声認識部３３０は、このようにして生成した頻度データに基づいて入力音声を音声認識する。たとえば、「コレヲリンサンカトイウ」という発音列は、「これを（コレヲ）／未知語シンボル／という」という語句の組合せと、「これを（コレヲ）／未知語シンボル／化（カ）／という（トイウ）」とう語句の組合せに一致する。これらの未知語シンボルは同一であるが、第１の組合せでは「リンサンカ」という発音に一致しており、第２の組合せでは「リンサン」という発音に一致している。即ち、音声認識部３３０は、「未知語シンボル」についてはどのような発音にも一致すると判断する。なお、「未知語シンボル」は音素数などにより分類して設けられていてもよい。この場合、音声認識部３３０は、ある音素数の未知語シンボルについてはその音素数の発音のみに一致すると判断し、他の音素数の未知語シンボルには一致しないと判断する。
【００４７】
そして、音声認識部３３０は、それぞれの組合せについて出現頻度の積を算出する。詳細には、「これを（コレヲ）／未知語シンボル／という」について、「これを（コレヲ）」に「未知語シンボル」が連続する頻度ｒ１と、「未知語シンボル」に「という（トイウ）」が連続する頻度ｒ２の積Ｑ１が算出される。同様に、「これを（コレヲ）／未知語シンボル／化（カ）／という（トイウ）」について、「これを（コレヲ）」に「未知語シンボル」が連続する頻度ｒ１と、「未知語シンボル」に「化（か）」が連続する頻度ｓ１と、「化（か）」に「という（トイウ）」が連続する頻度ｓ２との積Ｑ２が算出される。そして、音声認識部３３０は、頻度の積を最大化する文字列および発音の組合せを認識データとして出力する。
【００４８】
以上、この変形例によれば、入力音声に含まれる発音が、認識不能な文字列が出現し易い文脈に出現したことを条件に、その発音および文字列を新たに取得するべき語句として取得することができる。この変形例によれば、入力テキストから言語モデルデータを生成する処理を省略できるので、処理の効率を向上させることができる。
【００４９】
図１２は、語句取得システム３０として機能するコンピュータ５００のハードウェア構成の一例を示す。コンピュータ５００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５０】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５１】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、コンピュータ５００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００５２】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータ５００の起動時にＣＰＵ１０００が実行するブートプログラムや、コンピュータ５００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００５３】
コンピュータ５００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されコンピュータ５００にインストールされて実行される。プログラムがコンピュータ５００等に働きかけて行わせる動作は、図１から図１１において説明した語句取得システム３０における動作と同一であるから、説明を省略する。
【００５４】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ５００に提供してもよい。
【００５５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００５６】
【図１】図１は、語句として認識するべき文字列およびその発音が新たに取得される処理の例を示す。
【図２】図２は、文字列およびその発音が出現する頻度を算出した例を示す。
【図３】図３は、本実施形態に係る語句取得システム３０およびその周辺全体の構成を示す。
【図４ａ】図４ａは、言語モデルデータ４０に含まれる各頻度値の具体例を入力テキストの例と対比して示す。
【図４ｂ】図４ｂは、言語モデルデータ４０の一例を表形式により示す。
【図５】図５は、候補データ５０の具体例を示す。
【図６】図６は、語句取得システム３０の機能構成を示す。
【図７】図７は、語句取得システム３０が語句として認識するべき文字列を選択して出力する処理の流れを示す。
【図８】図８は、Ｓ７００における具体的処理の一例を示す。
【図９】図９は、Ｓ７２０において生成され、頻度記憶部３２５に記憶される頻度データの一例を示す。
【図１０】図１０は、Ｓ７３０における音声認識処理の一例を示す。
【図１１】図１１は、本実施形態の変形例における音声認識処理の一例を示す。
【図１２】図１２は、語句取得システム３０として機能するコンピュータ５００のハードウェア構成の一例を示す。
【符号の説明】
【００５７】
２０  音声処理装置
２５  辞書記憶部
３０  語句取得システム
４０  言語モデルデータ
５０  候補データ
３００  候補選択部
３１０  発音生成部
３１５  辞書記憶部
３２０  頻度生成部
３２５  頻度記憶部
３３０  音声認識部
３４０  出力部
５００  コンピュータ
【図１】
2008216756.tif 000003
【図２】
2008216756.tif 000004
【図３】
2008216756.tif 000005
【図４ａ】
2008216756.tif 000006
【図４ｂ】
2008216756.tif 000007
【図５】
2008216756.tif 000008
【図６】
2008216756.tif 000009
【図７】
2008216756.tif 000010
【図８】
2008216756.tif 000011
【図９】
2008216756.tif 000012
【図１０】
2008216756.tif 000013
【図１１】
2008216756.tif 000014
【図１２】
2008216756.tif 000015