以下に、本願の開示する形態素解析装置、音声合成装置、形態素解析方法、形態素解析プログラム及び対応辞書の作成方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[音声合成装置の構成]
図1は、実施例1に係る音声合成装置の構成を示す図である。図1に示す音声合成装置10は、入力されたテキスト(text)を音声出力する処理、いわゆるテキストの読み上げを実行するものであり、とりわけ口語のテキストを正しく解析するものである。
すなわち、本実施例に係る音声合成装置10は、入力されたテキストに含まれる文字列の一部を口語表現から記述表現に置換したテキストの解析結果の方が、入力されたテキストの解析結果より尤もらしい場合に、置換後のテキストの解析結果を入力テキストに対応付ける。なお、ここでは、話し言葉、いわゆる口語に用いられる表現を「口語表現」と呼び、また、記述に用いられる表現、いわゆる文語としての表現を「記述表現」と呼ぶこととする。
このため、本実施例に係る音声合成装置10では、テキストに口語表現の文字列が含まれていたとしても口語表現のままで形態素解析が実行されないので、形態素解析の精度を高めることができる。また、本実施例に係る音声合成装置10では、記述表現に置換された文字列に形態素解析が実行されるので、形態素解析に用いる情報を口語表現のものに合わせて改変する必要もない。また、本実施例に係る音声合成装置10では、文字列を置換する範囲が文章やフレーズに限定されないので、多様な口語表現の文字列が入力されたとしてもそれに対応して記述表現に置換できる。さらに、本実施例に係る音声合成装置10では、置換後のテキストの解析結果を入力テキストに対応付けるので、口語の形態素解析の結果を出力することができる。したがって、本実施例に係る音声合成装置10によれば、口語のテキストを正しく解析することが可能になる。
なお、図1の例では、テキストの読み上げ機能をパーソナルコンピュータ(PC:Personal Computer)に実装する場合を想定して以下の説明を行うが、開示の装置はこれに限らず、あらゆる情報処理装置に適用できる。かかる情報処理装置の一例としては、携帯電話機、PHS(Personal Handyphone System)、PDA(Personal Digital Assistant)やカーナビゲーションシステム(car navigation system)などが挙げられる。
図1に示す音声合成装置10は、単語辞書記憶部11と、評価記憶部12と、対応辞書記憶部13aと、作成部13と、言語処理部15と、音響処理部17とを有する。なお、音声合成装置10は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部を有するものとする。一例としては、キーボード(keyboard)やマウス(mouse)などの入力デバイス(device)が挙げられる。他の一例としては、モニタ(monitor)、ディスプレイ(display)やタッチパネル(touch panel)などの表示デバイスが挙げられる。更なる一例としては、外部装置との間で通信を行うためのインタフェース(interface)が挙げられる。
単語辞書記憶部11は、単語辞書を記憶する記憶部である。一例として、単語辞書記憶部11は、入力されるテキストに含まれる文字列を形態素に分割して品詞、読みアクセント(accent)を付与するために後述の形態素解析部15cによって参照される。ここで言う「読みアクセント」は、単語の読みにアクセントが付与された表音文字列を指す。
かかる単語辞書の一態様としては、単語に関する各種の情報、例えば単語の表記、品詞、読みアクセントなどが対応付けられたデータを採用できる。図2は、単語辞書の一例を示す図である。図2の例では、単語辞書に登録される単語のうち「勝っちゃった」という文節の解析に関連する単語に関する表記、品詞および読みアクセントを例示する。図2の例では、表記「勝」には、4つの品詞「助数詞」、「タ行五段動詞語幹」、「ラ行五段動詞語幹」及び「名前」が存在することを示す。さらに、助数詞の「勝」は「ショー」と読み、タ行五段動詞語幹の「勝」は「カ’」と読み、ラ行五段動詞語幹の「勝」は「マサ’」と読み、また、名前の「勝」は「マサル」と読むことを示す。ここで、読みの中の「’」はアクセントがある位置を示している。また、表記「っ」には、未知語と、3つの品詞「カ行五段動詞連用形」、「タ行五段動詞連用形」及び「ラ行五段動詞連用形」とが存在することを示す。また、表記「ち」には、未知語と、3つの品詞「タ行五段動詞連用形」、「タ行上一段動詞未然形」及び「タ行上一段動詞連用形」とが存在することを示す。また、表記「ちゃ」は、未知語であることを示す。また、表記「ゃ」は、未知語であることを示す。また、表記「た」には、未知語と、3つの品詞「タ行五段動詞未然形」、「助動詞「た」の終止形」及び「助動詞「た」の連体形」とが存在することを示す。付言すると、表音文字であるかなの単語は、いずれも表記と読みが一致する。なお、図2に示した単語辞書は、あくまでも一例であり、あらゆる単語を任意の個数登録できる。
評価記憶部12は、複数の単語の繋がりを評価する接続評価を記憶する記憶部である。一例として、評価記憶部12は、単語辞書に対する検索により形態素ごとに抽出された品詞の候補のうち先行する単語及び後続する単語の品詞の繋がりが尤もらしい組合せの品詞を選択するために後述の形態素解析部15cによって参照される。なお、ここでは、複数の単語を含む文字列のうち、先行する単語を「先行単語」と呼び、先行単語に後続する単語を「後続単語」と呼ぶ。
かかる接続評価の一態様としては、先行単語及び後続単語の品詞の組合せごとにその繋がりの尤もらしさを表す接続評価値が対応付けられたテーブル(以下「接続評価値表」と記載)を採用できる。かかる接続評価値表には、日本語として使用されにくい繋がりには低い接続評価値が設定される一方で、日本語として使用されやすい繋がりには高い接続評価値が設定される。
図3は、接続評価値表の一例を示す図である。図3に示す「名前−名前」などのように、日本語として使用されにくい品詞の組合せには、他の組合せに設定される接続評価値よりも低い接続評価値「-100000」が設定される。この「名前−名前」の組合せの他、「名前−未知語」、「未知語−名前」、「未知語−タ行五段動詞語幹」、「未知語−区切り記号」、「未知語−未知語」にも同様の接続評価値が設定される。また、「名前−タ行五段動詞語幹」や「名前−区切り記号」などのように、日本語として使用され得る品詞の組合せには、前述した接続評価値よりも高い接続評価値「-10000」が設定される。さらに、「タ行五段動詞語幹−名前」などのように、日本語としてあり得ない品詞の組合せには、接続不可を示す「×」が設定される。また、「タ行五段動詞語幹−タ行五段動詞連用形」などのように、連続する可能性が高い品詞の組合せには、他の接続評価値よりも高い接続評価値「0」が設定される。なお、図3に示した接続評価値表は、あくまでも一例であり、あらゆる品詞の組合せに対する接続評価値を任意の個数登録できる。また、接続評価は、必ずしもテーブル形式で格納される必要はなく、他の形式で格納することとしてもかまわない。
対応辞書記憶部13aは、口語表現および記述表現の対応関係が定義された対応辞書を記憶する記憶部である。一例として、対応辞書記憶部13aは、入力されたテキストに含まれる文字列のうち一部の文字列を口語表現から記述表現に置換するために後述の置換部15bによって参照される。他の一例として、対応辞書記憶部13aは、置換後のテキストの形態素解析の結果を元のテキストへ対応付けるために後述の対応付け部15eによって参照される。
かかる対応辞書の一態様としては、口語表現および記述表現の対と、口語表現を構成する文字および記述表現を構成する文字の対応とが紐付けられたデータを採用できる。図4は、対応辞書の一例を示す図である。図4に示すように、口語表現「きゃ」と記述表現「くては」の対においては、「きゃ」及び「くては」が1音節で対応する。これと同様に、口語表現「じゃ」と記述表現「でしま」、口語表現「じゃ」と記述表現「では」、口語表現「ちゃ」と記述表現「てしま」、口語表現「ちゃ」と記述表現「ては」の対においても各々が1音節で対応する。これと同様に、口語表現「って」と記述表現「とは」、口語表現「って」と記述表現「と」、口語表現「ん」と記述表現「の」の対においても各々が1音節で対応する。また、口語表現「てえ」と記述表現「たい」の対においては、「て」と「た」が1音節に対応し、「え」と「い」が1音節で対応する。さらに、口語表現「ねえ」と記述表現「ない」の対においても、「ね」と「な」が1音節に対応し、「え」と「い」が1音節で対応する。また、口語表現「んじゃ」と記述表現「のでは」の対においては、「ん」と「の」が1音節に対応し、「じゃ」と「では」が1音節で対応する。なお、上記の「音節」はモーラ(mora)とも呼ばれる。なお、図4に示した対応辞書は、あくまでも一例であり、あらゆる対に対する各文字の対応を任意の個数登録できる。
作成部13は、対応辞書を作成する処理部である。かかる対応辞書が作成されるにあたっては、前処理として、口語文とそれに対応する記述文が対になった材料データが作成部13によって取得される。かかる材料データは、図示しない自装置の記憶部から取得することとしてもよいし、ネットワーク(network)を介して外部装置から取得することとしてもよい。なお、材料データは、一例として、対応辞書を設計する設計者が同義の口語文および記述文を入力したり、予め収集されていた口語文または記述文と対になる答えを入力することにより作成される。
図5は、対応辞書の作成方法を説明するための図である。図5に示すように、作成部13は、口語文および記述文の対ごとに口語文および記述文のうち互いに異なる文字列を抽出する(ステップS51)。
例えば、口語文「遊んじゃおう」と記述文「遊んでしまおう」の対の場合には、口語文のうち下線部分の文字列「じゃ」が記述文と一致せず、記述文のうち下線部分の文字列「でしま」が口語文と一致しない。よって、「じゃ」と「でしま」の対が抽出される。以降の口語文と記述文の対についても同様にして、「ん」と「の」の対、「ねえ」と「ない」の対、「てえ」と「たい」の対、「じゃ」と「では」の対、「んじゃ」と「のでは」の対、「じゃ」と「では」の対の順に互いに異なる文字列が抽出される。さらに、同様にして、「ちゃ」と「てしま」の対、「ちゃ」と「ては」の対、「きゃ」と「くては」の対、「んじゃ」と「のでは」の対、「んじゃ」と「のでは」の対、「って」と「とは」の対、「って」と「と」の対の順に互いに異なる文字列が抽出される。
続いて、作成部13は、口語文に含まれる記述文と異なる不一致文字列と、記述文に含まれる口語文と異なる不一致文字列との対を所定の基準、例えば五十音順に並べ替えた上で重複する不一致文字列の対を削除する(ステップS52)。
図5の例では、口語文「おかしいじゃないか」と記述文「おかしいではないか」の対および口語文「遊びじゃない」と記述文「遊びではない」の対から抽出された「じゃ」と「では」の対が2つ重複するので、そのうちの1つが削除される。さらに、口語文「おかしいんじゃない」と記述文「おかしいのではない」の対、口語文「するんじゃない」と記述文「するのではない」の対および口語文「危ないんじゃない」と記述文「危ないのではない」の対から抽出された対が下記のように重複する。すなわち、「んじゃ」と「のでは」の対が3つ重複するので、そのうちの2つが削除される。なお、上記のステップS52では、並べ替えの後に重複した不一致文字列の対を削除する場合を説明したが、先に重複した不一致文字列の対を削除してもよく、また、並べ替えを必須の処理とする必要はない。
そして、作成部13は、口語側の不一致文字列を構成する文字と、記述側の不一致文字列を構成する文字との対応(以下では「各文字の対応」と記載)を紐付ける(ステップS53)。
一例としては、作成部13は、口語側の不一致文字列が1音節である場合に、1音節の口語側の不一致文字列をそのまま記述側の不一致文字列に紐付ける。図5の例で言えば、口語側の不一致文字列「きゃ」、「じゃ」、「ちゃ」及び「ん」は、それぞれ1音節である。このため、口語側の不一致文字列が記述側の不一致文字列とそのまま紐付けられることによって、「きゃ⇔くては」、「じゃ⇔でしま」、「じゃ⇔では」、「ちゃ⇔てしま」、「ちゃ⇔ては」、「ん⇔の」という対応が得られる。
他の一例としては、作成部13は、口語側の不一致文字列の「EE」という音の並びが記述側の不一致文字列の「AI」という音の並びに対応している場合に、「E」と「A」および「E」と「I」を紐付けるように分割する。図5の例で言えば、口語側の不一致文字列「ねえ」と記述側の不一致文字列「ない」の場合には、「ね⇔な」及び「え⇔い」という対応が得られる。さらに、口語側の不一致文字列「てえ」と記述側の不一致文字列「たい」の場合には、「て⇔た」及び「え⇔い」という対応が得られる。
更なる一例としては、作成部13は、他の各文字の対応の組合せとなる口語側の不一致文字列及び記述側の不一致文字列の対が存在する場合に、先の組合せに倣って分割する。図5の例で言えば、口語側の不一致文字列「んじゃ」と記述側の不一致文字列「のでは」の場合には、別のエントリに「ん⇔の」の対応と「じゃ⇔では」の対応とがあるので、これに倣って分割される。
なお、作成部13は、上記の方法では分割できない口語側の不一致文字列及び記述側の不一致文字列の対は分割しない。図5の例で言えば、「って」と「と」、「って」と「とは」については分割せずに、「って⇔と」という対応、「って⇔とは」という対応がそれぞれ得られる。
その後、作成部13は、口語側の不一致文字列及び記述側の不一致文字列の対と、各文字の対応とを対応付けた対応辞書を対応辞書記憶部13aに登録し(ステップS54)、対応辞書の作成を終了する。
このようにして図4に示した対応辞書が作成部13によって作成される。上記の対応辞書の作成方法によれば、上記の従来技術における「話し言葉用単語辞書」及び「話し言葉用連接表」を作成する場合のように、高度な専門知識を有する者が介在する必要はない。このため、上記の対応辞書の作成方法によれば、平易な情報処理によって実現することができる。加えて、対応辞書の作成方法では、平易な情報処理によって実現されるので、口語表現が時とともに変遷したとしても、新たな口語表現を簡易に追加できる。
さらに、上記の対応辞書の作成方法では、入力されるテキストの置換に口語側の不一致文字列及び記述側の不一致文字列の対を使用させることができる。このため、上記の対応辞書の作成方法によれば、形態素と同等のレベルの細かさで口語表現を記述表現に置換させることができ、多様な口語表現に対応できる汎用性を高めることができる。また、上記の対応辞書の作成方法では、口語側の不一致文字列を構成する文字と、記述側の不一致文字列を構成する文字との対応を生成する。したがって、上記の対応辞書の作成方法では、置換後のテキストの形態素解析の結果を元のテキストに対応付ける段階で両者の対応付けを適切に実行させることができる。
図1の説明に戻り、言語処理部15は、自然言語処理を実行する処理部である。この言語処理部15は、図1に示すように、受付部15aと、置換部15bと、形態素解析部15cと、比較部15dと、対応付け部15eと、構文解析部15fと、韻律情報生成部15hと、表音生成部15jとを有する。
このうち、受付部15aは、テキストの入力を受け付ける処理部である。一例としては、受付部15aは、図示しないブラウザ(web browser)によって取得されたウェブページ(web page)のうちテキストデータ(text data)を入力テキストとして受け付ける。他の一例としては、受付部15aは、図示しない入力デバイスを介して指定されたテキストファイルを入力テキストとして受け付ける。更なる一例としては、受付部15aは、図示しないアプリケーションプログラム(application program)からフック(hook)したデータをテキストデータに変換した上で入力テキストとして受け付ける。
また、受付部15aは、入力テキストから所定の単位のテキストを取り出す。一例としては、受付部15aは、句点、疑問符や感嘆符などの区切り記号を検出する度に入力テキストから1文に対応するテキストを区切ることにより、入力テキストを1文ずつ後段の置換部15b及び形態素解析部15cへ出力する。なお、以下では、受付部15aによって入力テキストから取り出された1文のテキストを「原文テキスト」と呼ぶ。
なお、ここでは、入力テキストを1文ずつ取り出す場合を想定して以下の説明を行うが、任意の数の文章を含んで取り出してもよい。また、入力テキストから取り出す単位は、文章に限定されない。例えば、受付部15aは、文字数やデータサイズなどの任意の単位で入力テキストを取り出すこともできる。
置換部15bは、受付部15aから入力された原文テキストに含まれる文字列のうち、対応辞書記憶部13aに記憶された口語表現と一致する文字列を、口語表現に対応する記述表現の文字列に置換する処理部である。
一例として、受付部15aから「勝っちゃった。」という原文テキストが入力された場合を想定する。この場合には、原文テキストに含まれる文字列「ちゃ」が対応辞書の口語表現「ちゃ」と部分一致し、口語表現「ちゃ」には、それに対応する記述表現「てしま」及び記述表現「ては」の2つのエントリが存在する。よって、置換部15bは、原文テキストに含まれる口語表現「ちゃ」を記述表現「てしま」に置換することにより、テキスト「勝ってしまった。」を生成する。さらに、置換部15bは、原文テキストに含まれる口語表現「ちゃ」を記述表現「ては」に置換することにより、テキスト「勝ってはった。」を生成する。なお、以下では、テキスト「勝ってしまった。」を置換テキスト1Aと呼び、また、テキスト「勝ってはった。」を置換テキスト2Aと呼ぶ。
他の一例として、受付部15aから「冗談じゃないよ。」という原文テキストが入力された場合を想定する。この場合には、原文テキストに含まれる文字列「じゃ」が対応辞書の口語表現「じゃ」と部分一致し、口語表現「じゃ」には、それに対応する記述表現「では」及び記述表現「でしま」の2つのエントリが存在する。よって、置換部15bは、原文テキストに含まれる口語表現「じゃ」を記述表現「では」に置換することにより、テキスト「冗談ではないよ。」を生成する。さらに、置換部15bは、原文テキストに含まれる口語表現「じゃ」を記述表現「でしま」に置換することにより、テキスト「冗談でしまないよ。」を生成する。なお、以下では、テキスト「冗談ではないよ。」を置換テキスト1Bと呼び、また、テキスト「冗談でしまないよ。」を置換テキスト2Bと呼ぶ。
形態素解析部15cは、単語辞書および接続評価値表を用いて、受付部15aから入力された原文テキスト又は置換部15bから入力された置換テキストを形態素解析する処理部である。これを説明すると、形態素解析部15cは、単語辞書を参照して、テキストに含まれる文字と部分一致する表記を持つ単語を全て検索する。続いて、形態素解析部15cは、単語辞書から検索した全ての単語を対象に、先行単語及び後続単語の品詞の組合せに対応する接続評価値を接続評価値表から抽出する。その後、形態素解析部15cは、単語辞書から検索した単語を全ての先行単語および後続単語の間で接続した組合せのうち、接続評価値の合計が最大となる単語の組合せを選択する。その上で、形態素解析部15cは、選択した単語の組合せを形態素解析の結果として比較部15dに出力する。
図6A及び図6Bを用いて、原文テキスト「勝っちゃった。」が入力された場合の形態素解析を例示する。図6Aは、単語辞書から抽出された単語の一例を示す図であり、図6Bは、接続評価値の抽出方法を説明するための図である。
まず、形態素解析部15cは、単語辞書を参照して、原文テキスト「勝っちゃった。」に含まれる文字と部分一致する表記を持つ単語を全て検索する。図6Aに示すように、単語辞書から「勝」という1文字を検索した場合には、一勝二敗などのように使用される助数詞「勝」、タ行五段動詞「勝つ」の語幹「勝」、ラ行五段動詞「勝る」の語幹「勝」、名前の「勝(まさる)」などが抽出される。また、単語辞書から「っ」という1文字を検索した場合には、未知語「っ」、カ行五段動詞の連用形「っ」、タ行五段動詞の連用形「っ」、ラ行五段動詞の連用形「っ」などが抽出される。さらに、単語辞書から「ち」という1文字を検索した場合には、未知語「ち」、タ行五段動詞の連用形「ち」、タ行上一段動詞の未然形「ち」、タ行上一段動詞の連用形「ち」などが抽出される。また、単語辞書から「ゃ」という1文字を検索した場合には、未知語「ゃ」が抽出される。さらに、単語辞書から「ちゃ」という1文字を検索した場合には、未知語「ちゃ」が抽出される。また、単語辞書から「た」という1文字を検索した場合には、未知語「た」、タ行五段動詞の未然形「た」、助動詞「た」の終止形「た」、助動詞「た」の連体形「た」などが抽出される。なお、単語辞書から「。」という1文字を検索した場合には、区切り記号「。」が抽出される。
続いて、形態素解析部15cは、単語辞書から検索した全ての単語、すなわち「勝」、「っ」、「ち」、「ゃ」、「ちゃ」、「っ」、「た」及び「。」を対象に、先行単語及び後続単語の品詞の組合せに対応する接続評価値を接続評価値表から抽出する。図6Bに示すように、「勝」の4つの品詞×「っ」の4つの品詞に関する16通りの接続評価値が接続評価値表から抽出される。また、「っ」の4つの品詞×「ち」の4つの品詞に関する16通りの接続評価値が接続評価値表から抽出される。さらに、「ち」の4つの品詞×「ゃ」の1つの品詞に関する4通りの接続評価値が接続評価値表から抽出される。また、「っ」の4つの品詞×「ちゃ」の1つの品詞に関する4通りの接続評価値が接続評価値表から抽出される。さらに、「ゃ」の1つの品詞×「っ」の4つの品詞に関する4通りの接続評価値が接続評価値表から抽出される。また、「ちゃ」の1つの品詞×「っ」の4つの品詞に関する4通りの接続評価値が接続評価値表から抽出される。さらに、「っ」の4つの品詞×「た」の4つの品詞に関する16通りの接続評価値が接続評価値表から抽出される。また、「た」の4つの品詞×「。」の1つの品詞に関する4通りの接続評価値が接続評価値表から抽出される。つまり、形態素解析部15cは、図6Bに示した先行単語と後続単語の間を結ぶ全線の接続評価値を接続評価値表から抽出する。
このようにして原文テキスト「勝っちゃった。」を形態素解析した場合には、口語表現の「ちゃ」は、単語辞書から未知語として検出される。よって、「勝」の品詞が誤って名前の「勝(まさる)」と解析され、正答である読み「カッチャッタ」とはかけ離れた誤答の読み「マサルッチャッタ」となるような形態素解析結果が出力される。なお、ここでは、原文テキスト「勝っちゃった。」が入力された場合を例示したが、他のテキスト、例えば原文テキスト、置換テキスト1A、2A、1Bや2Bが入力された場合にも同様にして形態素解析が実行される。
例えば、原文テキスト「冗談じゃないよ。」が形態素解析された場合には、口語表現の「じゃ」が誤って接続詞と解析される。このように正答では接続詞が入らない箇所に接続詞があると認識されると、後述の韻律情報生成部15hによって不自然な韻律情報が生成されてしまう。一例としては、接続詞の前後にはポーズ(pause)を挿入するという韻律情報の生成ルールが不利に働き、「ジョーダン・ジャ・ナイヨ」という間延びした表音文字列が生成されてしまう。ここで「・」はポーズが挿入される位置を示している。
比較部15dは、原文テキスト及び置換テキストの形態素解析の結果に基づいて、文字列の繋がりに関する尤もらしさを比較する処理部である。一例としては、比較部15dは、原文テキストの形態素解析の結果を図示しないバッファに格納する。その後、比較部15dは、置換テキストの形態素解析の結果を受け付ける度に、今回に受け付けた置換テキストに含まれる各単語間の接続評価値の合計である形態素解析スコアと、先のバッファに蓄積されたテキストの形態素解析スコアとを比較する。このとき、今回に受け付けた置換テキストの形態素解析スコアの方がバッファに蓄積されたテキストの形態素解析スコアよりも大きい場合に、比較部15dは、今回に受け付けた置換テキストの形態素解析スコアをバッファに格納する。なお、今回に受け付けた置換テキストの形態素解析スコアの方がバッファに蓄積されたテキストの形態素解析スコア以下である場合には、今回に受け付けた置換テキストの形態素解析スコアはバッファに格納されない。
一例として、原文テキストが「勝っちゃった。」である場合の形態素解析の結果の比較例を例示する。図7Aは、原文テキストの形態素解析の結果例を示す図であり、図7Bは、置換テキスト1Aの形態素解析の結果例を示す図であり、また、図7Cは、置換テキスト2Aの形態素解析の結果例を示す図である。これら図7A〜図7Cの例では、形態素解析の結果が原文テキスト、置換テキスト1A、置換テキスト2Aの順に形態素解析部15cから比較部15dへ入力される場合を想定する。
図7Aの例では、原文テキスト「勝っちゃった。」の品詞と読みとして、次のような結果が得られたことを示す。すなわち、「勝 名前 読み:マサル」、「っ 未知語 読み:ッ」、「ちゃ 未知語 読み:チャ」、「っ 未知語 読み:ッ」、「た 未知語 読み:タ」、「。 区切り記号 読み:.」が結果に含まれる。さらに、原文テキスト「勝っちゃった。」の形態素解析スコアが「-500000」であることを示す。かかる形態素解析スコアは、「勝」と「っ」の値「-100000」、「っ」と「ちゃ」の値「-100000」、「ちゃ」と「っ」の値「-100000」、「っ」と「た」の値「-100000」及び「た」と「。」の値「-100000」の合計により求まる。なお、上記の単語の組合せは、単語辞書から検索した単語「勝」、「っ」、「ちゃ」、「っ」、「た」及び「。」を全ての先行単語および後続単語の間で接続した組合せのうち、接続評価値の合計が最大となる単語の組合せを指す。
図7Bの例では、置換テキスト「勝ってしまった。」の品詞と読みとして、次のような結果が得られたことを示す。すなわち、「勝 タ行五段動詞語幹 読み:カ」、「っ タ行五段動詞連用形 読み:ッ」、「て 接続助詞 読み:テ」及び「しま ワ行五段動詞語幹(助動詞的) 読み:シマ」が結果に含まれる。加えて、「っ ワ行五段動詞連用形 読み:ッ」、「た 助動詞 読み:タ」及び「。 区切り記号 読み:.」が結果に含まれる。さらに、置換テキスト1A「勝ってしまった。」の形態素解析スコアが「-17000」であることを示す。かかる形態素解析スコアは、「勝」と「っ」の値「0」、「っ」と「て」の値「-1000」、「て」と「しま」の値「-5000」、「しま」と「っ」の値「0」、「っ」と「た」の値「-1000」及び「た」と「。」の値「-10000」の合計により求まる。なお、上記の単語の組合せは、単語辞書から検索した単語「勝」、「っ」、「て」、「しま」、「っ」、「た」及び「。」を全ての先行単語および後続単語の間で接続した組合せのうち、接続評価値の合計が最大となる単語の組合せを指す。
図7Cの例では、置換テキスト「勝ってはった。」の品詞と読みとして、次のような結果が得られたことを示す。すなわち、「勝 タ行五段動詞語幹 読み:カ」、「っ タ行五段動詞連用形 読み:ッ」、「て 接続助詞 読み:テ」及び「は ラ行五段動詞語幹 読み:ハ」が結果に含まれる。加えて、「っ ラ行五段動詞連用形 読み:ッ」、「た 助動詞 読み:タ」及び「。 区切り記号 読み:.」が結果に含まれる。さらに、置換テキスト2A「勝ってはった。」の形態素解析スコアが「-22000」であることを示す。かかる形態素解析スコアは、「勝」と「っ」の値「0」、「っ」と「て」の値「-1000」、「て」と「は」の値「-10000」、「は」と「っ」の値「0」、「っ」と「た」の値「-1000」及び「た」と「。」の値「-10000」の合計により求まる。なお、上記の単語の組合せは、単語辞書から検索した単語「勝」、「っ」、「て」、「は」、「っ」、「た」及び「。」を全ての先行単語および後続単語の間で接続した組合せのうち、接続評価値の合計が最大となる単語の組合せを指す。
これら図7A〜図7Cの例では、まず、比較部15dは、原文テキスト「勝っちゃった。」の形態素解析スコアをバッファに格納する。そして、置換テキスト1A「勝ってしまった。」の形態素解析スコアを受け付けると、比較部15dは、今回に受け付けた置換テキスト1Aの形態素解析スコアと、バッファに蓄積された原文テキストの形態素解析スコアとを比較する。このとき、比較部15dは、置換テキスト1Aの形態素解析スコア「-17000」が原文テキストの形態素解析スコア「-500000」よりも大きいので、形態素解析スコアが最大である置換テキスト1A「勝ってしまった。」をバッファに格納する。
その後、置換テキスト2A「勝ってはった。」の形態素解析スコアを受け付けると、比較部15dは、今回に受け付けた置換テキスト2Aの形態素解析スコアと、バッファに蓄積された置換テキスト1Aの形態素解析スコアとを比較する。そして、比較部15dは、置換テキスト2Aの形態素解析スコア「-22000」が置換テキスト1Aの形態素解析スコア「-17000」以下であるので、置換テキスト2Aの形態素解析スコア「-22000」はバッファに格納されない。よって、最終的には、置換テキスト1A「勝ってしまった。」の形態素解析スコアがバッファに残ることになる。
他の一例として、原文テキストが「冗談じゃないよ。」である場合の形態素解析の結果の比較例を例示する。図8Aは、原文テキストの形態素解析の結果例を示す図であり、図8Bは、置換テキスト1Bの形態素解析の結果例を示す図であり、また、図8Cは、置換テキスト2Bの形態素解析の結果例を示す図である。これら図8A〜図8Cの例では、形態素解析の結果が原文テキスト、置換テキスト1B、置換テキスト2Bの順に形態素解析部15cから比較部15dへ入力される場合を想定する。
図8Aの例では、原文テキスト「冗談じゃないよ。」の品詞と読みとして、次のような結果が得られたことを示す。すなわち、「冗談 普通名詞 読み:ジョーダン」、「じゃ 接続詞 読み:ジャ」、「な 形容詞語幹 読み:ナ」、「い 形容詞終止形 読み:イ」、「よ 終助詞 読み:ヨ」、「。 区切り記号 読み:.」が結果に含まれる。さらに、原文テキスト「冗談じゃないよ。」の形態素解析スコアが「-31000」であることを示す。かかる形態素解析スコアは、「冗談」と「じゃ」の値「-10000」、「じゃ」と「な」の値「-10000」、「な」と「い」の値「0」、「い」と「よ」の値「-1000」及び「よ」と「。」の値「-10000」の合計により求まる。なお、上記の単語の組合せは、単語辞書から検索した単語「冗談」、「じゃ」、「な」、「い」、「よ」及び「。」を全ての先行単語および後続単語の間で接続した組合せのうち、接続評価値の合計が最大となる単語の組合せを指す。
図8Bの例では、置換テキスト「冗談ではないよ。」の品詞と読みとして、次のような結果が得られたことを示す。すなわち、「冗談 普通名詞 読み:ジョーダン」、「で 格助詞 読み:デ」、「は 副助詞 読み:ハ」、「な 形容詞語幹 読み:ナ」、「い 形容詞終止形 読み:イ」、「よ 終助詞 読み:ヨ」及び「。 区切り記号 読み:.」が結果に含まれる。さらに、置換テキスト1B「冗談ではないよ。」の形態素解析スコアが「-23000」であることを示す。かかる形態素解析スコアは、「冗談」と「で」の値「-1000」、「で」と「は」の値「-1000」、「は」と「な」の値「-10000」、「な」と「い」の値「0」、「い」と「よ」の値「-1000」及び「よ」と「。」の値「-10000」の合計により求まる。なお、上記の単語の組合せは、単語辞書から検索した単語「冗談」、「で」、「は」、「な」、「い」、「よ」及び「。」を全ての先行単語および後続単語の間で接続した組合せのうち、接続評価値の合計が最大となる単語の組合せを指す。
図8Cの例では、置換テキスト「冗談でしまないよ。」の品詞と読みとして、次のような結果が得られたことを示す。すなわち、「冗談 普通名詞 読み:ジョーダン」、「で 格助詞 読み:デ」、「しま 普通名詞 読み:シマ」、「な 形容詞語幹 読み:ナ」、「い 形容詞終止形 読み:イ」、「よ 終助詞 読み:ヨ」、「。 区切り記号 読み:.」が結果に含まれる。さらに、置換テキスト2B「冗談でしまないよ。」の形態素解析スコアが「-32000」であることを示す。かかる形態素解析スコアは、「冗談」と「で」の値「-1000」、「で」と「しま」の値「-10000」、「しま」と「な」の値「-10000」、「な」と「い」の値「0」、「い」と「よ」の値「-1000」及び「よ」と「。」の値「-10000」の合計により求まる。なお、上記の単語の組合せは、単語辞書から検索した単語「冗談」、「で」、「しま」、「な」、「い」、「よ」及び「。」を全ての先行単語および後続単語の間で接続した組合せのうち、接続評価値の合計が最大となる単語の組合せを指す。
これら図8A〜図8Cの例では、まず、比較部15dは、原文テキスト「冗談じゃないよ。」の形態素解析スコアをバッファに格納する。そして、置換テキスト1B「冗談ではないよ。」の形態素解析スコアを受け付けると、比較部15dは、今回に受け付けた置換テキスト1Bの形態素解析スコアと、バッファに蓄積された原文テキストの形態素解析スコアとを比較する。このとき、比較部15dは、置換テキスト1Bの形態素解析スコア「-23000」が原文テキストの形態素解析スコア「-31000」よりも大きいので、形態素解析スコアが最大である置換テキスト1B「冗談ではないよ。」をバッファに格納する。
その後、置換テキスト2B「冗談でしまないよ。」の形態素解析スコアを受け付けると、比較部15dは、今回に受け付けた置換テキスト2Bの形態素解析スコアと、バッファに蓄積された置換テキスト1Bの形態素解析スコアとを比較する。そして、比較部15dは、置換テキスト2Bの形態素解析スコア「-32000」が置換テキスト1Bの形態素解析スコア「-23000」以下であるので、置換テキスト2Bの形態素解析スコア「-32000」はバッファに格納されない。よって、最終的には、置換テキスト1B「冗談ではないよ。」の形態素解析スコアがバッファに残ることになる。
図1の説明に戻り、対応付け部15eは、置換テキストの方が原文テキストよりも文字列の繋がりが尤もらしい場合に、対応辞書記憶部13aを用いて、置換テキストの形態素解析の結果を原文テキストに対応付ける処理部である。
これを説明すると、対応付け部15eは、比較部15dによって形態素解析の結果が全て比較された場合に、バッファに蓄積されたテキストの形態素解析の結果が原文テキストの形態素解析の結果であるか否かを判定する。このとき、バッファに蓄積されたテキストの形態素解析の結果が原文テキストのものである場合には、原文テキストが尤もらしく、原文テキストに口語表現が含まれている可能性が低いと推定できる。よって、対応付け部15eは、バッファに記憶された形態素解析の結果をそのまま構文解析部15fへ出力する。一方、バッファに蓄積されたテキストの形態素解析の結果が原文テキストのものではない場合には、原文テキストが尤もらしくなく、原文テキストに口語表現が含まれている可能性が高いと推定できる。よって、対応付け部15eは、置換テキストに含まれる文字列のうち口語表現から記述表現に置換された置換後の文字列の形態素解析の結果を、原文テキストに含まれる置換前の文字列に対応付ける。
一例として、原文テキストが「勝っちゃった。」である場合の置換テキスト及び原文テキストの対応付けを例示する。図9は、置換テキスト1A及び原文テキストの間における形態素解析の結果の対応付けを説明するための説明図である。図9に示すように、対応付け部15eは、置換テキスト1A「勝ってしまった。」に含まれる単語が口語表現から置換された部分に該当する否かを文頭の単語から順番に判定する。このとき、記述表現に置換されていない単語「勝」、「っ」、「っ」、「た」及び「。」の場合には、対応付け部15eは、置換テキスト1A及び原文テキストともに形態素解析の結果は同じなので、置換テキスト1Aの形態素解析結果をそのまま原文テキストに対応付けて採用する。
ここで、記述表現に置換された単語「て」の場合には、対応付け部15eは、対応辞書の各文字の対応「ちゃ⇔てしま」を参照する。そして、対応付け部15eは、置換後の文字列を構成する「て」及び「しま」の2つの単語が口語表現「ちゃ」に対応しているので、「て」の品詞「接続助詞」及び「しま」の品詞「ワ行五段動詞語幹」を原文テキストの口語表現「ちゃ」に対応付ける。これによって、後段の機能部では、原文テキストの口語表現「ちゃ」の品詞である「接続助詞」及び「ワ行五段動詞語幹」を用いて、以降の処理を実行できる。
他の一例として、原文テキストが「冗談じゃないよ。」である場合の置換テキスト及び原文テキストの対応付けを例示する。図10は、置換テキスト1B及び原文テキストの間における形態素解析の結果の対応付けを説明するための説明図である。図10に示すように、対応付け部15eは、置換テキスト1B「冗談ではないよ。」に含まれる単語が口語表現から置換された文字列であるか否かを文頭の単語から順番に判定する。このとき、記述表現に置換されていない単語「冗談」、「な」、「い」、「よ」及び「。」の場合には、対応付け部15eは、置換テキスト1B及び原文テキストともに形態素解析の結果は同じなので、置換テキスト1Bの形態素解析結果をそのまま原文テキストに対応付けて採用する。
ここで、記述表現に置換された単語「で」の場合には、対応付け部15eは、対応辞書の各文字の対応「じゃ⇔では」を参照する。そして、対応付け部15eは、置換後の文字列を構成する「で」及び「は」の2つの単語が口語表現「じゃ」に対応しているので、「で」の品詞「格助詞」及び「は」の品詞「副助詞」を原文テキストの口語表現「じゃ」に対応付ける。これによって、後段の機能部では、原文テキストの口語表現「じゃ」の品詞である「格助詞」及び「副助詞」を用いて、以降の処理を実行できる。
構文解析部15fは、対応付け部15eによって出力される原文テキストの形態素解析の結果を用いて、原文テキストの構文解析を実行する処理部である。これを説明すると、まず、構文解析部15fは、原文テキストに含まれる単語の品詞の連続から文節を特定する。かかる「文節」は、原則として、1個の自立語とそれに続く0個以上の付属語という構成である。このため、構文解析部15fは、原文テキストに含まれる冒頭の単語から順に単語が自立語または付属語であるかを判定することにより、文節を特定する。その後、構文解析部15fは、それぞれの文節の係り受け関係を、文節を構成する自立語の品詞、あるいは付属語である助詞や助動詞の種類によって特定する。
一例として、原文テキストが「勝っちゃった。」及び「冗談じゃないよ。」である場合の構文解析を例示する。図11及び図12は、構文解析および韻律情報の生成を説明するための図である。図11に示すように、原文テキスト「勝っちゃった。」の場合には、構文解析部15fは、「ちゃ」が接続助詞「て」(=付属語)とワ行五段動詞語幹「しま」(=自立語)に相当するが、ここでは文節を分けることができない。よって、構文解析部15fは、「勝っちゃった」をひとつの文節として特定する。図12に示すように、原文テキスト「冗談じゃないよ。」の場合には、構文解析部15fは、「冗談じゃ」が1文節、「ないよ」が1文節となり、この2文節間に係り受け関係があると特定する。
韻律情報生成部15hは、構文解析部15fによる構文解析の結果を用いて、韻律情報を生成する処理部である。かかる韻律情報の一例としては、ポーズやアクセント句境界などが挙げられる。ここで言う「ポーズ」は、接続詞や感動詞などの特定の品詞の直前及び直後や係り受け関係において係り元の文節から係り先の文節までの音節数が閾値よりも大きい場合に、係り元文節の直後に設定されるものである。また、「アクセント句境界」は、アクセントを構成するひとつのまとまりであるアクセント句がポーズを設定しなかった文節境界に設定される。
一例として、原文テキストが「勝っちゃった。」及び「冗談じゃないよ。」である場合の韻律情報の生成を例示する。図11に示すように、原文テキスト「勝っちゃった」の場合には、韻律情報生成部15hは、「勝っちゃった」がひとつの文節として扱われるので、この文ではポーズやアクセント句境界を挿入しない。図12に示すように、原文テキスト「冗談じゃないよ。」の場合には、韻律情報生成部15hは、「冗談じゃ」が1文節、「ないよ」が1文節となり、この2文節間に係り受け関係があるので、「冗談じゃ」と「ないよ」の間にアクセント句境界を置く。
表音生成部15jは、韻律情報生成部15hによって出力された原文テキストの読みに韻律情報が付与された形態素解析の結果から原文テキストの表音文字列を生成する処理部である。一例として、表音生成部15jは、原文テキストの読みにアクセントが付与された漢字かな混じり文から表音文字であるカタカナの文字列を生成する。
一例として、原文テキストが「勝っちゃった。」及び「冗談じゃないよ。」である場合の表音文字列の生成を例示する。図11に示すように、原文テキスト「勝っちゃった」の場合には、表音生成部15jは、「カ’ッチャッタ.」という読みを生成する。口語表現「ちゃ」を置換しなかった場合には、「勝」が名前と判断されために、「マサルッチャッタ.」という表音文字列が生成され誤読になっていた。しかしながら、口語表現「ちゃ」を記述表現「てしま」に置換した場合には、「勝」は正しくタ行五段動詞語幹と判断されたために、正しく「カ’ッチャッタ.」という表音文字列が生成されている。図12に示すように、原文テキスト「冗談じゃないよ。」の場合には、正答の「ジョーダ’ンジャ_ナ’イヨ.」が生成される。このため、口語表現「じゃ」を置換しなかった場合のように、「じゃ」の前後にポーズが置かれ、「ジョーダ’ン・ジャ・ナ’イヨ.」という不自然な表音文字列が生成されることはなく、自然な読み上げを実現することができる。なお、ここでは、「・」はポーズの挿入位置を、「_」はアクセント句境界を示す。
音響処理部17は、表音文字列から合成音声を生成する音響処理を実行する処理部である。この音響処理部17は、図1に示すように、韻律生成部17aと、合成部17bと、出力部17cとを有する。
韻律生成部17aは、表音生成部15jによって生成された表音文字列に基づいて原文テキストに対応する韻律を生成する処理部である。ここで言う「韻律」は、ポーズ、音素の長さやイントネーション(intonation)などの喋り方の特徴の総称である。一態様としては、韻律生成部17aは、後述の合成部17bに合成させる音声、すなわち合成音声の個々の音素の長さである音素時間長や声の高さの変化パターンであるピッチパターン(pitch pattern)などの韻律を生成する。
合成部17bは、韻律生成部17aによって生成された韻律から音声波形を生成して音声を合成する処理部である。一態様としては、合成部17bは、韻律生成部17aによって生成された韻律、例えば音素時間長やピッチパターンにしたがって音声波形を生成することにより音声を人工的に合成する。
出力部17cは、音声を出力する出力部である。一例として、出力部17cは、合成部17bから入力される合成音声を出力する。かかる出力部17cの一態様としては、スピーカー(speaker)などが挙げられる。
なお、図1に示した作成部13、言語処理部15、音響処理部17には、各種の集積回路や電子回路を採用できる。また、言語処理部15に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
また、図1に示した単語辞書記憶部11、評価記憶部12及び対応辞書記憶部13aのハードウェアには、次のようなものを適用できる。一例としては、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などの半導体メモリ素子を採用できる。なお、上記の3つの記憶部にハードディスク、光ディスクなどの記憶装置を採用することとしてもかまわない。
[処理の流れ]
次に、本実施例に係る音声合成装置の処理の流れを説明する。なお、ここでは、音声合成装置によって実行される(1)メインフローを説明した後に、メインフローのサブルーチンとして実行される(2)サブフローを説明する。
(1)メインフロー
図13は、実施例1に係る音声合成装置のメインフローの手順を示すフローチャートである。このメインフローは、受付部15aによって入力テキストが受け付けられた場合に処理が起動する。
図13に示すように、受付部15aは、入力テキストを受け付ける(ステップS101)。続いて、受付部15aは、ステップS101で受け付けた入力テキストから1文のテキストを原文テキストとして取り出す(ステップS102)。
続いて、形態素解析部15cは、原文テキストに含まれる文字列に形態素解析処理を実行する(ステップS103)。そして、比較部15dは、原文テキストの形態素解析の結果を図示しないバッファに格納する(ステップS104)。
その後、置換部15bは、原文テキストに含まれる文字列のうち、対応辞書記憶部13aに記憶された口語表現と一致する文字列を、口語表現に対応する記述表現の文字列に置換することにより、置換テキストを生成する(ステップS105)。なお、この時、ステップS105で生成された置換テキストの数の値が置換テキストの数Nにセットされる。
そして、形態素解析部15cは、ループカウンタをi=0に初期化する(ステップS106)。続いて、ループカウンタiの値が置換テキストの数Nの値よりも小さい場合(ステップS107肯定)には、形態素解析部15cは、置換テキストに含まれる文字列に形態素解析処理を実行する(ステップS108)。なお、置換テキストが1つも生成されなかった場合、すなわちi=N=0である場合(ステップS107否定)には、ステップS112へ移行する。
ここで、比較部15dは、置換テキストiの形態素解析スコアと、バッファに格納された形態解析スコアとを比較する(ステップS109)。このとき、置換テキストiの形態素解析スコアがバッファに格納された形態解析スコアよりも大きければ(ステップS109肯定)、比較部15dは、置換テキストiの形態素解析の結果をバッファに格納する(ステップS110)。その後、比較部15dは、ループカウンタiをインクリメントする(ステップS111)。
一方、置換テキストiの形態素解析スコアがバッファに格納された形態解析スコア以下であれば(ステップS109否定)、比較部15dは、バッファへの格納を実行せずに、ループカウンタiをインクリメントする(ステップS111)。
その後、ループカウンタiの値と置換テキストの数Nの値とが等しくなると(ステップS107否定)、比較部15dは、原文テキストの形態素解析の結果がバッファに格納されているか否かを判定する(ステップS112)。
このとき、原文テキストの形態素解析の結果がバッファに格納されている場合(ステップS112肯定)には、対応付け部15eは、バッファに格納された形態素解析の結果を後段の機能部へ出力する(ステップS113)。
一方、原文テキストの形態素解析の結果がバッファに格納されていない場合(ステップS112否定)には、対応付け部15eは、次のような処理を実行する。すなわち、対応付け部15eは、置換後の文字列の形態素解析の結果を、原文テキストに含まれる置換前の文字列に対応付ける「対応付け処理」を実行する(ステップS114)。続いて、対応付け部15eは、置換後の文字列の形態素解析の結果が対応付けられた原文テキストの形態素解析の結果を後段の機能部へ出力する(ステップS115)。
後段の機能部へ形態素解析の結果を出力した後に、受付部15aは、入力テキストを1文進め、新たな原文テキストを取り出す(ステップS116)。そして、入力テキストに含まれる全てのテキストの処理が終了しない間は(ステップS117否定)、言語処理部15は、上記のステップS103〜S116までの処理を繰り返し実行する。その後、入力テキストに含まれる全てのテキストの処理が終了すると(ステップS117肯定)、処理を終了する。
(2)サブフロー
図14は、実施例1に係る音声合成装置のサブフローの手順を示すフローチャートである。このサブフローは、図13に示したステップS114に対応する処理であり、原文テキストの形態素解析の結果がバッファに格納されていない場合(ステップS112否定)に処理が起動する。
図14に示すように、対応付け部15eは、置換テキストの形態素解析の結果において、構成する単語の個数Nの値を設定し(ステップS301)、ループカウンタをi=0に初期化する(ステップS302)。
そして、ループカウンタiの値が置換テキストの単語の個数Nと等しくなるまで(ステップS303肯定)、下記のステップS304〜S313の処理を実行する。すなわち、対応付け部15eは、単語iが置換した文字列に該当するか否かを判定する(ステップS304)。
このとき、単語iが置換した文字列に該当しなければ(ステップS304否定)、対応付け部15eは、置換前後で共通している単語なので、単語iの形態素解析の結果をそのまま採用する(ステップS305)。そして、対応付け部15eは、ループカウンタiをインクリメントし(ステップS306)、ステップS303の処理に移行する。
一方、単語iが置換した文字列に該当する場合(ステップS304肯定)には、対応付け部15eは、対応辞書の「各文字の対応」を参照する(ステップS307)。そして、対応付け部15eは、対応辞書の「各文字の対応」の登録個数Mの値をセットし(ステップS308)、ループカウンタをj=0に初期化する(ステップS309)。
そして、ループカウンタjの値が対応辞書の「各文字の対応」の登録個数Mと等しくなるまで(ステップS310肯定)、対応付け部15eは、下記のステップS311〜S313までの処理を繰り返し行う。
すなわち、対応付け部15eは、置換前の文字部分jに対して、置換後の文字部分が対応する単語(n個)の品詞を割り当てる(ステップS311)。そして、対応付け部15eは、ループカウンタiに置換後の文字部分が対応する単語の個数nをインクリメントし(ステップS312)、ループカウンタjの値をインクリメントする(ステップS313)。
その後、ループカウンタjの値が対応辞書の「各文字の対応」の登録個数Mと等しくなると(ステップS310否定)、対応付け部15eは、上記のステップS303の処理に移行する。そして、ループカウンタiの値が置換テキストの単語の個数Nと等しくなると(ステップS303否定)、対応付け部15eは、処理を終了する。
[実施例1の効果]
上述してきたように、本実施例に係る音声合成装置10は、入力されたテキストに含まれる文字列の一部を口語表現から記述表現に置換したテキストの解析結果の方が入力されたテキストより尤もらしい場合に、置換後のテキストの解析結果を入力テキストに対応付ける。
このため、本実施例に係る音声合成装置10では、テキストに口語表現の文字列が含まれていたとしても、口語表現のままで形態素解析が実行されないので、形態素解析の精度を高めることができる。また、本実施例に係る音声合成装置10では、記述表現に置換された文字列に形態素解析が実行されるので、形態素解析に用いる情報を口語表現のものに合わせて改変する必要もない。また、本実施例に係る音声合成装置10では、文字列を置換する範囲が文章やフレーズに限定されないので、多様な口語表現の文字列が入力されたとしてもそれに対応して記述表現に置換できる。さらに、本実施例に係る音声合成装置10では、置換後のテキストの解析結果を入力テキストに対応付けるので、口語の形態素解析の結果を出力することができる。したがって、本実施例に係る音声合成装置10によれば、口語のテキストを正しく解析することが可能になる。好適な一例としては、メールやブログなどの口語体で書かれたテキストを読み上げる音声読み上げ機能において、読み誤りがない自然な合成音声を提供することが可能になる。