(57)【要約】【課題】  解析用辞書に登録されていない読みにも対応して不要な読み上げを回避することができるとともに、テキストの作成者の意図しない過剰なルビの取扱いを防止することができる音声合成装置を得ることを目的とする。【解決手段】  ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列の読みを変形して、そのルビ相当文字列の読みとの一致判定を行う。これにより、解析用辞書２に登録されていない読みにも対応して不要な読み上げを回避することができるとともに、テキストの作成者の意図しない過剰なルビの取扱いを防止することができる。【選択図】        図１
2005309327.tif 000002
【特許請求の範囲】
【請求項１】
テキストの形態素解析を実施して、そのテキストからルビの可能性があるルビ相当文字列を抽出する文字列抽出手段と、解析用辞書を参照して、上記文字列抽出手段により抽出されたルビ相当文字列の読みが、そのルビ相当文字列の直前の文字列の読みと一致するか否かを判定する照合手段と、上記照合手段の判定結果が読みの一致を示す場合、そのテキストから直前の文字列を除外して、ルビ相当文字列を含むテキストの合成音を生成し、上記照合手段の判定結果が読みの不一致を示す場合、直前の文字列とルビ相当文字列を含むテキストの合成音を生成する合成音生成手段とを備えた音声合成装置において、上記照合手段は、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列の読みを変形して、ルビ相当文字列の読みとの一致判定を行うことを特徴とする音声合成装置。
【請求項２】
照合手段は、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列の読みを濁音化又は半濁音化して、ルビ相当文字列の読みとの一致判定を行うことを特徴とする請求項１記載の音声合成装置。
【請求項３】
照合手段は、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列を促音化して、ルビ相当文字列の読みとの一致判定を行うことを特徴とする請求項１記載の音声合成装置。
【請求項４】
照合手段は、読みの一致判定を実施して、読みが一致する直前の文字列を複数検出すると、複数の直前の文字列の中から最長の文字列を選択することを特徴とする請求項２または請求項３記載の音声合成装置。
【請求項５】
照合手段は、変形後の直前の文字列の読みがルビ相当文字列の読みと一致する場合、ルビ相当文字列のアクセントとして、変形前の直前の文字列のアクセントを使用することを特徴とする請求項１から請求項４のうちのいずれか１項記載の音声合成装置。
【請求項６】
照合手段は、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、一部の読みの不一致を許容して、ルビ相当文字列の読みと直前の文字列の読みとの一致判定を行うことを特徴とする請求項１記載の音声合成装置。
【請求項７】
照合手段は、ルビ相当文字列と一致する固有名詞が解析用辞書に登録されていれば、ルビ相当文字列をルビとして取り扱わないことを特徴とする請求項１から請求項６のうちのいずれか１項記載の音声合成装置。
【請求項８】
照合手段は、変形後の直前の文字列の読みがルビ相当文字列の読みと一致する場合、変形後の読みを解析用辞書に登録することを特徴とする請求項１から請求項６のうちのいずれか１項記載の音声合成装置。
【請求項９】
文字列抽出手段は、コスト最小法を利用して、テキストの形態素解析を実施することを特徴とする請求項１から請求項８のうちのいずれか１項記載の音声合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、日本語のテキストの合成音を生成して、音声出力する音声合成装置に関するものである。
【背景技術】
【０００２】
従来の音声合成装置は、テキストの中に括弧付の文字列が含まれている場合、その括弧に囲まれている部分の文字列の読みが、その直前の文字列（開き括弧“（”の直前の文字列）の読みを表しているか否かを判定する。
即ち、テキストから括弧に囲まれている部分の文字列を抽出し、その抽出した文字列の読みと、その直前の文字列の辞書引きの読みとを照合して、読みが一致しているか否かを判定する。
【０００３】
そして、音声合成装置は、解析用辞書の中に、括弧に囲まれている部分の文字列の読みと一致する直前の文字列の読みが存在する場合、括弧に囲まれている部分の文字列が直前の文字列のルビであると判断し、その直前の文字列の読みとして、括弧に囲まれている部分の文字列の読みを採用し、括弧に囲まれている部分の文字列を読み飛ばすようにする。
一方、解析用辞書の中に、括弧に囲まれている部分の文字列の読みと一致する直前の文字列の読みが存在しない場合、括弧に囲まれている部分の文字列は直前の文字列のルビではないと判断し、直前の文字列を読んでから、括弧に囲まれている部分の文字列も読むようにする。
【０００４】
例えば、「これは流行（はやり）の歌です」というテキストを音声合成する場合、解析用辞書に「見出し：流行、読み：ハヤリ」と、「見出し：流行、読み：リューコー」が登録されていれば、括弧に囲まれている部分の文字列（はやり）の読み“ハヤリ”と一致する直前の文字列（流行）の読み“ハヤリ”が解析用辞書に存在するため、「コレワ  ハヤリノ  ウタ'デス」と読み上げるようにする。ただし、「'」は、アクセント位置を示している。
一方、解析用辞書には「見出し：流行、読み：ハヤリ」が登録されておらず、「見出し：流行、読み：リューコー」のみが登録されていれば、括弧に囲まれている部分の文字列（はやり）の読み“ハヤリ”と一致する直前の文字列（流行）の読み“ハヤリ”が解析用辞書に存在しないため、「コレワ  リューコー  ハヤリノ  ウタ'デス」と読み上げるようにする（例えば、特許文献１参照）。
【０００５】
なお、上記の音声合成装置の他に、括弧に囲まれている部分の文字列に一致する文字列が解析用辞書に登録されている場合、括弧に囲まれている部分の文字列の読みと、その直前の文字列の読みとが一致するか否かに拘わらず、括弧に囲まれている部分の文字列がルビであると判断し、括弧に囲まれている部分の文字列を読み飛ばすようにしている音声合成装置が以下の特許文献２に開示されている。
例えば、「これは流行（はやり）の歌です」というテキストを音声合成する場合において、解析用辞書に「見出し：流行、読み：ハヤリ」が登録されていない場合でも、解析用辞書の見出しとして「見出し：流行」が存在すれば、括弧に囲まれている部分の文字列（はやり）がルビであると判断し、「コレワ  ハヤリノ  ウタ'デス」と読み上げるようにする。
【０００６】
【特許文献１】特開平１−３００３３４号公報（第７頁から第８頁、図１）
【特許文献２】特開２００２−３４２０６６号公報（段落番号［００１７］から［００２６］、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の音声合成装置は以上のように構成されているので、括弧に囲まれている部分の文字列の読みと一致する直前の文字列の読みが解析用辞書に存在するとき、括弧に囲まれている部分の文字列が直前の文字列のルビであると判断するようにすれば、直前の文字列の読みが複数通り存在する場合や、当て字であるような場合でも、テキストの作成者が意図する通りにテキストを読み上げることができる。しかし、人名や固有名詞などの読み方は数限りなく存在するため、その全てを解析用辞書に登録することは困難であり、解析用辞書に登録されていない読みには対応することができず、括弧に囲まれている部分の文字列をルビとして取り扱うことができない場合が多々生じる課題があった。
なお、括弧に囲まれている部分の文字列に一致する文字列が解析用辞書に存在する場合、括弧に囲まれている部分の文字列の読みと、その直前の文字列の読みとが一致するか否かに拘わらず、括弧に囲まれている部分の文字列がルビであると判断する場合、例えば、名前の後に括弧書きされる「人物の所属組織情報」や「人物の国籍情報」などの補足情報等もルビとして扱われるため、本来読み上げるべき人名の一部が、勝手に組織情報や国名に置き換わって読み上げられてしまうなどの課題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、解析用辞書に登録されていない読みにも対応して不要な読み上げを回避することができるとともに、テキストの作成者の意図しない過剰なルビの取扱いを防止することができる音声合成装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る音声合成装置は、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列の読みを変形して、そのルビ相当文字列の読みとの一致判定を行うようにしたものである。
【発明の効果】
【００１０】
この発明によれば、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列の読みを変形して、そのルビ相当文字列の読みとの一致判定を行うように構成したので、解析用辞書に登録されていない読みにも対応して不要な読み上げを回避することができるとともに、テキストの作成者の意図しない過剰なルビの取扱いを防止することができる効果がある。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１はこの発明の実施の形態１による音声合成装置を示す構成図であり、図において、制御部１はテキストを入力してから合成音を生成するまでの一連の処理を制御する。
解析用辞書２は単語辞書３と文字読み辞書４から構成されている。単語辞書３はテキストから単語を切り出す際に参照され、単語の見だし、読み、品詞、モーラ数及びアクセント型などの情報を格納している。文字読み辞書４は単語辞書３に登録されていない文字の読みを確認する際に参照され、文字の読み、モーラ数及びアクセント型などの情報を格納している。
【００１２】
テキスト解析部５は音声合成対象のテキストを入力すると、単語辞書３を参照しながらテキストの形態素解析を実施することにより、テキストから最適な形態素列を見つけて、音声合成の発声単位であるアクセント句や読みを決定するとともに、アクセント位置や前後のアクセント句間の関係を決定する。また、テキスト解析部５はテキストからルビの可能性があるルビ相当文字列（例えば、括弧に囲まれている部分の文字列）を抽出する。
なお、テキスト解析部５は文字列抽出手段を構成しており、テキスト解析部５はテキストの形態素解析を実施する際、コスト最小法、最長一致法、文節数最小法などの既知の形態素解析アルゴリズムを利用する。例えば、首藤公昭、吉村賢治「日本語の構造とその解析」、情報処理Ｖｏｌ．２７，Ｎｏ．８，ｐｐ．９４７〜９５４，１９８６には、既知の形態素解析アルゴリズムが開示されている。
【００１３】
拡張読み照合部６はテキスト解析部５により抽出されたルビ相当文字列の読みに一致する直前の文字列（ルビ開始位置よりも前に位置する文字列）を抽出して形態素候補を生成する。ただし、拡張読み照合部６はルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列の読みを変形して、ルビ相当文字列の読みとの一致判定を行う。即ち、拡張読み照合部６では、ルビ相当文字列の読みと直前の文字列の読みで一致判定された場合のみ形態素候補を生成する。そのとき、生成する形態素候補は、直前の文字列の一致開始位置からルビ相当文字列の終了位置までの読みをルビ相当文字列の読みとする。なお、拡張読み照合部６は照合手段を構成している。
【００１４】
韻律情報生成部７はテキスト解析部５の決定内容（アクセント句、読み、アクセント位置、アクセント句間の関係）にしたがって合成音の作成に必要な韻律情報（Ｆ０と各音素の継続時間長）を生成する。
規則合成部８は韻律情報生成部７により生成された韻律情報にしたがって合成音を生成する。
なお、韻律情報生成部７及び規則合成部８から合成音生成手段が構成されている。
【００１５】
図２はこの発明の実施の形態１による音声合成装置の処理内容を示すフローチャートであり、図３は拡張読み照合部６の処理内容を示すフローチャートである。
また、図４は単語辞書３に登録されている単語の一例を示す説明図であり、図５は文字読み辞書４に登録されている文字の一例を示す説明図である。
【００１６】
次に動作について説明する。
ここでは、図６に示すようなテキスト「脱北（だっぽく）した男の故郷（ふるさと）は、飢餓に苦しんでいた。」を入力するものとして説明する。
また、以下の説明では、ルビ開始記号が“（”、ルビ終了記号が“）”であるものとして説明する。
さらに、単語辞書３には、［見出し、読み］＝［故郷、コキョー］が登録されているが、［故郷、フルサト］や、［脱北、ダッポク］は登録されていないものとする。
また、単語辞書３には、［脱、ダツ］、［北、キタ］、［男、オトコ］や［飢餓、キガ］が登録されているものとする。
【００１７】
テキスト解析部５は、図６に示すようなテキストを入力すると、現在の処理位置にある文字が文末であるか否かを判定する（ステップＳＴ１）。ただし、テキストを入力した直後では、現在の処理位置は文頭の文字“脱”であるので、現在の処理位置にある文字は文末ではないと判定する。
テキスト解析部５は、現在の処理位置にある文字が文末ではないと判定すると、現在の処理位置にある文字がルビ開始記号であるか否かを判定する（ステップＳＴ２）。
テキストを入力した直後では、現在の処理位置にある文字が“脱”であるので、ルビ開始記号“（”ではないと判定する。
【００１８】
テキスト解析部５は、現在の処理位置にある文字がルビ開始記号ではないと判定すると、現在の処理位置から始まる文字列と部分一致する辞書見出しを形態素候補に追加する（ステップＳＴ３）。
即ち、単語辞書３及び文字読み辞書４から辞書引きを実施して、「脱北（だっぽく）・・・」の先頭からの部分文字列に一致する辞書見出しを形態素候補として形態素候補リストに追加する。
単語辞書３には、上述したように、「脱北、ダッポク」が登録されていないが、単語辞書３には［脱、ダツ］が登録されているので、図７に示すように、［脱、ダツ］の形態素候補が生成される。
【００１９】
テキスト解析部５は、現在の処理位置から始まる文字列と部分一致する辞書見出しを形態素候補に追加すると、現在の処理位置を１文字後ろに移動して（ステップＳＴ４）、ステップＳＴ１の処理に移行する。
即ち、現在の処理位置を“北”に移動して（ステップＳＴ４）、ステップＳＴ１の処理に移行する。
【００２０】
テキスト解析部５は、ステップＳＴ１の処理に移行すると、前回と同様に、現在の処理位置にある文字が文末であるか否かを判定する（ステップＳＴ１）。ここでは、現在の処理位置にある文字が“北”であるので、現在の処理位置にある文字は文末ではないと判定する。
テキスト解析部５は、現在の処理位置にある文字が文末ではないと判定すると、前回と同様に、現在の処理位置にある文字がルビ開始記号であるか否かを判定する（ステップＳＴ２）。
ここでは、現在の処理位置にある文字が“北”であるので、ルビ開始記号“（”ではないと判定する。
【００２１】
テキスト解析部５は、現在の処理位置にある文字がルビ開始記号ではないと判定すると、前回と同様に、現在の処理位置から始まる文字列と部分一致する辞書見出しを形態素候補に追加する（ステップＳＴ３）。
即ち、単語辞書３及び文字読み辞書４から辞書引きを実施して、「北（だっぽく）・・・」の先頭からの部分文字列に一致する辞書見出しを形態素候補として形態素候補リストに追加する。
単語辞書３には［北、キタ］が登録されているので、図７に示すように、［北、キタ］の形態素候補が生成される。
【００２２】
テキスト解析部５は、現在の処理位置から始まる文字列と部分一致する辞書見出しを形態素候補に追加すると、現在の処理位置を１文字後ろに移動して（ステップＳＴ４）、ステップＳＴ１の処理に移行する。
即ち、現在の処理位置を“（”に移動（ステップＳＴ４）して、ステップＳＴ１の処理に移行する。
【００２３】
テキスト解析部５は、ステップＳＴ１の処理に移行すると、前回と同様に、現在の処理位置にある文字が文末であるか否かを判定する（ステップＳＴ１）。ここでは、現在の処理位置にある文字が“（”であるので、現在の処理位置にある文字は文末ではないと判定する。
テキスト解析部５は、現在の処理位置にある文字が文末ではないと判定すると、前回と同様に、現在の処理位置にある文字がルビ開始記号であるか否かを判定する（ステップＳＴ２）。
ここでは、現在の処理位置にある文字が“（”であるので、ルビ開始記号“（”であると判定する。
【００２４】
テキスト解析部５は、現在の処理位置にある文字がルビ開始記号であると判定すると、現在の処理位置以降に、ルビ終了記号“）”が存在するか否かを判定する（ステップＳＴ５）。
図６の例では、文字列“だっぽく”の後ろに“）”があるので、ルビ終了記号“）”が存在すると判定する。
【００２５】
テキスト解析部５は、現在の処理位置以降に、ルビ終了記号“）”が存在すると判定すると、ルビ開始記号“（”とルビ終了記号“）”に囲まれている部分の文字列“だっぽく”を抽出する。
そして、テキスト解析部５は、その抽出した文字列が平仮名で記述されているか否かを判定し、その文字列が平仮名で記述されていれば、ルビの可能性があると判断する（ステップＳＴ６）。
この例では、その抽出した文字列が平仮名で記述されているので、ルビの可能性があると判断し、その抽出した文字列をルビ相当文字列として拡張読み照合部６に出力する。
【００２６】
拡張読み照合部６は、テキスト解析部５からルビ相当文字列“だっぽく”を受けると、そのルビ相当文字列の読みに一致する直前の文字列（ルビ開始位置よりも前に位置する文字列）が存在するか否かを判定する（ステップＳＴ７）。
即ち、拡張読み照合部６は、ルビ開始文字“（”の直前から前方に伸ばした文字列の中で、ルビ相当文字列“だっぽく”に一致する見出しを有する文字列が存在するか否かを判定する。
【００２７】
具体的には次の通りである（図３を参照）。
拡張読み照合部６は、テキスト解析部５からルビ相当文字列“だっぽく”を受けると、ルビ相当文字列と、直前の文字列との対応をとるため、処理位置を設定する（ステップＳＴ３１）。
即ち、拡張読み照合部６は、「脱北（だっぽく）した・・・」の部分が処理対象である場合、見出し現在位置を“北”、ルビ現在位置を“く”に設定する。
【００２８】
拡張読み照合部６は、上記のようにして処理位置を設定すると、文字列の存在を判定するに先立って、図８に示すように、該当見出し、辞書読み及び該当読みの全ての長さが０（ＮＵＬＬ）の部分一致データを部分一致中間リストに追加する（ステップＳＴ３２）。
次に、拡張読み照合部６は、図８の部分一致中間リストが空であるか否かを判定する（ステップＳＴ３３）。この段階では、（ＮＵＬＬ）の部分一致データが存在するので、空ではないと判定する。
【００２９】
拡張読み照合部６は、部分一致中間リストが空ではないと判定すると、その部分一致中間リストから部分一致データを１つ選択し、その部分一致データを部分一致中間リスト中から削除する（ステップＳＴ３４）。
この段階では、（ＮＵＬＬ）の部分一致データのみが存在するので、（ＮＵＬＬ）の部分一致データを選択する。部分一致中間リスト中から（ＮＵＬＬ）の部分一致データを削除することにより、その部分一致中間リストは空になる。
【００３０】
次に、拡張読み照合部６は、見出し現在位置である“北”から前方に一致する単語辞書の見出しを検索する。
即ち、図２のステップＳＴ３において、形態素候補が形態素候補リストに追加されているので、形態素候補リストを参照して、文字列の最後が“北”である形態素候補を検索する（図７を参照）。
図２のステップＳＴ３では、［北、キタ］の形態素候補が形態素候補リストに追加されているので、前方に一致する単語辞書の見出しとして、［北、キタ］が検索される。
【００３１】
拡張読み照合部６は、上記のようにして、［北、キタ］を検索すると、その読み“キタ”がルビ現在位置である“く”から前方の部分文字列と一致するか否かを判定して、一致すれば、読みの一致範囲を拡張することができると判断する（ステップＳＴ３５）。
例えば、“北”の読み「キタ」と、前方の部分文字列の読み「ポク」を比較しても両者が一致しないので、読みの一致範囲を拡張することができないと判断する。
【００３２】
上記のようにして、読みの一致範囲を拡張することができないと判断する場合、以下の処理を実施して、読みの一致範囲を拡張することができるか否かを再度判定する。
即ち、拡張読み照合部６は、文字読み辞書４を参照して、“北”の読みを抽出する。
文字読み辞書４には、“北”の読みとして、「ホク」、「ハク」、「キタ」、「ニ」及び「ニゲル」が登録されているので、「ホク」、「ハク」、「キタ」、「ニ」及び「ニゲル」を抽出する。
【００３３】
拡張読み照合部６は、「ホク」、「ハク」、「キタ」、「ニ」、「ニゲル」の中に、ルビ相当文字列の読み“ダッポク”と部分一致する読みが存在しているか否かを判定する。
拡張読み照合部６は、これらの中には部分一致する読みが存在しないので、これらの読みを濁音化、半濁音化又は促音化して、ルビ相当文字列の読み“ダッポク”と部分一致する読みが存在か否かを判定する。
この例では、「ホク」を半濁音化して「ポク」にすると、ルビ相当文字列の読み“ダッポク”と部分一致することが判明する。
拡張読み照合部６は、読みを濁音化、半濁音化又は促音化することにより、ルビ相当文字列の読み“ダッポク”と部分一致することが判明した場合には、読みの一致範囲を拡張することができると判断する（ステップＳＴ３５）。
【００３４】
拡張読み照合部６は、読みの一致範囲を拡張することができると判断すると、該当見出しが“北”、辞書読みが“ホク”、該当読みが“ポク”の部分一致データの後方に、先に選択した（ＮＵＬＬ）の部分一致データを接続する。
ただし、（ＮＵＬＬ）の部分一致データは、該当見出し、辞書読み及び該当読みの全ての長さが０であるため、接続完了後の部分一致データの該当見出しは“北”、辞書読みは“ホク”、該当読みは“ポク”になる。
そして、拡張読み照合部６は、接続完了後の部分一致データの該当読み“ポク”が、ルビ相当文字列の読み“ダッポク”の全体と一致しているか否かを判定する（ステップＳＴ３６）。
この例では、半濁音化された部分の読み「ポク」が一致するだけであるため、全体とは一致していないと判断する。
【００３５】
拡張読み照合部６は、ルビ相当文字列の読み“ダッポク”の全体と一致していないと判断すると、図９に示すように、接続完了後の部分一致データ［北、ホク、ポク］を部分一致中間リストに追加し（ステップＳＴ３７）、ステップＳＴ３３の処理に移行する。
【００３６】
次に、拡張読み照合部６は、ステップＳＴ３３の処理に戻ると、前回と同様に、部分一致中間リストが空であるか否かを判定する（ステップＳＴ３３）。この段階では、部分一致データ［北、ホク、ポク］が存在するので、空ではないと判定する。
【００３７】
拡張読み照合部６は、部分一致中間リストが空ではないと判定すると、その部分一致中間リストから部分一致データ［北、ホク、ポク］を１つ選択し、その部分一致データ［北、ホク、ポク］を部分一致中間リスト中から削除する（ステップＳＴ３４）。
部分一致中間リスト中から部分一致データ［北、ホク、ポク］を削除することにより、その部分一致中間リストは空になる。
【００３８】
次に、拡張読み照合部６は、見出し現在位置である“脱”から前方に一致する単語辞書の見出しを検索する。
即ち、図２のステップＳＴ３において、形態素候補が形態素候補リストに追加されているので、形態素候補リストを参照して、文字列の最後が“脱”である形態素候補を検索する（図７を参照）。
図２のステップＳＴ３では、［脱、ダツ］の形態素候補が形態素候補リストに追加されているので、前方に一致する単語辞書の見出しとして、［脱、ダツ］が検索される。
【００３９】
拡張読み照合部６は、上記のようにして、［脱、ダツ］を検索すると、その読み“ダツ”がルビ現在位置である“つ”から前方の部分文字列と一致するか否かを判定して、一致すれば、読みの一致範囲を拡張することができると判断する（ステップＳＴ３５）。
例えば、“脱”の読み「ダツ」と、前方の部分文字列の読み「ダッ」を比較しても両者が一致しないので、読みの一致範囲を拡張することができないと判断する。
【００４０】
上記のようにして、読みの一致範囲を拡張することができないと判断する場合、以下の処理を実施して、読みの一致範囲を拡張することができるか否かを再度判定する。
即ち、拡張読み照合部６は、文字読み辞書４を参照して、“脱”の読みを抽出する。
文字読み辞書４には、“脱”の読みとして、「ダツ」、「タイ」、「タツ」、「ヌ」、「ヌグ」、「ヌゲル」及び「ヌケル」が登録されているので、「ダツ」、「タイ」、「タツ」、「ヌ」、「ヌグ」、「ヌゲル」及び「ヌケル」を抽出する。
【００４１】
拡張読み照合部６は、「ダツ」、「タイ」、「タツ」、「ヌ」、「ヌグ」、「ヌゲル」、「ヌケル」の中に、ルビ相当文字列の読み“ダッポク”と部分一致する読みが存在しているか否かを判定する。
拡張読み照合部６は、これらの中には部分一致する読みが存在しないので、これらの読みを濁音化、半濁音化又は促音化して、ルビ相当文字列の読み“ダッポク”と部分一致する読みが存在か否かを判定する。
この例では、「ダツ」を促音化して「ダッ」にすると、ルビ相当文字列の読み“ダッポク”と部分一致することが判明する。
拡張読み照合部６は、読みを濁音化、半濁音化又は促音化することにより、ルビ相当文字列の読み“ダッポク”と部分一致することが判明した場合には、読みの一致範囲を拡張することができると判断する（ステップＳＴ３５）。
【００４２】
拡張読み照合部６は、読みの一致範囲を拡張することができると判断すると、該当見出しが“脱”、辞書読みが“ダツ”、該当読みが“ダッ”の部分一致データの後方に、先に選択した部分一致データ、即ち、該当見出しが“北”、辞書読みが“ホク”、該当読みが“ポク”の部分一致データを接続する。
接続完了後の部分一致データの該当見出しは“脱北”、辞書読みは“ダツホク”、該当読みは“ダッホク”になる。
そして、拡張読み照合部６は、接続完了後の部分一致データの該当読み“ダッポク”が、ルビ相当文字列の読み“ダッポク”の全体と一致しているか否かを判定する（ステップＳＴ３６）。
この例では、両者の読みが一致していると判断する。
【００４３】
拡張読み照合部６は、ルビ相当文字列の読み“ダッポク”の全体と一致していると判断すると、図１０に示すように、見出しとルビの組として、“脱北”と“ダッポク”をルビリストに追加し（ステップＳＴ３８）、ステップＳＴ３３の処理に移行する。
ここでは、「ダツ」を促音化して「ダッ」にするものについて示したが、「タツ」を濁音化してから促音化して、「ダッ」にしてもよい。
この場合も、見出しとルビの組として、“脱北”と“ダッポク”をルビリストに追加することになる。
【００４４】
次に、拡張読み照合部６は、ステップＳＴ３３の処理に戻ると、前回と同様に、部分一致中間リストが空であるか否かを判定する（ステップＳＴ３３）。この段階では、部分一致データが存在していないので、空であると判定する。ステップＳＴ３４で、部分一致中間リスト中から部分一致データ［北、ホク、ポク］を削除したのち、ステップＳＴ３７の処理に移行していないので、部分一致データが存在していない。
【００４５】
拡張読み照合部６は、部分一致中間リストが空であると判定すると、図１０のルビリストから見出しとルビの組として、“脱北”と“ダッポク”を抽出する（ステップＳＴ３９）。
これにより、拡張読み照合部６は、ルビ相当文字列である“だっぽく”が、直前の文字列である“脱北”のルビであると判断する。
【００４６】
テキスト解析部５は、拡張読み照合部６が図３の処理を実施して、直前の文字列である“脱北”の見出しがルビ相当文字列である“だっぽく”と一致していると判断すると、形態素候補を生成して形態素候補リストに追加する（ステップＳＴ８）。
ここでは、見出しが「脱北（だっぽく）」、読みが「だっぽく」、品詞が「サ変名詞」、アクセントが「０型」であるルビ付の形態素候補が生成される。アクセントの与え方については後述する。
【００４７】
テキスト解析部５は、ルビ付の形態素候補を生成すると、形態素候補リストから、先に追加した“脱北”の部分文字列を見出しとする形態素候補、即ち、［脱、ダツ］の形態素候補と、［北、キタ］の形態素候補とを削除する（ステップＳＴ９）。
そして、テキスト解析部５は、現在の処理位置をルビ終了記号の文字に移し（ステップＳＴ１０）、さらに、ステップＳＴ４で、現在の処理位置をルビ終了記号の次の文字に移してから、ステップＳＴ１の処理に戻る。
【００４８】
テキスト解析部５及び拡張読み照合部６は、現在の処理位置が文末に移行するまで、ステップＳＴ１〜ＳＴ１０の処理を繰り返し実施することにより、［脱北（だっぽく）、ダッポク］、［した、シタ］、［男、オトコ］、［故郷（ふるさと）、フルサト］の形態素候補が生成される（図７を参照）。
ただし、ルビ相当文字列である“ふるさと”は、その直前の文字列“故郷”のルビであると判断されるので、“故郷”の部分文字列を見出しとする形態素候補、即ち、［郷、サト］、［郷、フルサト］、［故郷、コキョー］の形態素候補は削除される。
また、［故郷（ふるさと）、フルサト］のルビ付の形態素候補の他に、［郷（ふるさと）、フルサト］もルビ付の形態素候補として生成されるが、以降の処理の簡素化を図るため、文字長が長い［故郷（ふるさと）、フルサト］の形態素候補が残されて、［郷（ふるさと）、フルサト］の形態素候補が削除される。
【００４９】
テキスト解析部５は、現在の処理位置が文末に移行すると、各単語に接続可能な活用語尾や、付属語を接続した形態素候補を生成して、最適な形態素列を選択する（ステップＳＴ１１）。最適な形態素列は、例えば、公知技術であるコスト最小法を実施することにより選択することができる（図６の上から３行目の文字列を参照）。
また、テキスト解析部５は、最適な形態素列を選択すると、発声の単位であるアクセント句、読み、アクセントの位置を決定するとともに、文構造などの情報を生成する。
【００５０】
韻律情報生成部７は、テキスト解析部５がアクセント句や読み等を決定すると、言語的に得られる韻律情報（Ｆ０と各音素の継続時間長）を生成する（ステップＳＴ１２）。
即ち、韻律情報生成部７は、テキスト解析部５の解析結果として、［脱北（だっぽく）、ダッポク］や［故郷（ふるさと）、フルサト］などのルビ付の形態素候補が形態素列として選択されるので、テキストからルビの直前の文字列“脱北”、“故郷”を除外した読みに対する韻律情報を生成する。
規則合成部８は、韻律情報生成部７が韻律情報を生成すると、その韻律情報にしたがって合成音を生成する。
【００５１】
ここで、テキスト解析部５は、形態素候補の品詞やアクセントを以下の順番に適用し、最初に適合したものを採用するものとする。
（１）単語辞書３に該当する単語があれば、その単語のアクセントを与える。
（２）濁音化、半濁音化や促音化を実施した単語には、濁音化、半濁音化や促音化を実施する前の単語のアクセントを与える
（３）仮名見出しで一致する単語のアクセントを与える
（４）（１）から（３）に一致しない場合にはデフォルトのアクセント（例えば、平板のアクセント）を与える
例えば、［故郷、フルサト］の場合、（１）と（２）には該当しないが、図４の単語辞書３に［ふるさと、フルサト］が登録されているので、（３）に該当し、“故郷”の読みが“フル'サト”になり、品詞が“普通名詞”になる。
また、［脱北、ダッポク］の場合、（１）と（２）と（３）に該当しないので、デフォルトのアクセントである「０型」のアクセントになり、品詞が“サ変名詞”になる。
【００５２】
以上で明らかなように、この実施の形態１によれば、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列の読みを変形して、そのルビ相当文字列の読みとの一致判定を行うように構成したので、解析用辞書２に登録されていない読みにも対応して不要な読み上げを回避することができるとともに、テキストの作成者の意図しない過剰なルビの取扱いを防止することができる効果を奏する。
【００５３】
また、この実施の形態１によれば、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列の読みを濁音化又は半濁音化して、ルビ相当文字列の読みとの一致判定を行うように構成したので、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合でも、ルビ相当文字列をルビとして取り扱うことができる効果を奏する。
【００５４】
また、この実施の形態１によれば、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、直前の文字列を促音化して、ルビ相当文字列の読みとの一致判定を行うように構成したので、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合でも、ルビ相当文字列をルビとして取り扱うことができる効果を奏する。
【００５５】
さらに、この実施の形態１によれば、読みの一致判定を実施して、読みが一致する直前の文字列を複数検出すると、複数の直前の文字列の中から最長の文字列を選択するように構成したので、例えば、最適な形態素列を選択する際の処理の簡素化を図ることができる効果を奏する。
【００５６】
また、この実施の形態１によれば、変形後の直前の文字列の読みがルビ相当文字列の読みと一致する場合、ルビ相当文字列のアクセントとして、変形前の直前の文字列のアクセントを使用するように構成したので、直前の文字列の読みを変形しても、適正なアクセントを与えることができる効果を奏する。
【００５７】
なお、この実施の形態１では、ルビ開始記号が“（”、ルビ終了記号が“）”であるものについて示したが、ルビ区間を明確に示すことが可能な文字コードであれば、これに限るものでないことは言うまでもない。
また、この実施の形態１では、括弧に囲まれた部分の文字列が平仮名であれば、ルビ相当文字列であると判断するものについて示したが、これに限るものではなく、例えば、括弧に囲まれた部分の文字列がカタカナや、アルファベットによるローマ字表記であれば、ルビ相当文字列であると判断するようにしてもよい。
【００５８】
実施の形態２．
上記実施の形態１では、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合、拡張読み照合部６が直前の文字列の読みを濁音化、半濁音化又は促音化するものについて示したが、拡張読み照合部６が一部の読みの不一致を許容して、ルビ相当文字列の読みと直前の文字列の読みとの一致判定を行うようにしてもよい。
具体的には次の通りである。
【００５９】
図１２は文字読み辞書４に登録されている文字の一例を示す説明図である。
ここでは、読みの中で１音節分の読みが異なる場合や、冗長な読みがある場合でも、一致を認定する方法について説明する。
例えば、図１１に示すようなテキスト「ペンション舞留優夢（ぶるゆむ）へ是非お越しください。」が入力された場合、上記実施の形態１と同様にして、テキストからルビ相当文字列として“ぶるゆむ”が抽出される。
【００６０】
拡張読み照合部６は、図１２の文字読み辞書４を参照して、「ペンション舞留優夢」の文字列の後方部分から、読みが“ぶるゆむ”と一致する部分の抽出を試みて、部分一致データ［夢、ム、ム］と部分一致データ［夢、ユメ、ユム］を生成する（図１３を参照）。
ここで、部分一致データ［夢、ム、ム］は、読みがルビ相当文字列の“む”と完全に一致しているが、部分一致データ［夢、ユメ、ユム］は、読みがルビ相当文字列の“ゆむ”と１文字異なっている。
【００６１】
次に、拡張読み照合部６は、「優」の読み“ユウ”又は“ウ”を部分一致データの読みに接続する。
即ち、「優」の読み“ユウ”を部分一致データ［夢、ム、ム］に接続して、部分一致データ［優夢、ユウム、ユム］を生成し、「優」の読み“ウ”を部分一致データ［夢、ム、ム］に接続して、部分一致データ［優夢、ウム、ユム］を生成する。
ただし、部分一致データ［夢、ユメ、ユム］は、既に１文字異なっており、「優」の読み“ユウ”又は“ウ”を接続すると、文字の相違数が許容範囲の１文字を超えてしまうので、「優」の読み“ユウ”又は“ウ”を接続することができない。
なお、部分一致データ［夢、ム、ム］と部分一致データ［夢、ユメ、ユム］は、上記実施の形態１と同様に、部分一致中間リスト中から削除される。
【００６２】
次に、拡張読み照合部６は、「留」の読み“ル”を部分一致データの読みに接続する。
即ち、「留」の読み“ル”を部分一致データ［優夢、ユウム、ユム］に接続して、部分一致データ［留優夢、ルユウム、ルユム］を生成し、「留」の読み“ル”を部分一致データ［優夢、ウム、ユム］に接続して、部分一致データ［留優夢、ルウム、ルユム］を生成する。
「留」の読み“ル”を部分一致データ［優夢、ユウム、ユム］や部分一致データ［優夢、ウム、ユム］に接続しても、文字の相違数が許容範囲の１文字であるため、「留」の読み“ル”を接続することができる。
なお、部分一致データ［優夢、ユウム、ユム］と部分一致データ［優夢、ウム、ユム］は、上記実施の形態１と同様に、部分一致中間リスト中から削除される。
【００６３】
次に、拡張読み照合部６は、「舞」の読み“ブ”を部分一致データの読みに接続する。
即ち、「舞」の読み“ブ”を部分一致データ［留優夢、ルユウム、ルユム］に接続して、部分一致データ［舞留優夢、ブルユウム、ブルユム］を生成し、「舞」の読み“ブ”を部分一致データ［留優夢、ルウム、ルユム］に接続して、部分一致データ［舞留優夢、ブルウム、ブルユム］を生成する。
「舞」の読み“ブ”を部分一致データ［留優夢、ルユウム、ルユム］や部分一致データ［留優夢、ルウム、ルユム］に接続しても、文字の相違数が許容範囲の１文字であるため、「舞」の読み“ブ”を接続することができる。
なお、部分一致データ［留優夢、ルユウム、ルユム］と部分一致データ［留優夢、ルウム、ルユム］は、上記実施の形態１と同様に、部分一致中間リスト中から削除される。
【００６４】
拡張読み照合部６は、上記のようにして、部分一致データ［舞留優夢、ブルユウム、ブルユム］と、部分一致データ［舞留優夢、ブルウム、ブルユム］を生成すると、それらの部分一致データの該当読みが、ルビ相当文字列“ぶるゆむ”と一致するので、ルビ相当文字列である“ぶるゆむ”が、直前の文字列である“舞留優夢”のルビであると判断する。
以下の処理は、上記実施の形態１と同様であるため説明を省略する。
【００６５】
以上で明らかなように、この実施の形態２によれば、拡張読み照合部６が一部の読みの不一致を許容して、ルビ相当文字列の読みと直前の文字列の読みとの一致判定を行うように構成したので、ルビ相当文字列の読みと直前の文字列の読みが一致しない場合でも、ルビ相当文字列をルビとして取り扱うことができる効果を奏する。
【００６６】
実施の形態３．
上記実施の形態１，２では、直前の文字列の読みを変形し、変形後の読みがルビ相当文字列の読みと一致すれば、ルビ相当文字列をルビとして取り扱うものについて示したが、ルビ相当文字列と一致する固有名詞が解析用辞書２に登録されていれば、ルビ相当文字列をルビとして取り扱わないようにしてもよい。
【００６７】
即ち、拡張読み照合部６がルビ相当文字列を辞書引きして、ルビ相当文字列が例えば企業名や地名などの固有名詞と一致する場合、ルビ相当文字列がルビではなく、直前の文字列の補足説明等である可能性が高いので、ルビ相当文字列をルビとして取り扱わないようにする。
即ち、テキスト解析部５から、直前の文字列の形態素と、ルビ相当文字列の形態素が渡ってくるので、韻律情報生成部７は、直前の文字列とルビ相当文字列を含むテキストの韻律情報を生成する。
【００６８】
以上で明らかなように、この実施の形態３によれば、直前の文字列の読みがルビ相当文字列の読みと一致しても、ルビ相当文字列と一致する固有名詞が解析用辞書２に登録されていれば、ルビ相当文字列をルビとして取り扱わないように構成したので、テキストの作成者の意図しない過剰なルビの取扱いを防止することができる効果を奏する。
【００６９】
実施の形態４．
上記実施の形態１〜３では、特に言及していないが、拡張読み照合部６が直前の文字列の読みを変形し、変形後の読みがルビ相当文字列の読みと一致すると判断すると、変形後の読みを単語辞書３に登録するようにしてもよい。
これにより、以後、同一の見出し文字列が文中に含まれている場合、単語辞書３を参照することにより、見出しに対応するルビの指定読みを認識して、合成音を生成することができるようになる。
【図面の簡単な説明】
【００７０】
【図１】この発明の実施の形態１による音声合成装置を示す構成図である。
【図２】この発明の実施の形態１による音声合成装置の処理内容を示すフローチャートである。
【図３】拡張読み照合部の処理内容を示すフローチャートである。
【図４】単語辞書に登録されている単語の一例を示す説明図である。
【図５】文字読み辞書に登録されている文字の一例を示す説明図である。
【図６】テキストから合成音を生成する過程を示す説明図である。
【図７】テキストから生成される形態素候補を示す説明図である。
【図８】部分一致中間リストを示す説明図である。
【図９】部分一致中間リストを示す説明図である。
【図１０】ルビリストを示す説明図である。
【図１１】入力するテキストを示す説明図である。
【図１２】文字読み辞書に登録されている文字の一例を示す説明図である。
【図１３】部分一致中間リストを示す説明図である。
【符号の説明】
【００７１】
１  制御部、２  解析用辞書、３  単語辞書、４  文字読み辞書、５  テキスト解析部（文字列抽出手段）、６  拡張読み照合部（照合手段）、７  韻律情報生成部（合成音生成手段）、８  規則合成部（合成音生成手段）。
【図１】
2005309327.tif 000003
【図２】
2005309327.tif 000004
【図３】
2005309327.tif 000005
【図４】
2005309327.tif 000006
【図５】
2005309327.tif 000007
【図６】
2005309327.tif 000008
【図７】
2005309327.tif 000009
【図８】
2005309327.tif 000010
【図９】
2005309327.tif 000011
【図１０】
2005309327.tif 000012
【図１１】
2005309327.tif 000013
【図１２】
2005309327.tif 000014
【図１３】
2005309327.tif 000015