以下に、本願の開示する言語処理装置、音声合成装置、言語処理方法及び言語処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[音声合成装置の構成]
図1は、実施例1に係る音声合成装置の構成を示す図である。図1に示す音声合成装置10は、入力されたテキスト(text)を音声出力する処理、いわゆるテキストの読み上げを実行するものであり、とりわけテキストの中に含まれる漢字表記の他国語を正確に読み上げるものである。
すなわち、本実施例に係る音声合成装置10は、テキストの中に含まれる漢字表記の未知語が日本語以外のいずれの他国語であるのかを他国語スコアにより判別した上で未知語の読みを生成する。それゆえ、本実施例に係る音声合成装置10では、漢字表記の未知語が他国語である確からしさを他国語スコアとして評価した上で他国語スコアが高い他国語の読みを未知語の読みとして生成できる。このため、本実施例に係る音声合成装置10では、日本語のテキストの中に漢字表記の中国語、韓国語や台湾語などの他国語が含まれていたとしても、他国語の文字列に誤った日本語の読みを付与することを防止できる。よって、本実施例に係る音声合成装置10によれば、テキストに含まれる漢字表記の他国語を正確に読み上げることが可能になる。
なお、図1の例では、テキストの読み上げ機能をパーソナルコンピュータ(PC:Personal Computer)に実装する場合を想定して以下の説明を行うが、開示の装置はこれに限らず、あらゆる情報処理装置に適用できる。かかる情報処理装置の一例としては、携帯電話機、PHS(Personal Handyphone System)、PDA(Personal Digital Assistant)やカーナビゲーションシステム(car navigation system)などが挙げられる。
図1に示す音声合成装置10は、受付部11と、形態素辞書記憶部12と、共起辞書記憶部13と、日本語辞書記憶部14aと、他国語辞書記憶部14bと、コーパス記憶部15aと、作成部15とを有する。さらに、音声合成装置10は、言語処理部16と、韻律生成部17と、合成部18と、出力部19とを有する。なお、音声合成装置10は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部を有するものとする。一例としては、キーボード(keyboard)やマウス(mouse)などの入力デバイス(device)が挙げられる。他の一例としては、モニタ(monitor)、ディスプレイ(display)やタッチパネル(touch panel)などの表示デバイスが挙げられる。更なる一例としては、外部装置との間で通信を行うためのインタフェース(interface)が挙げられる。
受付部11は、テキストの入力を受け付ける処理部である。一例としては、受付部11は、図示しないブラウザ(web browser)によって取得されたウェブページ(web page)のうちテキストデータ(text data)を入力テキストとして受け付ける。他の一例としては、受付部11は、図示しない入力デバイスを介して指定されたテキストファイルを入力テキストとして受け付ける。更なる一例としては、受付部11は、図示しないアプリケーションプログラム(application program)からフック(hook)したデータをテキストデータに変換した上で入力テキストとして受け付ける。
また、受付部11は、受け付けた入力テキストを後述の言語処理部16によって処理を実行させる単位に分割する。一例としては、受付部11は、句点、疑問符や感嘆符などの区切り記号を検出する度に入力テキストに含まれる文字列を区切ることにより、入力テキストを1文ずつ後段の言語処理部16へ出力する。なお、ここでは、後述の言語処理部16に1文ずつ出力する場合を想定して以下の説明を行うが、文字数やデータサイズなどの任意の単位で入力テキストを後段の言語処理部16へ出力できる。
形態素辞書記憶部12は、後述の解析部16aによる形態素解析に使用される辞書を記憶する記憶部である。一態様としては、形態素辞書記憶部12は、形態素および読みを対応付けて記憶する。ここで言う「形態素」とは、文章の要素のうち意味を持つ最小の単位を指す。なお、形態素辞書記憶部12に記憶された「読み」は、後述の抽出部16bによって未知語として抽出されなかった形態素や後述の判別部16dによって漢字表記の未知語が日本語であると判別された場合に採用される。
図2は、形態素辞書記憶部に記憶される情報の構成例を示す図である。図2の例では、形態素「中国」を「チューゴク」と読み、形態素「の」を「ノ」と読み、形態素「を」を「オ」と読み、また、形態素「訪問」を「ホーモン」と読むことを示す。さらに、図2の例では、形態素「する」を「スル」と読み、形態素「成」を「セイ」と読み、形態素「都」を「ミヤコ」と読み、形態素「釜」を「カマ」と読み、また、形態素「山」を「ヤマ」と読むことを示す。このうち、「成」、「都」、「釜」、「山」は、後述の解析部16aによって他の漢字とともに述語を形成しない単漢字であると形態素解析された場合には、後述の抽出部16bによって未知語として抽出される。なお、図2に示した形態素の辞書は、あくまでも一例であり、あらゆる品詞の読みを任意の個数登録できる。
共起辞書記憶部13は、他国語および日本語の共起関係が定義された共起辞書を記憶する記憶部である。かかる共起辞書は、他国語スコアの算出に用いられるものであり、後述の抽出部16bによって未知語が抽出された文章に含まれる単語に対応付けられた共起語の対数尤度が後述の算出部16cによって他国語スコアの算出に用いられる。
一態様としては、共起辞書記憶部13は、共起語の種類ごとに表記および対数尤度を対応付けて記憶する。ここで言う「共起語の種類」とは、共起辞書の作成時に中国語の名詞が出現する文章に含まれる単語が共起語として共起辞書に登録されるにあたってその単語が中国語の名詞に対して占めていた位置に関する種類を指す。例えば、中国語の名詞の直後以外の位置に単語が出現していた場合には、共起語の種類は「一般共起語」として分類される。また、中国語の名詞の直後に単語が出現していた場合には、共起語の種類は「直後の語」として分類される。また、「対数尤度」は、共起語とともに文章に出現している未知語が他国語である確からしさを表す。
ここで、共起辞書の一例として、中国語用の共起辞書を例示する。図3Aは、共起辞書記憶部に記憶される中国語用の共起辞書の構成例を示す図である。図3Aの例では、一般共起語として「中国」、「主席」、「来日」が登録されており、各々の対数尤度が「2.322」、「1.874」、「1.246」であることを示す。さらに、図3Aの例では、直後の語として「中主席」が登録されており、その対数尤度が「4.822」であることを示す。なお、詳細は図6を用いて後述するが、共起辞書の作成時には、一般共起語よりも直後の語の方が中国語の名詞との関連性が高いので、直後の語の対数尤度の方が一般共起語の対数尤度よりも大きい重み付けがなされて共起辞書に登録される。
さらに、共起辞書の一例として、韓国語用の共起辞書を例示する。図3Bは、共起辞書記憶部に記憶される韓国語用の共起辞書の構成例を示す図である。図3Bの例では、一般共起語として「韓国」、「北朝鮮」、「来日」が登録されており、各々の対数尤度が「2.401」、「2.521」、「1.312」であることを示す。さらに、図3Bの例では、直後の語として「韓国」が登録されており、その対数尤度が「4.972」であることを示す。なお、ここでは、中国語用および韓国語用の共起辞書を例示したが、それ以外にも台湾語のように漢字を含んだ国語であれば任意の他国語の共起辞書を準備できる。
日本語辞書記憶部14aは、日本語の音読み辞書を記憶する記憶部である。かかる日本語の音読み辞書は、後述の判別部16dによって漢字表記の未知語が中国語であると判別された場合に、未知語の読みとして日本語の音読みを付与するために、後述の読み生成部16eによって用いられる。ここで、後述の読み生成部16eによって未知語として日本語の音読みを生成させるか、あるいは中国語の読みを生成させるかは、図示しない入力デバイスを介して漢字を中国語で読む「中国語読みモード」のONまたはOFFの指定により選択できる。
一態様として、日本語辞書記憶部14aは、漢字および音読みを対応付けて記憶する。図4は、日本語辞書記憶部に記憶される情報の構成例を示す図である。図4の例では、漢字「成」の音読みが「セー」であり、漢字「都」の音読みが「ト」であり、漢字「李」の音読みが「リ」であり、また、漢字「劉」の音読みが「リュウ」であることを示す。なお、図4に示した日本語の音読み辞書は、あくまでも一例であり、あらゆる漢字の読みを任意の個数登録できる。
他国語辞書記憶部14bは、他国語の漢字の読みに関する辞書を記憶する記憶部である。かかる他国語辞書は、後述の判別部16dによって漢字表記の未知語が日本語以外の他国語であると判別された場合に後述の読み生成部16eによって用いられる。なお、漢字表記の未知語が中国語であると判別された場合には、「中国語読みモード」がONに指定されていることを条件に他国語辞書記憶部14bが後述の読み生成部16eによって使用される。
ここで、他国語辞書の一例として、韓国語用の漢字読み辞書を例示する。図5は、他国語辞書記憶部によって記憶される韓国語用の漢字読み辞書の構成例を示す図である。図5の例では、漢字「金」の韓国語での読みが「キム」であり、漢字「釜」の韓国語での読みが「プ」であり、漢字「山」の韓国語での読みが「サン」であり、また、漢字「李」の韓国語での読みが「イ」であることを示す。なお、図5に示した韓国語用の漢字読み辞書は、あくまでも一例であり、あらゆる漢字の読みを任意の個数登録できる。また、ここでは、漢字および読みを対応付けて記憶する例を説明したが、さらに読みのアクセントが対応付けて記憶されていてもよい。また、ここでは、韓国語用の漢字読み辞書を例示したが、中国語用の漢字読み辞書も同様の構成により実現できる。
なお、本実施例では、漢字表記の未知語が中国語である場合に「中国語読みモード」がON又はOFFであるか否かにより未知語の読みを生成するのに使用する辞書を日本語の音読み辞書と他国語辞書との間で切り替える場合を例示したが、この例に限定されない。例えば、日本語の音読み辞書または他国語辞書のいずれかを排他的に使用することとしてもよく、この場合には使用しない方の辞書を保持せずともよくなる。
コーパス記憶部15aは、日本語のコーパス(corpus)、すなわち大規模な言語資料を記憶する記憶部である。かかるコーパスは、後述の作成部15によって共起辞書が作成される場合に使用される。このため、コーパスとして準備する文章の量が多いほど、後述の算出部16cによって算出される他国語スコアの精度を高めることができる。また、共起辞書を作成するには、他国語および日本語が共起関係を有する文章が有効なサンプルとなる。それゆえ、コーパスには、中国語の名詞や韓国語などの他国語の名詞がより多く含まれていることが好ましい。
作成部15は、コーパス記憶部15aを用いて、共起辞書を作成する処理部である。この共起辞書の作成方法を図6を用いて説明する。図6は、共起辞書の作成方法を説明するための図である。なお、図6の例では、中国語用の共起辞書および韓国語用の共起辞書を作成する場合を例示するが、台湾語のように漢字を含んだ国語の共起辞書を作成する場合にも同様に適用できる。
図6に示すように、作成部15は、コーパス記憶部15aから読み出した日本語のコーパスに形態素解析を実行する(ステップS51)。一例として、コーパス記憶部15aに「こんにちは。…中国の北京へ行きます。…北朝鮮の平壌で17日、…」というコーパスが保持されていた場合を想定する。この場合には、作成部15は、コーパスに含まれる各文章の形態素解析の結果として、次のような結果を得る。すなわち、作成部15は、「こんにちは(感動詞)。…中国(名詞)・の(助詞)・北京(中国語名詞)・へ(助詞)・行き(動詞)・ます(助動詞)。…北朝鮮(名詞)・の(助詞)・平壌(韓国語名詞)・で(助詞)・17(数詞)・日(数助詞)、…」を得る。なお、上記の括弧内の中点「・」は、形態素と形態素との区切りを指すものとする。
続いて、作成部15は、先の形態素解析により得た結果のうち、中国語名詞を含む文章のみを抽出してデータベースを作成する(ステップSA52)。例えば、作成部15は、中国語名詞「北京」を含む文章「中国(名詞)・の(助詞)・北京(中国語名詞)・へ(助詞)・行き(動詞)・ます(助動詞)」を抽出する。かかる文章の抽出にあたって中国語名詞を検出するには、中国語の国語辞書に載っている名詞と突き合わせすることにより検出することとしてもよいし、共起辞書の設計者による指示操作でコーパスに含まれる中国語名詞に予めマーキングさせることとしてもよい。なお、ここでは、中国語名詞を含む文章として1つの文章を例示したが、実際には多数の文章が抽出されるものとする。
そして、作成部15は、中国語名詞を含む文章のデータベースから、中国語名詞の直後の語の集合、すなわち直後の語の集合を生成する(ステップSA53−1)。例えば、直後の語の集合としては、上記の1文の例では「へ(助詞)」が生成される他、「に(助詞)…・中主席(名詞)・中首相(名詞)…」などが生成されるものとする。
また、作成部15は、中国語名詞を含む文章のデータベースから、中国語名詞およびその直後の語を除く単語の集合、すなわち一般共起語の集合を生成する(ステップSA53−2)。例えば、一般共起語の集合としては、「…中国(名詞)・の(助詞)・行き(動詞)・ます(助動詞)…」などが生成される。
続いて、作成部15は、先に生成した2つの集合ごとに各単語が自身の所属する集合に出現する頻度、以下「出現頻度」と記載を算出する(ステップSA54−1及びステップSA54−2)。図6の例で言えば、直後の語「へ(助詞)」の出現頻度として「2012(回)」が算出され、直後の語「に(助詞)」の出現頻度として「1893(回)」が算出される。さらに、直後の語「中主席(名詞)」の出現頻度として「203(回)」が算出され、直後の語「中首相(名詞)」の出現頻度として「159(回)」が算出される。一方、一般共起語「が(助詞)」の出現頻度として「4183(回)」が算出され、また、一般共起語「は(助詞)」の出現頻度として「4024(回)」が算出される。さらに、一般共起語「中国(名詞)」の出現頻度として「176(回)」が算出され、一般共起語「主席(名詞)」の出現頻度として「165(回)」が算出され、一般共起語「来日(名詞)」の出現頻度として「162(回)」が算出される。なお、ここでは、出現頻度として単語が出現する回数を算出する場合を例示したが、各単語が自身の所属する集合に出現する割合を出現頻度として算出することとしてもよい。
ここで、直後の語および一般共起語の出現頻度の上位に現れる単語は、助詞や助動詞などの付属語であり、これらの付属語は中国語名詞との相関性は低い。よって、以降の処理では、直後の語の集合および一般共起語の集合のうち品詞が名詞である単語を共起辞書に載せる対象とする。これによって、中国語名詞と相関性が高い単語を優先して共起辞書に登録でき、それを用いて算出される他国語スコアの信頼性を高めることができる。
そして、作成部15は、直後の語および一般共起語の集合ごとに各単語の対数尤度を算出する(ステップSA55−1及びステップSA55−2)。かかる対数尤度には、一例として、算出式「対数尤度=log(出現頻度*100%/文章の数)」が用いられる。上記の算出式の「対数の底」には、任意のものを適用できるが、一例としては、自然対数を用いるのが好ましい。また、上記の算出式の「文章の数」とは、中国語名詞を含む文章のデータベースに格納されている文章の数を指す。図6の例で言えば、直後の語「中主席(名詞)」の対数尤度として「2.411」が算出され、直後の語「中首相(名詞)」の対数尤度として「1.156」が算出される。一方、一般共起語「中国(名詞)」の対数尤度として「2.322」が算出され、一般共起語「主席(名詞)」の対数尤度として「1.874」が算出され、一般共起語「来日(名詞)」の対数尤度として「1.246」が算出される。
その後、作成部15は、直後の語の対数尤度および一般共起語の対数尤度のうち直後の語の対数尤度に一般共起語の対数尤度よりも大きい重みを付与する重み付け処理を行った上で中国語用の共起辞書として共起辞書記憶部13に登録する(ステップSA56)。かかる重み付けの一例としては、作成部15は、直後の語の対数尤度の重みを一般共起語の対数尤度の2倍とし、直後の語の対数尤度に「2」を乗算する。かかる重み付けによって、中国語名詞との相関性が一般共起語よりも高い直後の語の対数尤度が他国語スコアの算出に反映される割合が高まる結果、他国語スコアの信頼性を高めることができる。なお、対数尤度の重み付けは、上記の例には限定されない。すなわち、直後の語の対数尤度に付与する重みが一般共起語の対数尤度に付与する重みよりも高ければよく、それぞれの対数尤度への重みには任意の値を付与できる。
このように、上記のステップS51〜ステップSA56までの処理により、図3Aに示した中国語用の共起辞書が作成される。これによって、漢字表記の未知語が中国語である確からしさを評価するための評価基準を定義することができる。なお、上記のステップSA53−1〜SA55−1の処理と、上記のステップSA53−2〜SA55−2の処理とは、両者を並列して実行することもできるし、いずれを先または後として処理を実行することとしてもかまわない。
一方、作成部15は、韓国語用の共起辞書についても中国語用の共起辞書と同様に作成する。これを説明すると、作成部15は、先の形態素解析により得た結果のうち、韓国語名詞を含む文章のみを抽出してデータベースを作成する(ステップSB52)。例えば、作成部15は、韓国語名詞「平壌」を含む文章「…北朝鮮(名詞)・の(助詞)・平壌(韓国語名詞)・で(助詞)・17(数詞)・日(数助詞)、…」を抽出する。かかる文章の抽出にあたって韓国語名詞を検出するには、韓国語の国語辞書に載っている名詞と突き合わせすることにより検出することとしてもよいし、共起辞書の設計者による指示操作でコーパスに含まれる韓国語名詞に予めマーキングさせることとしてもよい。なお、ここでは、韓国語名詞を含む文章として1つの文章を例示したが、実際には多数の文章が抽出されるものとする。
そして、作成部15は、韓国語名詞を含む文章のデータベースから、韓国語名詞の直後の語の集合、すなわち直後の語の集合を生成する(ステップSB53−1)。例えば、直後の語の集合としては、上記の1文の例では「で(助詞)」が生成される他、「へ(助詞)…・韓国(名詞)・総書記(名詞)…」などが生成されるものとする。
また、作成部15は、韓国語名詞を含む文章のデータベースから、韓国語名詞およびその直後の語を除く単語の集合、すなわち一般共起語の集合を生成する(ステップSB53−2)。例えば、一般共起語の集合としては、「…北朝鮮(名詞)・の(助詞)・17(数詞)・日(数助詞)、…」などが生成される。
続いて、作成部15は、先に生成した2つの集合ごとに各単語の出現頻度を算出する(ステップSB54−1及びステップSB54−2)。図6の例で言えば、直後の語「で(助詞)」の出現頻度として「1671(回)」が算出され、直後の語「へ(助詞)」の出現頻度として「1422(回)」が算出される。さらに、直後の語「韓国(名詞)」の出現頻度として「160(回)」が算出され、直後の語「総書記(名詞)」の出現頻度として「133(回)」が算出される。一方、一般共起語「の(助詞)」の出現頻度として「2977(回)」が算出され、また、一般共起語「は(助詞)」の出現頻度として「2889(回)」が算出される。さらに、一般共起語「韓国(名詞)」の出現頻度として「156(回)」が算出され、一般共起語「北朝鮮(名詞)」の出現頻度として「161(回)」が算出され、一般共起語「来日(名詞)」の出現頻度として「128(回)」が算出される。なお、ここでも、以降の処理では、直後の語の集合および一般共起語の集合のうち品詞が名詞である単語を共起辞書に載せる対象とされる。
そして、作成部15は、直後の語および一般共起語の集合ごとに各単語の対数尤度を算出する(ステップSB55−1及びステップSB55−2)。図6の例で言えば、直後の語「韓国(名詞)」の対数尤度として「2.486」が算出され、直後の語「総書記(名詞)」の対数尤度として「1.475」が算出される。一方、一般共起語「韓国(名詞)」の対数尤度として「2.401」が算出され、一般共起語「北朝鮮(名詞)」の対数尤度として「2.521」が算出され、一般共起語「来日(名詞)」の対数尤度として「1.312」が算出される。
その後、作成部15は、直後の語の対数尤度および一般共起語の対数尤度のうち直後の語の対数尤度に一般共起語の対数尤度よりも大きい重みを付与する重み付け処理を行った上で韓国語用の共起辞書として共起辞書記憶部13に登録する(ステップSB56)。かかる重み付けの一例としては、作成部15は、上記の中国語用の共起辞書の場合と同様に、直後の語の対数尤度の重みを一般共起語の対数尤度の2倍とし、直後の語の対数尤度に「2」を乗算する。
このように、上記のステップS51〜ステップSB56までの処理により、図3Bに示した韓国語用の共起辞書が作成される。これによって、漢字表記の未知語が韓国語である確からしさを評価するための評価基準を定義することができる。なお、上記のステップSB53−1〜SB55−1の処理と、上記のステップSB53−2〜SB55−2の処理とは、両者を並列して実行することもできるし、いずれを先または後として処理を実行することとしてもかまわない。また、中国語用の共起辞書を作成するステップSA52〜SA56の処理と、韓国語用の共起辞書を作成するステップSB52〜SB56の処理とは、両者を並列して実行することもできるし、いずれを先または後として処理を実行することとしてもかまわない。
図1の説明に戻り、言語処理部16は、受付部11によって受け付けられた入力テキストに自然言語処理を実行する処理部である。この言語処理部16は、図1に示すように、解析部16aと、抽出部16bと、算出部16cと、判別部16dと、読み生成部16eと、付与部16fと、表音生成部16gとをさらに有する。
このうち、解析部16aは、形態素辞書記憶部12を用いて、入力テキストに含まれる文章に形態素解析を実行することにより、文章を形態素に分割した上で各形態素に読みを付与する処理部である。一例として、受付部11から「中国の成都を訪問する」という入力テキストが入力された場合を想定する。この場合に、解析部16aは、図2に示した形態素辞書から入力テキストに含まれる文字列と一致する形態素を検索して、入力テキストを「中国」、「の」、「成」、「都」、「を」、「訪問」、「する。」という形態素に分割する。このとき、解析部16aは、入力テキストに含まれる文字列のうち「成」及び「都」は実際には「成都」という2文字の単語であるが、形態素辞書には登録されてないので、これらの形態素が単漢字であると認識する。その上で、解析部16aは、各形態素に読みを付与し、「中国[チューゴク]・の[ノ]・成(単漢字)[セー]・都(単漢字)[ミヤコ]・を[オ]・訪問[ホウモン]・する[スル]。」という形態素解析の結果を得る。なお、上記の形態素解析には、既知のあらゆる形態素の解析手法を適用することができる。
抽出部16bは、解析部16aによる形態素解析の結果から未知語を抽出する処理部である。一例としては、抽出部16bは、入力テキストに含まれる形態素のうち、解析部16aによって単漢字であると解析された文字を漢字表記の未知語として抽出する。上記の入力テキストの例で言えば、抽出部16bは、「成」及び「都」が単漢字として認識されているので、これら「成都」を漢字表記の未知語として抽出する。なお、「北京[ペキン]」や「上海(シャンハイ)」などのように、外来語として定着している単語については、形態素辞書に登録されているものとし、未知語として抽出されないものとする。
算出部16cは、共起辞書記憶部13を用いて、抽出部16bによって抽出された漢字表記の未知語が他国語である確からしさを表す他国語スコアを算出する処理部である。これを説明すると、算出部16cは、入力テキストに含まれる形態素の中に共起辞書に登録されている共起語が存在するか否か、すなわち漢字表記の未知語が他国語の名詞と共起関係を持ち得るか否かを判定する。このとき、共起辞書に登録されている共起語が存在する場合には、算出部16cは、共起語に対応付けられている対数尤度を用いて、漢字表記の未知語の他国語スコアを算出する。そして、算出部16cは、入力テキストに含まれる形態素の中に共起辞書に登録されている共起語がなくなるまで、他国語スコアの算出を繰り返し、新たに算出した他国語スコアを前回までに累積加算していた他国語スコアにさらに累積加算する。なお、他国語スコアの算出は、中国語用の共起辞書および韓国語用の共起辞書ごと、すなわち他国語ごとに実行される。以下では、中国語に関する他国語スコアを「中国語スコア」と呼び、韓国語に関する他国語スコアを「韓国語スコア」と呼ぶ。
かかる他国語スコアは、一例として、算出式「他国語スコア=共起語の対数尤度/未知語から形態素までの距離」を用いて算出される。ここで、上記の算出式において共起語の対数尤度を未知語から形態素までの距離で除すこととしたのは、未知語および形態素の距離が近いほど両者の相関性が強く、未知語が他国語である可能性がより高まるからである。なお、共起辞書に登録されている共起語が存在しない場合には、他国語スコアはゼロと算出されるものとする。また、共起辞書に一般共起語および直後の語の両方の共起語が存在する場合には、いずれか一方、例えば直後の語の対数尤度を他国語スコアに使用することとすればよい。
上記のテキストの例で言えば、入力テキストに含まれる形態素の中に中国語用の共起辞書に一般共起語として登録されている「中国」が存在する。このため、算出部16cは、上記の他国語スコアの算出式に、一般共起語「中国」に対応付けられている対数尤度「2.322」と、入力テキストに含まれる未知語「成都」から形態素「中国」までの距離「2」とを代入する。これによって、算出部16cは、未知語「成都」の中国語スコア「1.161」を算出する。一方、入力テキストに含まれる形態素の中に韓国語用の共起辞書に登録されている一般共起語及び直後の語は存在しない。よって、算出部16cは、未知語「成都」の韓国語スコア「0.000」を算出する。
また、未知語から形態素までの距離は、入力テキストに含まれる形態素のうち任意の形態素を原点とし、他の形態素に座標を与えることにより算出できる。一例としては、文頭の形態素を原点とし、原点から形態素を1つ進むにつき座標の値を1つインクリメントすることにより、各形態素に座標位置を与えることができる。このようにして形態素に座標を与える場合には、未知語と形態素の位置関係によっては距離の値が負の値となってしまうので、絶対値を採るのが好ましい。上記のテキストの例で言えば、形態素「中国」の座標が「0」、未知語「成都」の座標が「2」であるので、算出部16cは、未知語「成都」から形態素「中国」までの距離を|2−0|を計算することにより「2」と算出する。なお、距離の算出方法は、上記の方法に限定されず、未知語から目的の形態素までに到達するまでの形態素の数を計測することとしてもかまわない。
判別部16dは、算出部16cによって算出された他国語スコアに基づいて、漢字表記の未知語がいずれの国の単語であるのかを判別する処理部である。これを説明すると、判別部16dは、中国語スコアと韓国語スコアとを比較する。このとき、中国語スコアの方が韓国語スコアよりも高い場合には、判別部16dは、中国語スコアと所定の閾値、例えば「1.000」とをさらに比較する。そして、中国語スコアが閾値よりも高い場合には、漢字表記の未知語が「中国語」であると判別できる。一方、中国語スコアが閾値以下である場合には、漢字表記の未知語が「日本語」であると判別できる。また、韓国語スコアが中国語スコア以上である場合には、判別部16dは、韓国語スコアと所定の閾値、例えば「1.000」とを比較する。そして、韓国語スコアが閾値よりも高い場合には、漢字表記の未知語が「韓国語」であると判別できる。一方、韓国語スコアが閾値以下である場合には、漢字表記の未知語が「日本語」であると判別できる。
上記の入力テキストの例で言えば、中国語スコアが「1.161」であり、韓国語スコアが「0.000」であり、閾値が「1.000」である。このため、中国語スコア>閾値>韓国語スコアとなるので、未知語「成都」は中国語であると判別できる。
なお、中国語スコア及び韓国語スコアと比較する閾値は、上記の値に限定されず、任意の値を採用できる。一例としては、入力テキストに付与されているタイトルが中国語用または韓国語用の共起辞書に登録されている場合には、中国語または韓国語に関する文章が入力される可能性が高くなるので、登録されていない場合よりも該当国の閾値を下げることもできる。また、中国語スコアと韓国語スコアとの間で異なる閾値を採用できるのも言うまでもない。
読み生成部16eは、判別部16dによる判別結果に応じて、漢字表記の未知語の読みを生成する処理部である。これを説明すると、読み生成部16eは、「中国語スコア>韓国語スコア」かつ「中国語スコア>閾値」である場合、すなわち未知語が中国語であると判別された場合に、「中国語読みモード」がOFFであるか否かをさらに判定する。このとき、「中国語読みモード」がOFFである場合には、読み生成部16eは、日本語辞書記憶部14aを用いて、未知語に対応する単漢字ごとに日本語の音読みを生成する。一方、「中国語読みモード」がONである場合には、読み生成部16eは、他国語辞書記憶部14bに記憶された中国語用の漢字読み辞書を用いて、未知語に中国語読みを生成する。
また、「韓国語スコア≧中国語スコア」かつ「韓国語スコア>閾値」である場合、すなわち未知語が韓国語であると判別された場合に、読み生成部16eは、他国語辞書記憶部14bに記憶された韓国語用の漢字読み辞書を用いて、未知語に韓国語読みを生成する。また、「中国語スコア≦閾値」または「韓国語スコア≦閾値」である場合、すなわち未知語が日本語であると判別された場合に、読み生成部16eは、未知語に新たな読みを生成せずに、解析部16aによる形態素解析の結果を付与部16fへそのまま出力する。なお、抽出部16bによって未知語が抽出されなかった場合にも、読み生成部16eは、解析部16aによる形態素解析の結果を付与部16fへそのまま出力する。
上記のテキストの例で言えば、読み生成部16eは、日本語辞書記憶部14aによって記憶された「成[セー]」及び「都[ト]」にしたがって漢字表記の未知語「成都」に読み「セート」を生成する。このため、誤った形態素解析の結果「セーミヤコ」が未知語「成都」に付与されることを防止できる。
付与部16fは、読み生成部16eによって生成された漢字表記の未知語の読みにアクセント(accent)を付与する処理部である。一例としては、付与部16fは、漢字表記の未知語の後ろから2文字目の第1モーラ(mora)、すなわち1短音節にアクセントを付与する。
図7は、アクセント付与の一例を示す図である。図7に示すように、未知語が「李鵬」である場合には、付与部16fは、後ろから2文字目の「李[リ]」にアクセントを付与し、[リ’ホウ]とする。また、未知語が「劉備」である場合には、付与部16fは、後ろから2文字目の「劉[リュウ]」の第1モーラ「リュ」にアクセントを付与し、[リュ’ウビ]とする。また、未知語が「毛沢東」である場合には、付与部16fは、後ろから2文字目の「沢[タク]」の第1モーラ「タ」にアクセントを付与し、[モウタ’クトウ]とする。また、未知語が「胡錦濤」である場合には、付与部16fは、後ろから2文字目の「錦[キン]」の第1モーラ「キ」にアクセントを付与し、[コキ’ントウ]とする。また、未知語が「青椒肉絲」である場合には、付与部16fは、後ろから2文字目の「肉[ロウ]」の第1モーラ「ロ」にアクセントを付与し、[チンジャオロ’ウス]とする。
表音生成部16gは、付与部16fによって漢字表記の未知語の読みにアクセントが付与された形態素解析の結果から入力テキストの表音文字列を生成する処理部である。一例として、表音生成部16gは、漢字表記の未知語の読みにアクセントが付与された漢字かな混じり文から表音文字であるカタカナの文字列を生成する。なお、抽出部16bによって未知語が抽出されなかった場合、あるいは判別部16dによって未知語が日本語であると判別された場合には、解析部16aによる形態素解析の結果から表音文字列が生成される。
韻律生成部17は、表音生成部16gによって生成された表音文字列に基づいて入力テキストに対応する韻律を生成する処理部である。ここで言う「韻律」は、ポーズ(pause)、音素の長さやイントネーション(intonation)などの喋り方の特徴の総称である。一態様としては、韻律生成部17は、後述の合成部18に合成させる音声、すなわち合成音声の個々の音素の長さである音素時間長や声の高さの変化パターンであるピッチパターン(pitch pattern)などの韻律を生成する。
合成部18は、韻律生成部17によって生成された韻律から音声波形を生成して音声を合成する処理部である。一態様としては、合成部18は、韻律生成部17によって生成された韻律、例えば音素時間長やピッチパターンにしたがって音声波形を生成することにより音声を人工的に合成する。
出力部19は、音声を出力する出力部である。一例として、出力部19は、合成部18から入力される合成音声を出力する。かかる出力部19の一態様としては、スピーカー(speaker)などが挙げられる。
なお、図1に示した受付部11、作成部15、言語処理部16、韻律生成部17及び合成部18には、各種の集積回路や電子回路を採用できる。また、言語処理部16に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
また、図1に示した形態素辞書記憶部12、共起辞書記憶部13、日本語辞書記憶部14a、他国語辞書記憶部14b及びコーパス記憶部15aのハードウェアには、次のようなものを適用できる。一例としては、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などの半導体メモリ素子を採用できる。なお、上記の5つの記憶部にハードディスク、光ディスクなどの記憶装置を採用することとしてもかまわない。
[処理の流れ]
次に、本実施例に係る音声合成装置の処理の流れを説明する。なお、ここでは、漢字表記の未知語に読みを生成する(1)読み生成処理を説明した後に、他国語スコアを算出する(2)他国語スコア算出処理を説明する。
(1)読み生成処理
図8は、実施例1に係る読み生成処理の手順を示すフローチャートである。この読み生成処理は、受付部11によって1文の入力テキストが言語処理部16へ入力された場合に処理が起動する。
図8に示すように、解析部16aは、形態素辞書記憶部12を用いて、入力テキストに含まれる文章に形態素解析を実行する(ステップS101)。続いて、抽出部16bは、入力テキストに含まれる形態素のうち、解析部16aによって単漢字であると解析された文字を漢字表記の未知語として抽出する(ステップS102)。
このとき、未知語が抽出されなかった場合(ステップS102否定)には、読み生成部16eは、解析部16aによる形態素解析の結果を付与部16fへそのまま出力し(ステップS103)、処理を終了する。
ここで、未知語が抽出された場合(ステップS102肯定)には、算出部16cは、共起辞書記憶部13を用いて、中国語スコア及び韓国語スコアなどの他国語スコアを算出する「他国語スコア算出処理」を実行する(ステップS104)。
その後、判別部16dは、中国語スコアと韓国語スコアとを比較する(ステップS105)。このとき、中国語スコアの方が韓国語スコアよりも高い場合(ステップS105肯定)には、判別部16dは、中国語スコアと所定の閾値、例えば「1.000」とをさらに比較する(ステップS106)。
そして、中国語スコアが閾値よりも高い場合(ステップS106肯定)には、漢字表記の未知語が「中国語」であると判別できる。この場合には、読み生成部16eは、「中国語読みモード」がOFFであるか否かをさらに判定する(ステップS107)。
このとき、「中国語読みモード」がOFFである場合(ステップS107肯定)には、読み生成部16eは、日本語辞書記憶部14aを用いて、未知語に対応する単漢字ごとに日本語の音読みを生成し(ステップS109)、処理を終了する。
一方、「中国語読みモード」がONである場合(ステップS107否定)には、読み生成部16eは、他国語辞書記憶部14bに記憶された中国語用の漢字読み辞書を用いて、未知語に中国語読みを生成する(ステップS108)。
また、中国語スコアが閾値以下である場合(ステップS106否定)には、漢字表記の未知語が「日本語」であると判別できる。この場合には、読み生成部16eは、未知語に新たな読みを生成せずに、解析部16aによる形態素解析の結果を付与部16fへそのまま出力し(ステップS103)、処理を終了する。
また、韓国語スコアが中国語スコア以上である場合(ステップS105否定)には、判別部16dは、韓国語スコアと所定の閾値、例えば「1.000」とを比較する(ステップS110)。
このとき、韓国語スコアが閾値よりも高い場合(ステップS110肯定)には、漢字表記の未知語が「韓国語」であると判別できる。この場合には、読み生成部16eは、他国語辞書記憶部14bに記憶された韓国語用の漢字読み辞書を用いて、未知語に韓国語読みを生成し(ステップS111)、処理を終了する。
一方、韓国語スコアが閾値以下である場合(ステップS110否定)には、漢字表記の未知語が「日本語」であると判別できる。この場合には、読み生成部16eは、未知語に新たな読みを生成せずに、解析部16aによる形態素解析の結果を付与部16fへそのまま出力し(ステップS103)、処理を終了する。
(2)他国語スコア算出処理
図9は、実施例1に係る中国語スコア算出処理の手順を示すフローチャートである。この中国語スコア算出処理は、図8に示したステップS104に対応する処理であり、抽出部16bによって漢字表記の未知語が抽出された場合に処理が起動する。なお、ここでは、他国語スコアのうち中国語スコアを算出する場合を例示しているが、韓国語スコアを算出する場合も同様である。
図9に示すように、算出部16cは、各種のパラメータを設定する(ステップS301)。一例としては、算出部16cは、中国語スコア及びループカウンタIをゼロに初期化するともに未知語の位置J及び文中の形態素の数Nに値を設定する。
そして、算出部16cは、ループカウンタIが文中の単語の数Nに等しくなるまで(ステップS302肯定)、下記のステップS303〜ステップS307までの処理を繰り返し実行する。
すなわち、算出部16cは、I番目の形態素が中国語用の共起辞書に登録されているか否か、すなわち漢字表記の未知語が中国語の名詞と共起関係を持ち得るか否かを判定する(ステップS303)。
このとき、I番目の形態素が中国語用の共起辞書に登録されている場合(ステップS303肯定)には、算出部16cは、中国語用の共起辞書からI番目の形態素に対応する対数尤度を抽出する(ステップS304)。そして、算出部16cは、未知語から形態素までの距離LをループカウンタI−未知語の位置Jの絶対値、すなわち|I−J|を計算することにより算出する(ステップS305)。
続いて、算出部16cは、算出式「中国語スコア=I番目の形態素に対応する対数尤度/未知語から形態素までの距離L」によりI番目の形態素の中国語スコアを算出して「I−1」番目までに累積加算していた中国語スコアに累積加算する(ステップS306)。
そして、算出部16cは、ループカウンタIをインクリメントし(ステップS307)、上記のステップS302に移行する。なお、I番目の形態素が中国語用の共起辞書に登録されていなかった場合(ステップS303否定)には、ステップS304〜ステップS306までの処理は実行されずにループカウンタIがインクリメントされる(ステップS307)。
その後、ループカウンタIが文中の単語の数Nに等しくなった場合(ステップS302否定)には、入力テキストの全ての形態素について中国語スコアを算出し終えたことになるので、処理を終了する。
[実施例1の効果]
上述してきたように、本実施例に係る音声合成装置10は、形態素辞書を用いて漢字を含んだ文章に形態素解析を実行することにより、文章を形態素に分割した上で各形態素に読みを付与する。さらに、音声合成装置10は、形態素解析の結果から漢字表記の未知語を抽出する。さらに、音声合成装置10は、漢字表記の未知語が他国語である確からしさを表す他国語スコアを算出する。さらに、音声合成装置10は、他国語スコアに基づいて、漢字表記の未知語がいずれの国の単語であるのかを判別する。さらに、音声合成装置10は、判別結果に応じて漢字表記の未知語の読みを生成する。
それゆえ、本実施例に係る音声合成装置10では、漢字表記の未知語が他国語である確からしさを他国語スコアとして評価した上で他国語スコアが高い他国語の読みを未知語の読みとして生成できる。このため、本実施例に係る音声合成装置10では、日本語のテキストの中に漢字表記の中国語、韓国語や台湾語などの他国語が含まれていたとしても、他国語の文字列に誤った日本語の読みを付与することを防止できる。よって、本実施例に係る音声合成装置10によれば、テキストに含まれる漢字表記の他国語を正確に読み上げることが可能になる。
また、本実施例に係る音声合成装置10は、文章に含まれる未知語以外の形態素と、他国語の名詞との間における共起関係を用いて、他国語スコアを算出する。このため、本実施例に係る音声合成装置10によれば、漢字表記の未知語が他国語の名詞と共起関係を持ち得るか否かを他国語スコアにより評価することが可能になる。
さらに、本実施例に係る音声合成装置10は、漢字表記の未知語の読みにアクセントを付与し、漢字表記の未知語の読みにアクセントが付与された形態素解析の結果から入力テキストの表音文字列を生成する。このため、本実施例に係る音声合成装置10では、未知語の読みに加えてアクセントも適切に付与した上で表音文字列を生成できる。よって、本実施例に係る音声合成装置10によれば、テキストに含まれる漢字表記の他国語をより正確に読み上げることが可能になる。
さて、上記の実施例1では、共起辞書を用いて他国語スコアを算出する場合を例示したが、開示の装置はこれに限定されず、他の方法により他国語スコアを算出することもできる。そこで、実施例2では、単漢字が他国語である確からしさが定義された単漢字辞書を用いて、他国語スコアを算出する場合について説明する。
図10は、実施例2に係る音声合成装置の構成を示すブロック図である。なお、本実施例では、上記の実施例1に係る音声合成装置10と同様の機能を有する機能部には同一の符号を付し、その説明を省略する。
図10に示す音声合成装置30は、図1に示した音声合成装置10に比べて、共起辞書記憶部13、コーパス記憶部15a、作成部15、言語処理部16に代えて、単漢字辞書記憶部31、他国語名詞記憶部32a、作成部15、言語処理部33を有する点が異なる。さらに、図10に示す算出部33aは、図1に示した算出部16cに比べて、その処理内容が異なる。
このうち、単漢字辞書記憶部31は、単漢字の他国語らしさが定義された単漢字辞書を記憶する記憶部である。一態様として、単漢字辞書記憶部31は、単漢字ごとにその単漢字の中国語らしさ及び韓国語らしさを対応付けて記憶する。ここで言う「中国語らしさ」とは、単漢字が中国語である確からしさを指し、単漢字が中国語の名詞とともに出現する頻度から対数尤度を求めることにより算出される。同様に、「韓国語らしさ」とは、単漢字が韓国語である確からしさを指し、単漢字が韓国語の名詞とともに出現する頻度から対数尤度を求めることにより算出される。なお、単漢字辞書は、抽出部16bによって抽出された未知語を形成する単漢字に対応付けられた他国語らしさが後述の算出部33aによって他国語スコアの算出に用いられる。
図11は、単漢字辞書記憶部に記憶される情報の構成例を示す図である。図11の例では、単漢字「金」の中国語らしさが「1.534」であり、韓国語らしさが「4.126」であることを示す。また、単漢字「釜」の中国語らしさが「1.478」であり、韓国語らしさが「3.632」であることを示す。また、単漢字「山」の中国語らしさが「1.759」であり、韓国語らしさが「1.758」であることを示す。また、単漢字「李」の中国語らしさが「3.335」であり、韓国語らしさが「3.411」であることを示す。以降も同様にして、単漢字「成」、「都」、「劉」、「京」の中国語らしさ及び韓国語らしさが定義されている。
他国語名詞記憶部32aは、他国語の名詞リストを記憶する記憶部である。一態様として、他国語名詞記憶部32aは、中国語の名詞リストと、韓国語の名詞リストとを記憶する。かかる他国語の名詞リストは、後述の作成部32によって単漢字辞書が作成される場合に使用される。このため、名詞リストとして準備する文章の量が多いほど、後述の算出部33aによって算出される他国語スコアの精度を高めることができる。
作成部32は、他国語名詞記憶部32aを用いて、単漢字辞書を作成する処理部である。この単漢字辞書の作成方法を図12を用いて説明する。図12は、単漢字辞書の作成方法を説明するための図である。なお、図12の例では、単漢字の中国語らしさ及び韓国語らしさを定義する場合を例示するが、漢字を含んだ国語、例えば台湾語であれば同様にして台湾語らしさを定義できる。
図12に示すように、作成部32は、他国語名詞記憶部32aに記憶された名詞リストのうち中国語の名詞リストを読み出し、中国語の名詞リストに搭載されている中国語の名詞を1つの漢字列に連結する(ステップSA71)。図12の例では、作成部32は、「北京」、「南京」、「劉備」…の中国語の名詞を連結し、1つの中国語名詞の漢字列「北京南京劉備…」とする。
そして、作成部32は、中国語名詞の漢字列に含まれる各漢字が漢字列に出現する頻度、以下「出現頻度」と記載を算出する(ステップSA72)。図12の例で言えば、漢字「劉」の出現頻度として「37(回)」が算出され、漢字「京」の出現頻度として「35(回)」が算出される。さらに、漢字「李」の出現頻度として「32(回)」が算出され、漢字「都」の出現頻度として「26(回)」が算出される。さらに、漢字「成」の出現頻度として「25(回)」が算出される。
そして、作成部32は、各漢字の対数尤度を算出する(ステップSA73)。かかる対数尤度には、一例として、算出式「対数尤度=log(出現頻度*100%/漢字列の長さ)」が用いられる。上記の算出式の「対数の底」には、任意のものを適用できるが、一例としては、自然対数を用いるのが好ましい。また、上記の算出式の「漢字列の長さ」とは、中国語名詞の漢字列の総漢字数を指す。図12の例で言えば、漢字「劉」の対数尤度として「3.502」が算出され、漢字「京」の対数尤度として「3.466」が算出される。さらに、漢字「李」の対数尤度として「3.335」が算出され、漢字「都」の対数尤度として「2.213」が算出される。さらに、漢字「成」の対数尤度として「2.086」が算出される。
一方、作成部32は、韓国語の名詞リストについても中国語の名詞リストと同様の処理を実行する。これを説明すると、作成部32は、他国語名詞記憶部32aに記憶された名詞リストのうち韓国語の名詞リストを読み出し、韓国語の名詞リストに搭載されている韓国語の名詞を1つの漢字列に連結する(ステップSB71)。図12の例では、作成部32は、「平壌」、「金大中」…の韓国語の名詞を連結し、1つの韓国語名詞の漢字列「平壌金大中…」とする。
そして、作成部32は、韓国語名詞の漢字列に含まれる各漢字が漢字列に出現する頻度を算出する(ステップSB72)。図12の例で言えば、漢字「金」の出現頻度として「39(回)」が算出され、漢字「釜」の出現頻度として「37(回)」が算出される。さらに、漢字「李」の出現頻度として「33(回)」が算出され、漢字「山」の出現頻度として「22(回)」が算出される。
そして、作成部32は、各漢字の対数尤度を算出する(ステップSB73)。図12の例で言えば、漢字「金」の対数尤度として「4.126」が算出され、漢字「釜」の対数尤度として「3.632」が算出される。さらに、漢字「李」の対数尤度として「3.411」が算出され、漢字「山」の対数尤度として「1.758」が算出される。
その後、作成部32は、中国語名詞の漢字列から算出した各漢字の対数尤度を中国語らしさとし、韓国語名詞の漢字列から算出した各漢字の対数尤度を韓国語らしさとする。その上で、作成部32は、同一の漢字についての中国語らしさ及び韓国語らしさを纏めて単漢字辞書記憶部31へ登録する(ステップS74)。なお、中国語名詞の漢字列または韓国語名詞の漢字列のうち一方にしか存在しない漢字には、作成部32は、ゼロを含む最低限の値、例えば「0.500」などを中国語らしさ又は韓国語らしさとして付与した上で単漢字辞書記憶部31に登録する。
このように、上記のステップSA71〜SA73、ステップSB71〜SB73、ステップS74の処理により、図11に示した単漢字辞書が作成される。これによって、上記の実施例1における共起辞書と同様に、漢字表記の未知語が他国語である確からしさを評価するための評価基準を定義することができる。なお、上記のステップSA71〜SA73の処理と、上記のステップSB71〜SB73の処理とは、両者を並列して実行することもできるし、いずれを先または後として処理を実行することとしてもかまわない。
ここで、一例として、受付部11から「釜山を訪問する」という入力テキストが入力された場合を想定する。この場合に、解析部16aは、図2に示した形態素辞書から入力テキストに含まれる文字列と一致する形態素を検索して、入力テキストを「釜」、「山」、「を」、「訪問」、「する。」という形態素に分割する。このとき、解析部16aは、入力テキストに含まれる文字列のうち「釜」及び「山」は実際には「釜山[プサン]」という2文字の単語であるが、形態素辞書には登録されてないので、これらの形態素が単漢字であると認識する。その上で、解析部16aは、各形態素に読みを付与し、「釜(単漢字)[カマ]・山(単漢字)[ヤマ]・を[オ]・訪問[ホウモン]・する[スル]。」という形態素解析の結果を得る。続いて、抽出部16bは、「釜」及び「山」が単漢字として認識されているので、これら「釜山」を漢字表記の未知語として抽出する。
算出部33aは、単漢字辞書記憶部31を用いて、抽出部16bによって抽出された漢字表記の未知語が他国語である確からしさを表す他国語スコアを算出する。ここでは、中国語スコアの算出方法について例示するが、韓国語スコアの算出方法も同様である。これを説明すると、算出部33aは、漢字表記の未知語を構成する単漢字に対応する中国語らしさを単漢字辞書から抽出する。そして、算出部33aは、各々の単漢字の中国語らしさを合計することにより中国語スコアを算出する。その上で、算出部33aは、合計値である中国語スコアを未知語の文字数で除算することにより、正規化された中国語スコアを算出する。このような正規化を行うのは、入力テキストを受け付ける度に未知語の文字数が異なっても1つの閾値で判別部16dにいずれの国の単語であるのかを判別させるためである。
上記のテキストの例で言えば、算出部33aは、漢字表記の未知語を構成する単漢字「釜」に対応する中国語らしさ「1.478」と、単漢字「山」に対応する中国語らしさ「1.759」とを単漢字辞書から抽出する。そして、算出部33aは、単漢字「釜」の中国語らしさ「1.478」と単漢字「山」の中国語らしさ「1.759」とを合計した上で未知語「釜山」の文字数「2」で除算する。これによって、算出部33aは、正規化された中国語スコア「1.618」を算出する。一方、算出部33aは、漢字表記の未知語を構成する単漢字「釜」に対応する韓国語らしさ「3.632」と、単漢字「山」に対応する韓国語らしさ「1.758」とを単漢字辞書から抽出する。そして、算出部33aは、単漢字「釜」の中国語らしさ「3.632」と単漢字「山」の中国語らしさ「1.758」とを合計した上で未知語「釜山」の文字数「2」で除算する。これによって、算出部33aは、正規化された韓国語スコア「2.695」を算出する。
このように、算出部33aは、中国語スコア「1.618」及び韓国語スコアが「2.695」を算出する。そして、判別部16dが使用する閾値が「2.000」としたとき、韓国語スコア>閾値>中国語スコアとなるので、判別部16dは、未知語「釜山」は韓国語であると判別する。このため、読み生成部16eは、他国語辞書記憶部14bによって記憶された「釜[プ]」及び「山[サン]」にしたがって漢字表記の未知語「釜山」に読み「プサン」を生成する。このため、誤った形態素解析の結果「カマヤマ」が未知語「釜山」に付与されることを防止できる。
[処理の流れ]
図13は、実施例2に係る中国語スコア算出処理の手順を示すフローチャートである。この中国語スコア算出処理は、図8に示したステップS104に対応する処理であり、抽出部16bによって漢字表記の未知語が抽出された場合に処理が起動する。なお、ここでは、他国語スコアのうち中国語スコアを算出する場合を例示しているが、韓国語スコアを算出する場合も同様である。
図13に示すように、算出部33aは、各種のパラメータを設定する(ステップS501)。一例としては、算出部33aは、中国語スコア及びループカウンタIをゼロに初期化するともに未知語の文字数Nに値を設定する。
そして、算出部33aは、ループカウンタIが未知語の文字数Nに等しくなるまで(ステップS502肯定)、下記のステップS503〜ステップS505までの処理を繰り返し実行する。
すなわち、算出部33aは、未知語のI番目の漢字に対応する中国語らしさを単漢字辞書から抽出する(ステップS503)。そして、算出部33aは、I番目の漢字の中国語スコアを「I−1」番目までに累積加算していた中国語スコアに累積加算する(ステップS504)。その後、算出部16cは、ループカウンタIをインクリメントし(ステップS505)、上記のステップS502に移行する。
そして、ループカウンタIが未知語の文字数Nに等しくなった場合(ステップS502否定)には、算出部33aは、中国語スコアを未知語の文字数Nで除算する(ステップS506)。このようにして中国語スコアを正規化した後に処理を終了する。
[実施例2の効果]
上述してきたように、本実施例に係る音声合成装置30は、テキストの中に含まれる漢字表記の未知語が日本語以外のいずれの他国語であるのかを他国語スコアにより判別した上で未知語の読みを生成する。それゆえ、本実施例に係る音声合成装置30では、漢字表記の未知語が他国語である確からしさを他国語スコアとして評価した上で他国語スコアが高い他国語の読みを未知語の読みとして生成できる。このため、本実施例に係る音声合成装置30では、日本語のテキストの中に漢字表記の中国語、韓国語や台湾語などの他国語が含まれていたとしても、他国語の文字列に誤った日本語の読みを付与することを防止できる。よって、本実施例に係る音声合成装置30によれば、上記の実施例1と同様に、テキストに含まれる漢字表記の他国語を正確に読み上げることが可能になる。
さらに、本実施例に係る音声合成装置30は、漢字表記の未知語を構成する単漢字が他国語の単語として出現する頻度、尤度または確率を用いて、他国語スコアを算出する。このため、本実施例に係る音声合成装置30では、未知語の文字構成が他国語である確からしさを他国語スコアにより評価することが可能になる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[適用範囲]
例えば、上記の実施例1及び実施例2では、開示の装置を音声合成装置10または30として実装する場合を例示したが、開示の装置の実装形態はこれに限定されない。例えば、音声合成装置10または30に含まれる言語処理部16または33の機能だけを言語処理装置として適用することもできる。
また、上記の実施例1及び実施例2では、互いの実施例を単独で実施する場合を例示したが、これらの実施例は好適に組み合わせて実施することができる。一例としては、共起辞書を用いて算出された他国語スコア及び単漢字辞書を用いて算出された他国語スコアに統計処理、例えば相加平均や加重平均などの処理を実行して他国語スコアの信頼性をより高めることもできる。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受付部11、作成部15、言語処理部16、言語処理部33、韻律生成部17または合成部18を音声合成装置10または30の外部装置としてネットワーク経由で接続するようにしてもよい。また、受付部11、作成部15、言語処理部16、言語処理部33、韻律生成部17または合成部18を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の音声合成装置10または30の機能を実現するようにしてもよい。
[言語処理プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図14を用いて、上記の実施例と同様の機能を有する言語処理プログラムを実行するコンピュータの一例について説明する。
図14は、実施例3に係る言語処理プログラムを実行するコンピュータの一例について説明するための図である。図14に示すように、実施例2におけるコンピュータ100は、操作部110aと、マイク110bと、スピーカ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD(Hard Disk Drive)170と、RAM(Random Access Memory)180と有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図14に示すように、上記の実施例1又は2で示した言語処理部16又は33と同様の機能を発揮する言語処理プログラム170が予め記憶される。この言語処理プログラム170については、図1又は図10に示した言語処理部16又は33の各構成要素と同様、適宜統合又は分離しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。
そして、CPU150が、言語処理プログラム170aをHDD170から読み出してRAM180に展開する。これにより、図14に示すように、言語処理プログラム170aは、言語処理プロセス180aとして機能する。この言語処理プロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、言語処理プロセス180は、例えば、図1又は図10に示した言語処理部16又は33にて実行される処理、例えば図8と図9または図13とに示す処理を含む。なお、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
なお、上記の言語処理プログラムについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)所定の辞書を用いて漢字を含んだ文章に形態素解析を実行することにより、前記文章を形態素に分割した上で各形態素に読みを付与する解析部と、
前記解析部による形態素解析の結果から漢字表記の未知語を抽出する抽出部と、
前記抽出部によって抽出された漢字表記の未知語が前記辞書に載る国語とは異なる他国語である確からしさを表す他国語スコアを算出する算出部と、
前記算出部によって算出された他国語スコアに基づいて、前記漢字表記の未知語がいずれの国の単語であるのかを判別する判別部と、
前記判別部による判別結果に応じて、前記漢字表記の未知語の読みを生成する読み生成部と
を有することを特徴とする言語処理装置。
(付記2)前記算出部は、前記文章に含まれる前記未知語以外の形態素と、他国語の単語との間における共起関係を用いて、前記他国語スコアを算出することを特徴とする付記1に記載の言語処理装置。
(付記3)前記算出部は、前記漢字表記の未知語を構成する単漢字が他国語の単語として出現する頻度、尤度または確率を用いて、前記他国語スコアを算出することを特徴とする付記1に記載の言語処理装置。
(付記4)前記読み生成部によって生成された漢字表記の未知語の読みにアクセントを付与する付与部と、
前記付与部によって漢字表記の未知語の読みにアクセントが付与された形態素解析の結果から前記文章の表音文字列を生成する表音生成部と
をさらに有することを特徴とする付記1、2または3に記載の言語処理装置。
(付記5)所定の辞書を用いて漢字を含んだ文章に形態素解析を実行することにより、前記文章を形態素に分割した上で各形態素に読みを付与する解析部と、
前記解析部による形態素解析の結果から漢字表記の未知語を抽出する抽出部と、
前記抽出部によって抽出された漢字表記の未知語が前記辞書に載る国語とは異なる他国語である確からしさを表す他国語スコアを算出する算出部と、
前記算出部によって算出された他国語スコアに基づいて、前記漢字表記の未知語がいずれの国の単語であるのかを判別する判別部と、
前記判別部による判別結果に応じて、前記漢字表記の未知語の読みを生成する読み生成部と、
前記読み生成部によって生成された漢字表記の未知語の読みにアクセントを付与する付与部と、
前記付与部によって漢字表記の未知語の読みにアクセントが付与された形態素解析の結果から前記文章の表音文字列を生成する表音生成部と、
前記表音生成部によって生成された表音文字列に基づいて前記文章に対応する韻律を生成する韻律生成部と、
前記韻律生成部によって生成された韻律から音声波形を生成して音声を合成する合成部と
を有することを特徴とする音声合成装置。
(付記6)コンピュータが、
所定の辞書を用いて漢字を含んだ文章に形態素解析を実行することにより、前記文章を形態素に分割した上で各形態素に読みを付与し、
前記形態素解析の結果から漢字表記の未知語を抽出し、
前記漢字表記の未知語が前記辞書に載る国語とは異なる他国語である確からしさを表す他国語スコアを算出し、
前記他国語スコアに基づいて、前記漢字表記の未知語がいずれの国の単語であるのかを判別し、
前記判別結果に応じて前記漢字表記の未知語の読みを生成する
処理を実行することを特徴とする言語処理方法。
(付記7)コンピュータに、
所定の辞書を用いて漢字を含んだ文章に形態素解析を実行することにより、前記文章を形態素に分割した上で各形態素に読みを付与し、
前記形態素解析の結果から漢字表記の未知語を抽出し、
前記漢字表記の未知語が前記辞書に載る国語とは異なる他国語である確からしさを表す他国語スコアを算出し、
前記他国語スコアに基づいて、前記漢字表記の未知語がいずれの国の単語であるのかを判別し、
前記判別結果に応じて前記漢字表記の未知語の読みを生成する
処理を実行させることを特徴とする言語処理プログラム。
(付記8)コンピュータが、
所定の辞書を用いて、漢字を含んだ複数の文章にそれぞれ形態素解析を実行することにより、各々の文章を形態素に分割し、
前記形態素に分割された文章のうち、前記辞書に載る国語とは異なる他国語の名詞であって漢字によって構成される他国語の名詞を含む文章を抽出し、
前記他国語の名詞を含む文章の形態素であって前記他国語の名詞の直後の形態素である第1の形態素が前記複数の文章に出現する頻度と、前記他国語の名詞及び該他国語の名詞の直後の語を除く形態素である第2の形態素が前記複数の文章に出現する頻度とを算出し、
前記第1の形態素が出現する頻度を用いて、前記第1の形態素と共起関係を結ぶ単語が出現した場合に当該単語が前記他国語である確からしさを表す第1の対数尤度を算出し、
前記第2の形態素が出現する頻度を用いて、前記第2の形態素と共起関係を結ぶ単語が出現した場合に当該単語が前記他国語である確からしさを表す第2の対数尤度を算出し、
前記第1の形態素および第1の対数尤度を対応付けるとともに前記第2の形態素および第2の対数尤度を対応付けることにより、前記第1の形態素および前記第2の形態素の共起辞書を作成する
処理を実行することを特徴とする共起辞書の作成方法。
(付記9)前記コンピュータが、
前記頻度を算出する処理として、前記第1の形態素または前記第2の形態素のうち名詞である形態素を対象に当該形態素が前記複数の文章に出現する頻度を算出する処理を実行することを特徴とする付記8に記載の共起辞書の作成方法。
(付記10)前記コンピュータが、
前記第1の対数尤度および前記第2の対数尤度のうち前記第2の対数尤度に前記第1の対数尤度よりも大きい重みを付与する重み付け処理を実行することを特徴とする付記8または付記9に記載の共起辞書の作成方法。
(付記11)コンピュータが、
漢字かな混じり文を国語とする国とは異なる他国語の名詞であって漢字によって構成される他国語の名詞を複数取得し、
複数取得された他国語の名詞を1つの漢字列に連結し、
連結された漢字列に含まれる単漢字ごとに当該単漢字が前記漢字列に出現する頻度を算出し、
前記単漢字が出現する頻度を用いて、前記単漢字が前記他国語である確からしさを表す対数尤度を算出し、
前記単漢字および前記対数尤度を対応付けることにより、前記単漢字の辞書を作成する
処理を実行することを特徴とする単漢字辞書の作成方法。