(57)【要約】【課題】入力された文字列のうちの所定の文字列を他の文字列に変換して音声合成を行う際に変換に用いられる変換辞書を、音声合成に関する専門的知識等を有しないユーザであっても容易に編集できるようにする。【解決手段】音声合成の対象となるテキストＤ１はテキスト解析部１００２に入力される。テキスト解析部１００２のテキスト変換部１０２１は、テキスト変換辞書１０２３に格納された規則に規定されるパターンに合致する特定の文字列を入力テキストの中から検出する。そして、テキスト変換辞書１０２３に格納された規則に規定されるパターンに合致する文字列に変換する。そして、変換後のテキストに基づいて後段の装置によって音声合成が行われる。ユーザは、検出したい文字列のパターン、置換したい文字列のパターン等に関する指示をなすことで、テキスト変換辞書編集部１０２４がその指示に応じたテキスト変換辞書１０２３を編集する。【選択図】        図１
2005284182.tif 000002
【特許請求の範囲】
【請求項１】
特定のパターンに合致する文字列を他のパターンの文字列に変換するための規則を記憶する変換辞書と、
前記変換辞書に記憶される前記規則に基づき、入力される文字列の中から前記規則に規定されるパターンに合致する文字列を検出し、検出した文字列を前記規則に規定される他のパターンの文字列に置換した文字列を出力する変換手段と、
前記変換手段から出力される文字列に基づいて音声信号を合成する音声信号合成手段と、
前記変換辞書に記憶される前記規則を編集する編集手段と
を具備することを特徴とする音声合成装置。
【請求項２】
前記変換辞書に記憶される前記規則には、特定のパターンに合致する文字列を検出するための検出規則と、前記検出規則にしたがって検出された文字列を他のパターンの文字列に変換するための変換規則とが含まれており、
前記編集手段は、前記検出規則と、前記変換規則とを独立して編集する
ことを特徴とする請求項１に記載の音声合成装置。
【請求項３】
前記編集手段は、ユーザから入力される文字列パターンの構成に関する指示に基づいて前記規則を編集する
ことを特徴とする請求項１または２に記載の音声合成装置。
【請求項４】
前記編集手段は、文字列パターンを構成する要素の組み合わせと、要素の順序を指定する情報とを含む前記文字列パターンの構成に関する指示に基づいて、前記規則を編集する
ことを特徴とする請求項３に記載の音声合成装置。
【請求項５】
前記変換辞書には、前記文字列パターンを構成する要素が格納されており、
前記編集手段は、ユーザは前記変換辞書に格納される要素を含む前記文字列パターンの構成に関する指示を受けた場合、前記変換辞書に格納された前記要素を読み出して前記規則を編集する
ことを特徴とする請求項４に記載の音声合成装置。
【請求項６】
特定のパターンに合致する文字列を他のパターンの文字列に変換するための規則を編集して変換辞書に格納する編集ステップと、
前記変換辞書に記憶される変換辞書を用い、入力される文字列の中から前記規則に規定されるパターンに合致する文字列を検出し、検出した文字列を前記規則に規定される他のパターンの文字列に置換した文字列に変換する変換ステップと、
前記変換ステップにより変換された後の文字列に対応する音声を合成する音声合成ステップと
を具備することを特徴とする音声合成方法。
【請求項７】
コンピュータを、
特定のパターンに合致する文字列を他のパターンの文字列に変換するための規則を記憶する変換辞書に記憶される前記規則に基づき、入力される文字列の中から前記規則に規定されるパターンに合致する文字列を検出し、検出した文字列を前記規則に規定される他のパターンの文字列に置換した文字列を出力する変換手段、
前記変換手段から出力される文字列に基づいて音声信号を合成する音声信号合成手段、
前記変換辞書に記憶される前記規則を編集する編集手段
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト（文字列データ）に基づいて音声を合成する音声合成装置、音声合成方法およびプログラムに関するものである。
【背景技術】
【０００２】
テキスト音声合成技術は、任意のテキストから人工的にテキストに対応した音声信号を作り出す技術である。通常、テキスト音声合成技術を利用した音声合成システムは、テキスト解析部、制御パラメータ生成部、音声信号生成部といった３つの要素を備えている。
【０００３】
かかる構成の音声合成システムに入力されたテキストは、テキスト解析部において形態素解析や構文解析などの言語処理が施され、音韻記号列やアクセント句やアクセント位置や品詞などの言語情報が生成される。
【０００４】
次に、テキスト解析部において生成された言語情報に対し、制御パラメータ生成部がアクセントやイントネーション処理などを施し、ピッチパターンや音韻継続長などの音韻韻律情報が生成される。そして、制御パラメータ生成部によって生成された音韻韻律情報に対し、音声信号生成部が信号処理を施し、その結果音声信号が合成される。
【０００５】
従来より、上記のようなテキスト音声合成技術は、カーナビゲーションシステムなどにおいて利用されており、また近年ではゲームやメールの読上げなどにテキスト音声合成技術が適用されつつあり、今後はより多様な任意のテキストを音声出力することができるテキスト音声合成システムが求められる。
【０００６】
例えば、このようなテキスト音声合成システムの普及に伴い、ある特定の社会でのみ利用される決して一般的ではない表記等に対しても正しく読上げたいとの要求に応じることができるシステムが求められる。このようなシステムの実現には、特定の表記に対してもテキスト音声合成システムが言語情報を与えることが必要となり、テキスト解析部の機能を充実させることが求められる。
【０００７】
上記のような特定の表記に対する音声合成を可能とする技術としては、予め与えられた非常に複雑な読み付け規則を用い、テキスト中の数詞や記号などの文脈によって読み方が変化する文字列に読みを与える装置が提案されている（例えば、特許文献１参照、非特許文献１参照）。
【０００８】
また、利用者が変更することが可能な単語と読みデータや品詞などとの対応表を格納したユーザ定義語辞書を用い、入力されたテキスト中に出現する特定の文字列を音声の生成に必要な情報に変換し、音声として出力する技術も提案されている（例えば、特許文献２参照、特許文献３参照）。
【０００９】
また、利用者が変更することが可能な単語列間の対応表を用い、入力されたテキスト中に出現する特定の文字列を他の文字列に変換し、その変換後のテキストを音声として出力する技術も提案されている（例えば、特許文献４参照）。
【００１０】
【特許文献１】特開平４−２５３０９８号公報
【特許文献２】特開平７−１２１５３７号公報
【特許文献３】特開２０００−２５９６１６号公報
【特許文献４】特開平５−１６５４８６号公報
【非特許文献１】宮崎正弘  著  「日本文音声変換のための数詞読み規則」１９８４年出版  情報処理学会論文誌  Ｖｏｌ．２５  Ｎｏ．６
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、予め与えられた非常に複雑な読み付け規則を用いる技術（特許文献１や非特許文献１に開示された技術）では、その読み付け規則を利用者が変更することは出来ず、新たな表記等に対応することができないという問題がある。
【００１２】
また、利用者が変更することが可能な単語と読みデータや品詞などとの対応表を格納したユーザ定義語辞書を用いる技術（特許文献２や特許文献３に開示された技術）では、ユーザ定義語辞書への登録を行う為には、読みデータなどの表音記号や品詞や活用などの専門的な知識が不可欠であり、一般的なユーザにとって登録作業が困難であるという問題がある。
【００１３】
また、利用者が変更することが可能な単語列間の対応表を用いる技術（特許文献４に開示された技術）では、利用者は変換対象となる単語と変換後の単語との一対一の組み合わせを対応表として登録しなければならず、登録数が多くなるとその登録作業は大きな負担となる。
【００１４】
本発明は、上記に鑑みてなされたものであって、入力された文字列のうちの所定の文字列を他の文字列に変換して音声合成を行う際に変換に用いられる変換辞書を、音声合成に関する専門的知識等を有しないユーザであっても容易に編集することができる音声合成装置、音声合成方法およびログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するために、本発明の一態様である音声合成装置は、特定のパターンに合致する文字列を他のパターンの文字列に変換するための規則を記憶する変換辞書と、前記変換辞書に記憶される前記規則に基づき、入力される文字列の中から前記規則に規定されるパターンに合致する文字列を検出し、検出した文字列を前記規則に規定される他のパターンの文字列に置換した文字列を出力する変換手段と、前記変換手段から出力される文字列に基づいて音声信号を合成する音声信号合成手段と、前記変換辞書に記憶される前記規則を編集する編集手段とを具備する。
【００１６】
また、本発明の別の態様である音声合成方法は、特定のパターンに合致する文字列を他のパターンの文字列に変換するための規則を編集して変換辞書に格納する編集ステップと、前記変換辞書に記憶される変換辞書を用い、入力される文字列の中から前記規則に規定されるパターンに合致する文字列を検出し、検出した文字列を前記規則に規定される他のパターンの文字列に置換した文字列に変換する変換ステップと、前記変換ステップにより変換された後の文字列に対応する音声を合成する音声合成ステップとを具備する。
【００１７】
また、本発明の別の態様であるプログラムは、コンピュータを、特定のパターンに合致する文字列を他のパターンの文字列に変換するための規則を記憶する変換辞書に記憶される前記規則に基づき、入力される文字列の中から前記規則に規定されるパターンに合致する文字列を検出し、検出した文字列を前記規則に規定される他のパターンの文字列に置換した文字列を出力する変換手段、前記変換手段から出力される文字列に基づいて音声信号を合成する音声信号合成手段、前記変換辞書に記憶される前記規則を編集する編集手段として機能させる。
【発明の効果】
【００１８】
本発明によれば、所望の文字列を検出し、検出した文字列を所望の他の文字列に変換するために変換辞書には特定のパターンを規定する規則が格納され、かつ当該変換辞書に格納された規則を編集する編集手段を備えているので、入力された文字列のうちの所定の文字列を他の文字列に変換して音声合成を行う際に変換に用いられる変換辞書を、音声合成に関する専門的知識等を有しないユーザであっても容易に編集することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、この発明にかかる音声合成装置、音声合成方法およびプログラムの好適な実施の形態を詳細に説明する。
【００２０】
（テキスト音声合成装置の構成）
図１は、本発明の一実施の形態にかかるテキスト音声合成装置の構成を示すブロック図である。同図に示すように、このテキスト音声合成装置１０００は、テキスト入力部１００１と、テキスト解析部１００２と、制御パラメータ生成部１００３と、音声信号生成部１００４と、音声信号出力部１００５と、テキスト変換辞書編集部１０２４とを備える。
【００２１】
テキスト入力部１００１は、利用者等から入力される音声に変換すべきテキストＤ１を入力するインターフェースであり、入力されたテキストＤ１をテキストデータＤ２に変換する。
【００２２】
ここで、テキストＤ１は、利用者が読み書きできる自然言語によって表現された文字列であり、例えばＪＩＳ漢字コードやＡＳＣＩＩコードなどで規定された文字コードで構成される。テキストＤ１は例えばキーボードによる入力あるいはファイルの読み込み等によって入力される。テキストデータＤ２は、少なくとも１つ以上の文字列データからなり、利用者が読み書きできる自然言語によって表現された文字列を機械可読形式に符号化したデータの並びである。また、文字列データは、少なくとも１つ以上の文字データの並びであり、文字データは利用者が読み書きできる自然言語によって表現された文字列に含まれる各文字を機械可読形式にコード化したデータである。
【００２３】
テキスト解析部１００２は、テキスト変換部１０２１と、言語解析部１０２２と、テキスト変換辞書１０２３とを有しており、入力されたテキストデータＤ２から音声の生成に必要な言語情報Ｄ４を生成する。ここで、言語情報Ｄ４は、音韻記号列やアクセント位置や品詞や係り受けなどの言語処理によって導出される情報であり、音韻韻律情報の生成に必要なパラメータである。
【００２４】
テキスト変換部１０２１は、テキスト変換辞書１０２３に格納された規則を用いて、入力されたテキストデータＤ２から特定の文字列データを検出し、検出した特定の文字列データを当該文字列データとは異なる文字列データに変換する処理を行い、変換後のテキストデータＤ３を出力する。
【００２５】
言語解析部１０２２は、テキスト変換部１０２１により変換等されたテキストデータＤ３を解析し、言語情報Ｄ４を生成する。また、言語解析部１０２２による解析としては、一般に知られた形態素解析や構文解析などの既存技術を利用することができるが、かかる技術については周知であるため、その詳細な説明を割愛する。なお、言語解析に必要であれば、解析に利用するデータベースを設けるようにしてもよい。
【００２６】
テキスト変換辞書１０２３は、テキスト変換部１０２１によって利用される規則やテーブル等を格納したデータベースであり、かかるテキスト変換辞書１０２３に格納されたデータは、テキスト変換辞書編集部１０２４によって編集することができるようになっている。
【００２７】
テキスト変換辞書編集部１０２４は、テキスト変換辞書１０２３に格納された規則やテーブルを編集するためのインターフェースであり、ユーザの指示に基づいてテキスト変換辞書１０２３に格納された上記規則や参照テーブル等を編集する。
【００２８】
制御パラメータ生成部１００３は、テキスト解析部１００２から供給される変換後のテキストデータＤ３に対応する言語情報Ｄ４に基づき、かかる言語情報Ｄ４に対応するピッチパターンや音韻継続長などを含む音韻韻律情報Ｄ５を生成する。制御パラメータ生成部１００３による制御パラメータ生成処理としては、ピッチパターンを表現したコードブック選択によるイントネーション処理などの一般に知られた既存技術を利用することができるが、かかる技術については周知であるため、その詳細な説明を省略する。なお、当該制御パラメータ生成処理において、必要であれば、処理に利用するデータベース等を設けるようにしてもよい。
【００２９】
音声信号生成部１００４は、制御パラメータ生成部１００３から供給される音韻韻律情報Ｄ５に基づいて音声信号Ｄ６を生成する。音声信号出力部１００５は、音声信号Ｄ６をＤＡ変換して音声Ｄ７として出力する。これによりテキストＤ３に対応する音声が出力される、つまり入力されたテキストＤ１に忠実に対応する読み上げではなく、所定の変換がなされたテキストＤ３に対応する読み上げがなされるのである。
【００３０】
本実施の形態では、上記のように読み上げられる音声は、単に入力された音声をそのまま読み上げたものではなく、入力されたテキストＤ１中の特定の文字列については、これと異なる文字列に置き換えられて読み上げられるようになっている。例えば、テキストＤ１として「１９７５年１１月２０日（S50.11.20）です」が入力された場合、括弧内の部分について「エスゴーゼロテンイチイチテンニーゼロ」と読み上げるのではなく、一般的な読み方である「ショウワゴジュウネンジュウイチガツニジュウニチ」と読み上げられるようになっている。
【００３１】
（テキスト変換辞書の内容）
本実施の形態では、テキスト解析部１００２のテキスト変換部１０２１が、テキスト変換辞書１０２３を参照することで、上述したような入力されるテキストＤ１中の特定の文字列データを、一般的な読み方となる文字列に変換する処理を行うことで、上記のような読み上げを実現している。以下、このような変換を実現するために用いられるテキスト変換辞書１０２３に格納されるデータ等について説明する。
【００３２】
上述したようにテキスト変換辞書１０２３は、テキスト変換部１０２１が利用する規則や参照テーブルを格納したデータベースであり、図２〜図１７に本実施の形態におけるテキスト変換辞書１０２３に格納される規則やテーブル等の内容の一例を示す。
【００３３】
まず、図２は、テキスト変換辞書１０２３に格納される規則対テーブルの構成例を示す。同図に示すように、規則対テーブルは、検出規則と変換規則の対からなる規則対を格納するようになっている。各規則対には、規則対グループＩＤ、規則対ＩＤ、識別子、検出規則ＩＤ、変換規則ＩＤが付与されている。
【００３４】
検出規則とは、入力されるテキストＤ１の中から、特定の変換対象となる文字列データを検出するためのパターンを表現したものでる。すなわち、検出規則に示されるパターンに合致する文字列がテキストＤ１に含まれている場合、その合致する文字列が検出される。変換規則は、前記検出規則によって検出された文字列を、前記検出用のパターンとは異なるパターンの文字列に変換するための規則を表現したものである。
【００３５】
規則対グループＩＤは、少なくとも１つ以上の規則対の集合に割り振られたＩＤである。この値の小さい規則対の集合に属する規則対は、他の規則対の集合に属する規則対より先んじてテキスト変換部１０２１において検査される。したがって、一般的なテキスト中の出現頻度が高いパターンを検出規則として規定している規則対を含む規則対グループのＩＤを小さくすることが好ましい。一般的にパターン検出に要する時間が短縮化されることになるからである。
【００３６】
規則対ＩＤは、同一の規則対グループＩＤをもつ規則対の集合に属する各規則対にユニークに割り振られたＩＤである。この値の小さい規則対は、同一の集合に属する他の規則対より先んじてテキスト変換部１０２１において検査される。したがって、一般的なテキスト中の出現頻度が高いパターンを検出規則として規定している規則対につては、同一グループに属する他の規則対よりもＩＤを小さくすることが好ましい。
【００３７】
識別子は、各規則対に利用者や製作者等が付与したタグであり、利用者等がそれらを容易に他の規則対から識別できるようにするためのタグである。例えば、図示の例では、日付（西暦）や、日付（年号）が識別子として与えられており、これを参照したユーザが当該規則対がどのような内容の規則に関するものであるかを認識できるようになっている。なお、各規則対を構成する検出規則および変換規則にも同一の識別子が付与される（図３、図４参照）。
【００３８】
検出規則ＩＤは、後述する図３に示される検出規則テーブルに含まれる複数の検出規則の中からその規則対の検出規則を特定するためのＩＤである。変換規則ＩＤは、後述する図４に示された変換規則テーブルに含まれる複数の変換規則の中からその規則対の変換規則を特定するためのＩＤである。
【００３９】
以上が規則対テーブルに格納される情報であり、図２に例示するような規則対テーブルが格納されている場合、規則対グループＩＤが０である規則対の集合に属する規則対「日付（西暦）」と「日付（年号）」は、規則対グループＩＤが１である規則対の集合に属する規則対「分数」よりもテキスト変換部１０２１において優先して検出される。また、規則対グループＩＤが０である規則対の集合に属する２つの規則対「日付（西暦）」と「日付（年号）」では、規則対ＩＤが小さい規則対「日付（西暦）」が優先して検出される。また、規則対「日付（西暦）」は、検出規則ＩＤが０である検出規則と変換規則ＩＤが０である変換規則から構成されることを示している。
【００４０】
次に、図３は、テキスト変換辞書１０２３の１つの要素である検出規則テーブルの構成の一例を示したものである。同図に示すように、検出規則テーブルは、文字列フォーマットの集合のリストを含む複数の検出規則を格納するようになっている。各検出規則は、文字列フォーマットＩＤの集合のリスト、検出規則ＩＤ、識別子といった情報から構成されている。
【００４１】
ここで、検出規則とは、テキスト中から特定のパターンに合致する文字列を検出するための規則であり、当該特定のパターンを規定するための情報として、文字列フォーマットの集合のリストを含んでいる。
【００４２】
すなわち、検出規則に規定される検出用パターンは、「文字列フォーマットの集合」というパターンの１要素の組み合わせ、および各要素（文字列フォーマットの集合）の順序を示すリストによって規定されており、このような検出規則により規定されるパターンがどのような要素（文字列フォーマットの集合）をどのような順序で配置したものであるかを示す情報が文字列フォーマットの集合のリストである。
【００４３】
上述した検出パターンの１つの要素となる文字列フォーマットの集合は、１つの文字列フォーマットまたは複数の文字列フォーマットの和集合で表現されるものであり、各文字列フォーマットは、１つの文字データ集合または複数の文字データ集合の和集合からなるものである。つまり、文字列フォーマットは、それを構成する１要素である文字データ集合の組み合わせ、および各要素（文字データ集合）の順序によって規定される。従って、検出規則によって規定される検出用パターンは、そのパターンを構成する大要素（文字列フォーマット）に属する小要素（文字データ集合）といった要素によって規定される。詳細は後述するが、文字データ集合は、１つの文字または複数の文字の和集合で表現されるものである。
【００４４】
文字列フォーマットＩＤは、各文字データ集合の集合によって規定される文字列フォーマットに対してユニークに割り振られたＩＤであり、後述する図５に示される文字列フォーマットテーブルに格納される複数の文字列フォーマットの中から各検出規則に含まれる文字列フォーマットを特定するＩＤである。
【００４５】
図３に例示するような検出規則テーブルが格納されている場合、検出規則ＩＤが０である検出規則「日付（西暦）」は、文字列フォーマットＩＤが「１」の文字列フォーマットに含まれる１または複数の文字データ集合の何れかの文字と合致する文字（列）から始まり、文字列フォーマットＩＤが「０」の文字列フォーマットに含まれる１または複数の文字データ集合の何れかの文字と合致する文字（列）が続き、文字列フォーマットＩＤが「２」または「３」の文字列フォーマットに含まれる１または複数の文字データ集合の何れかの文字と合致する文字（列）が続き、文字列フォーマットＩＤが「０」の文字列フォーマットに含まれる文字データ集合の何れかの文字と合致する文字（列）が続き、文字列フォーマットＩＤが「４」、「５」または「６」の文字列フォーマットに含まれる文字データ集合の何れかの文字と合致する文字（列）で終わるといったパターンの文字列を検出するためのものである。
【００４６】
図４は、テキスト変換辞書１０２３の１つの要素である変換規則テーブルの構成の一例を示したものである。同図に示すように、変換規則テーブルは、上述した検出規則によって検出された文字列データを、他のパターンの文字列データに変換する際に、当該他のパターンに合致する文字列データの導出手続きを表現した変換規則を格納するようになっている。各変換規則は、文字列データの格納先を表現した文字列データソースのリストによって表現され、１つの変換規則は当該リストと、変換規則ＩＤと、識別子とから構成される。
【００４７】
本実施の形態では、文字列データソース、つまり文字列データの取得先として、各変換規則に直接格納されている文字列データ（Text）と、検出規則に合致した文字列データ（In）と、後述する図７に示された変換文字列データハッシュテーブルに格納された文字列データ（Table）との３種類の取得先を指定できるようになっている。
【００４８】
各変換規則に格納されている文字列データは、指示子「Ｔｅｘｔ」の後に続く丸括弧（（））内で指定された文字列データであり、例えば変換規則ＩＤ「０」の文字列データソースリストの「１」に対応するText（年）の場合、「年」という文字列データを取得すべきことを示している。
【００４９】
また、検出規則に合致した文字列データは、指示子「Ｉｎ」の後に続く丸括弧内に記述されているインデックスの番号で指定された「文字列フォーマットの集合」の要素に合致する文字列データであって、現実に入力されたテキスト内の文字列データを取得すべきことを示している。より具体的には、当該変換規則と対になっている検出規則の「文字列フォーマットの集合のリスト」のインデックス番号に指定された「文字列フォーマットの集合」の要素に合致する文字列データを取得すべきことを示している。図示の例では、変換規則ＩＤ「０」の「Ｉｎ（０）」は、当該変換規則と対となっている検出規則ＩＤ「０」のインデックス番号「０」の文字列フォーマットの集合である「Ｓｔｒ（１）」に、検出規則ＩＤ「０」による検出の際に合致した文字列を取得すべきことを示しているのである。
【００５０】
また、変換文字列データハッシュテーブルに格納された文字列データは、指示子「Ｔａｂｌｅ」の後に続く丸括弧内の二つの引数によって指定される文字列データである。第一引数は、各変換文字列データハッシュテーブルを指定する識別子であり、第二引数は、第一引数に基づき選択された変換文字列データハッシュテーブルに引き渡すキーを示すものである。具体的には、当該キーとして、当該変換規則と対となっている検出規則の要素（Ｉｎ（０）など）に合致した文字列データを指定している。
【００５１】
図４に示す例において、変換規則ＩＤが「１」である変換規則「日付（年号）」の文字列データソースのリストの１要素であるインデックス「０」によって指定される文字列データソース「Ｔａｂｌｅ（年号、Ｉｎ（０））」は、変換文字列データハッシュテーブル「年号」からこの変換規則の対となる検出規則「日付（年号）」の「文字列フォーマットの集合のリスト」のインデックス「０」で指定される文字列フォーマットの集合に合致した入力テキスト内の文字列データをキーとして取得し、これを第一引数（年号）で特定される変換文字列データハッシュテーブルに与えることで取得できる文字列データを表している。
【００５２】
次に、図５は、テキスト変換辞書１０２３の１つの要素である文字列フォーマットテーブルの構成の一例を示したものである。同図に示すように、文字列フォーマットテーブルは、文字データ集合の集合のリストである文字列フォーマットを格納するようになっている。各文字列フォーマットは、文字データ集合ＩＤの集合のリストによって表現され、１つの文字列フォーマットは当該リストと、文字列フォーマットＩＤと、識別子とから構成される。
【００５３】
文字データ集合は、文字データの集合である。従って、文字列フォーマットは、そのリストの各要素である「文字データ集合の集合」の組み合わせと、各要素（文字データ集合の集合）の順序を規定することによって表現される。ここで、１つの要素である「文字データ集合の集合」は、１つの文字データ集合または複数の文字データ集合の和集合によって規定されるものであり、文字列フォーマットは、「文字データ集合の集合リスト」に掲げられた「文字データの集合」に属する何れかの文字データがリストの順序に従って並んでいる文字列データのパターンを規定したものとなる。
【００５４】
文字データ集合ＩＤは、各文字データ集合に対してユニークに割り振られたＩＤであり、後述する図６に示される文字データ集合テーブルに含まれる複数の文字データ集合の中から各文字列フォーマットに属する文字データ集合を特定するためのＩＤである。
【００５５】
識別子は、各文字列フォーマットにユーザ等が付与した、ユーザがそれらを容易に他の文字列フォーマットと識別できるようにするためのタグである。参照カウンタは、各文字列フォーマットが全ての検出規則から参照されている回数を示したものである。
【００５６】
図５に示す例では、文字列フォーマットＩＤが「２」である文字列フォーマット「月」は、文字データ集合ＩＤが「２」である文字データ集合のいずれかの要素と合致する文字データから始まり、文字データ集合ＩＤが「３」である文字データ集合のいずれかの要素と合致する文字データで終わるパターンの文字列データを検出するためのフォーマットを表現したものである。
【００５７】
また、図５に示す例では、文字列フォーマットＩＤが「２」である文字列フォーマット「月」は、図３で示された全ての検索規則を格納している検索規則テーブルにおいて、検出規則「日付（西暦）」のインデックス「２」の文字列フォーマットの集合と、検出規則「日付（年号）」のインデックス「３」の文字列フォーマットの集合とに含まれている。よって、文字列フォーマット「月」の参照カウンタは「２」となる。
【００５８】
図６は、テキスト変換辞書１０２３の１つの要素である文字データ集合テーブルの構成の一例を示したものである。同図に示すように、文字データ集合テーブルは、１文字を表現する文字データの集合である文字データ集合を格納するようになっており、各文字データ集合は、文字列データ（１文字の場合もある）として表現され、当該文字データと、文字データ集合ＩＤと、参照カウンタとから構成されている。
【００５９】
参照カウンタは、各文字データ集合が全ての文字列フォーマットから参照されている回数を示したものである。図６に示す例では、文字データ集合ＩＤが「５」である文字データ集合は、各要素である文字データ「０」、「１」、「２」を１つの文字列データ「０１２」として記憶している。また、図６に示す例では、文字データ集合ＩＤが「５」である文字データ集合は、図５で示された全ての文字列フォーマットを格納している文字列フォーマットテーブルにおいて、文字列フォーマットＩＤが「３」である文字列フォーマット「月」の「文字データ集合の集合のリスト」のインデックス「１」と、文字列フォーマットＩＤが「４」である文字列フォーマット「日」のインデックス「０」とで参照されている。よって、文字データ集合ＩＤが「５」である文字データ集合の参照カウンタは「２」となる。
【００６０】
次に、図７は、テキスト変換辞書１０２３の１つの要素である変換文字列データハッシュテーブル集合の構成の一例を示したものである。同図に示すように、変換文字列データハッシュテーブル集合は、変換文字列データハッシュテーブルを格納するようになっている。変換文字列データハッシュテーブル集合に格納される各変換文字列データハッシュテーブルには、識別子と、参照カウンタとが含まれている。
【００６１】
変換文字列ハッシュテーブルは、文字列データをキー（Key）とすることで、他の登録された文字列データを導出するハッシュテーブルであり、上記識別子および参照カウンタに加え、キーのリストと、導出する文字列データとが含まれている。
【００６２】
各変換文字列ハッシュテーブルで利用できるキーは、変換規則テーブル（図４参照）に登録されている全ての変換規則において、当該変換文字列ハッシュテーブルを文字列データソースとして指定する際に、第二引数によって指定されている文字列フォーマットの集合に属する文字列データのみである。上述したように文字列フォーマットの集合には、文字データ集合の集合が属しているので、キーとして利用できるのは第二引数として指定された文字列フォーマットの集合を展開して得られる全ての種類の文字列データである。
【００６３】
識別子は、各変換文字列ハッシュテーブルに利用者等が付与した、利用者等が各々の変換ハッシュテーブルを容易に弁別するためのタグである。参照カウンタは、各変換文字列ハッシュテーブルが全ての変換規則から参照されている回数を示したものである。
【００６４】
図７に示す例では、変換文字列ハッシュテーブル「年号」は、図４の変換規則テーブルにおいて、変換規則ＩＤ「１」の変換規則「日付（年号）」のインデックス「０」で指定された文字列データソースのみによって参照されており、参照カウンタは「１」となる。また、文字列データソースで指定されているキー（Ｋｅｙ）は、検出規則「日付（年号）」のインデックス「０」によって指定された文字列フォーマットの集合によって得られるすべての種類の文字列データである。
【００６５】
すなわち、図３の検出規則テーブルより、文字列フォーマットＩＤが「９」である文字列フォーマットに属する全ての文字列データである。また、図５に示す文字列フォーマットテーブルより、文字列フォーマットＩＤが「９」である文字列フォーマットは１つの文字データ集合からなり、文字データ集合ＩＤが「１０」である文字データ集合に属する全ての文字データの集合と等しい。よって、図６に示す文字列データ集合テーブルより、Ｋｅｙとして、「Ｈ」、「Ｓ」、「Ｔ」、「Ｍ」が登録されており、これらのキーのそれぞれに「平成」、「昭和」、「大正」、「明治」が対応付けられている。
【００６６】
（テキスト変換辞書編集部）
以上がテキスト変換辞書１０２３に格納される規則やテーブル等の内容である。次に、このようなテキスト変換辞書１０２３に格納される規則やテーブル等を編集する手段であるテキスト変換辞書編集部１０２４について説明する。
【００６７】
本実施の形態では、表音記号や品詞や活用などの専門的な知識を有しないユーザであっても容易に新たな変換内容の追加等の編集を行うことができるようになっている。具体的には、ユーザは上記のような専門的な情報を入力することなく、入力されるテキストの中から、どのようなパターンの文字列を検出し、どのようなパターンの文字列に置き換えるかといったテキストのパターン構成に関する指示をなせば、その指示にしたがってテキスト変換辞書編集部１０２４がテキスト変換辞書１０２３の編集を行うようになっている。このようなテキスト変換辞書編集部１０２４が行う処理について、編集を行う際にユーザ等に対してテキスト変換辞書編集部１０２４が表示させるＧＵＩ（Graphical User Interface）画面を参照しながら説明する。
【００６８】
図８は、ユーザがテキスト変換辞書１０２３の編集を行う際に当該テキスト音声合成装置１０００の表示画面に最初に表示される内容の一例を示す。同図に示すように、この表示画面には、規則対編集領域１００と、規則選択領域１０１と、テキストボックス１０２と、終了ボタン１０３とが表示されている。
【００６９】
規則対編集領域１００には、テキスト変換辞書１０２３に格納されている規則対テーブル（図２参照）に対応する情報が表示される。ユーザは、当該規則対編集領域１００に表示されているソフトボタン（新規作成や削除）や、各々の項目をマウスなどの入力デバイスを利用することで、ユーザは規則対を選択することができ、各規則対の規則対グループＩＤや規則対ＩＤや識別子を選択ことができ、また規則対の新規作成や削除を指定することができる。
【００７０】
なお、規則対編集領域１００には、各規則対について識別子が表示されるようになっているので、これを参照したユーザは各規則対の内容がどのようなものであるかを容易に認識することができ、選択等の作業に資することになる。
【００７１】
この規則対編集領域１００において、各レコードの「識別子」フィールドをユーザがクリックすると、選択された規則対が保持する検出規則と変換規則を規則選択領域１０１に表示される。この規則選択領域１０１を参照することで、容易に規則対のより具体的な内容を確認することが可能となる。また、選択した規則対が保持する識別子を編集することができる。
【００７２】
また、規則対編集領域１００において、各レコードの「Group ID」フィールドをユーザがクリックすることで、選択された規則対が保持する規則対グループＩＤが編集可能となり、また各レコードの「Sub ID」フィールドをユーザがクリックすることで、選択された規則対が保持する規則対ＩＤの編集が可能となる。また、「新規作成」ボタンをユーザがクリックすることで、規則対の新規作成が行われ、その際、規則対編集領域１００の規則対テーブルの表示内容は更新され、新しく作成された規則対の対応するレコードの「Group ID」フィールド、「Sub ID」フィールド、「識別子」フィールドが選択可能となる。また、「削除」ボタンをユーザがクリックすることで、選択されている規則対を規則対テーブルから削除することができる。
【００７３】
規則選択領域１０１には、規則対編集領域１００において選択された規則対が保持する検出規則と変換規則の内容が表示され、ユーザが編集すべき規則を選択することができる。ユーザが検出規則を選択した場合には図９の検出規則を編集するＧＵＩ画面が表示され、変換規則を選択した場合には図１０の変換規則を編集するＧＵＩ画面が表示される。
【００７４】
図８に示すテキストボックス１０２は、ユーザが任意のテキストを入力するための領域であり、入力されたテキストは文字列データに変換され所定の様式で当該装置に取り込まれ格納等される。終了ボタン１０３は、規則対の編集を終了する旨を指示するためのボタンであり、当該ボタンをユーザがクリックすることで、規則対の編集が終了し、図８に示されたＧＵＩ画面は消去される。
【００７５】
図９は、検出規則を編集する際のインターフェースとなるＧＵＩ画面の一例である。このＧＵＩ画面は、図８に示したＧＵＩ画面の規則選択領域１０１において検出規則を指定した場合に表示される。当該画面には、検出規則編集領域１０４と、文字列フォーマット集合編集領域１０５と、テキストボックス１０６と、終了ボタン１０７とが表示される。
【００７６】
検出規則編集領域１０４には、ユーザ図９に示すＧＵＩ画面で選択した検出規則が表示される。ユーザは、かかる検出規則編集領域１０４を利用し、検出規則の要素である文字列フォーマットの集合を選択したり、編集可能な状態にすることができ、また削除することができ、文字列フォーマットの集合を新規に追加することもできる。
【００７７】
本実施の形態では、図１０に示すように、検出規則は、検出規則の識別子と、その検出規則の要素がリストの順で表示されている。また、その検出規則の要素である文字列フォーマットの集合に属する各文字列フォーマットの識別子（年号、分割文字１など）が纏めて表示されているので、ユーザは各文字列フォーマットの集合の内容を容易に想起することができる。
【００７８】
また、ユーザが、検出規則編集領域１０４の右側のテキストボックス１０４−１に所望のインデックスを入力し、「追加」ボタンをクリックすれば、入力されたインデックスの位置に文字列フォーマットの空集合が挿入され、その文字列フォーマットの空集合が編集可能な状態となる。その際、当該検出規則において、指定されたインデックス以降に文字列フォーマットの集合が存在すれば、それらのインデックスは１だけ増加することとなる。
【００７９】
また、ユーザが、検出規則の要素である文字列フォーマットの集合の何れかが表示されている部位をクリックするか、検出規則編集領域１０４の右側のテキストボックス１０４−１にそのインデックスを入力し、「削除」ボタンをクリックすれば、選択されている文字列フォーマットの集合を検索規則から削除される。その際、当該検出規則において、指定されたインデックス以降に文字列フォーマットの集合が存在すれば、それらのインデックスは１だけ減少することとなる。
【００８０】
また、ユーザが、検出規則の要素である文字列フォーマットの集合の何れかが表示されている部位をクリックするか、検出規則編集領域１０４の右側のテキストボックス１０４−１にそのインデックスを入力し、「編集」ボタンをクリックすれば、指定した文字列フォーマットの集合を編集することが可能となる。
【００８１】
文字列フォーマット集合編集領域１０５には、上記のように検出規則編集領域１０４における操作によって編集可能となった文字列フォーマットの集合が表示される。表示される集合（図１０に示す例では、３つの文字列フォーマットが表示）に属する文字列フォーマットのいずれかをユーザが選択すれば、当該文字列フォーマットが編集可能な状態となる。また、その集合に属する文字列フォーマットのいずれかをユーザが選択し、削除ボタンをクリックすればその集合から当該文字列フォーマットが削除され、また追加ボタンをクリックすればその集合に新しい文字列フォーマットが追加される。
【００８２】
文字列フォーマットの集合の表示においては、各文字列フォーマットについて、文字列フォーマットＩＤ、文字列フォーマット識別子、文字データ集合のリスト（インデックス番号「０」、「１」等）が表示される。また、リストにおける各文字データ集合の表示は、その要素を纏めた文字列（「０１２」や「１２」など）によってなされ、これにより各文字列フォーマットを構成する文字データ集合の内容を容易に想起、つまり文字列フォーマットの内容を容易に想起することが可能である。
【００８３】
また、各レコードの「ID」フィールドをユーザがクリックするか、文字列フォーマット集合編集領域１０５の右側のテキストボックス１０５−１に所望の文字列フォーマットIDを入力し、「編集」ボタンをクリックすれば、選択した文字列フォーマットが編集可能となり、図１１に示す文字列フォーマットを編集するＧＵＩ画面が表示される。また、選択された文字列フォーマットの参照カウンタ（図５参照）が「２」以上であり、他の検出規則や当該検出規則の他の要素に当該文字列フォーマットの変更が影響を与えるならば、図１２に示す変更を反映させる文字列フォーマットの集合を選択するＧＵＩ画面が表示される。
【００８４】
また、各レコードの「ID」フィールドをユーザがクリックするか、文字列フォーマット集合編集領域１０５の右側のテキストボックス１０５−１に所望の文字列フォーマットIDを入力し、「削除」ボタンをクリックすれば、選択された文字列フォーマットが当該文字列フォーマットの集合から削除される。また、「追加」ボタンをクリックすれば、当該文字列フォーマットの集合に新しい文字列フォーマットが追加され、図１３に示す文字列フォーマットを選択するためのＧＵＩ画面が表示される。また、「終了」ボタン１０５−２をクリックすれば、検出規則の要素である文字列フォーマットの集合の編集を終了する。
【００８５】
テキストボックス１０６は、ユーザが任意のテキストを入力するための領域であり、入力されたテキストは文字列データに変換され所定の様式で装置に取り込まれ、格納等される。終了ボタン１０７は、ユーザが検出規則の編集を終了する旨の指示をなすためのボタンであり、ユーザが終了ボタン１０７をクリックすれば、検出規則の編集が終了し、図９に示したＧＵＩ画面は消去される。
【００８６】
図１３は、図９に示す画面において、文字列フォーマットの集合に新たな文字列フォーマットを追加する旨を指示した場合に表示される画面であり、画面には、テキスト変換辞書１０２３に格納される文字列フォーマットテーブル（図５参照）が表示される。この画面では、各レコードにあたる文字列フォーマットについて、文字列フォーマットＩＤ、文字列フォーマットの識別子、文字データ集合の集合のリストが表示されている。
【００８７】
また、表示されるリストにおいて、各文字データ集合の集合は、その集合に属する文字データ集合の和集合に属する全ての要素である文字データを纏めた文字列データ（0123456789など）によって表現されている。これによって、各文字列フォーマットを構成する文字データ集合の集合の内容を利用者は容易に想起することが可能であり、これらによって構成される文字列フォーマットの内容も容易に想起できる。
【００８８】
図１３に示す表示画面において、ユーザが、表示されている文字列フォーマットテーブルから１または複数の文字列フォーマットを選択し（チェックボックスのレ点）、「既存選択」ボタンをクリックすれば、追加先の文字列フォーマットの集合に選択された１または複数の文字列フォーマットが追加される。すなわち、ある文字列フォーマットの集合に文字列フォーマットを追加する場合において、追加したい内容の文字列フォーマットが既に文字列フォーマットテーブルに登録されている場合には新たにテキスト等を入力することなく、既存の文字列フォーマットを選択することで容易に追加できる。
【００８９】
一方、文字列フォーマットの集合に新たに追加したい内容の文字列フォーマットが既存のテーブルに存在しない場合、ユーザが「新規作成」ボタンをクリックすればよい。これにより、文字列フォーマットIDのみが付与された空フォーマットが文字列フォーマットの集合に追加され、当該空フォーマットにテキスト等を入力することで新たな文字列フォーマットを作成することができる。
【００９０】
図１２は、文字列フォーマットの変更を反映させる検出規則を選択する際のインターフェースとなるＧＵＩ画面の一例である。このＧＵＩ画面は、図９に示したＧＵＩ画面の文字列フォーマット集合編集領域１０５において文字列フォーマットの編集をユーザが指示した場合に表示される。
【００９１】
この画面には、上記のように文字列フォーマットの編集が指示された場合にその文字列フォーマットの内容を変更することで影響を受け得る複数の検出規則がテーブルとして表示される。すなわち、上述したように文字列フォーマットテーブル（図５参照）に格納される各文字列フォーマットは、１つの文字列フォーマットの集合から参照されているものあれば、複数の文字列フォーマットの集合で参照されているものある。したがって、ある文字列フォーマットの集合に属する１つの文字列フォーマットの内容を変更した場合、当該ある文字列フォーマットの集合の内容が変更されるのみならず、この文字列フォーマットを参照している他の文字列フォーマットの集合の内容も変更することになる。そこで、このように他の文字列フォーマットの集合の内容も変更させるのか否かをユーザに判断させるために、ある文字列フォーマットを変更した場合に影響の生じる文字列フォーマットの集合を表示させるようにしたのである。
【００９２】
また、図１２に示すように、編集が指示された文字列フォーマットが属する文字列フォーマットの集合に色づけする等他の集合と区別できる表示がなされ、これによりどのような影響が及ぶのかをユーザに容易に想起させることができる。
【００９３】
ユーザは、かかる表示画面を参照しながら変更内容を反映させたい検出規則とその要素である文字列フォーマットの集合を選択することで、影響の範囲を決定することができる。ある文字列フォーマットの変更を、当該フォーマットを参照するすべての文字列フォーマットの集合に反映させる場合には、そのまま当該ある文字列フォーマットが変更される。
【００９４】
一方、ユーザが影響を受け得る複数の検出規則の要素の一部にのみ文字列フォーマットの変更を反映させることを望むのであれば、文字列フォーマットの複製を作成し、変更を反映させる検出規則の要素である文字列フォーマットの集合に複製した文字列フォーマットを再登録する。そして、複製の元となった文字列フォーマットと複製した文字列フォーマットの参照カウンタを更新する。また、複製した文字列フォーマットに含まれている文字データ集合の参照カウンタも更新する。その後、その複製した文字列フォーマットに対する変更を利用者に許可する。
【００９５】
図１１は、文字列フォーマットと文字データ集合を編集する際のインターフェースとなるＧＵＩ画面の一例である。このＧＵＩ画面は、図９に示したＧＵＩ画面の文字列フォーマット集合編集領域１０５において文字列フォーマットの編集を指定した場合に表示される。この画面には、文字列フォーマット編集領域１０８と、文字データ集合編集領域１０９と、テキストボックス１１０と、終了ボタン１１１とが表示されている。
【００９６】
文字列フォーマット編集領域１０８には、図９に示す画面においてユーザが選択した文字列フォーマットが表示される。かかる表示がなされている場合、ユーザは文字列フォーマットの要素である文字データ集合の集合を選択し、編集可能な状態にすることができ、また削除することができ、さらには文字データ集合の集合を新規に追加することができる。
【００９７】
文字列フォーマットの表示内容には、文字列フォーマットＩＤ、文字列フォーマットの識別子、文字列フォーマットの要素のリストが含まれる。また、各文字列フォーマットの要素の表示においては、要素となる文字データ集合の集合に属する文字データ集合の全ての文字データを纏めた文字列データ（「０１２」など）が表示される。よって、ユーザは、文字列フォーマットを構成する各要素の内容を容易に想起することができ、これにより文字列フォーマットの内容を容易に想起できる。
【００９８】
また、ユーザが文字列フォーマット編集領域１０８の右側のテキストボックス１０８−１に所望のインデックスを入力し、「追加」ボタンをクリックすれば、入力されたインデックスの位置に文字データ集合の空集合が挿入され、その文字データ集合の空集合が編集可能となる。その際、当該文字列フォーマットにおいて、指定されたインデックス以降に文字データ集合の集合が存在すれば、それらのインデックスは１だけ増加される。
【００９９】
また、ユーザが、文字列フォーマットの要素である文字データ集合の集合の何れかが表示されている部位をクリックするか、文字列フォーマット編集領域１０８の右側のテキストボックス１０８−１にそのインデックスを入力し、「削除」ボタンをクリックすれば、選択されている文字データ集合の集合が文字列フォーマットから削除される。その際、当該文字列フォーマットにおいて、指定されたインデックス以降に文字データ集合の集合が存在すれば、それらのインデックスは１だけ減少される。
【０１００】
また、ユーザが、文字列フォーマットの要素である文字データ集合の集合の何れかが表示されている部位をクリックするか、文字列フォーマット編集領域１０８の右側のテキストボックス１０８−１にそのインデックスを入力し、「編集」ボタンをクリックすれば、文字列フォーマットの集合の編集が可能な状態となる。
【０１０１】
文字データ集合編集領域１０９には、上記のような文字列フォーマット編集領域１０８における操作によって編集可能となった文字データ集合の集合が表示される。そして、その集合に属する文字データ集合の何れかをユーザが選択し、編集可能な状態にすることができる。また、その集合に属する文字データ集合の何れかをユーザが選択し、その集合から削除することができ、さらにはその集合に新しい文字データ集合をユーザが追加することができる。
【０１０２】
文字データ集合の集合の表示においては、各文字データ集合に関して、文字データ集合ＩＤ、文字列データが表示される。また、各レコードの「ＩＤ」フィールドをユーザがクリックするか、文字データ集合編集領域１０９の右側のテキストボックス１０９−１に所望の文字データ集合ＩＤを入力し、「編集」ボタンをクリックすれば、選択した文字データ集合が編集可能となり、テキストボックス１１０からテキストを入力することで当該文字データ集合を構成する要素をユーザが編集することが可能となる。また、選択された文字データ集合の参照カウンタが「２」以上であり、他の文字列フォーマットや当該文字列フォーマットの他の要素に当該文字データ集合の変更が影響を与えるならば、図１４に示す変更を反映させる文字データ集合の集合を選択するＧＵＩ画面が表示される。
【０１０３】
また、ユーザが、各レコードの「ID」フィールドをクリックするか、文字データ集合編集領域１０９の右側のテキストボックス１０９−１に所望の文字データ集合IDを入力し、「削除」ボタンをクリックすれば、選択された文字データ集合が当該文字データ集合の集合から削除される。また、ユーザが、「追加」ボタンをクリックすれば、当該文字データ集合の集合に新しい文字データ集合が追加され、図１５に示す文字データ集合を選択するＧＵＩ画面が表示される。
【０１０４】
また、ユーザが、「終了」ボタン１０９−２をクリックすれば、文字列フォーマットの要素である文字データ集合の集合の編集が終了する。テキストボックス１１０は、任意のテキストをユーザが入力するための領域であり、入力されたテキストは文字列データに変換され、所定の様式で格納等される。終了ボタン１１１はユーザが文字列フォーマットの編集を終了する旨の指示をなすためのボタンであり、当該終了ボタン１１１がクリックされると、文字列フォーマットの編集が終了し、図１１に示すＧＵＩ画面が消去される。
【０１０５】
図１５は、文字データ集合テーブルから文字データ集合を選択する際のインターフェースとなるＧＵＩ画面の一例である。このＧＵＩ画面は、図１１に示したＧＵＩ画面の文字データ集合編集領域１０９において、文字列フォーマットの要素である文字データ集合の集合に新たに文字データ集合を追加することをユーザが指示した場合に表示される。
【０１０６】
この画面には、文字データ集合テーブル（図６参照）が表示される。各レコードにあたる文字データ集合の表示には、文字データ集合ＩＤ、文字列データが含まれている。また、文字列データは、各文字データ集合の要素を纏めてリストとした文字列データである。これによって、各文字データ集合の内容をユーザは容易に想起することが可能である。
【０１０７】
また、ユーザが、表示された文字データ集合テーブルから１または複数の文字列フォーマットを選択し（チェックボックスのレ点）、「既存選択」ボタンをクリックすれば、追加先の文字列データ集合の集合に選択された１または複数の文字データ集合が追加される。すなわち、ある文字データ集合の集合に文字データ集合を追加する場合において、追加したい内容の文字データ集合が既に文字列フォーマットテーブルに登録されている場合には新たにテキスト等を入力することなく、既存の文字データ集合を選択することで容易に追加できる。
【０１０８】
一方、文字データ集合の集合に新たに追加したい内容の文字データ集合が既存のテーブルに存在しない場合、ユーザが「新規作成」ボタンをクリックすればよい。これにより、文字データ集合IDのみが付与された空文字データ集合が文字データ集合の集合に追加され、当該空文字データ集合にテキスト等を入力することで新たな文字データ集合を作成することができる。
【０１０９】
図１４は、文字データ集合の変更を反映させる文字列フォーマットを選択する際のインターフェースとなるＧＵＩ画面の一例である。このＧＵＩ画面は、図１１に示したＧＵＩ画面の文字データ集合編集領域１０９において文字データ集合の編集をユーザが指示した場合に表示される。編集対象となる文字データ集合の内容を変更することで影響を受け得る複数の文字列フォーマットがテーブルとして表示される。また、図１４に例示するように、当該文字データ集合が属する文字データ集合の集合に色づけするなどして他のも字データの集合と区別できるよう表示することで、どのような影響が及ぶのかをユーザに容易に想起させることができるようにしている。
【０１１０】
ユーザは、かかる表示画面を参照しながら変更内容を反映させたい文字列フォーマットとその要素である文字データ集合の集合を選択することで、影響の範囲を決定することができる。ある文字データ集合の変更を、当該文字データ集合を参照するすべての文字列フォーマットに反映させる場合には、そのまま当該ある文字データ集合が変更される。
【０１１１】
一方、ユーザが影響を受け得る複数の文字列フォーマットの要素の一部にのみ文字データ集合の変更を反映させることを望むのであれば、文字データ集合の複製を作成し、変更を反映させる文字列フォーマットの要素である文字データ集合の集合に複製した文字データ集合を再登録する。そして、複製の元となった文字データ集合と複製した文字データ集合の参照カウンタを更新する。その後、その複製した文字列フォーマットに対する変更をユーザに許可する。
【０１１２】
図１０は、変換規則を編集する際のインターフェースとなるＧＵＩ画面の一例である。このＧＵＩ画面は、図８に示したＧＵＩ画面の規則選択領域１０１において変換規則を指定した場合に表示される。この画面には、変換規則編集領域１１２と、変換文字列データハッシュテーブル集合編集領域１１３と、固定文字列データ編集領域１１４と、検出文字列データ編集領域１１５と、検出規則表示領域１１６と、終了ボタン１１７領域とが表示される。
【０１１３】
変換規則編集領域１１２には、図８に示す画面でユーザが選択した変換規則が表示され、かかる画面上でユーザが変換規則の要素である文字列データソースを選択することで、当該文字データソースを編集したり、削除したり、文字列データソースを新規に追加したりすることができる。
【０１１４】
本実施の形態では、変換規則の表示においては、変換規則の識別子と、変換規則の要素である文字列データソースがリストの形で表示される。また、各文字列データソースは、その情報源（表［年号］など）が明示的に表記されている。
【０１１５】
より具体的には、各変換規則に格納されている文字列データは、指示子「固定」の後に続く四角括弧（[]）内で指定された文字列として表現されている。例えは、インデックス「２」の文字列データソース「固定[年]」は、変換規則に格納されている文字列「年」の文字列データを示している、つまりデータソースとして文字列「年」を取得すべきことを示している。
【０１１６】
また、検出規則に合致した文字列データは、指示子「検出」の後に続く四角括弧内に記述されているインデックスの番号で指定されており、当該インデックス番号で指定される検出規則の文字列フォーマットの集合のいずれかの要素に合致したテキストデータ内の文字列データを指定している。また、検出規則表示領域１１６に表示された検出規則を参照することでその内容を利用者は容易に想起することができる。例えば、インデックス「１」の文字列データソース「検出[１]」は、検出規則「日付（年号）」のインデックス「１」で指定される文字列フォーマットの集合に合致したテキストデータ内の文字列データを示している。
【０１１７】
また、変換文字列データハッシュテーブルに格納された文字列データは、指示子「表」に続く四角括弧内で指定されている識別子を持つ変換文字列データハッシュテーブルに格納されている。例えば、変換規則編集領域１１２のインデックス「０」の文字データソース「表[年号]」は、文字列データの取得先が変換文字列データハッシュテーブル「年号」であることを示している。
【０１１８】
かかる表示画面が表示されている場合においてユーザが、変換規則編集領域１１２の右側のテキストボックス１１２−１に所望のインデックスを入力し、「追加」ボタンをクリックすれば、入力されたインデックスの位置に文字列データソースが挿入され、その文字列データソースが編集可能となる。その際、当該変換規則において、指定されたインデックス以降に文字列データソースが存在すれば、それらのインデックスは１だけ増加することとなる。
【０１１９】
かかる表示画面が表示されている場合においてユーザが、変換規則の要素である文字列データソースの何れかが表示されている部位をクリックするか、変換規則編集領域１１２の右側のテキストボックス１１２−１に所望のインデックスを入力し、「削除」ボタンをクリックすれば、選択した文字列データソースが変換規則から削除される。その際、当該変換規則において、指定されたインデックス以降に文字列フォーマットの集合が存在すれば、それらのインデックスは１だけ減少することとなる。
【０１２０】
また、かかる表示画面が表示されている場合においてユーザが、変換規則の要素である文字列データソースが表示されている部位の何れかをクリックするか、変換規則編集領域１１２の右側のテキストボックス１１２−１に所望のインデックスを入力し、「編集」ボタンをクリックすれば、選択した文字列データソースが編集可能な状態となる。
【０１２１】
変換文字列データハッシュテーブル集合編集領域１１３は、変換文字列データハッシュテーブルを利用者は編集するために利用される画面であり、かかる画面を通じた入力を適宜行うことで変換文字列データハッシュテーブルから導出される文字列データを、選択した文字列データソースの位置に設定することができる。
【０１２２】
ハッシュテーブル選択領域１１３−１には、既存の変換文字列データハッシュテーブルの識別子がリスト状（図示の例では１つのみ）に表示されており、識別子をクリック等することで編集を希望する変換文字列データハッシュテーブルをユーザは選択することができる。
【０１２３】
識別子編集領域１１３−２は識別子を編集するための領域であり、かかる領域のテキストボックスにテキストを入力することで、既存の変換文字列データハッシュテーブルの識別子を選択・編集することができ、また新規に作成する変換文字列ハッシュテーブルの識別子を指定することができる。
【０１２４】
インデックスＫｅｙ編集領域１１３−３は、既存の変換文字列データハッシュテーブルのキーとなる文字列データを、その文字列データを検出できる検出規則の要素のインデックスとして指定するための領域であり、かかるインデックスＫｅｙ編集領域１１３−３に所望の検出規則の要素であるインデックスを入力することで指定をなすことができる。
【０１２５】
また、変換文字列データハッシュテーブル集合編集領域１１３内の「新規」ボタンをクリックすれば、識別子編集領域１１３−２で指定された識別子を持ち、インデックスＫｅｙ編集領域１１３−３で指定された文字列データの集合をキーとする変換文字列データハッシュテーブルを新たに作成することができる。
【０１２６】
また、「編集」ボタンをクリックすれば、ハッシュテーブル選択領域１１３−１、識別子編集領域１１３−２で指定された変換文字データハッシュテーブルが編集可能になされ、図１６に示す変換文字列データハッシュテーブルを編集するＧＵＩ画面が表示される。
【０１２７】
固定文字列データ編集領域１１４は、選択されている文字列データソースの位置に挿入すべき文字列データをユーザが直接入力するための領域であり、かかる領域に入力された文字列データは、選択されている文字列ソースデータとして登録される。
【０１２８】
検出文字列データ編集領域１１５は、選択されている文字列データソースの位置に挿入される文字列データを、その文字列データを検出する検出規則の要素のインデックスとして指定入力するための領域である。
【０１２９】
検出規則表示領域１１６には、現在選択されている変換規則（変換規則編集領域１１２に表示されている変換規則）と対となっている検出規則が表示される。終了ボタン１１７は、変換規則の編集終了指示をなすためのボタンであり、かかる終了ボタン１１７がクリックされると、変換規則の編集を終了し、図１０のＧＵＩ画面が消去される。
【０１３０】
図１６は、変換文字列データハッシュテーブルを編集する際のインターフェースとなるＧＵＩ画面の一例である。このＧＵＩ画面は、図１０に示したＧＵＩ画面の変換文字列データハッシュテーブル集合編集領域１１３において変換文字列データハッシュテーブルの新規作成か、編集をユーザが指定した場合に表示される。この画面には、識別子編集領域１１８と、エントリー選択領域１１９と、文字列データ入力領域１２０と、終了ボタン１２１とが表示される。
【０１３１】
識別子編集領域１１８は、編集等の対象となっている変換文字列データハッシュテーブルの識別子を変更する際に利用され、ユーザが識別子となる文字列を入力することで、識別子の変更をなすことができる。エントリー選択領域１１９は、Ｋｅｙとなる文字列データの全てのリストが表示されており、それらのＫｅｙを選択するか、右側のテキストボックス１１９−１にＫｅｙを入力することで対応する文字列データを編集できるようになる。
【０１３２】
また、Ｋｅｙのリストは、図１０で示されたＧＵＩ画面の変換文字列データハッシュテーブル編集領域１１３のインデックスＫｅｙ編集領域１１３−３で指定されたインデックスと同一のインデックスを持つ検出規則の要素である文字列フォーマットの集合から全ての文字列データを展開することで得られる文字列であり、これらがリストとして表示される。
【０１３３】
文字列データ入力領域１２０は、エントリー選択領域１１９で指定された少なくとも１つ以上のエントリーが導出する文字列データを入力するための領域であり、ユーザがかかる領域内のテキストボックスに文字列を入力することで、当該返還文字列データハッシュテーブルによって導出される文字列を変更等することができる。
【０１３４】
終了ボタン１２１は、変換文字列データの編集終了を指示するためのボタンであり、かかるボタンがクリックされると、変換文字列データの編集を終了し、図１６のＧＵＩ画面が消去される。
【０１３５】
以上説明したのが、テキスト変換辞書１０２３の編集を行う際に、テキスト変換辞書編集部１０２４が表示させるＧＵＩ画面の内容であり、上記のようにユーザは、検出パターン、変換パターンの構成要素となる文字列や、その文字列の挿入位置等のパターン構成に関する指示をなすことで、テキスト変換辞書１０２３を編集することができ、表音記号や品詞や活用などの専門的な知識を有しないユーザであっても容易に新たな変換内容の追加等の編集を行うことができる。
【０１３６】
（テキスト音声合成装置のテキスト変換時の動作）
次に、上記構成のテキスト音声合成装置１０００のテキスト変換部１０２１によるテキスト変換時の動作、すなわちテキスト解析部１００２にテキスト入力部１００１からテキストデータＤ２が入力された場合にテキスト変換部１０２１によって行われる動作について図１７〜図１９を参照しながら説明する。
【０１３７】
図１７に示すように、テキスト変換部１０２１は、テキスト入力部１００１から供給されるテキストデータＤ２を受け取り、全ての規則対をテキスト変換辞書１０２３から読み込み、現在の規則対グループＩＤを初期化する（Ｓ２０１）。そして、現在の規則対グループＩＤと同一の規則対グループＩＤを持つ全ての規則対を取り出し、規則対のリストを作成し、現在の規則対ＩＤを初期化する（Ｓ２０２）。
【０１３８】
この後、テキスト変換部１０２１は、検査対象となる文字列データの先頭をテキストデータＤ２の先頭に初期化し（Ｓ２０３）、Ｓ２０２で作成した規則対のリストから現在の規則対ＩＤと同一の規則対ＩＤを持つ規則対を選択する（Ｓ２０４）。
【０１３９】
上記のように規則対を選択すると、選択した規則対の検出規則と検査対象である文字列データとを比較し、選択した検出規則に合致する文字列を検出する（Ｓ２０５）。かかる検出処理について図１８を参照しながら説明する。
【０１４０】
同図に示すように、検出処理では、検査対象である文字列データから文字データのリストＡを作成し、そのリストの要素を指し示すインデックスＩａを０に初期化する。当該規則対が指し示す検出規則ＩＤをもとにテキスト変換辞書１０２３より検出規則Ｂを取得する。さらに、取得した検出規則Ｂの要素である文字列フォーマットの集合を指し示すインデックスＩｂを０に初期化する（Ｓ３０１）。
【０１４１】
以上のような初期化処理がなされると、検出規則Ｂの要素となる各インデックスのうち、現在のインデックスＩｂが指し示す要素（文字列フォーマットの集合）を特定し、かかる文字列フォーマットの集合に属する文字列フォーマットＩＤをもとにテキスト変換辞書１０２３から当該集合に属する文字列フォーマットを読み込む。そして、これらの文字列フォーマットを示すリストＣを作成し、そのリストＣの要素（文字列フォーマット）を指し示すインデックスＩｃを０に初期化する。この文字列フォーマットのリストＣと比較される検査対象である文字データのリストＡ中の文字列データの先頭位置を記憶するために、現在のＩａを記憶したＩａ１を作成する（Ｓ３０２）。
【０１４２】
次に、テキスト変換部１０２１は、現在のインデックスＩｃが指し示す文字列フォーマットのリストＣ中の要素である文字列フォーマットを選択し、その文字列フォーマットから文字データ集合の集合のリストＤを作成し、そのリストの要素を指し示すインデックスＩｄを０に初期化する（Ｓ３０３）。
【０１４３】
そして、現在のインデックスＩｄが指し示す文字データ集合の集合のリストＤの要素である文字データ集合の集合に属する各文字データ集合ＩＤをもとにテキスト変換辞書１０２３から文字データ集合を読み込み、これらの文字データ集合を統合して１つの文字データ集合Ｅを作成する（Ｓ３０４）。
【０１４４】
上記のように文字データ集合Ｅを作成すると、現在のインデックスＩａが指し示す検査対象である文字データのリストＡの要素である文字データとＳ３０４で作成した文字データ集合Ｅと比較する（Ｓ３０５）。そして、この比較の結果、各々の文字データが合致するか否かを判別し（Ｓ３０６）、文字データが合致していなければＳ３０７へ進み、合致していればＳ３０９へ進む。
【０１４５】
Ｓ３０７では、検出規則Ｂの同一要素である文字列フォーマットのリストＣ内の他の文字列フォーマットで比較する為に、インデックスＩｃを１つインクリメントし、更新されたインデックスＩｃによって指し示される文字列フォーマットのリストＣの要素が存在するか否かを判別する。そして、リストＣの要素が存在しない場合、検査対象である文字列データのリストＡと検出規則Ｂは合致しなかったことになり、Ｓ３０８に進む。すなわち、与えられた検査対象の文字列データはその開始位置からでは現在検出に用いられている検出規則と合致しなかったとの結果を返して図１７のＳ２０６へ進むことになる。
【０１４６】
一方、更新されたインデックスＩｃによって指し示される文字列フォーマットのリストＣの要素が存在すれば、検査対象である文字データのリストＡのインデックスＩａをＩａ１に置換し、比較する文字列データの開始位置を元に戻して、Ｓ３０３に戻る。
【０１４７】
Ｓ３０６の判別において、比較の結果、各々の文字データが合致した場合、文字データ集合の集合のリストＤの次要素と検出対象の文字データのリストＡの次要素を比較するために、インデックスＩｄとインデックスＩａを１つインクリメントし、更新されたインデックスＩｄによって指し示される文字データ集合の集合のリストＤの要素である文字データ集合が存在するか否かを判別する（Ｓ３０９）。
【０１４８】
文字データ集合が存在する場合には、Ｓ３０４へ戻り、存在しなければ検出規則Ｂの次の要素との比較するためにＳ３１０へ進む。インデックスＩｂで指し示される検出規則Ｂの現在の要素と合致した検査対象である文字列データのリストＡ内の文字列データは、インデックスＩａ１〜現在のインデックスＩａより前の範囲にある文字列データである。Ｓ３１０では、変換規則で当該合致した文字列データを利用するために、この部位の文字列データをインデックスＩｂと関連付けて格納する。もし、既存の合致した文字列データが格納されていれば、それを破棄して格納する。
【０１４９】
そして、検出規則Ｂの次要素と検出対象の文字データのリストＡの次要素を比較するために、インデックスＩｂを一つインクリメントし、更新されたインデックスＩｂによって指し示される検出規則Ｂの要素である文字列フォーマットの集合が存在するか否かを判別する（Ｓ３１１）。そして、文字列フォーマットの集合が存在する場合にはＳ３０２に戻り、存在しなければ検出規則Ｂが検査対象である文字列データのリストＡと合致していたことが確定し、Ｓ３１２へと進む。Ｓ３１２においては、与えられた検査対象の文字列データはその開始位置からインデックスＩａより前の位置までの文字列データが検出規則と合致したとの結果を返して図１７のＳ２０６へ進む。
【０１５０】
以上がＳ２０４で選択された規則対の検出規則に示されるパターンに合致する文字列の検出処理の詳細であり、図１７に示すように、かかる処理が終了すると、当該検出処理の結果、検出規則と検査対象である文字列データが合致したか否かを判別する（Ｓ２０６）。そして、合致しない場合、つまり検出規則によって文字列が検出されていない場合はＳ２０７へ進み、合致する場合、つまり検出規則に規定される検出パターンに合致する文字列が検出された場合はＳ２０８へ進む。
【０１５１】
Ｓ２０７においては、現在の規則対ＩＤの値より大きな値の規則対ＩＤを持つ規則対がＳ２０２で作成した規則対のリストにあるか否かを判別し、リストに規則対があれば、現在の規則対ＩＤを１だけインクリメントし、Ｓ２０４に戻る。一方、現在の規則対ＩＤより大きな規則対ＩＤを持つ規則対がＳ２０２で作成した規則対のリストになければ、Ｓ２０９へ進む。
【０１５２】
Ｓ２０８においては、Ｓ２０４で選択された規則対の変換規則に基づいて、テキストデータ中からＳ２０４で選択された規則対の検出規則によって検出された文字列データを他の文字列データに変換する処理を行う。かかる変換処理の詳細は図１９に示すとおりである。
【０１５３】
同図に示すように、まず変換処理を行うために初期化処理を行う（Ｓ４０１）。具体的には、テキストデータＤ２から文字データのリストＡを作成し、そのリストの要素を指し示すインデックスＩａを、図１７のＳ２０５において検出された文字列データの開始位置の文字データが格納されているインデックスに初期化する。また、当該規則対が指し示す変換規則ＩＤをもとにテキスト変換辞書１０２３より変換規則Ｂを読み込む。また、変換規則Ｂの要素である文字列データソースのリストＣを作成し、文字列データソースのリストＣの要素を指し示すインデックスＩｃを０に初期化する。図１８のＳ３１０において格納されている検出規則の各要素とマッチしている文字列データのリストＤを読み込む。テキスト変換辞書１０２３に格納されている変換文字列データハッシュテーブル集合Ｅを読み込む。
【０１５４】
以上のような初期化処理が終了すると、Ｓ４０１において作成された文字データのリストＡより、インデックスＩａで指し示される文字データから図１８のＳ３１２において通知された合致する文字列データの最終位置を示すインデックスまでの文字列データ、つまり検出規則により検出された文字列データを削除し、その削除された文字列データより前の文字データのリストＡ１と後の文字データのリストＡ２を作成する（Ｓ４０２）。
【０１５５】
そして、現在のインデックスＩｃが指し示す文字列データソースＦが指定する文字列データを取得し（Ｓ４０３）、文字データのリストＧを作成する。文字データソースＦが指定する文字列データが変換規則に格納された文字列データであれば、文字データソースＦから文字列データを取得する。また、文字データソースＦが指定する文字列データが検出規則の要素とマッチした文字列データであれば、文字データソースＦからインデックスを取得し、その値が指し示す文字列データのリストＤの要素である文字列データを取得する。また、文字データソースＦが指定する文字列データが変換文字列ハッシュテーブルに格納されている文字列データであるならば、変換文字列ハッシュテーブルの識別子とＫｅｙを文字データソースＦと文字列データのリストＤから取得し、変換文字列データハッシュテーブル集合Ｅから文字列データを取得する。
【０１５６】
上記のように文字列データを取得すると、現在の文字データのリストＡ１の末尾にＳ４０３で作成した文字データのリストＧを追加し、文字データのリストＡ１を更新する。つまり、Ｓ４０３で取得した文字列データが、これに対応する検出された文字列データに代えて挿入される（Ｓ４０４）。
【０１５７】
そして、文字列データソースのリストＣの要素を指し示すインデックスＩｃを１つインクリメントし、更新後のインデックスＩｃに示される文字列データソースが存在するか否かを判別する（Ｓ４０５）。更新したインデックスＩｃによって指し示される文字列データソースが存在しなければＳ４０６へ進み、更新したインデックスＩｃによって指し示される文字列データソースが存在すればテキストデータに次の文字列データを挿入するためにＳ４０３に戻る。
【０１５８】
Ｓ４０６においては、現在の文字データのリストＡ１の末尾にＳ４０２において作成された文字データのリストＡ２を追加し、文字データのリストＡ３を作成し、これを変換規則による変換後の文字列データとして出力する。また、文字データのリストＡ２の先頭を次回の検査対象である文字列データの開始位置として併せて返し、図１７のＳ２０９へ進む。
【０１５９】
以上のようにある規則対の検出規則によって検出された文字列が、当該ある規則対の変換規則によって他の文字列に変換処理が行われると（Ｓ２０８）、図１７に示すように、次回の検査対象となる文字列データの先頭位置等を更新する（Ｓ２０９）。すなわち、今回の検査において、検出規則と合致していればＳ２０８の変換処理により出力された文字列データの指定された開始位置にある文字データに更新し、検出規則と合致していなければ（Ｓ２０７経由の場合）、１つの文字データ分だけスキップさせる。また、Ｓ２０２で作成した規則対のリストから最小の規則対ＩＤを算出し、現在の規則対ＩＤとして初期化する。
【０１６０】
そして、Ｓ２０９において更新した次回の検査対象となる文字列データの先頭が文末であるか否かを判別し、文末でなければＳ２０４へ戻って上記と同様の処理を行う。一方、文末であればＳ２１１へ進む。Ｓ２１１においては、現在の規則対グループＩＤより大きな値の規則対グループＩＤを持つ規則対がＳ２０１で読み込まれた全ての規則対の中にあるか否かを判別し、このような規則対があれば現在の規則対グループＩＤを１つ増加し、Ｓ２０２へ進む。一方、現在の規則対グループＩＤより大きな規則対グループＩＤを持つ規則対がＳ２０１で読み込まれた全ての規則対の中に無ければ、テキストデータを言語解析部１０２２へ出力する（Ｓ２１２）。
【０１６１】
（テキスト変換辞書の編集時の動作）
以上がテキスト変換部１０２１によるテキスト変換処理の詳細である。本実施の形態では、上記のようなテキスト変換部１０２１が変換の際に参照するテキスト変換辞書１０２３をテキスト変換辞書編集部１０２４が編集することができるようになっており、以下、図２０〜図３２を参照しながら、ユーザの指示にしたがってテキスト変換辞書編集部１０２４がテキスト変換辞書に格納される内容を変換する場合の処理について説明する。
【０１６２】
図２０および図２１は、テキスト変換辞書編集部１０２４がテキスト変換辞書の編集時に行う処理の全体の流れを示すフローチャートである。まず、テキスト変換辞書の編集指示等がなされると、テキスト変換辞書編集部１０２４は、テキスト変換辞書１０２３の規則対テーブル（図２参照）に格納されているすべての規則対を読み込み、図８に示すような規則対編集用のＧＵＩ画面を表示させる（Ｓ５０２）。
【０１６３】
次に、テキスト変換辞書編集部１０２４は、ユーザによって規則対が選択されたか否かを判別し（Ｓ５０３）、選択された場合にはその選択が新規の規則対であるか否かを判別する（Ｓ５０４）。そして、ユーザが選択した規則対が既存の規則対であればＳ５０６へ（図２１）、新規に作成されたものであればＳ５０５へ進む。
【０１６４】
ユーザの選択が新規の規則対であれば（図８に示すＧＵＩ画面の新規作成ボタンをクリックした場合）、テキスト変換辞書編集部１０２４は新しい規則対を作成し、Ｓ５０２で読み込んだ規則対テーブルに新たに作成した規則対を追加する（Ｓ５０５）。
【０１６５】
一方、選択された規則対が既存のもの、規則対テーブルに既に登録されているものである場合には、選択された規則対に対するユーザの処理選択指示があったか否かを判別し（Ｓ５０６）、処理選択があった場合には、その選択された処理が、選択された既存の規則対を削除する旨の指示であったか否かを判別する（Ｓ５０７）。そして、削除指示であれば５０８へ進み、削除以外の処理の指示であればＳ５０９へ進む。
【０１６６】
削除指示があった場合、ユーザが選択した規則対を規則対テーブルから削除する処理を行う。また、この際、当該規則対の内容となっている検出規則の各要素を削除し、また当該規則対の内容となっている変換規則の各要素を削除する処理を行う。これらの要素の削除処理の詳細については後述する（図２２のＳ６０５〜Ｓ６１２、図２９のＳ１００７〜Ｓ１０１１）。
【０１６７】
一方、選択規則対に対するユーザの指示した処理内容が削除でない場合、指示した編集対象が規則であるか否かを判別し（Ｓ５０９）、規則対の規則に対する編集が指示されている場合には、その編集対象が検出規則であるか否かを判別する（Ｓ５１３）。そして、編集対象が検出規則である場合には検出規則の編集処理を行い（Ｓ５１４）、検出規則ではない場合、つまり編集対象が変換規則である場合には変換規則の編集処理を行う（Ｓ５１５）。
【０１６８】
また、編集対象が規則対の規則ではない場合、編集対象が識別子であったか否かを判別し（Ｓ５１０）、識別子が編集対象となっている場合には識別子のテキスト入力があったか否かを判別する（Ｓ５１２）。一方、編集対象が識別子ではない場合、編集対象が規則でも識別子でもないということは、規則対の残りの要素であるＩＤの編集が指示されたと判断し、ユーザからのＩＤのテキスト入力があったか否かを判別する（Ｓ５１１）。
【０１６９】
そして、上記Ｓ５１２、Ｓ５１１において識別子またはＩＤの入力があった場合、Ｓ５１４、Ｓ５１３において検出規則、変換規則の編集があった場合には、入力された識別子、ＩＤ、編集後の検出規則、変換規則を規則対テーブルに登録する（Ｓ５１６）。
【０１７０】
この後、ユーザが編集終了を指示したか否かを判別し（Ｓ５１７）、終了が選択された場合には編集処理を終了し、Ｓ５０２において読み込まれたすべての規則対を所定の形式でテキスト変換辞書１０２３に格納し、規則対の編集を終了する。この際、図８に示した規則対を編集するＧＵＩ画面を消去する。一方、終了が指示されない場合にはＳ５０３に戻り、ユーザによって新たな指示がなされた場合、その指示にしたがった処理を行う。
【０１７１】
次に、検出規則を編集する際（図２１のＳ５１４）の処理について図２２を参照しながら説明する。まず、図２０にＳ５０３においてユーザが選択したと判別された規則いつの検出規則をテキスト変換辞書１０２３から読み込む（Ｓ６０１）。この際、選択された検出規則がテキスト変換辞書１０２３の検出規則テーブル（図３参照）に存在しない場合には、新規に作成・登録した空の検出規則を読み込む。そして、読み込んだ検出規則を編集可能な状態にし、図９に示すような検出規則を編集するためのＧＵＩ画面を表示する。
【０１７２】
そして、編集対象となっている検出規則の要素である文字列フォーマットの集合やその順序に関するユーザの選択があったか否かを判別し（Ｓ６０２）、選択があった場合、利用者が選択した文字列フォーマットの集合が新規のものであるか否かを判別する（Ｓ６０３）。そして、ユーザが選択した検出規則の要素である文字列フォーマットの集合が既存の要素であればＳ６０５へ、新規に作成するものであればＳ６０４へ進む。
【０１７３】
Ｓ６０４の処理では、新しい文字列フォーマットの空集合を作成し、Ｓ６０１において読み込んだ検出規則中のＳ６０２においてユーザが選択した順序に相当する位置に新たに作成した空集合を挿入する。その際、当該検出規則において、指定されたインデックス以降に文字列フォーマットの集合が存在すれば、それらのインデックスは１だけ増加させる。その後、挿入した文字列フォーマットの空集合を編集可能にする。
【０１７４】
一方、Ｓ６０５の処理では、Ｓ６０３においてユーザが選択した検出規則の要素である文字列フォーマットの集合に対するユーザの指示が削除すべき旨の指示であったか否かが判別され、削除すべき旨の指示であった場合にはＳ６０７へ、編集すべき旨の指示であった場合にはＳ６０６へ進む。
【０１７５】
Ｓ６０６の処理では、テキスト変換辞書編集部１０２４は、ユーザの指示にしたがい、ユーザが選択した検出規則の要素である文字列フォーマットの集合に対する編集を行う。なお、この詳細は後述する。
【０１７６】
Ｓ６０７の処理では、Ｓ６０５において削除を指示された文字列フォーマットの集合を検出規則の要素のリストから削除する。その際、当該検出規則において、指定されたインデックス以降に文字列フォーマットの集合が存在すれば、それらのインデックスを１だけ減少させる。
【０１７７】
その後、テキスト変換辞書１０２３より文字列フォーマットテーブルを読み込み、当該テーブル中の文字列フォーマットの中から、削除を指示された文字列フォーマットの集合に属していた文字列フォーマットを１つ選択し（Ｓ６０８）、文字列フォーマットテーブルの参照カウンタを参照して選択した文字列フォーマットが他の検出規則の要素から利用されているか否か、つまり参照カウンタの値が２以上であるか否かを調査する（Ｓ６０９）。
【０１７８】
選択した文字列フォーマットが他の検出規則の要素として利用されていなければＳ６１１へ、他の検出規則の要素から参照されている場合にはＳ６１０へ進む。Ｓ６１０における処理では、当該文字列フォーマットの参照カウンタを１つだけ減らす。一方、Ｓ６１１における処理では、Ｓ６０７において読み込んだ文字列フォーマットテーブルより当該文字列フォーマットを削除する。なお、文字列フォーマットの削除処理の詳細は後述する。
【０１７９】
以上のように参照カウンタのデクリメントまたは文字列フォーマットの削除が終了すると、Ｓ６０７において削除を指示された文字列フォーマットの集合に他の要素（文字列フォーマット）が残っていればＳ６０８に戻り、他の要素が残っていなければＳ６０７において読み込んだ変更後の文字列フォーマットテーブルをテキスト変換辞書１０２３へ格納し、Ｓ６１３へ進む。
【０１８０】
Ｓ６１３の処理では、ユーザから編集終了の指示があったか否かが判別され、ユーザが終了を指示すれば、Ｓ６０１において読み込んだ検出規則を所定の形式でテキスト変換辞書１０２３へ格納し、検出規則の編集を終了する。また、図９に示した検出規則を編集するＧＵＩ画面を消去する。一方、ユーザが終了以外を選択した場合にはＳ６０２に戻る。
【０１８１】
次に、図２３および図２４を参照しながら、文字列フォーマットの集合を編集する際（図２２のＳ６０６）の処理について説明する。まず、テキスト変換辞書１０２３より、図２２のＳ６０２において利用者が選択した検索規則の要素である文字列フォーマットの集合に属する文字列フォーマット群を読み込み、リストを作成する（Ｓ７０１）。
【０１８２】
そして、Ｓ７０１において作成した文字列フォーマットのリストに属する文字列フォーマットか、属しない文字列フォーマットかの選択がユーザによってなされたか否かを判別し（Ｓ７０２）、当該選択があった場合において、その選択が文字列フォーマットを新規に追加することを希望するものか否かを判別する（Ｓ７０３）。そして、新規追加を希望するものであればＳ７０４へ進み、既に属している文字列フォーマットを選択するものであればＳ７１０へ進む。
【０１８３】
文字列フォーマットを新規追加することを希望する場合、テキスト変換辞書１０２３に格納された文字列フォーマットテーブル（図５参照）を読み込む。この際、図１３に示した文字列フォーマット選択ＧＵＩ画面を表示させ、現在編集対象となっている文字列フォーマットの集合に新たに追加する文字列フォーマットの選択をユーザに促す（Ｓ７０４）。
【０１８４】
そして、ユーザによって選択された文字列フォーマットが文字列フォーマットテーブルに登録されている既存のものであるか否かを判別し（Ｓ７０５）、既存のものあればＳ７０９へ、新規のもの、つまりテーブルに登録されていないものであればＳ７０６へ進む。Ｓ７０６における処理では、ユーザによって新規に作成する文字列フォーマットの識別子の指定がなされたか否かを判別し（Ｓ７０６）、指定があった場合には空の文字列フォーマットを作成し、文字列フォーマットＩＤを自動的に割り振る。そして、Ｓ７０４において読み込んだ文字列フォーマットテーブルに新規に作成した文字列フォーマットを登録し、読み込んだ文字列フォーマットテーブルをテキスト変換辞書１０２３に格納する。また、Ｓ７０１で作成した文字列フォーマットのリストにも、新規に作成した文字列フォーマットを登録し、新規に作成した文字列フォーマットを編集可能にする。
【０１８５】
Ｓ７０８においては、テキスト変換辞書編集部１０２４は、ユーザの指示内容にしたがってＳ７０７において作成した空の文字列フォーマットを編集し、変更した内容をテキスト変換辞書１０２３の文字列フォーマットテーブルに反映させる。なお、この処理の詳細は後述する。
【０１８６】
一方、Ｓ７０５の判別の結果、選択された文字列フォーマットが既存のものであった場合、選択した既存の文字列フォーマットの参照カウンタを１つだけ増加させ、Ｓ７０１で作成した文字列フォーマットのリストにも、追加する既存の文字列フォーマットを登録する（Ｓ７０９）。その後、追加する当該既存の文字列フォーマットを編集可能にする。
【０１８７】
Ｓ７１０における処理では、ユーザが選択した既存の文字列フォーマットの編集を希望しないか否かが判別され、編集を希望する場合にはＳ７１２へ進む。一方、編集を希望しなければＳ７０４において読み込んだ文字列フォーマットテーブルをテキスト変換辞書１０２３へ格納し、Ｓ７２２へ進む。
【０１８８】
Ｓ７０３における判別の結果、文字列フォーマットの新規追加ではなく、既にある文字列フォーマットを選択するものであった場合、Ｓ７０２においてユーザが選択した文字列フォーマットに対する処理が文字列フォーマットのリストから当該選択した文字列フォーマットの削除であるか否かを判別し（Ｓ７１１）、削除であればＳ７１８へ進み、削除ではなく編集であれば当該文字列フォーマットを編集可能な状態にしてＳ７１２へ進む。
【０１８９】
Ｓ７１２における処理では、テキスト変換辞書編集部１０２４は、編集対象となっている文字列フォーマットの参照カウンタを参照し、当該文字列フォーマットが他の検索規則の要素に属しているか否かを判別する（Ｓ７１３）。そして、他の検出規則に属していればＳ７１３へ進み、当該文字列フォーマットが他の検索規則の要素に属していなければＳ７１７へ進む。
【０１９０】
Ｓ７１３における処理では、当該文字列フォーマットを含む文字列フォーマットの集合を要素とする検出規則をテキスト変換辞書１０２３の検出規則テーブルから検索して読み込み、検出規則リストを作成する。その後、図１２に示した検出規則の要素を選択するＧＵＩ画面を表示させ、利用者がＳ７０２かＳ７０４において利用者が選択した文字列フォーマットに対する編集予定内容を反映させたい検出規則の要素の選択をユーザに促す。
【０１９１】
そして、ユーザが選択した文字列フォーマットの編集予定内容の反映先が、Ｓ７１３において作成した検出規則リストの全ての要素であるか否かを判別し（Ｓ７１４）、すべてが選択されたのであればＳ７１７へ進む。この際、以前の処理において文字列フォーマットテーブルを読み込んでいれば、テキスト変換辞書１０２３に文字列フォーマットテーブルを格納する。同時に、Ｓ７１３において読み込んだ検索規則リストを破棄する。
【０１９２】
一方、反映させる要素が全てでなければ、ユーザが選択した反映先の文字列フォーマットの集合を要素に持つ検出規則をリストとして保持し、Ｓ７１５に進む。Ｓ７１５における処理では、当該文字列フォーマットの複製を作成する。この際、以前の処理において文字列フォーマットテーブルが読み込まれていなければ、テキスト変換辞書１０２３から文字列フォーマットテーブルを読み込み、当該文字列フォーマットに新規の文字列フォーマットＩＤを割り振り、文字列フォーマットテーブルに登録する。また、Ｓ７１３において作成した検出規則リストより、変更を反映する要素である文字列フォーマットの集合を複製した文字列フォーマットＩＤを用いて更新する。
【０１９３】
さらに、Ｓ７１５における処理では、Ｓ７０１において作成した文字列フォーマットのリストも複製した文字列フォーマットの文字列フォーマットＩＤを用いて更新する。また、Ｓ７１３において作成した検出規則リストより複製の元となった文字列フォーマットと複製した文字列フォーマットの参照回数をカウントし、読み込まれている文字列フォーマットテーブルの各々の参照カウンタを更新する。また、テキスト変換辞書１０２３より文字データ集合テーブルを読み込み、複製した文字列フォーマットに含まれる文字データ集合の参照回数をカウントし、それらの参照カウントを更新する。その後、更新された文字列フォーマットテーブルと文字データ集合テーブルをテキスト変換辞書１０２３に格納する。最後に、Ｓ７１３において作成した検出規則リストの内容をテキスト変換辞書１０２３の検出規則テーブルに格納し、複製した文字列フォーマットを編集可能とする。
【０１９４】
以上のようなＳ７１５における文字列フォーマットの複製作成、登録等の処理が終了すると、ユーザから識別子の入力があったか否を判別し（Ｓ７１６）。ユーザから識別子の入力があると、その後ユーザの指示にしたがって既存の文字列フォーマットの編集処理が行われる（Ｓ７１７）。この処理の詳細は後述する。
【０１９５】
一方、Ｓ７１１の判別の結果、ユーザによって選択した文字列フォーマットの削除が指示された場合、Ｓ７０２においてユーザが選択した文字列フォーマットをＳ７０１において作成した文字列フォーマットのリストから削除する（Ｓ７１８）。そして、テキスト変換辞書１０２３から文字列フォーマットテーブルを読み込み、参照カウンタを参照して、ユーザが選択した削除対象となっている文字列フォーマットが他の検索規則の要素から参照されているか否かを判別する（Ｓ７１９）。
【０１９６】
そして、他の検索規則から参照されていればＳ７２０へ進み、参照されていなければＳ７２１へ進む。Ｓ７２０における処理では、当該文字列フォーマットの参照カウンタを１つだけ減らし、読み込んだ文字列フォーマットテーブルをテキスト変換辞書１０２３へ格納する。一方、Ｓ７２１における処理では、読み込んだ文字列フォーマットテーブルから当該文字列フォーマットを削除し、更新した文字列フォーマットテーブルをテキスト変換辞書１０２３へ格納する。この処理の詳細は後述する。
【０１９７】
Ｓ７２２における処理では、図２２のＳ６０２でユーザが選択した検出規則の要素である文字列フォーマットの集合にＳ７０１で作成した文字列フォーマットのリスト（上記各過程による編集等がなされたもの）を反映させ、７２３においてはユーザが編集終了を指示したか否かを判別する（Ｓ７２３）。ここで、ユーザが編集終了を選択すれば検出規則の１要素に対する編集処理を終了し、終了以外を選択した場合にはＳ７０２に戻る。
【０１９８】
次に、図２５を参照しながら、文字列フォーマットを文字列フォーマットテーブルから削除する際（図２２のＳ６１１と図２３のＳ７２１）の処理の全体的な流れを説明する。まず、文字データ集合テーブルをテキスト変換辞書１０２３から読み込み、文字列フォーマットテーブルからエントリーを抹消する処理を開始する（Ｓ２８０１）。
【０１９９】
次に、削除対象である文字列フォーマットのエントリーを文字列フォーマットテーブルより抹消する（Ｓ２８０２）。そして、削除対象である文字列フォーマットの全要素から１つの要素を選択し、選択した要素である文字データ集合の集合を文字列フォーマットから削除する（Ｓ２８０３）。
【０２００】
Ｓ２８０３において削除した文字データ集合の集合のから１つの文字データ集合を選択し、選択した文字データ集合を文字データ集合の集合から削除する（Ｓ２８０４）。そして、Ｓ２８０４において削除した文字データ集合に対してＳ２８０１において読み込んだ文字データ集合テーブルの参照カウンタから、当該文字データ集合が他の文字列フォーマットの要素に含まれているのか否かを判定する（Ｓ２８０５）。
【０２０１】
他の文字列フォーマットに含まれていればＳ２８０６へ進み、含まれていなければＳ２８０７へ進む。Ｓ２８０６における処理では、当該文字データ集合の参照カウンタを１つだけ減らす。一方、Ｓ２８０７における処理では、Ｓ２８０１において読み込んだ文字データ集合テーブルからＳ２８０４において削除した文字データ集合の登録を抹消する。
【０２０２】
以上のような処理が終わると、Ｓ２８０４において要素を削除されている文字データ集合の集合に要素が残っているか否かを判別し（Ｓ２８０８）、残っていればＳ２８０４に戻り、要素が残っていなければＳ２８０９へ進む。
【０２０３】
Ｓ２８０９における処理では、Ｓ２８０３において要素を削除されている文字列フォーマットに要素が残っているか否かが判別され、残っていればＳ２８０３へ進み、要素が残っていなければ文字データ集合テーブルと文字列フォーマットテーブルをテキスト変換辞書１０２３へ格納し、文字列フォーマットテーブルからエントリーを抹消する処理を終了する。
【０２０４】
次に、図２６を参照しながら、字列フォーマットを編集する際（図２３のＳ７０８とＳ７１７）の処理の全体的な流れを説明する。まず、編集対象である文字列フォーマットが読み込まれていなければ、テキスト変換辞書１０２３より当該文字列フォーマットを読み込む（Ｓ８０１）。また、図１１に示した文字列フォーマット編集用のＧＵＩ画面を表示させる。
【０２０５】
そして、文字列フォーマットの要素である文字データ集合の集合とその位置を選択するユーザ指示があったか否かを判別し（Ｓ８０２）、ユーザの選択指示があり、かかる指示により選択された文字列フォーマットの要素である文字データ集合の集合が新規の要素であるか否かを判別する（Ｓ８０３）。
【０２０６】
そして、選択された文字データ集合の集合が新規の要素ではなく、既存のものである場合にはＳ８０５へ進み、新規に作成されたものであればＳ８０４へ進む。Ｓ８０４における処理では、新しい文字データ集合の空集合を作成し、当該文字列フォーマットのユーザが選択した位置に挿入する。その際、当該文字列フォーマットにおいて、指定されたインデックス以降に文字データ集合の集合が存在すれば。それらのインデックスを１だけ増加させる。その後、当該文字データ集合の空集合を編集可能にする。
【０２０７】
Ｓ８０５における処理では、選択した文字列フォーマットの要素である文字データ集合の集合に対する指示が、当該文字データ集合の集合を削除すべき旨の指示であるか否かを判別し、削除すべき旨の指示であればＳ８０７へ、削除ではなく編集すべき旨の指示であればＳ８０６へ進む。
【０２０８】
Ｓ８０６における処理では、ユーザの指示等にしたがって選択した文字列フォーマットの要素である文字データ集合の集合に対する編集処理を行う。なお、この処理の詳細は後述する。
【０２０９】
Ｓ８０７における処理では、Ｓ８０５において削除を指示された文字データ集合の集合を文字列フォーマットの要素のリストから削除する。その際、当該文字列フォーマットにおいて、指定されたインデックス以降に文字データ集合の集合が存在すれば、それらのインデックスは１だけ減少させる。その後、テキスト変換辞書１０２３から文字データ集合テーブルを読み込む。
【０２１０】
そして、Ｓ８０７において削除された文字データ集合の集合に属している文字データ集合を１つ選択し（Ｓ８０８）、Ｓ８０７において読み込んだ文字データ集合テーブルの当該文字データ集合の参照カウンタを参照し、他の文字列フォーマットから利用されているか否かを調査する（Ｓ８０９）。
【０２１１】
そして、選択した文字データ集合が他の文字列フォーマットから参照されていなければＳ８１１へ進み、他の検出規則から参照されていればＳ８１０へ進む。Ｓ８１０における処理では、当該文字データ集合の参照カウンタを１つだけ減らす。Ｓ８１１における処理では、Ｓ８０７において読み込んだ文字データ集合テーブルから当該文字列フォーマットを削除する。
【０２１２】
以上のように参照カウンタの変更もしくは削除処理を行った後、Ｓ８０５において削除を指示された文字データ集合の集合に他の要素が残っているか否かを判別し（Ｓ８１２）、残っていればＳ８０８へ戻る。一方、他の要素が残っていなければＳ８０７において読み込んだ変更後の文字データ集合テーブルをテキスト変換辞書１０２３へ格納し、Ｓ８１３へ進む。
【０２１３】
Ｓ８１３においては、ユーザが終了を選択したか否かが判別され、終了が選択されれば、Ｓ８０１において読み込んだ文字列フォーマットを所定の形式でテキスト変換辞書１０２３の文字列フォーマットテーブルへ反映し、当該文字列フォーマットの編集を終了する。また。図１１に示した文字列フォーマット編集ＧＵＩ画面を消去する。一方、終了以外が選択された場合にはＳ８０２に戻る。
【０２１４】
次に、図２７および図２８を参照しながら、文字データ集合を編集する際（図２６のＳ８０６）の処理の全体的な流れを説明する。まず、テキスト変換辞書１０２３より、図２６のＳ８０２においてユーザが選択した文字列フォーマットの要素である文字データ集合の集合に属する文字データ集合群を読み込み、リストを作成する（Ｓ９０１）。
【０２１５】
そして、Ｓ９０１において作成した文字データ集合のリストに属する文字データ集合か、属しない文字データ集合の選択がユーザによってなされたか否かが判別され（Ｓ９０２）、選択がなされている場合にはその浅学が文字データ集合を新規に追加することを希望するものであるか否かが判別される（Ｓ９０３）。
【０２１６】
Ｓ９０３の判別の結果、文字データ集合を新規に追加することを利用者が希望していればＳ９０４へ進み、既に属している文字データ集合を選択していればＳ９１０へ進む。Ｓ９０４における処理では、テキスト変換辞書１０２３から文字データ集合テーブルを読み込むとともに、図１５に示した文字データ集合選択用のＧＵＩ画面を表示させて新規に追加する文字データ集合の選択するようユーザに促す。
【０２１７】
ここで、ユーザが選択した文字データ集合が文字データ集合テーブルに登録されている既存のものであるか否かが判別され、既存のものであればＳ９０８へ、新規のものであればＳ９０６へ進む。Ｓ９０６における処理では、空の文字データ集合を作成し、文字データ集合ＩＤ自動的に割り振り、Ｓ９０４において読み込んだ文字データ集合テーブルに新規に作成した文字データ集合を登録する。また、Ｓ９０１で作成した文字データ集合のリストにも、新規に作成した文字データ集合を登録する。その後、新規に作成した文字データ集合を編集可能にする。
【０２１８】
そして、Ｓ９０６において作成した空の文字データ集合に属する文字の集合がユーザによって入力されたか否かが判別され（Ｓ９０７）、入力がされた場合には入力テキストが文字列データに変換され、Ｓ９０６において作成した空の文字データ集合に所定の形式で格納される。また、この変更は、Ｓ９０１で作成した文字データ集合のリストにＳ９０６において登録された文字データ集合にも反映される。また、この変更は、Ｓ９０４において読み込まれた文字データ集合テーブルの当該文字データ集合にも反映される。その後、Ｓ９０４において読み込まれた文字データ集合テーブルはテキスト変換辞書１０２３に格納される。
【０２１９】
Ｓ９０８における処理では、Ｓ９０４においてユーザが選択した既存の文字データ集合の参照カウンタを１つだけ増加させ、Ｓ９０１で作成した文字データ集合のリストにも、追加する既存の文字データ集合を登録する。その後、追加する既存の文字データ集合を編集可能にする。
【０２２０】
そして、ユーザがＳ９０４において選択した既存の文字列フォーマットの編集を希望しているか否かを判別し（Ｓ９０９）、希望していればＳ９１１へ進み、希望しなければＳ９０４において読み込んだ文字データ集合テーブルをテキスト変換辞書１０２３へ格納し、Ｓ９２０へ進む。
【０２２１】
一方、Ｓ９０３における判別の結果、ユーザが文字データ集合の新規追加を希望するものではない場合、Ｓ９０２においてユーザが選択した文字列フォーマットに対する処理内容が、Ｓ９０１において作成した文字データ集合のリストからの削除であるか否かが判別される（Ｓ９１０）。ここでの判別の結果、ユーザの指示が削除であればＳ９１６へ進み、削除ではなく編集であればかかる文字列フォーマットを編集可能な状態にしてＳ９１１へ進む。
【０２２２】
Ｓ９１１における処理では、テキスト変換辞書編集部１０２４は、編集対象となっている当該文字データ集合の参照カウンタを参照し、当該文字データ集合が他の文字列フォーマットの要素に属しているか否かを判別する。そして、属していればＳ９１２へ進み、当該文字データ集合が他の文字列フォーマットの要素に属していなければＳ９１５へ進む。
【０２２３】
Ｓ９１２における処理では、当該文字データ集合を含む文字データ集合の集合を要素とする文字列フォーマットをテキスト変換辞書１０２３の文字列フォーマットテーブルから検索して読み込み、文字列フォーマットのリストを作成する。その後、図１４に示した文字列フォーマットの要素を選択するＧＵＩ画面を表示させ、選択した文字列フォーマットに対する編集予定内容を反映させたい文字列フォーマットの要素の選択をユーザに促す。
【０２２４】
そして、ユーザが選択した文字データ集合の編集予定内容の反映先がＳ９１２において作成した文字列フォーマットのリストの全ての要素であるか否かが判別され（Ｓ９１３）、すべてであればＳ９１５へ進む。この際、以前の処理において文字データ集合テーブルを読み込んでいれば、テキスト変換辞書１０２３に文字列フォーマットテーブルを格納する。また、Ｓ９１２において読み込んだ文字列フォーマットのリストを破棄する。
【０２２５】
一方、ユーザが選択した文字データ集合の編集予定内容の反映先が、文字列フォーマットのリストの全てでなければ、反映先の文字データ集合の集合を要素に持つ文字列フォーマットをリストとして保持し、Ｓ９１４へ進む。
【０２２６】
Ｓ９１４における処理では、当該文字データ集合の複製を作成する。この際、以前の処理において文字データ集合テーブルが読み込まれていなければ、テキスト変換辞書１０２３より文字データ集合テーブルを読み込み、当該文字データ集合に新規の文字データ集合ＩＤを割り振り、文字データ集合テーブルに登録する。また、Ｓ９１２において作成した文字列フォーマットのリストより、変更を反映する要素である文字データ集合の集合を複製した文字データ集合ＩＤを用いて更新する。
【０２２７】
さらに、Ｓ９１４における処理では、Ｓ９０１において作成した文字列フォーマットのリストも複製した文字データ集合の文字データ集合ＩＤを用いて更新する。また、Ｓ９１２において作成した文字列フォーマットのリストより複製の元となった文字データ集合と複製した文字データ集合の参照回数をカウントし、読み込まれている文字データ集合テーブルの各々の参照カウンタを更新する。その後、更新した文字データ集合テーブルをテキスト変換辞書１０２３に格納する。そして、Ｓ９１２において作成した文字列フォーマットのリストの内容をテキスト変換辞書１０２３の文字列フォーマットテーブルに格納し、複製した文字データ集合を編集可能にする。
【０２２８】
文字データ集合の変更を他の文字列フォーマットに反映させる処理等が終了すると、ユーザによって文字データ集合に属する文字の入力がなされたか否かが判別され（Ｓ９１５）、文字入力がなされた場合当該入力された文字は文字列データに変換され、当該文字データ集合に所定の形式で格納される。また、この変更は、Ｓ９０１で作成した文字データ集合のリストにＳ９０８において登録された文字データ集合にも反映される。さらに、この変更は、読み込まれた文字データ集合テーブルの当該文字データ集合にも反映される。この後、変更後の文字データ集合テーブルはテキスト変換辞書１０２３に格納される。
【０２２９】
次に、上記Ｓ９１０において、文字データ集合を削除すべきことを希望していると判別された場合、Ｓ９０２においてユーザが選択した文字データ集合をＳ９０１において作成した文字データ集合の集合から削除する（Ｓ９１６）。また、テキスト変換辞書１０２３から文字データ集合テーブルを読み込み、その参照カウンタを参照してユーザが選択した文字データ集合が他の文字列フォーマットの要素から参照されているかを判定する（Ｓ９１７）。
【０２３０】
そして、選択した文字データ集合が他の文字列フォーマットから参照されていればＳ９１８へ進み、参照されていなければＳ９１９へ進む。Ｓ９１８における処理では、当該文字データ集合の参照カウンタを１つだけ減らし、Ｓ９１７において読み込んだ文字データ集合テーブルをテキスト変換辞書１０２３に格納する。一方、Ｓ９１９における処理では、Ｓ９１７において読み込んだ文字データ集合テーブルから当該文字データ集合を削除し、更新した文字データ集合テーブルをテキスト変換辞書１０２３へ格納する。
【０２３１】
一方、文字データ集合が新規作成されたり、既存の文字データ集合が編集等された場合、図２６のＳ８０２でユーザが選択した文字列フォーマットの要素である文字データ集合の集合にＳ９０１で作成した文字データ集合のリストを反映させる（Ｓ９２０）。そして、ユーザが終了を選択したか否かが判別され、終了以外が選択された場合にはＳ９０２へ戻り、終了が選択された場合には文字列フォーマットの１要素に対する編集を終了する。
【０２３２】
次に、図２９を参照しながら、変換規則を編集する際（図２０のＳ５１５）の処理の全体的な流れを説明する。まず、図２０のＳ５０３においてユーザが選択した規則対の変換規則をテキスト変換辞書１０２３から読み込む（Ｓ１００１）。この際、当該識別子を持つ変換規則が変換規則テーブルに存在しない場合には、新規に作成・登録した空の変換規則を読み込む。その後、読み込んだ変換規則を編集可能な状態にし、図１０に示した変換規則を編集するためのＧＵＩ画面を表示させる。
【０２３３】
そして、ユーザによって変換規則の要素である文字列データソースとその位置の選択がなされたか否かが判別され（Ｓ１００２）、選択がなされた場合、選択した変換規則の要素である文字列データソースが新規の要素であるか否かが判別される（Ｓ１００３）。ここで、選択された文字データソースが既存のものであればＳ１００５へ、新規に作成するものであればＳ１００４へ進む。
【０２３４】
Ｓ１００４における処理では、新しい空の文字列データソースを作成し、Ｓ１００１において読み込んだ変換規則中でユーザが選択した位置に新たに作成した文字列データソースを挿入する。その際、当該変換規則において、指定されたインデックス以降に文字列データソースが存在すれば、それらのインデックス１を１だけ増加させる。その後、その空の文字列データソースを編集可能にする。
【０２３５】
Ｓ１００５における処理では、Ｓ１００３においてユーザが選択した変換規則の要素である文字列データソースに対するユーザの指示が削除すべき旨の指示であるか否かが判別される。ここで、ユーザが削除すべき旨の指示をなした場合にはＳ１００７へ、削除ではなく編集すべき旨を指示した場合には既存の文字列データソースを編集可能にしてＳ１００６へ進む。
【０２３６】
Ｓ１００６における処理では、テキスト変換辞書編集部１０２４は、ユーザの指示にしたがって選択した変換規則の要素である文字列データソースに対する編集処理を行う。なお、この処理の詳細は後述する。
【０２３７】
一方、Ｓ１００７における処理では、ユーザが選択した変換規則の要素である文字列データソースを当該変換規則から削除する。その際、当該変換規則において、指定されたインデックス以降に文字列データソースが存在すれば、それらのインデックスは１だけ減少させる。
【０２３８】
そして、削除対象である文字列データソースが変換文字列データハッシュテーブルに格納されている文字列データ（表）を示しているか否かが判別され、変換文字列データハッシュテーブルを示していればＳ１００９へ進む。一方、変換文字列データハッシュテーブル以外を示していれば、つまり当該変換規則の当該文字列データソースに格納されている文字列データを示しているか、もしくは当該検出規則の夫々の要素に合致した文字列データを示している場合にはＳ１０１２へ進む。
【０２３９】
Ｓ１００９における処理では、テキスト変換辞書１０２３より変換文字列データハッシュテーブル集合を読み込み、削除対象である文字列データソースが参照する変換文字列データハッシュテーブルの参照カウンタから当該変換文字列データハッシュテーブルが他の文字列データソースから参照されているか否かを判定する。
【０２４０】
そして、当該変換文字列データハッシュテーブルが他の文字列データソースから参照されていればＳ１０１０へ進み、参照されていなければＳ１０１１へ進む。Ｓ１０１０における処理では、当該変換文字列データハッシュテーブルの参照カウンタを１つだけ減らし、Ｓ１００９において読み込んだ変換文字列データハッシュテーブル集合をテキスト変換辞書１０２３へ格納する。一方、Ｓ１０１１における処理では、Ｓ１００９において読み込んだ変換文字列データハッシュテーブル集合から当該変換文字列データハッシュテーブルを削除し、当該変換文字列データハッシュテーブル集合をテキスト変換辞書１０２３へ格納する。
【０２４１】
そして、Ｓ１０１２における処理では、ユーザが終了を選択したか否かが判別され、終了以外の選択がなされた場合Ｓ１００２に戻り、終了が選択された場合にはＳ１００１において読み込んだ変換規則を所定の形式でテキスト変換辞書１０２３へ格納し、変換規則の編集を終了する。また、図１０に示した変換規則を編集するＧＵＩ画面を消去する。
【０２４２】
次に、図３０および図３１を参照しながら、文字列データソースを編集する際（図２９のＳ１００６）の処理の全体的な流れを説明する。図２９のＳ１００１においてユーザが選択した文字列データソースの編集が開始されると、編集対象である文字列データソースが既存のものであるか否かが判別される（Ｓ１００１）。ここで、編集対象たる文字列データソースが既存のものであればＳ１１０２へ進み、新規に作成するものであればＳ１１０９へ進む。
【０２４３】
文字列データソースが既存のものであれば、編集対象である既存の文字列データソースが示す文字列データの格納先の変更指示がなされたか否かが判別され（Ｓ１１０２）、ユーザが変更指示をなした場合にはＳ１１０３へ進み、変更指示をしなければＳ１１１８へ進む。
【０２４４】
Ｓ１１０４における処理では、編集対象である文字列データソースが変換文字列データハッシュテーブル（表）に格納されている文字列データであるか否かが判別され、変換文字列データハッシュテーブルに格納される文字列データであることを示していればＳ１１０４へ進む。一方、当該文字列データソースが、変換文字列データハッシュテーブルに格納される文字列データを示していない場合、つまり当該文字列データソースに格納されている文字列データを示しているか、当該変換規則に対応する検出規則の夫々の要素に合致した文字列データを示している場合にはＳ１１０７へ進む。
【０２４５】
Ｓ１１０４における処理では、テキスト変換辞書１０２３から変換文字列データハッシュテーブル集合を読み込み、編集対象である文字列データソースが参照する変換文字列データハッシュテーブルの参照カウンタを参照し、当該変換文字列データハッシュテーブルが他の文字列データソースから参照されているか否かを判定する。
【０２４６】
そして、当該変換文字列データハッシュテーブルが他の文字列データソースから参照されていればＳ１１０５へ進み、参照されていなければＳ１１０６へ進む。Ｓ１１０５においては、当該変換文字列データハッシュテーブルの参照カウンタを１つだけ減らし、Ｓ１１０４において読み込んだ変換文字列データハッシュテーブル集合をテキスト変換辞書１０２３へ格納する。一方、Ｓ１１０６においては、Ｓ１１０４において読み込んだ変換文字列データハッシュテーブル集合から当該変換文字列ハッシュテーブルを削除し、当該変換文字列データハッシュテーブル集合をテキスト変換辞書１０２３へ格納する。
【０２４７】
以上のような参照カウンタ変更や削除処理が行われた後、編集対象である既存の当該文字列データソースの内容を削除する（Ｓ１１０７）。そして、編集対象である文字列データソースによって示す文字列データの取得先がユーザによって選択されたか否かが判別され（Ｓ１１０８）、取得先が選択された場合にはその取得先が変換文字列データハッシュテーブル（表）であるか否かが判別される（Ｓ１１０９）。
【０２４８】
そして、取得先が変換文字列データハッシュテーブルであれば、テキスト変換辞書１０２３から変換文字列データハッシュテーブル集合を読み込み、Ｓ１１１３へ進む。一方、文字列データの取得先が変換文字列データハッシュテーブル以外であればＳ１１１０へ進む。
【０２４９】
Ｓ１１１０における処理では、ユーザによって選択された文字列データの取得先が、当該文字列データソースであるか否かが判別され、当該文字列データソースであればＳ１１１１へ進み、当該変換規則に対応する検出規則のそれぞれの要素に合致した文字列データであればＳ１１１２へ進む。
【０２５０】
Ｓ１１１１における処理では、ユーザによって当該文字列データソースとして当該文字列データソースの位置に挿入すべき文字列が入力されたか否かが判別され、入力された場合には入力文字列が文字列データに変換され、文字列データの取得先が文字列データソースであることを示した所定の形式で当該文字列データソースに格納される。
【０２５１】
Ｓ１１１２における処理では、当該文字列データソースとして当該文字列データソースの位置に挿入すべき文字列データと合致する検出規則の要素である文字列フォーマットの集合をインデックスで指定されたか否かが判別される。そして、インデックスが入力された場合そのインデックスは、文字列データソースの取得先が、指定したインデックスに対応する検出規則の要素と合致した文字列データであることを示す所定の形式で当該文字列データソースに格納される。
【０２５２】
一方、Ｓ１１０９において取得先が変換文字列データハッシュテーブルであった場合、ユーザからの識別子指定による変換文字列データハッシュテーブルの選択指示があったか否かが判別される（Ｓ１１１３）。そして、選択がなされた場合には、選択された変換文字列データハッシュテーブルが変換文字列データハッシュテーブル集合に登録されている既存の変換文字列データハッシュテーブルであるか否かが判別される（Ｓ１１１４）。
【０２５３】
選択された変換文字列データハッシュテーブルが既存のものであればＳ１１１５に進み、新規のものであればＳ１１１６へ進む。Ｓ１１１５における処理では、選択された既存の変換文字列データハッシュテーブルの内容をテキスト変換辞書１０２３から読み込み、編集可能にする。一方、Ｓ１１１６における処理では、空の変換文字列データハッシュテーブルを作成し、編集可能な状態にするとともに、識別子と新規に作成した当該変換文字列データハッシュテーブルとを変換文字列データハッシュテーブル集合に登録する。
【０２５４】
以上のように選択された変換文字列データハッシュテーブルが編集可能になされると、テキスト変換辞書編集部１０２４は、ユーザの指示等にしたがって選択した変換文字列データハッシュテーブルを編集する（Ｓ１１１７）。なお、この処理の詳細は後述する。
【０２５５】
一方、Ｓ１１０３における判別において、編集対象である既存の文字列データソースが示す文字列データの格納先の変更指示がなされていないと判別された場合、図２９のＳ１００２においてユーザが選択した既存の文字列データソースの文字列データ取得先が、変換文字列データハッシュテーブル（表）であるか否かが判別される（Ｓ１１１８）。
【０２５６】
そして、取得先が変換文字列データハッシュテーブルであれば、テキスト変換辞書１０２３より変換文字列データハッシュテーブル集合を読み込んでＳ１１１５へ進み、取得先がそれ以外であればＳ１１１９へ進む。Ｓ１１１９における処理では、図２９のＳ１００２においてユーザが選択した既存の文字列データソースの文字列データ取得先が、当該文字列データソース（固定文字列）であるか否かが判別され、そうであればＳ１１２０へ進み、当該変換規則に対応する検出規則のそれぞれの要素に合致した文字列データであればＳ１１２１へ進む。
【０２５７】
Ｓ１１２０における処理では、ユーザから当該文字列データソースとして当該文字列データソースの位置に挿入すべき文字列がテキストとして入力されたか否かが判別され、入力された文字列は文字列データに変換され、文字列データの取得先が文字列データソースであることを示した所定の形式で当該文字列データソースに格納される。
【０２５８】
一方、Ｓ１１２１における処理では、ユーザから当該文字列データソースとして当該文字列データソースの位置に挿入すべき文字列データと合致する検出規則の要素である文字列フォーマットの集合がインデックスで指定されたか否かが判別される。そして、入力されたインデックスは文字列データソースの取得先が、指定したインデックスに対応する検出規則の要素と合致した文字列データであることを示す所定の形式で当該文字列データソースに格納される。
【０２５９】
以上のような編集処理等が終了すると、編集済みの文字列データソースが図２９のＳ１００２においてユーザが選択した変換規則の位置に設定され（Ｓ１１２２）、文字列データソースの編集が終了する。
【０２６０】
次に、図３２を参照しながら、変換文字列データハッシュテーブルを編集する際（図３０のＳ１１１８）の処理の全体的な流れを説明する。まず、テキスト変換辞書編集部１０２４は、図１６に示した変換文字列データハッシュテーブル編集用のＧＵＩ画面を表示させ、変換文字列データハッシュテーブルの編集を開始する（Ｓ１２０１）。
【０２６１】
そして、当該変換文字列データハッシュテーブルの識別子を利用者が変更した場合、変換文字列データハッシュテーブルと変換文字列データハッシュテーブル集合にその変更内容を反映させる（Ｓ１２０２）。次に、当該変換文字列データハッシュテーブルのＫｅｙとなる文字列データのリストを作成する（Ｓ１２０３）。ここで、リストは、ユーザが指定した検出規則の要素である文字列フォーマットの集合に合致する文字列データを展開することで作成される。
【０２６２】
続いて、現在の変換文字列データハッシュテーブルのＫｅｙのリストと、Ｓ１２０３において作成したＫｅｙのリストとを比較し、リストが変更されているか否かを判別する（Ｓ１２０４）。変更がなされていればＳ１２０５へ進み、変更がなければＳ１２０６へ進む。Ｓ１２０５における処理では、当該変換文字列データハッシュテーブルを、Ｓ１２０３で作成したＫｅｙリストによって含まれる文字列があった場合に、その文字列と置き換える文字列データを導出するように移行する。つまり、リストの変更をテーブルに反映させる。その際、現在の変換文字列データハッシュテーブルのＫｅｙリストのある要素がＳ１２０３において作成したＫｅｙリストに含まれていれば、同一の文字列データが取得可能なように対応関係を維持したままに移行する。一方、Ｓ１２０３で作成したリストに含まれていなければ、対応する文字列データは破棄される。また、Ｓ１２０３で作成したＫｅｙリストのうち、対応する文字列データが指定されていないエントリーに関しては空の文字列データが導出される。
【０２６３】
そして、ユーザからのＫｅｙを指定することによって行われる編集を希望する当該変換文字列データハッシュテーブルのエントリー選択指示があり（Ｓ１２０６）、ユーザから選択したエントリーが導出する文字列のテキスト入力があった場合（Ｓ１２０７）、入力されたテキストは文字列データに変換され、ユーザが選択したエントリーに所定の形式で格納される。そして、編集されたエントリーの変更を変換文字列データハッシュテーブルに反映させる（Ｓ１２０８）。
【０２６４】
この後、ユーザが終了を選択したか否かが判別され（Ｓ１２０９）、終了以外が選択された場合にはＳ１２０６へ戻り、終了が選択された場合には変更された変換文字列データハッシュテーブルと変換文字列データハッシュテーブル集合をテキスト変換辞書１０２３へ格納する。そして、図１６に示した変換文字列データハッシュテーブル編集ＧＵＩ画面を消去する。
【０２６５】
（テキスト音声合成装置の処理の具体例）
以上が本発明に係るテキスト音声合成装置においてテキスト変換辞書を編集する際に行われる処理である。次に、生年月日等の年号に関する略記が含まれた入力テキストを当該テキスト音声合成装置１０００に読上げさせる場合を例に挙げ、当該テキスト音声合成装置の具体的な処理内容について説明する。
【０２６６】
本例では、以下のような内容の処理が行われた場合を例に挙げて説明する。まず、処理開始前の時点におけるテキスト変換辞書１０２３に格納されている規則対テーブル（図３３）、検出規則テーブル（図３４）、文字列フォーマットテーブル（図３５）、文字データ集合テーブル（図３６）、変換規則テーブル（図３７）、変換文字列データハッシュテーブル（図３８）がそれぞれ図示のような状態にあったとする。
【０２６７】
テキスト変換辞書１０２３の各テーブル等の内容が上記のような場合においては、「私の生年月日は、1975年11月20日(S50.11.20)です。」なる入力テキストに対しては、「S50.11.20」の部位を一般的な読み方「ショウワゴジュウネンジュウイチガツニジュウニチ」と読み替えるための検出規則と変換規則は存在しない。したがって、上記のようなテキストが入力された場合にもテキスト変換部１０２１においては表記の変換がなされない。したがって、言語解析部１０２２以降の処理において正しい読み付けがなされない場合には、利用者の望む音声（カタカナで示したような読み方の音声）が得られない。
【０２６８】
したがって、テキスト音声合成装置１０００においても上記のようなテキストが入力された場合であっても一般的な読み上げがなされるよう、略記を除いた記述「私の生年月日は、1975年11月20日(昭和50年11月20日)です。」といったようにテキストが変換されるよう、テキスト変換辞書１０２３の内容を編集する必要がある。つまり、テキスト変換辞書編集部１０２４を用いて入力テキスト中の「S50.11.20」を検出し、これを「昭和50年11月20日」に変換する規則をテキスト変換辞書１０２３に登録すればよいのである。このようにすることで、テキスト音声合成装置１０００は、「私の生年月日は、1975年11月20日(S50.11.20)です。」といったテキストが入力された場合であっても、「私の生年月日は、1975年11月20日(昭和50年11月20日)です。」を入力した場合と同等の音声を出力することが可能となる。
【０２６９】
そして、このような「年号を用いた日付」に対する表記は、上記の「S50.11.20」に限らず、「Ｍ30.11.20」などほかにも多数存在する。したがって、今回の入力対象となっている「S50.11.20」に限らず、他の「年号を用いた日付」が入力された場合にも一般的な読み方に変換されるような登録を行うことができると便利であり、このような機能が要求される。そして、上述したように本実施の形態にかかるテキスト音声合成装置１０００では、入力テキスト中から決められたある文字列を検出し、検出した文字列を他の文字列に変換するといった一対一のテキスト変換を行うのではなく、入力テキスト中の特定のパターンに合致する文字列を検出し、それを検出パターンとは異なる他のパターンに合致する文字列に変換することができる。したがって、検出および変換のパターン構成等に関する指示をなすことで、特定の文字列といった形ではなく、検出規則や変換規則がパターンとして登録され、上記のような要求にこたえることができる。
【０２７０】
以下、このような数字やアルファベットが異なる種々の「年号を用いた日付」テキストが入力された場合であっても、それを一般的な読み方に対応するテキストに変換するための規則を登録し、利用する場合を例にとり、説明する。
【０２７１】
まず、ユーザは「年号を用いた日付」に対する略記を以下の様にパターン化し、テキスト変換辞書１０２３に登録すればよい。「ＭＴＳＨ」の何れかの「年号」を表した１文字に続いて、２桁の数字「年」が続き、次に年と月を分ける分割文字である「．」が１文字続き、次に２桁の数字「月」が続き、さらに分割文字である「．」が１文字続き、最後に２桁の数字「日」が続くといったパターンを検出パターンとする。これにより、年号を示すアルファベットや具体的な月日を示す数字が異なる「年号を用いた日付」を示す文字列を含むテキストであれば、どのようなテキストが入力された場合であっても、年号を用いた日付に関する文字列を検出することができる。
【０２７２】
また、上記のように検出した文字列を変換する規則として以下の様なパターンを登録すれば、上記のような変換がなしうることになる。まず、「年号」の部位は、検出文字が「Ｍ」なら「明治」、「Ｔ」なら「大正」、「Ｓ」なら「昭和」、「Ｈ」なら「平成」に変換する。次に、「年」の部位においては、検出文字である２桁の数字の後に文字「年」を付加することで正しく読まれるので、２桁の数字はそのままにしてその後に「年」を挿入する。続いて、「分割文字」は「.」は削除する。次に、「月」の部位においては、検出文字である２桁の数字の後に文字「月」を付加することで正しく読まれるので、２桁数字である検出文字はそのままにしてその後に「月」を挿入する。続いて、「分割文字」である「.」は削除する。最後に「日」の部位は、２桁の検出文字の後に「日」を付加することで正しく読まれるので、検出文字をそのままにしてその後に文字「日」を挿入する。
【０２７３】
以下では、ユーザがＧＵＩ画面等を介して、上記のような検出および変換のパターン構成に関する指示をなし、この指示に応じてテキスト変換辞書編集部１０２４が上記のようなパターンを検出規則と変換規則として登録する際の手順や処理等の流れを説明する。
【０２７４】
まず、ユーザは、テキスト音声合成装置１０００に対してテキスト変換辞書１０２３の編集を行う旨の指示をなす。これによりテキスト音声合成装置１０００のテキスト変換辞書編集部１０２４が動作を開始し、テキスト変換辞書編集部１０２４は、図３３に示したテキスト変換辞書１０２３に格納された規則対を読み込み、図３９に示すような規則対編集ＧＵＩ画面を表示させる（図２０のＳ５０２）。
【０２７５】
ユーザは図３９に示す画面における規則対編集領域１００の「新規作成」ボタンをクリックする。かかるクリック操作に応じてテキスト変換辞書編集部１０２４は、ユーザが新規に規則対を作成する琴を要求していることを判別し（図２０のＳ５０４）、新しい規則対を作成し（Ｓ５０５）、その規則対を規則対テーブルに追加する。
【０２７６】
次に、ユーザは、上記のような規則対の新規作成処理により規則対編集領域１００に表示された新規の規則対レコードの識別子フィールドをクリック等することで選択する。かかる選択操作に応じてテキスト変換辞書編集部１０２４は、Ｓ５０７、Ｓ５０９、Ｓ５１０において、利用者が当該規則対の「識別子」の編集することを希望していることを判別する（Ｓ５０７、Ｓ５０９、Ｓ５１０）。
【０２７７】
そして、ユーザはテキストボックス１０２に識別子「日付（年号）」を入力し、「ＯＫ」ボタンをクリックする。これによりテキスト変換辞書編集部１０２４は、識別子「日付（年号）」を規則対テーブルの当該規則対レコードの「識別子」フィールドに格納するとともに、規則対編集ＧＵＩ画面を図４０に示す画面に更新する。
【０２７８】
同図に示すように、規則対編集ＧＵＩ画面には、ユーザが新規作成を指示した識別子「日付（年号）」の規則対が規則対編集領域１００内に、入力された識別子のみからなる検出規則および変換規則が規則選択領域１０１内に表示される。
【０２７９】
この後、ユーザはかかる画面を利用し、当該規則対の検出規則を編集する為に、既に作成した規則対を選択する。かかる操作によりテキスト変換辞書編集部１０２４は、既存の規則対に対する編集であることを判別する（Ｓ５０４）。
【０２８０】
そして、ユーザは規則選択領域１０１の検出規則を選択する。テキスト変換辞書編集部１０２４は、ユーザの指示した処理内容（編集）が削除ではないことを判別し（Ｓ５０７）、さらにユーザが当該規則対の検出規則の編集を望んでいることを判別する（Ｓ５０９、Ｓ５１３）。このユーザの要求に応じて空の検出規則を作成・登録し、図４１に示す検出規則編集ＧＵＩ画面Ｇ３１−１を表示させる。
【０２８１】
ユーザは、図４１に示した検出規則編集ＧＵＩ画面の検出規則編集領域１０４のテキストボックス１０４−１に編集対象インデックスを示す「０」を入力し、「追加」ボタンをクリックする。この操作に応じてテキスト変換辞書編集部１０２４は、ユーザが新しい要素の追加を望んでいることを判別し（図２２のＳ６０３）、文字列フォーマットの空集合を作成し、当該検出規則の指定されたインデックス「０」に対応する位置に挿入する（Ｓ６０４）。
【０２８２】
テキスト変換辞書編集部１０２４は、ユーザが選択した当該検出規則の要素である文字列フォーマットの集合に属する文字列フォーマットをテキスト変換辞書１０２３より読み込み（図２３のＳ７０１）、当該検出規則の要素を編集可能な状態にして図４２に示すようにＧＵＩ画面の表示を更新させる。つまり、図４１に示す画面内容に、編集を行う対象として指定した検出規則の要素であるインデックス「０」に対応する部分が加えられた画面が表示される。
【０２８３】
ユーザは、図４２示した検出規則編集ＧＵＩ画面の文字列フォーマット集合編集領域１０５の「追加」ボタンをクリックし、当該検出規則の要素に文字列フォーマットを追加することを指示する。かかる操作に応じてテキスト変換辞書編集部１０２４は、ユーザが新規に文字列フォーマットを追加することを希望していることを判別し（Ｓ７０３）、図４３に示す文字列フォーマット選択用のＧＵＩ画面を表示させる。
【０２８４】
そして、ユーザは、図４３に示す文字列フォーマット選択用のＧＵＩ画面の「新規追加」ボタンをクリックし、新規に文字列フォーマットを作成することを指示する。かかる操作に応じてテキスト変換辞書編集部１０２４は、ユーザが新規の文字列フォーマットを作成することを希望していることを判別し（Ｓ７０５）、識別子の入力待ち状態となる（Ｓ７０６）。
【０２８５】
ユーザが図４２に示す検出規則編集ＧＵＩ画面中のテキストボックス１０６に識別子「年号」を入力し、「ＯＫ」ボタンをクリックして当該文字列フォーマットの識別子を指定する。かかる操作に応じてテキスト変換辞書編集部１０２４は、空の文字列フォーマット「年号」を作成・登録し（Ｓ７０７）、その文字列フォーマットを編集可能な状態にし、図４４に示す文字列フォーマット編集ＧＵＩ画面を表示させる。
【０２８６】
ユーザは、図４４に示す文字列フォーマット編集ＧＵＩ画面の文字列フォーマット編集領域１０８のテキストボックス１０８−１に「０」を入力して「追加」ボタンをクリックし、当該文字列フォーマットの要素であるインデックス「０」の位置に新しい要素を挿入することを指示する。かかる操作に応じてテキスト変換辞書編集部１０２４は、ユーザが新しい要素の追加を希望していることを判別し（Ｓ８０３）、文字データ集合の空集合を作成し、当該文字列フォーマットの所定の位置に挿入する（Ｓ８０４）。
【０２８７】
テキスト変換辞書編集部１０２４は、ユーザが選択した当該文字列フォーマットの要素である文字データ集合の集合に属する文字データ集合をテキスト変換辞書１０２３より読み込み（図２７のＳ９０１）、当該文字列フォーマットの要素を編集可能な状態にして図４５に示すように文字列フォーマット編集ＧＵＩ画面を更新する。
【０２８８】
ユーザは図４５に示した文字列フォーマット編集ＧＵＩ画面の文字データ集合編集領域１０９の「追加」ボタンをクリックし、当該文字列フォーマットの要素に文字データ集合を追加することを指示する。かかる操作に応じてテキスト変換辞書編集部１０２４は、ユーザが新規に文字データ集合を追加していることを希望していることを判別し（Ｓ９０３）、図４６の文字データ集合選択用のＧＵＩ画面を表示させる。
【０２８９】
そして、ユーザは、文字データ集合選択ＧＵＩ画面中の「新規追加」ボタンをクリックして新規に文字データ集合を作成することを指示する。かかる操作に応じてテキスト変換辞書編集部１０２４は、ユーザが新規の文字データ集合を作成することを希望していることを判別し（Ｓ９０５）、空の文字データ集合（ＩＤ＝「１０」）を作成・登録し、その文字データ集合を編集可能な状態にし、さらに図４７に示すように文字列フォーマット編集ＧＵＩ画面更新する。
【０２９０】
ユーザは、図４７に示す文字列フォーマット編集ＧＵＩ画面のテキストボックス１１０にテキスト「ＭＴＳＨ」を入力し、「ＯＫ」ボタンをクリックして当該文字データ集合の要素として「Ｍ」、「Ｔ」、「Ｓ」、「Ｈ」を登録する。かかる操作に応じてテキスト変換辞書編集部１０２４は、新規に作成した文字データ集合「１０」を当該文字列フォーマット「年号」のインデックス「０」の要素に反映させ（Ｓ９２０）、図４８に示ようにＧＵＩ画面を更新する。
【０２９１】
ユーザは図４８に示す文字列フォーマット編集画面の終了ボタン１０９−２をクリックし、文字列フォーマット「年号」の要素である文字データ集合の集合の編集終了を指示するとともに、図４８の文字列フォーマット編集画面の終了ボタン１１１をクリックし文字列フォーマット「年号」の編集終了を指示する。かかる操作に応じてテキスト変換辞書編集部１０２４は、新規に作成した文字列フォーマット「年号」を検出規則「日付（年号）」の要素であるインデックス「０」に反映させ、図４９に示した検出規則編集ＧＵＩ画面を表示させる。
【０２９２】
ユーザは当該検出規則編集画面の終了ボタン１０５−２をクリックし、検出規則「日付（年号）」の要素であるインデックス「０」の文字列フォーマットの集合の編集終了を指示する。これにより年号を含むテキストを検出するためのパターンの１つ目の構成要素である年号「Ｍ」、「Ｔ」、「Ｓ」、「Ｈ」を検出できる要素（文字列フォーマットの集合）についての編集が終了する。
【０２９３】
続いてユーザは、検出パターンの１つ目の要素となる「年号」に続く、２つ目の要素である２桁の数字「年」の編集を開始する。まず、ユーザは、検出規則の２つめの要素についての編集であるから、インデックス「０」の次にインデックス、つまり検出規則のインデックス「１」の位置に文字列フォーマットの集合を挿入し、その空集合に文字列フォーマットを追加することを指示する。
【０２９４】
このような指示がなされた後の時点で表示される画面には、インデックス「１」を挿入することが反映されることになり、図５０に示すような検出規則編集ＧＵＩ画面が表示される。そして、上記指示にしたがいテキスト変換辞書編集部１０２４は、ユーザが新規に文字列フォーマットを追加することを希望していることを判別し（Ｓ７０３）、図５１に示す文字列フォーマット選択ＧＵＩ画面を表示させる。
【０２９５】
ユーザが、当該文字列フォーマット選択ＧＵＩ画面中の文字列フォーマット「年（西暦）」を選択し、「既存選択」ボタンをクリックする。かかる操作に応じてテキスト変換辞書編集部１０２４は、ユーザが既存の文字列フォーマットを追加することを希望していることを判別し（Ｓ７０５）、選択された文字列フォーマット「年（西暦）」の参照カウンタを１つだけ増加させるとともに、検出規則のインデックス「１」の要素に対応する文字列フォーマットの空集合に当該文字列フォーマット「年（西暦）」を登録し、編集可能な状態にする。
【０２９６】
この時点では図５２に示すような検出規則編集ＧＵＩ画面が表示される。つまり、文字列フォーマット集合編集領域１０５には選択した既存の文字列フォーマットがそのまま表示される。ユーザは既存の文字列フォーマットをいったんコピーしてそれを編集して新たな文字列フォーマットを作成することとし、最初から新規に作成する場合と比して操作量を削減することができる。
【０２９７】
まず、ユーザは当該画面中の文字列フォーマット集合編集領域１０５の文字列フォーマット「年（西暦）」を選択し、「編集」ボタンをクリックする。かかる操作に応じてテキスト変換辞書編集部１０２４は、ユーザが既存の文字列フォーマットの編集を希望していることを判別し（Ｓ７１０）、また参照カウンタを参照することで当該文字列フォーマット「年（西暦）」が他の検索規則「日付（西暦）」の要素「インデックス０」に属していることを判別する（Ｓ７１２）。
【０２９８】
テキスト変換辞書編集部１０２４は、ユーザが編集を希望する文字列フォーマット「年（西暦）」の反映先をユーザに選択させるために、図５３に示す検出規則の要素の選択ＧＵＩ画面を表示させる。ユーザは、かかる画面を参照しながら変更を反映させない検出規則の要素を外し、「ＯＫ」ボタンをクリックする。この操作に応じて表示画面が図５４に示すような画面に更新される。つまりユーザが反映先として選んだ識別子「日付（年号）」のインデックス「１」という要素が色付け等された、つまり反映先として選んだ要素を明確に判別できるような表示がなされる。
【０２９９】
以上のようにユーザは上記要素のみを選んでいることから、テキスト変換辞書編集部１０２４は、当該編集対象である文字列フォーマット「年（西暦）」の反映先が全てではないことを判別する（Ｓ７１４）。そして、テキスト変換辞書編集部１０２４は、文字列フォーマット「年（西暦）」の複製を作成し、当該文字列フォーマットに新しいＩＤ「１０」を割り振り、文字列フォーマットテーブルに登録する（Ｓ７１５）。また、テキスト変換辞書１０２３から文字データ集合テーブルを読み込んで、文字列フォーマット「１０」が参照している文字データ集合の参照カウンタを増やす。その後、更新した文字列フォーマットテーブルと文字データ集合テーブルをテキスト変換辞書１０２３に格納する。また、変更を反映する他の検出規則の要素である文字列フォーマットの集合は存在しないので、そのままの内容をテキスト変換辞書１０２３の検出規則テーブルに格納する。また、当該編集対象である文字列フォーマットの集合も複製した複製した文字列フォーマットＩＤ「１０」で更新し、複製した文字列フォーマットを編集可能とする。
【０３００】
以上のように編集可能となった状態でユーザは図５５に示す検出規則編集ＧＵＩ画面中の文字列フォーマット集合編集領域１０５のレコード「１０」の「識別子」フィールドをクリックしてテキストボックス１０６に「年（年号）」を入力し、「ＯＫ」ボタンをクリックする。これによりテキスト変換辞書編集部１０２４は、文字列フォーマット「１０」の識別子を「年（西暦）」から「年（年号）」に変更し、その後、図５６に示す文字列フォーマット編集ＧＵＩ画面を表示させる。
【０３０１】
そして、ユーザは当該文字列フォーマット編集ＧＵＩ画面の文字列フォーマット編集領域１０８のテキストボックス１０８−１に「０」を入力し、「削除」ボタンをクリックし、当該文字列フォーマットのインデックス「０」の位置にある既存の要素（０１２３‥‥）を削除する。これによりテキスト変換辞書編集部１０２４は、利用者が既存の要素の削除を希望していることを判別し（Ｓ８０３、Ｓ８０５）、その要素である文字データ集合の集合を当該文字列フォーマットから削除する（Ｓ８０７）。その際、指定されたインデックス「０」以降に要素が存在するので、後続の各インデックスを１だけ減少させる。
【０３０２】
テキスト変換辞書編集部１０２４は、削除対象である要素に属している文字データ集合の中の一つ、ここでは「１」を選択し（Ｓ８０８）、当該文字データ集合が他の文字列フォーマットから利用されているので（Ｓ８０９）、当該文字データ集合「１」の参照カウンタを１だけ減少させ、削除対象である要素に他の文字データ集合が属していないことから（Ｓ８１２）、文字データ集合テーブルの変更を終了する。
【０３０３】
また、ユーザは文字列フォーマット編集ＧＵＩ画面を用いて要素（インデックス「２」、「３」に対応する部分）の削除を指示することで、文字列フォーマット「年（年号）」を２桁の数字に対応する文字列フォーマットに変更する。これによりテキスト変換辞書編集部１０２４は、この削除を含む編集処理を行い、当該編集結果が反映されたＧＵＩ画面（図５７参照）が表示される。
【０３０４】
ユーザは図５７に示す文字列フォーマット編集画面の終了ボタン１１１をクリックし、文字列フォーマット「年（年号）」の編集終了を指示する。これによりテキスト変換辞書編集部１０２４は、文字列フォーマット「年（年号）」を検出規則「日付（年号）」の要素であるインデックス「１」に反映させ（Ｓ７２２）、その編集内容が反映された検出規則編集ＧＵＩ画面（図５８参照）を表示させる。
【０３０５】
ユーザは、かかる検出規則編集画面の終了ボタン１０５−２をクリックし、検出規則「日付（年号）」の１つの要素であるインデックス「１」の文字列フォーマットの集合の編集終了を指示する。これにより年号（Ｍ、Ｈなど）などを含むテキストを検出するためのパターンの２つ目の構成要素である年を表す２桁の数字を検出できる要素（文字列フォーマットの集合）についての編集が終了する。
【０３０６】
続いてユーザは、検出パターンの２つ目の要素となる「年」（２桁数字）に続く、３つ目の要素である分割文字「.」の編集を開始する。まず、ユーザは、検出規則の３つめの要素についての編集であるから、インデックス「１」の次にインデックス、つまり検出規則のインデックス「２」の位置に文字列フォーマットの集合を挿入し、その空集合に文字列フォーマットを追加することを指示する。そして、既存の文字列フォーマット「分割文字１」を選択する。この時点での検出規則編集ＧＵＩ画面は図５９に示すような状態となる。
【０３０７】
そして、ユーザは当該検出規則編集画面の終了ボタン１０５−２をクリックし、検出規則「日付（年号）」の要素である文字列フォーマットの集合の編集終了を指示する。このような一連の操作に応じてテキスト変換辞書編集部１０２４は、ユーザが追加した文字列フォーマットを編集しないことを希望していることを判別し（Ｓ７１０）、文字列フォーマット「分割文字１」を検出規則「日付（年号）」の一つの要素であるインデックス「２」に反映させ、その編集を反映させた検出規則編集ＧＵＩ画面（図６０参照）を表示させる。そして、検出規則「日付（年号）」の要素であるインデックス「２」の文字列フォーマットの集合の編集を終了する。
【０３０８】
この後、ユーザは、上記３つの要素の編集時と同様に、検出規則「日付（年号）」の４つめ以降の要素である「月」、「分割文字」、「日」を表現する文字列フォーマット集合を検出規則の要素として順に登録操作を行う。このような操作が行われると、当該操作に応じた編集がテキスト変換辞書編集部１０２４によって行われ、図６１に示すような検出規則編集ＧＵＩ画面が表示される。つまり、検出規則「日付（年号）」として、最初に「Ｍ」、「Ｔ」、「Ｓ」、「Ｈ」の年号を表現するアルファベットのいずれかがあり、その次に２桁の数字（年）、さらにその次に分割文字、その次に２桁の数字（月）、その次に分割文字、最後に２桁の数字（日）といったパターンの文字列を検出する規則を登録することができる。
【０３０９】
最後にユーザは、図６１に示される検出規則編集ＧＵＩ画面の終了ボタン１０７をクリックし、検出規則「日付（年号）」の編集終了を指示する。これに応じてテキスト変換辞書編集部１０２４は、検出規則「日付（年号）」のＩＤ「２」を規則対テーブルの当該規則対レコードの「検出規則」フィールドに格納し、図６２に示すような規則対編集ＧＵＩ画面を表示させる。
【０３１０】
以上のように検出規則「日付（年号）」の登録編集が終了すると、続いて当該検出規則に対応する変換規則の登録編集を行う。まず、ユーザは、当該規則対の変換規則を編集するために、既に作成した規則対を選択する。この選択操作に応じてテキスト変換辞書編集部１０２４は、既存の規則対に対する編集であることを判別する（図２０のＳ５０４）。
【０３１１】
ユーザは、図６２に示す画面中の規則選択領域１０１で変換規則を選択する。これによりテキスト変換辞書編集部１０２４は、ユーザの編集処理が削除ではないことを判別し（Ｓ５０７）、ユーザが当該規則対の変換規則の編集を望んでいることを判別し（Ｓ５０９、Ｓ５１３）、空の変換規則を作成・登録し（Ｓ５１５）、図６３に示す検出規則編集ＧＵＩ画面を表示させる。
【０３１２】
ユーザは、図６２に示す変換規則ＧＵＩ画面の変換規則編集領域１１２のテキストボックス１１２−１に「０」を入力して「追加」ボタンをクリックし、当該変換規則のインデックス「０」の位置に新しい要素を挿入すべきことを指示する。この操作に応じてテキスト変換辞書編集部１０２４は、利用者が新しい要素の追加を望んでいることを判別し（Ｓ１００３）、空の文字列データソースを作成し、当該変換規則の指定された位置に挿入する（Ｓ１００４）。
【０３１３】
テキスト変換辞書編集部１０２４は、ユーザが新規に追加した要素である文字列データソースの編集を可能にし（図３０のＳ１１０１）、当該編集対象である文字列データソースが新規に作成されたものであることを判別する（Ｓ１１０２）。
【０３１４】
この後、ユーザは当該文字列データソースが取得する文字列データの取得先を選択する。ここで登録しようとする規則は、検出規則の要素であるインデックス「０」の文字列フォーマットの集合に合致する文字「Ｍ」、「Ｔ」、「Ｓ」、「Ｈ」を「明治」、「大正」、「昭和」、「平成」に変換させるためのものである。現在、変換文字列データハッシュテーブル（図３８）にはこのような変換を実現するためのハッシュテーブルが登録されていないため、このような変換を実現するための新たな変換文字列データハッシュテーブル「年号」を作成するため、変換文字列データハッシュテーブル集合編集領域１１３を選択する。
【０３１５】
かかる選択によりテキスト変換辞書編集部１０２４は、ユーザが選択した文字列データの取得先が変換文字列データハッシュテーブルであることを判別する（Ｓ１１０９）。そして、ユーザは変換文字列データハッシュテーブル集合編集領域１１３の識別子編集領域１１３−２にテキスト「年号」を入力し、またＫｅｙ編集領域１１３−３に「０」を入力し、「新規」ボタンをクリックする。この操作に応じてテキスト変換辞書編集部１０２４は、ユーザが選択した変換文字列データハッシュテーブル「年号」が新規に作成されるものであることを判別し（Ｓ１１１４）、変換文字列データハッシュテーブル「年号」を新規に作成して変換文字列データハッシュテーブル集合に登録する（Ｓ１１１６）。そして、このテーブルを編集可能な状態にするとともに、図６４に示すような変換文字列データハッシュテーブル編集ＧＵＩ画面を表示させる。
【０３１６】
テキスト変換辞書編集部１０２４は、ユーザが指定した全てのＫｅｙのリストを導出する（図３２のＳ１２０３）。本例では、検出規則「日付（年号）」の要素インデックス「０」に属する文字列フォーマットは文字列フォーマット「年号」のみである。具体的には、この文字列フォーマット「年号」に属する全ての文字列データは、「Ｍ」、「Ｔ」、「Ｓ」、「Ｈ」のみである。したがって、Ｋｅｙのリスト「Ｍ」、「Ｔ」、「Ｓ」、「Ｈ」が作成される。
【０３１７】
テキスト変換辞書編集部１０２４は、上記のように作成したＫｅｙのリスト「Ｍ」、「Ｔ」、「Ｓ」、「Ｈ」と、変換文字列データハッシュテーブル「年号」が持つＫｅｙのリストとを比較する（Ｓ１２０４）。本具体例では、新規に作成された変換文字列データハッシュテーブル「年号」はＫｅｙのリストを持たないので、Ｋｅｙのリストは変更されているとテキスト変換辞書編集部１０２４は判別することになる。
【０３１８】
次に、テキスト変換辞書編集部１０２４は、同一のＫｅｙが対応していた文字列データを継承する（Ｓ１２０５）。本具体例では、全てのＫｅｙは文字列を継承せずに、全てのＫｅｙには空の文字列データが対応付けられることになる。この後、ユーザは、図６４に示す変換文字列データハッシュテーブルＧＵＩ画面のエントリ−選択領域１１９のテキストボックスに「Ｍ」を入力し、エントリー「Ｍ」を選択する。
【０３１９】
また、ユーザは図６４に示す変換文字列データハッシュテーブルＧＵＩ画面の文字列データ入力領域１２０のテキストボックスに「明治」を入力し、これによりテキスト変換辞書編集部１０２４はＫｅｙ「Ｍ」に文字列データ「明治」を対応づけられる。つまり、検出した文字列中の「Ｍ」が「明治」に変換されるような対応付けをなすのである。このような操作によりテキスト変換辞書編集部１０２４は、エントリー「Ｍ」にＫｅｙ「Ｍ」と文字列データ「明治」を対応付けて格納し、エントリー「Ｍ」の更新を変換文字列データハッシュテーブル「年号」に反映させる（Ｓ１２０８）。
【０３２０】
以下、上記「Ｍ」と「明治」の対応関係を編集する際と同様、Ｋｅｙ「Ｔ」に「大正」を、Ｋｅｙ「Ｓ」に「昭和」を、Ｋｅｙ「Ｈ」に「平成」を、対応付ける。そして、ユーザは、Ｓ１２０９において、図６４に示す変換文字列データハッシュテーブルＧＵＩ画面の終了ボタン１２０をクリックし、変換文字列データハッシュテーブル「年号」の編集終了を指示する。
【０３２１】
かかる指示に応じてテキスト変換辞書編集部１０２４は、ユーザが編集した変換文字列データハッシュテーブル「年号」から文字列データを取得することを指定する指示子を当該変換規則の要素インデックス「０」に位置する文字データソースに格納する（図３０のＳ１１２２）。
【０３２２】
以上が変換規則を規定する文字列パターンの１つ目の要素についての編集登録手順であり、これが終了するとパターンを構成する２つ目の要素についての編集を行う。今回登録しようとする変換規則では、入力されたテキストに記述されている「年」を表す２桁の数字は、検出された文字列に含まれる年を示す２桁の数字をそのまま利用することにしている。したがって、ユーザは、図６５に示す変換規則ＧＵＩ画面の変換規則編集領域１１２のテキストボックス１１２−１に「１」を入力し、「追加」ボタンをクリックし、当該変換規則のインデックス「１」の位置に新しい要素を挿入するよう指示する。この指示に応じてテキスト変換辞書編集部１０２４は、ユーザが新しい要素の追加を望んでいることを判別し（図２９のＳ１００３）、Ｓ１００４において、空の文字列データソースを作成し、当該変換規則の指定された位置に挿入する（Ｓ１００４）。
【０３２３】
テキスト変換辞書編集部１０２４は、ユーザが新規に追加した文字列データソースの編集を可能にし、当該編集対象である文字列データソースが新規に作成されたものであることを判別する（図３０のＳ１１０１）。そして、当該文字列データソースが取得する文字列データの取得先として、当該変換規則と対応する検出規則の要素インデックス「１」に合致した入力テキストデータ内の文字列データを指定する必要があるので、ユーザは検出文字列データ編集領域１１５を選択する。
【０３２４】
テキスト変換辞書編集部１０２４は、ユーザが選択した文字列データの取得先が変換文字列データハッシュテーブルではなく、変換規則に予め埋め込まれている文字列データでもないことを判別する（Ｓ１１０９、Ｓ１１１０）。そして、ユーザは、所望の文字列データと合致する検出規則の要素のインデックスを検出文字列データ編集領域１１５のテキストボックスに入力する。本具体例では、「明治」等の「年号」に続く「年」を表現した２桁の数字をそのまま利用するために、検出規則表示領域１１６を参考にして「１」を入力し、「ＯＫ」ボタンをクリックする。
【０３２５】
以上のような操作に応じてテキスト変換辞書編集部１０２４は、入力されたテキストデータ内の検出規則の要素インデックス「１」と合致した文字列データを取得することを指定する指示子を当該変換規則の要素インデックス「１」に位置する文字データソースに格納する（Ｓ１１２２）。
【０３２６】
以上が変換規則を規定する文字列パターンの２つ目の要素についての編集登録手順であり、これが終了するとパターンを構成する３つ目の要素についての編集を行う。今回登録しようとする変換規則では、入力されたテキストに記述されている「年」を表す２桁の数字の後に、文字「年」を挿入するようにしている。したがって、検出した文字列においては「分割文字」であったものを、固定文字「年」に置き換えるような変換規則を登録する必要がある。そこで、ユーザは図６６に示す変換規則ＧＵＩ画面の変換規則編集領域１１２のテキストボックス１１２−１に「２」を入力し、「追加」ボタンをクリックし、当該変換規則のインデックス「２」の位置に新しい要素を挿入すべき旨を指示する。この指示応じてテキスト変換辞書編集部１０２４は、Ｓ１００３において、利用者が新しい要素の追加を望んでいることを判別し（Ｓ１００３）、空の文字列データソースを作成し、当該変換規則の所定の位置に挿入する（Ｓ１００４）。
【０３２７】
テキスト変換辞書編集部１０２４は、ユーザの指示に応じて新規に追加された文字列データソースの編集を可能にし、当該編集対象である文字列データソースが新規に作成されたものであることを判別する（Ｓ１１０１）。そして、今回登録しようとする変換規則では、当該文字列データソースが取得する文字列データの取得先として、予め定めた文字列データを取得することが必要であるので、ユーザは固定文字列データ編集領域１１４を選択する。
【０３２８】
テキスト変換辞書編集部１０２４は、ユーザが選択した文字列データの取得先が変換文字列データハッシュテーブルではなく、変換規則に予め埋め込まれている文字列データであることを判別する（Ｓ１１０９、Ｓ１１１０）。そして、ユーザは所望の文字列を固定文字列データ編集領域１１４のテキストボックスに入力する。本具体例では、漢字「年」を入力し、「ＯＫ」ボタンをクリックする。
【０３２９】
このよう入力操作に応じてテキスト変換辞書編集部１０２４は、予め指定された固定の文字列データ「年」を取得することを指定する指示子を当該変換規則の要素インデックス「２」に位置する文字データソースに格納する（Ｓ１１２２）。
【０３３０】
以上が変換規則を規定する文字列パターンの２つ目の要素についての編集登録手順である。以下、上記と同様の手順で、変換規則を規定する文字列パターンの３つ目以降の要素についても編集を行う。具体的には、３つ目の要素としては入力されたテキストに記述されている「月」を表す２桁の数字をそのまま利用するので、検出規則の要素インデックス「３」に合致した文字列データを取得することを指定する指示子を変換規則の要素インデックス「２」に位置する文字列データソースに格納させる。
【０３３１】
また、４つ目の要素として文字「月」を挿入するために、予め指定された文字列データ「月」を取得することを指定する指示子を当該変換規則の要素インデックス「３」に位置する文字列データソースに格納させる。さらに、５つ目の要素として、入力されたテキストに記述されている「日」を表す２桁の数字をそのまま利用するので、検出規則の要素インデックス「５」に合致した文字列データを取得することを指定する指示子を変換規則の要素インデックス「４」に位置する文字列データソースに格納させる。最後の要素として、文字「日」を挿入するために、予め指定された文字列データ「日」を取得することを指定する指示子を当該変換規則の要素インデックス「５」に位置する文字列データソースに格納させる。このような編集を行うと、かかる編集結果が反映された図６７に示すような変換規則編集ＧＵＩ画面が表示されることになる。
【０３３２】
ユーザは、当該変換規則編集ＧＵＩ画面の終了ボタン１１７をクリックし、変換規則「日付（年号）」の編集終了を指示する。この指示に応じてテキスト変換辞書編集部１０２４は、上記のように編集された変換規則「日付（年号）」のＩＤ「２」を規則対テーブルの当該規則対レコードの「変換規則」フィールドに格納し（図２０のＳ５１６）、図６８に示すような規則対編集ＧＵＩ画面を表示させる。
【０３３３】
以上のように変換規則「日付（年号）」の編集登録が終了すると、続いてユーザは当該規則対の規則対グループＩＤを編集するために、既に作成した規則対を選択する。かかる選択に応じてテキスト変換辞書編集部１０２４は、既存の規則対に対する編集であることを判別する（Ｓ５０４）。そして、ユーザは図６８に示す規則対編集領域１００の当該規則対レコードの「Ｇｒｏｕｐ  ＩＤ」フィールドをクリックする。このクリックに応じてテキスト変換辞書編集部１０２４は、ユーザの編集処理が削除ではないことを判別し、Ｓ５０９、Ｓ５１０において、 利用者が当該規則対の規則対グループＩＤの編集を望んでいることを判別する（Ｓ５０７、Ｓ５０９、Ｓ５１０）。
【０３３４】
そして、ユーザは、テキストボックス１０２に規則対グループＩＤ「０」を入力し、これによりテキスト変換辞書編集部１０２４は、規則対「日付（年号）」の規則対グループＩＤ「０」を規則対テーブルの当該規則対レコードの「規則対グループＩＤ」フィールドに格納する（Ｓ５１６）。
【０３３５】
続いて、ユーザは、当該規則対の規則対ＩＤを編集するために、既に作成した規則対を選択し、かかる選択操作からテキスト変換辞書編集部は、既存の規則対に対する編集であることを判別する（Ｓ５０４）。そして、ユーザは、図６８に示す規則対編集領域１００の当該規則対レコードの「Ｓｕｂ  ＩＤ」フィールドをクリックする。このクリックに応じてテキスト変換辞書編集部１０２４は、Ｓ５０７において、ユーザの指示内容が削除ではないことを判別し、さらにユーザが当該規則対の規則対ＩＤの編集を望んでいることを判別する（Ｓ５０７、Ｓ５０９、Ｓ５１０）。
【０３３６】
ユーザは、テキストボックス１０２に規則対ＩＤ「１」を入力し、かかる入力に応じてテキスト変換辞書編集部１０２４は、規則対「日付（年号）」の規則対ＩＤ「１」を規則対テーブルの当該規則対レコードの「規則対ＩＤ」フィールドに格納する（Ｓ５１６）。このような処理が終わった時点では、これまでの編集内容が反映された図６９に示すような規則対編集ＧＵＩ画面が表示される。
【０３３７】
ユーザは、この規則対編集ＧＵＩ画面の終了ボタン１０３をクリックし、規則対「日付（年号）」の編集終了を指示する。以上のようにユーザがテキスト変換辞書１０２３の編集作業を行うことで、テキスト変換辞書編集部１０２４によってテキスト変換辞書１０２３に格納されている規則対テーブル（図７０）、検出規則テーブル（図７１）、文字列フォーマットテーブル（図７２）、文字データ集合テーブル（図７３）、変換規則テーブル（図７４）、変換文字列データハッシュテーブル集合（図７５）が編集され、それぞれ図示のような状態となる。
【０３３８】
以上が、ユーザの操作にしたがったテキスト変換辞書編集部１０２４による検出規則および変換規則を登録する場合の手順の具体例である。このようにユーザは、読みデータなどの表音記号や品詞や活用などの専門的なデータを入力することなく、検出したい文字列のパターンを構成する各要素（文字列や文字列の集合等）と、それぞれの要素の順序といったパターン構成に関する指示をなすことで、テキスト変換辞書１０２３に新たな規則を登録することができる。
【０３３９】
次に、ユーザが上記のような編集を行った後に、上述したテキスト「私の生年月日は、1975年11月20日(S50.11.20)です。」を入力した場合に、当該テキスト音声合成装置１０００のテキスト変換部１０２１が上記のように編集されたテキスト変換辞書１０２３（図７０〜図７４）を参照することで実行する変換処理の具体例について説明する。
【０３４０】
テキスト変換部１０２１は、テキスト変換辞書１０２３から全ての規則対を読み込み、現在の規則対グループＩＤ「０」と同じ規則対グループＩＤを持つ規則対を読み込んだ全ての規則対から取り出し、それらを規則対ＩＤが小さい順に並べたリスト（ア−０）を作成する（図１７のＳ２０２）。また、規則対のリスト（ア−０）の内で、入力された文字列データと最初に比較する検出規則を規則対ＩＤが「０」である規則対が保持する検出規則にセットする。
【０３４１】
次に、検査対象となる文字列データの開始位置を入力された文字列データの先頭に初期化する（Ｓ２０３）。ここでは入力された文字列データの「私」の位置が開始位置となる。そして、テキスト変換部１０２１は、規則対ＩＤが現在の規則対ＩＤ「０」と等しい規則対を規則対のリスト（ア−０）から取り出す（Ｓ２０４）。本例では、規則対グループＩＤ「０」、規則対ＩＤ「０」である規則対「日付（西暦）」が保持する検出規則「日付（西暦）」（検出規則ＩＤは、「０」である）が最初に取り出され、かかる検出規則が規定する文字列パターンに合致する文字列が存在するか否かの検出処理が行われることになる。
【０３４２】
かかる検出処理では、テキスト変換部１０２１は、検査対象の文字列から文字データのリスト（イ−０）を作成し、インデックスＩィを「０」に初期化する（図３のＳ３０１）。ここでは文字データのリスト（イ−０）とインデックスＩィとによって、文字データ「私」がポイントされることになる。また、規則対「日付（西暦）」が保持する検出規則「日付（西暦）」（ウ−０）をテキスト変換辞書１０２３から検出規則ＩＤ「０」を用いて取り出し、検出規則「日付（西暦）」（ウ−０）の要素をポイントするインデックスＩゥを「０」に初期化する。この結果、検出規則「日付（西暦）」（ウ−０）とインデックスＩゥによって、文字列フォーマットの集合「｛Str(1)｝」がポイントされることになる。
【０３４３】
そして、テキスト変換部１０２１は、検出規則「日付（西暦）」（ウ−０）とインデックスＩゥより文字列フォーマットのリスト「（Str(1)）」(エ−０)を作成し、そのリストの要素である文字列フォーマットをポイントするインデックスＩェを「０」に初期化する（Ｓ３０３）。また、文字列フォーマットのリストの各要素と比較する文字データのリスト（イ−０）の開始位置を記憶するインデックスＩァ１を現在のＩァで初期化し、この結果Ｉァ１は「０」となる。すなわち、文字データのリスト(イ−０)のインデックスＩァ１以降の文字列データと文字列フォーマットのリスト(エ−０)の各要素が比較されることになる。
【０３４４】
また、テキスト変換部１０２１は、文字列フォーマットのリスト「(Str(1))」（エ−0）とインデックスＩェより文字列フォーマット「Str(1)」を取り出し、その文字列フォーマットから文字データ集合の集合のリスト「(｛Let(1)｝、｛Let(1)｝、｛Let(1)｝、｛Let(1)])｝（オ−0）を作成し、そのリストの要素である文字データ集合の集合をポイントするインデックスＩォを「０」に初期化する。
【０３４５】
そして、テキスト変換部１０２１は、文字データ集合の集合のリスト(オ−0)とインデックスＩォより文字データ集合の集合｛Let(1)｝を取り出し、それらを統合した文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝（カ−0）を作成する（Ｓ３０４）。また、文字データのリスト(イー0)とインデックスＩィより文字データ「私」を取り出し、取り出した「私」と文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝(カー0)とを比較し（Ｓ３０５）、合致しないとの結果を導出する（Ｓ３０６）。
【０３４６】
インデックスにしたがって取り出した文字データと文字データ集合とが合致しないので、テキスト変換部１０２１は、同一の検出規則（ウ−0）の同一の要素（エ−0）内の他の文字列フォーマットと比較するためにインデックスＩェを１つインクリメントし、「１」にする。本例の場合、文字列フォーマットのリスト（エ−0）は「(Str(1))」であり、インデックスＩェ「１」がポイントする要素は存在しないので（Ｓ３０７の「ＹＥＳ」）、検査対象である文字データのリスト(イ−0)と比較対象である検出規則「日付（西暦）」（ウ−0）は合致しないことになる。したがって、合致しないとの結果が返される（Ｓ３０８）。
【０３４７】
つまり、「私」から始まる文字列は検出規則「日付(西暦)」と合致しなかったと判別する。したがって、テキスト変換部１０２１は、現在の規則対ＩＤを１つ増し、「１」とする。インクリメント後のＩＤによって特定される規則対は存在するので（Ｓ２０７の「Ｎｏ」）、規則対ＩＤが現在の規則対ＩＤ「１」と等しい規則対を規則対のリスト（ア−０）から取り出す（Ｓ２０４）。本例では、規則対グループＩＤ「０」、規則対ＩＤ「１」である規則対「日付（年号）」が保持する検出規則「日付（年号）」（検出規則ＩＤは、「２」である）が取り出され、次に検査されることになる。
【０３４８】
そして、検出規則「日付（年号）」と「私」から始まる文字列とが上述したのと同じ手順（図１８参照）で比較されるが、「検出規則「日付（年号）」と合致しなかったと判別されることになる。したがって、テキスト変換部１０２１は、現在の規則対ＩＤを１つ増し、「２」にする。しかし、これと同値の規則対ＩＤを持つ規則対が規則対のリスト(ア−0)には存在しないので（Ｓ２０７の「ＹＥＳ」）、現在の規則対グループＩＤ「０」と同値の規則対グループＩＤを持つ規則対による「私」から始まる文字列の検査を終了する。
【０３４９】
次にテキスト変換部１０２１は、次回の検査対象となる文字列の開始位置を更新し（Ｓ２０９）、「私」の次にある「の」以降の文字列を検査対象とする。また、検査対象である文字列が変更されたので、規則対のリスト(ア−0)の中で最小の規則対ＩＤを持つ規則対の規則対ＩＤ「０」を現在の規則対ＩＤとして初期化しておく。
【０３５０】
そして、テキスト変換部１０２１は、規則対ＩＤが現在の規則対ＩＤ「０」と等しい規則対を規則対のリスト（ア−０）から取り出す（Ｓ２０４）。本例では、規則対グループＩＤ「０」、規則対ＩＤ「０」である規則対「日付（西暦）」が保持する検出規則「日付（西暦）」（検出規則ＩＤは、「０」である）が最初に検査されることになる。
【０３５１】
以下、上述した検査（Ｓ２０５、図１８）と同様に、「の」以降の文字列を検査対象として、検出規則「日付（西暦）」と検出規則「日付（年号）」が順に検査されるが、両者は合致しないので、合致しないとの判定がなされる。
【０３５２】
同様に、検査対象である文字列の開始位置を、「生」、「年」、「月」、「日」、「は」、「、」と順次変更しても、同様の結果を得ることになり、Ｓ２０９の手順に進む。そして、次の検査対象となる文字列の開始位置を更新し、「、」の次にある「１」以降の文字列を検査対象とする。また、検査対象である文字列が変更されたので、規則対のリスト(ア−0)の中で最小の規則対ＩＤを持つ規則対の規則対ＩＤ「０」を現在の規則対ＩＤとして初期化しておく。
【０３５３】
次に、テキスト変換部１０２１は、規則対のリスト(ア−0)から規則対グループＩＤ「０」であり規則対ＩＤ「０」である規則対「日付（西暦）」が取り出す（Ｓ２０４）。そして、検査対象の文字列（「１９７５年１１月２０日（Ｓ５０．１１．２０）です。」）から文字データのリスト(イ−1)を作成し、インデックスＩィを「０」に初期化する。また、検出規則「日付(西暦)」(ウ−1)を取り出し、その要素をポイントするインデックスＩゥを「０」に初期化する。
【０３５４】
そして、検出規則「日付（西暦）」（ウ−１）とインデックスＩゥより文字列フォーマットのリスト「（Str(1)）」(エ−１)を作成し、そのリストの要素である文字列フォーマットをポイントするインデックスＩェを「０」に初期化する（Ｓ３０２）。また、文字列フォーマットのリストの各要素と比較する文字データのリスト（イ−１）の開始位置を記憶するインデックスＩィ１を現在のＩィで初期化し、その結果Ｉィ１は「０」となる。
【０３５５】
次に、テキスト変換部１０２１は、文字列フォーマットのリスト「(Str(1))」（エ−１）とインデックスＩェより文字列フォーマット「Str(1)」を取り出し（Ｓ３０３）、その文字列フォーマットから文字データ集合の集合のリスト「(｛Let(1)｝、｛Let(1)｝、｛Let(1)｝、｛Let(1)｝)」（オ−１）を作成し、そのリストの要素である文字データ集合の集合をポイントするインデックスＩォを「０」に初期化する。
【０３５６】
そして、文字データ集合の集合のリスト(オ−１)とインデックスＩォより文字データ集合の集合｛Let(1)｝を取り出し、それらを統合した文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝（カ−１）を作成する（Ｓ３０４）。一方、文字データのリスト(イー１)とインデックスＩィより文字データ「１」を取り出し、文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝(カー１)と比較し（Ｓ３０５）、合致するとの結果を導出する（Ｓ３０６）。
【０３５７】
このように合致したので、テキスト変換部１０２１は、文字データ集合の集合のリスト(オ−１)の次の要素と文字データのリスト(イ−１)の次の要素とを比較するために、夫々のインデックスＩォとＩィを１だけ増し、それぞれ「１」とする。インクリメント後のインデックスＩォに示される文字データ集合は最後の文字データ集合ではないので、文字データ集合の集合のリスト(オ−１)とインデックスＩォより文字データ集合の集合｛Let(1)｝を取り出し、それらを統合した文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝（カ−２）を作成する。
【０３５８】
そして、文字データのリスト(イー１)とインデックスＩィより文字データ「９」を取り出し、当該文字データ「９」と上記のように作成した文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝(カー２)と比較し（Ｓ３０５）、合致するとの結果を導出する（Ｓ３０６）。
【０３５９】
このように両者が合致したので、文字データ集合の集合のリスト(オ−１)の次の要素と文字データのリスト(イ−１)の次の要素とを比較するために、夫々のインデックスＩォとＩィを１だけ増し、「２」とする。インクリメント後のインデックスＩォに示される文字データ集合は最後の文字データ集合ではないので、文字データ集合の集合の要素と、文字データのリストの次の要素とが合致するか否かを比較する。本例ではこれも合致するので、同様に、インデックスＩォとインデックスＩィが「３」とするが、各インデックスに示される各々の要素も合致するので、合致するとの判定を導出する。
【０３６０】
そして、文字データ集合の集合のリスト（オ−１）の次の要素と文字データのリスト(イ−１)の次の要素を比較するために、インデックスＩォとインデックスＩィを１だけ増し、「４」とする。しかし、文字データ集合の集合のリスト（オ−１）には、インデックスＩォ「４」によってポイントされる要素が存在しない（Ｓ３０９「ＹＥＳ」）。よって、検出規則「日付（西暦）」（ウ−1）のインデックスＩゥ「０」の要素と文字データのリスト（イ−1）のインデックス「０」〜「３」までの文字データのリストは合致したことになり、Ｓ３１０に進むことになる。
【０３６１】
以上のように文字データのリスト（イ−１）のインデックスＩィ１「０」の文字データからインデックスＩィ「４」以前の文字データまでの文字列データ「１９７５」は検出規則「日付（西暦）」（ウ−１）のインデックスＩゥ「０」の要素と合致している。よって、テキスト変換部１０２１は、この文字列データ「１９７５」をインデックスＩゥ「０」と共に記録しておく（Ｓ３１０）。
【０３６２】
次に、テキスト変換部１０２１は、検出規則「日付（西暦）」（ウー１）の次の要素と文字データのリスト（イ−1）のインデックスＩィ以降を比較するために、インデックスＩゥを１つだけ増し、「１」にする。かかるインデックスＩゥに示される要素は検出規則「日付（西暦）」の最後の要素ではないので（Ｓ３１１の「Ｎｏ」）、Ｓ３０２に戻り、検出規則「日付（西暦）」（ウ−１）とインデックスＩゥより文字列フォーマットのリスト「（Str(0)）」(エ−２)を作成し、そのリストの要素である文字列フォーマットをポイントするインデックスＩェを「０」に初期化する。また、文字列フォーマットのリストの各要素と比較する文字データのリスト（イ−１）の開始位置を記憶するインデックスＩィ１を現在のＩィで初期化し、その結果Ｉィ１は「４」となる。
【０３６３】
そして、テキスト変換部１０２１は、文字列フォーマットのリスト「(Str(0))」（エ−２）とインデックスＩェより文字列フォーマット「Str(0)」を取り出し、その文字列フォーマットから文字データ集合の集合のリスト「(｛Let(0)｝)」（オ−２）を作成し、そのリストの要素である文字データ集合の集合をポイントするインデックスＩォを「０」に初期化する。
【０３６４】
次に、文字データ集合の集合のリスト(オ−２)とインデックスＩォより文字データ集合の集合｛Let(0)｝を取り出し、それらを統合した文字データ集合｛「.」｝（カ−３）を作成する。そして、文字データのリスト(イ−１)とインデックスＩィより文字データ「年」を取り出し、取り出した文字データ「年」と文字データ集合｛「.」｝（カ−3）と比較し、合致しないとの結果を導出する。
【０３６５】
したがって、上述したした合致しない場合の処理と同様に、検出規則「日付（年号）」によって、「１」以降の文字列を検査対象として検査するが合致しないとの判定を得る。
また、検査対象を「9」、「7」、「5」、「年」、「1」、「1」、「月」、「2」、「0」、「日」、「（」と順に変更して、検出規則「日付（西暦）」と検出規則「日付（年号）」を順に検査する。しかしながら、本例では合致しないので、合致しないとの判定を得て、Ｓ２０９へ進むことになる。
【０３６６】
テキスト変換部１０２１は、次の検査対象となる文字列の開始位置を更新し、「（」の次にある「Ｓ」以降の文字列を検査対象とする。また、検査対象である文字列が変更されたので、規則対のリスト(ア−0)の中で最小の規則対ＩＤを持つ規則対の規則対ＩＤ「０」を現在の規則対ＩＤとして初期化しておく。
【０３６７】
そして、規則対のリスト(ア−0)から規則対グループＩＤ「０」であり規則対ＩＤ「０」である規則対「日付（西暦）」が取り出される。この後、検査対象の文字列（「Ｓ５０．１１．２０」です．））から文字データのリスト(イ−２)を作成し、インデックスＩィを「０」に初期化する．また、検出規則「日付(西暦)」(ウ−２)を取り出し、その要素をポイントするインデックスＩゥを「０」に初期化する。かかるインデックスに示される文字データのリスト（イ−２）と検出規則「日付（西暦）」（ウ−３）とを比較するが、合致するとの判定を得られず、Ｓ２０７へ進む。
【０３６８】
そして、現在の規則対ＩＤを１つ増し、「１」とする。そして、規則対対ＩＤが現在の規則対ＩＤ「１」と等しい規則対を規則対のリスト（ア−０）から取り出す。つまり、規則対グループＩＤ「０」、規則対ＩＤ「１」である規則対「日付（年号）」が保持する検出規則「日付（年号）」（検出規則ＩＤは、「２」である）が次に検査されることになる。
【０３６９】
まず、テキスト変換部１０２１は、検査対象の文字列（「Ｓ５０．１１．２０」です。））から文字データのリスト(イ−３)を作成し、インデックスＩィを「０」に初期化する。また、検出規則「日付(年号)」(ウ−４)を取り出し、その要素をポイントするインデックスＩゥを「０」に初期化する。
【０３７０】
そして、テキスト変換部１０２１は、検出規則「日付（年号）」（ウ−４）とインデックスＩゥより文字列フォーマットのリスト「（Str(9)）」(エ−3)を作成し、そのリストの要素である文字列フォーマットをポイントするインデックスＩェを「０」に初期化する。また、文字列フォーマットのリストの各要素と比較する文字データのリスト（イ−3）の開始位置を記憶するインデックスＩィ１を現在のＩィで初期化し、これによりＩィ１は「０」となる。
【０３７１】
次に、文字列フォーマットのリスト「(Str(9))」（エ−3）とインデックスＩェより文字列フォーマット「Str(9)」を取り出し、その文字列フォーマットから文字データ集合の集合のリスト「(｛Let(10)｝)」（オ−３）を作成し、そのリストの要素である文字データ集合の集合をポイントするインデックスＩォを「０」に初期化する。
【０３７２】
以上のような初期化処理等（Ｓ３０１〜Ｓ３０３）を終えると、テキスト変換部１０２１は、文字データ集合の集合のリスト(オ−３)とインデックスＩォとに基づき文字データ集合の集合｛Let(10)｝を取り出し、それらを統合した文字データ集合｛「M」、「T」、「S」、「H」｝（カ−４）を作成する（Ｓ３０４）。
【０３７３】
次に、文字データのリスト(イー３)とインデックスＩィより文字データ「Ｓ」を取り出し、取り出した文字データ「Ｓ」と文字データ集合｛「M」、「T」、「S」、「H」｝（カ−４）とを比較し（Ｓ３０５）、合致するとの結果を導出する（Ｓ３０６）。
【０３７４】
両者が合致したので、文字データ集合の集合のリスト（オ−３）の次の要素と文字データのリスト(イ−３)の次の要素を比較するために、インデックスＩォとインデックスＩィを１だけ増し、「１」とする。しかしながら、本例において文字データ集合の集合のリスト（オ−３）には、インデックスＩォ「１」によってポイントされる要素が存在しない。よって、検出規則「日付（年号）」（ウ−４）のインデックスＩゥ「０」の要素と文字データのリスト（イ−３）のインデックス「０」の文字データのリストは合致したことになる。
【０３７５】
つまり、文字データのリスト（イ−３）のインデックスＩィ１「０」の文字データからインデックスＩィ「１」以前の文字データまでの文字列データ「Ｓ」は検出規則「日付（年号）」（ウー４）のインデックスＩゥ「０」の要素と合致している。したがって、テキスト変換部１０２１は、この文字列データ「Ｓ」をインデックスＩゥ「０」と共に記録しておく（Ｓ３１０）。
【０３７６】
そして、検出規則「日付（年号）」（ウー４）の次の要素と文字データのリスト（イ−３）のインデックスＩィ以降を比較するために、インデックスＩゥを１つだけ増し、「１」にする。本例ではインクリメント後のインデックスＩゥに示される要素が最後の要素ではないので（Ｓ３１１「ＮＯ」）、Ｓ３０２に戻り、検出規則「日付（年号）」（ウ−４）とインデックスＩゥより文字列フォーマットのリスト「（Str(10)）」(エ−４)を作成し、そのリストの要素である文字列フォーマットをポイントするインデックスＩェを「０」に初期化する。また、文字列フォーマットのリストの各要素と比較する文字データのリスト（イ−３）の開始位置を記憶するインデックスＩィ１を現在のＩィで初期化する。この結果、Ｉィ１は「１」となる。
【０３７７】
次に、文字列フォーマットのリスト「(Str(10))」（エ−４）とインデックスＩェより文字列フォーマット「Str(10)」を取り出し、その文字列フォーマットから文字データ集合の集合のリスト「(｛Let(1)｝、｛Let(1)｝)」（オ−４）を作成し、そのリストの要素である文字データ集合の集合をポイントするインデックスＩォを「０」に初期化する（Ｓ３０３）。
【０３７８】
そして、テキスト変換部１０２１は、文字データ集合の集合のリスト(オ−４)とインデックスＩォより文字データ集合の集合｛Let(1)｝を取り出し、それらを統合した文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝（カ−５）を作成する（Ｓ３０４）。この後、作成した文字データのリスト(イー３)とインデックスＩィとに基づき文字データ「５」を取り出し、取り出した文字データ「５」と、文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝(カー５)とを比較し（Ｓ３０５）、合致するとの結果を導出する（Ｓ３０６）。
【０３７９】
このように両者が合致したので、テキスト変換部１０２１は、文字データ集合の集合のリスト(オー４)の次の要素と文字データのリスト(イ−３)の次の要素とを比較するために、夫々のインデックスＩォとＩィを１だけ増し、Ｉォを「１」に、Ｉィを「２」にする。本例では、このような変更後のインデックスＩォに示される文字データ集合は存在するので（Ｓ３０９「ＮＯ」）、Ｓ３０４に戻り、文字データ集合の集合のリスト(オ−４)とインデックスＩォより文字データ集合の集合｛Let(1)｝を取り出し、それらを統合した文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝（カ−６）を作成する。
【０３８０】
そして、文字データのリスト(イー３)とインデックスＩィより文字データ「０」を取り出し、取り出した文字データ「０」と文字データ集合｛「０」、「１」、「２」、「３」、「４」、「５」、「６」、「７」、「８」、「９」｝(カー６)とを比較し（Ｓ３０５）、合致するとの結果を導出する（Ｓ３０６）。
【０３８１】
ここでも両者が合致したので、文字データ集合の集合のリスト(オー４)の次の要素と文字データのリスト(イ−３)の次の要素とを比較するために、夫々のインデックスＩォとＩィを１だけ増し、Ｉォを「２」に、Ｉィを「３」にする。しかし、文字データ集合の集合のリスト（オー４）には、増加後のインデックスＩォ「２」によってポイントされる要素が存在しない（Ｓ３０９「ＹＥＳ」）。よって、検出規則「日付（年号）」（ウ−４）のインデックスＩゥ「１」の要素と文字データのリスト（イ−３）のインデックスＩィ１「１」からインデックスＩィ「３」以前までの文字データのリストは合致したことになる。
【０３８２】
このように文字データのリスト（イ−３）のインデックスＩィ１「１」の文字データからインデックスＩィ「３」以前の文字データまでの文字列データ「５０」は検出規則「日付（年号）」（ウー４）のインデックスＩゥ「１」の要素と合致している。したがって、テキスト変換部１０２１は、この文字列データ「５０」をインデックスＩゥ「１」と共に記録しておく（Ｓ３１０）。
【０３８３】
そして、検出規則「日付（年号）」（ウー４）の次の要素と文字データのリスト（イ−1）のインデックスＩィ以降を比較するために、インデックスＩゥを１つだけ増し、「２」にする。以降、上記と同様に、Ｓ３０２〜Ｓ３０６、Ｓ３０８〜Ｓ３１０の処理を行う。この結果、検出規則「日付（年号）」（ウ−4）において、インデックス「０」の要素と「Ｓ」が、インデックス「１」と「５０」が、インデックス「２」と「．」が、インデックス「３」と「１１」が、インデックス「４」と「．」が、インデックス「５」と「２０」が合致することとなり、合致した夫々の文字列データは、インデックスとともに記録され、Ｓ３１１に進む。
【０３８４】
そして、検出規則「日付(年号)」（ウ−４）の次の要素と文字データのリスト（イ−3）の次の要素（「）」）を比較するために、インデックスＩゥを１つだけ増し、「６」とする。しかし、検出規則「日付(年号)」（ウ−4）には、インデックスＩゥ「６」によってポイントされる要素が存在しない（Ｓ３１１「ＹＥＳ」）。よって、検出規則「日付（年号）」（ウー４）は、文字データのリスト（イ−3）の先頭からインデックスＩィの現在の値「９」以前の文字列データと合致したこととなる。したがって、文字データのリスト（イ−3）の先頭からインデックスＩィの現在の値「９」以前の文字列データと検出規則「日付（年号）」が合致したことを結果として返す（Ｓ３１２）。
【０３８５】
以上の検出処理から、「Ｓ」から始まる文字列は検出規則「日付(年号)」と合致したと判別する（Ｓ２０６）。したがって、検出規則「日付（年号）」によって規定される検出パターンに合致した文字列を、当該検出規則「日付（年号）」に対応する変換規則「日付（年号）」に規定される変換パターンに合致する文字列に変換する処理を行う（Ｓ２０８）。
【０３８６】
まず、テキスト変換部１０２１は、変換対象の文字列（検出規則によって検出された文字列）から文字データのリスト（キ−0）を作成し、インデックスＩキを検出規則が合致した文字列の開始位置「Ｓ」のインデックス「２０」に初期化しておく（図１９のＳ４０１）。また、規則対「日付（年号）」が保持する変換規則「日付（年号）」（ク）をテキスト変換辞書１０２３から変換規則ＩＤ「２」を用いて取り出し、変換規則の要素をポイントするインデックスＩクを「０」に初期化しておく。また、検出規則の要素のインデックスによってその要素と合致した文字列データ取得できる図１８のＳ３１０において記録した文字列データのリスト（ケ）を読み込み、テキスト変換辞書１０２３より変換文字列データハッシュテーブル集合（コ）を読み込む。
【０３８７】
そして、文字データのリスト（キ）とインデックスＩキとに基づき、インデックス「２０」以前の文字データのリスト「（「私」、「の」、「生」、「年」、「月」、「日」、「は」、「、」、「１」、「９」、「７」、「５」、「年」、「１」、「１」、「月」、「2」、「0」、「日」、「（」）」（サ−０）を作成する。また、合致した文字列データの検査開始位置を基準とした図１８のＳ３１２において通知したインデックスＩィより、合致した文字データの終端のインデックス「２９」を算出し、これ以後の文字データのリスト「（「）」、「で」、「す」、「．」）」（シ）を作成する。すなわち、変換対象となる文字データを切り取ったリストを作成する（Ｓ４０２）。
【０３８８】
次に、変換規則「日付（年号）」(ク)とインデックススＩク「０」より、文字列データソース「Table(年号、In(0))」（ス−０）を取り出す。文字データソース（ス−０）は変換文字列データハッシュテーブル「年号」を指定しているので、変換文字列データハッシュテーブル集合（コ）より変換文字列データハッシュテーブル「年号」(コ−０)を取り出す。また、検出規則の要素「０」と合致した文字列データをＫｅｙとして指定しているので、文字列データのリスト（ケ）とインデックス「０」より文字列データ「Ｓ」を取り出す。この取得したＫｅｙ「Ｓ」と変換文字列データハッシュテーブル「年号」（コ−０）より、文字列データ「昭和」を取得する（Ｓ４０３）。取得した文字列データから、文字データのリスト「（「昭」、「和」）」（セ−０）を作成する。
【０３８９】
そして、文字データのリスト（セー０）を文字データのリスト（サ−０）の末尾に追加して、新しい文字データのリスト「（ 「私」、「の」、「生」、「年」、「月」、「日」、「は」、「、」、「１」、「９」、「７」、「５」、「年」、「１」、「１」、「月」、「2」、「0」、「日」、「（」、「昭」、「和」 ）」（サー１）を作成する（Ｓ４０４）。
【０３９０】
以上のようにインデックスに示される要素の文字列データ取得がなされると、変換規則「日付（年号）」の次の要素が指定する文字列データを取得するために、インデックスＩクを１つだけ増やし、「１」にする。本例では、増加後のインデックスクに示される要素は最後の文字データソースではないので（Ｓ４０５「ＮＯ」）、Ｓ４０３に戻り、変換規則「日付（年号）」(ク)とインデックススＩク「１」より、文字列データソース「In(1)」（ス−１）を取り出す。文字データソース（スー１）は、検出規則の要素「１」と合致した文字列データを指定しているので、文字列データのリスト（ケ）とインデックス「１」より文字列データ「５０」を取得し、文字データのリスト「（「５」、「０」）」（セ−１）を作成する。そして、文字データのリスト（セー１）を文字データのリスト（サー１）の末尾に追加して、文字データのリスト（サー２）を作成する。
【０３９１】
次に、変換規則「日付（年号）」の次の要素が指定する文字列データを取得する為に、インデックスＩクを１つだけ増やし、「２」にする。そして、Ｓ４０３に戻り、変換規則「日付（年号）」(ク)とインデックススＩク「２」より、文字列データソース「Text(年)」（ス−２）を取り出す。文字データソース（スー２）は、当該変換規則の要素が保持している文字列データを指定しているので、文字列データ「年」を取得し、文字データのリスト「（「年」）」（セ−２）を作成する。
【０３９２】
以降も同様に、文字列データソースの選択と文字列データの取得と文字データのリストへの格納を繰り返す。この結果、変換結果を格納した文字データのリスト（サー３）は、「（ 「私」、「の」、「生」、「年」、「月」、「日」、「は」、「、」、「１」、「９」、「７」、「５」、「年」、「１」、「１」、「月」、「2」、「0」、「日」、「（」、「昭」、「和」、「５」、「０」、「年」、「１」、「１」、「月」、「2」、「0」、「日」 ）」となる。
【０３９３】
そして、Ｉクを１つだけ増やすことで、インデックスＩクが「７」になると、変換規則「日付（年号）」（ク）の要素にインデックス「７」によって指定できる要素は存在しない（Ｓ４０５「ＹＥＳ」）。したがって、テキスト変換部１０２１は、変換結果を格納した文字データのリスト（サー３）の末尾に文字データのリスト（シ）を追加して文字データのリストを作成し、これを文字列データ「私の生年月日は、１９７５年１１月２０日（昭和５０年１１月２０日）です．」を出力する（Ｓ４０６）。なお、この際、文字データのリスト（シ）の先頭の要素であった「）」の位置も、次回の検出処理の開始位置としてあわせて返す。
【０３９４】
以上のように変換規則「日付（年号）」によってテキスト変換がなされると、次の検索対象となる文字列の開始位置を更新し（Ｓ２０９）、変換された文字列データ「私の生年月日は、１９７５年１１月２０日（昭和５０年１１月２０日）です。」の「）」以降の文字列データを検査対象とする。また、検査対象である文字列が変更されたので、規則対のリスト(ア−0)の中で最小の規則対ＩＤを持つ規則対の規則対ＩＤ「０」を現在の規則対ＩＤとして初期化しておく。
【０３９５】
以降処理は、Ｓ２１０、Ｓ２０２へと進み、同様に、「）です．」を検査対象として、検出規則「日付（西暦）」と検査規則「日付（年号）」による検査を繰り返し、文末まで検査する。文末の「。」を検査対象とした検査が終了すると、Ｓ２１０へ進むが、次回の検査対象が存在しないことから、Ｓ２１１へ進む。そして、現在の規則対グループＩＤ「０」より大きな規則対グループＩＤを持つ規則対が読み込んだ全ての規則対の中に存在するので、規則対グループＩＤを１つ増やして「１」とする。
【０３９６】
そして、テキスト変換部１０２１は、現在の規則対グループＩＤ「１」と同じ規則対グループＩＤを持つ規則対を読み込んだ全ての規則対から取り出し、それらを規則対ＩＤが小さい順に並べたリスト（ア−１）を作成する。また、規則対のリスト（ア−１）の中で、検査対象である文字列データ「私の生年月日は、１９７５年１１月２０日（昭和５０年１１月２０日）です。」と最初に比較する検出規則を規則対ＩＤが「０」である規則対が保持する検出規則「分数」であるとする。
【０３９７】
次に、検査対象となる文字列データの開始位置を入力された文字列データの先頭に初期化する。この結果、入力された文字列データの「私」の位置が開始位置となる。以下、規則対グループＩＤが「０」である規則対「日付（西暦）」と「日付（年号）」によって検査した場合と同様の処理を繰り返し、規則対「分数」の検出規則「分数」と合致する文字列データを検索する。しかし、本例では合致しないので、Ｓ２１１に進む。現在の規則対グループＩＤ「１」より大きな規則対グループＩＤを持つ規則対が読み込んだ全ての規則対の中に存在しないので、テキスト変換辞書１０２３に格納された全ての規則対による入力された文字列データの変換が終了したことになる。
【０３９８】
以上のようにテキスト変換辞書１０２３に格納されたすべての規則対に基づく、入力された文字列に対する検出、変換処理が終了すると、規則対「日付（年号）」による変更を受けた文字列データ「私の生年月日は、１９７５年１１月２０日（昭和５０年１１月２０日）です。」が言語解析部１０２２へ出力される（Ｓ２１２）。
【０３９９】
以上説明したのが「私の生年月日は、１９７５年１１月２０日(S50.11.20)です。」が入力された場合にテキスト音声合成装置１０００のテキスト変換部１０２１によって行われるテキスト変換処理の内容である。
【０４００】
本実施の形態にかかるテキスト音声合成装置１０００では、上記のようなテキストが入力された場合であっても、テキスト変換部１０２１によって当該テキストが「私の生年月日は、１９７５年１１月２０日（昭和５０年１１月２０日）です。」といったテキストに変換され、後段のテキストから音声合成を行う装置に供給される。
【０４０１】
したがって、(S50.11.20)といった表記上意味を理解することはできるが、そのまま（「エスゴジュウテンジュウイチテンニジュウ」）読み上げられた場合には意味不明な文字列を読み上げた場合に意味が理解できる文字列に変換でき、その後当該変換後のテキストを対象として音声合成がなされるので、変換後のテキストを最初から入力したのと同じ音声が合成できるようになる。これによりユーザは用意されてあった文書データ等を変更することなく、文章の意味内容に合致した読み上げをなすことができる。
【０４０２】
また、本実施の形態では、上記のような文字列をそのまま読み上げた場合に不自然となる文字列を自然な読み方となる文字列に変換する際に、テキスト変換辞書１０２３に格納される規則対（検出規則および変換規則）にしたがった文字列検出・変換を行うようになっている。すなわち、入力されたテキストの中から、特定の決められた文字列を変換対象として検出し、検出した文字列を決められた特定の文字列に変換するといった変換を行うのではなく、検出すべき文字列のパターンを規定する検出規則によって当該パターンに合致する文字列を検出し、検出した文字列を検出パターンとは異なるパターンの変換パターンに合致する文字列に変換するのである。
【０４０３】
したがって、一度の規則対（パターン）をテキスト変換辞書１０２３に登録編集等することによって、１つの決められた文字列を他の文字列に変換するのみならず、規則として規定されたパターンに合致する文字列が含まれていればそれを所望の他のパターンの文字列に変換することができる。上述したような規則対「日付（年号）」の登録を行えば、上述した「Ｓ５０．１１．２０」だけでなく、他の日付を表すテキスト「Ｍ３４．０１．２１」や「Ｔ１３．１２．５」など年号を示すアルファベットや年、月、日を表す数字が異なっていても、上記登録した規則によって規定されるパターンに合致するのでこれを変換することができる。
【０４０４】
このように本実施の形態では、検出規則や変換規則を単一の文字列ではなく、文字列のパターンとして規定するようにしたので、多数の文字列の変換を行いたい場合であっても、各々の文字列すべてについて個別に単語登録等をする必要がなくなり、登録や編集作業を簡易化することができる。
【０４０５】
また、本実施の形態では、新しい単語等の出現などに対応するため、上記のような文字列変換を行って適切な読み上げがなされるようテキスト変換辞書１０２３を編集する場合であっても、どのようなパターンの文字列を検出し、検出した文字列をどのようなパターンの文字列に変換すべきかを示す情報、すなわち検出パターンや変換パターンの構成（どのような文字列要素をどのような順序で配置するかといった構成）に関する指示をユーザがなせば、テキスト変換辞書１０２３に格納される規則の追加、編集等を行うことができる。
【０４０６】
したがって、上記のように編集の物理的な作業量を減らすことができるとともに、どのような文字列の要素がどのような順序で存在するパターンの文字列であるかを指示すればよいので、編集の際に音声合成等に関する専門的な知識を必要ではなく、編集作業が容易となり、ユーザの負担を低減することができる。
【０４０７】
また、本実施の形態では、テキスト変換辞書１０２３に格納される規則対には検出規則および変換規則が含まれており、上述したようにＧＵＩ画面等を介したユーザの指示にしたがってテキスト変換辞書編集部１０２４は、検出規則のみ、変換規則のみを編集することができ、両者を編集することができる。したがって、一方のみの編集が必要な場合にはその一方のみの編集を行えばよいので、編集作業負担を低減することができる。
【０４０８】
また、本実施の形態では、上述したようにユーザはＧＵＩ画面等を通じてテキスト変換辞書編集部１０２４に、どのような文字列の要素が、どのような順序で存在するかというパターン構成に関する指示をなせばよいので、上記編集処理内容で説明したように、文字データ集合、文字列フォーマットといった検出や変換のパターンの一部を構成する１つの要素を種々の規則対（の検出規則や変換規則によって規定されるパターン）で共用することができる。例えば、上記例では、規則対「日付（年号）」と、他の規則対「日付（西暦）」では、同一の文字列フォーマットや文字データ集合を各規則対によって規定される検出（変換）パターンの要素として利用している。
【０４０９】
以上のように文字列フォーマットや文字データ集合を複数の規則対で共用することができるので、新たに規則対をテキスト変換辞書１０２３に登録等しようとするときに、既に登録済みの他の規則対で利用されている文字列フォーマットや文字データ集合等を利用できるときは、これらを流用することで、新たに登録しようとする規則対に必要な文字をすべて入力して指定する必要がなく、編集作業の負担を低減することができる。
【０４１０】
（変形例）
なお、本発明は、上述した実施の形態に限定されるものではなく、以下に例示するような変形が可能である。
【０４１１】
（変形例１）
上述した実施の形態では、テキスト変換辞書１０２３は、規則対テーブルと、検出規則テーブルと、文字列フォーマットテーブルと、文字データ集合テーブルと、変換規則テーブルと、変換文字列データハッシュテーブル集合を含む構成となっていたが、これらの構成に関しては上述の実現形態に限定されるものではない。すなわち、特定のパターンに合致する文字列を検出する検出パターンや、検出した文字列を他のパターンに合致する文字列に変換する変換パターンを規則として格納できればよく、各々パターンを定義するためにどのような要素（文字列、文字、文字列等の和集合）を、どのような順序で配置したものであるかといったパターンを特定できる情報を規則として格納する構成であればよい。
【０４１２】
（変形例２）
また、上述した実施の形態では、テキスト変換辞書編集部１０２４がユーザに提示するインターフェースは、テキスト変換辞書１０２３の構成に沿ったＧＵＩ（Graphical User Interface）画面であるが、テキスト変換辞書１０２３に格納された規則等の編集のためのユーザインターフェースはこれに限定されるものではない。
【０４１３】
（変形例３）
また、上述した実施の形態におけるテキスト変換処理やテキスト変換辞書１０２３の編集処理は、専用のハードウェア回路によって行うようにしてもよいし、ＣＰＵがプログラムにしたがって動作することにより実現するように構成してもよい。また、コンピュータにこのような処理を実行させるためのプログラムをインターネット等の通信回線を介してユーザに提供するようにしてもよいし、当該プログラムをＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）などのコンピュータ読み取り可能な記録媒体に記録してユーザに提供するようにしてもよい。
【産業上の利用可能性】
【０４１４】
以上のように、本発明にかかる音声合成装置、音声合成方法およびプログラムは、多種多様なテキストに対応する音声を読み上げる機能を備えた装置、例えばメール読み上げ装置等に有用である。
【図面の簡単な説明】
【０４１５】
【図１】本発明の一実施の形態にかかるテキスト音声合成装置の構成を示すブロック図である。
【図２】前記テキスト音声合成装置の構成要素であるテキスト変換辞書に格納される規則対テーブルの一例を示す図である。
【図３】前記テキスト変換辞書に格納される検出規則の一例を示す図である。
【図４】前記テキスト変換辞書に格納される変換規則の一例を示す図である。
【図５】前記テキスト変換辞書に格納される文字列フォーマットテーブルの一例を示す図である。
【図６】前記テキスト変換辞書に格納される文字データ集合テーブルの一例を示す図である。
【図７】前記テキスト変換辞書に格納される変換文字列データハッシュテーブルの一例を示す図である。
【図８】前記テキスト変換辞書の規則対を編集する際に、前記テキスト音声合成装置のテキスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図９】前記テキスト変換辞書の検出規則を編集する際に、前記キスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図１０】前記テキスト変換辞書の変換規則を編集する際に、前記キスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図１１】前記テキスト変換辞書の文字列フォーマット、文字データ集合を編集する際に、前記キスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図１２】前記テキスト変換辞書の検出規則を選択する際に、前記キスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図１３】前記テキスト変換辞書の文字列フォーマットを選択する際に、前記キスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図１４】前記テキスト変換辞書の文字列フォーマットを選択する際に、前記キスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図１５】前記テキスト変換辞書の文字データ集合を選択する際に、前記キスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図１６】前記テキスト変換辞書の変換文字列データハッシュテーブルを編集する際に、前記キスト変換辞書編集部によって表示されるＧＵＩ画面の一例を示す図である。
【図１７】前記テキスト音声合成装置の構成要素であるテキスト変換部によるテキスト変換処理を示すフローチャートである。
【図１８】前記テキスト変換部によって行われる検出処理を示すフローチャートである。
【図１９】前記テキスト変換部によって行われる変換処理を示すフローチャートである。
【図２０】前記テキスト変換辞書編集部による規則対の編集処理を示すフローチャートである。
【図２１】前記テキスト変換辞書編集部による規則対の編集処理を示すフローチャートである。
【図２２】前記テキスト変換辞書編集部による検出規則の編集処理を示すフローチャートである。
【図２３】前記テキスト変換辞書編集部による文字列フォーマットの編集処理を示すフローチャートである。
【図２４】前記テキスト変換辞書編集部による文字列フォーマットの編集処理を示すフローチャートである。
【図２５】前記テキスト変換辞書編集部による文字列フォーマットの削除処理を示すフローチャートである。
【図２６】前記テキスト変換辞書編集部による文字列フォーマットの編集処理を示すフローチャートである。
【図２７】前記テキスト変換辞書編集部による文字列データ集合の集合の編集処理を示すフローチャートである。
【図２８】前記テキスト変換辞書編集部による文字列データの集合の集合の編集処理を示すフローチャートである。
【図２９】前記テキスト変換辞書編集部による変換規則の編集処理を示すフローチャートである。
【図３０】前記テキスト変換辞書編集部による変換規則の一要素の編集処理を示すフローチャートである。
【図３１】前記テキスト変換辞書編集部による変換規則の一要素の編集処理を示すフローチャートである。
【図３２】前記テキスト変換辞書編集部による変換文字列データハッシュテーブルの編集処理を示すフローチャートである。
【図３３】前記テキスト変換辞書に格納される編集前の規則対テーブルの具体例を示す図である。
【図３４】前記テキスト変換辞書に格納される編集前の検出規則の具体例を示す図である。
【図３５】前記テキスト変換辞書に格納される編集前の文字列フォーマットテーブルの具体例を示す図である。
【図３６】前記テキスト変換辞書に格納される編集前の文字データ集合テーブルの具体例を示す図である。
【図３７】前記テキスト変換辞書に格納される編集前の変換規則の具体例を示す図である。
【図３８】前記テキスト変換辞書に格納される編集前の変換文字列データハッシュテーブルの具体例を示す図である。
【図３９】図３３に示す規則対を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４０】図３３に示す規則対を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４１】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４２】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４３】図３５に示す文字列フォーマットテーブルを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４４】図３５に示す文字列フォーマットを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４５】図３５に示す文字列フォーマットを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４６】図３６に示す文字データ集合テーブルを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４７】図３５に示す文字列フォーマットを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４８】図３５に示す文字列フォーマットを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図４９】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図５０】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図５１】図３５に示す文字列フォーマットを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図５２】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図５３】編集内容を反映させる検出規則を選択する際に表示されるＧＵＩ画面の一例を示す図である。
【図５４】編集内容を反映させる検出規則を選択する際に表示されるＧＵＩ画面の一例を示す図である。
【図５５】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図５６】図３５に示す文字列フォーマットを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図５７】を図３５に示す文字列フォーマットを編集する際に表示されるＧＵＩ画面の一例示す図である。
【図５８】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図５９】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６０】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６１】図３４に示す検出規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６２】図３３に示す規則対を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６３】図３７に示す変換規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６４】図３８に示す変換文字列データハッシュテーブルを編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６５】図３７に示す変換規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６６】図３７に示す変換規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６７】図３７に示す変換規則を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６８】図３３に示す規則対を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図６９】図３３に示す規則対を編集する際に表示されるＧＵＩ画面の一例を示す図である。
【図７０】前記テキスト変換辞書に格納される編集後の規則対テーブルの具体例を示す図である。
【図７１】前記テキスト変換辞書に格納される編集後の検出規則の具体例を示す図である。
【図７２】前記テキスト変換辞書に格納される編集後の文字列フォーマットテーブルの具体例を示す図である。
【図７３】前記テキスト変換辞書に格納される編集後の文字データ集合テーブルの具体例を示す図である。
【図７４】前記テキスト変換辞書に格納される編集後の変換規則の具体例を示す図である。
【図７５】前記テキスト変換辞書に格納される編集後の変換文字列データハッシュテーブルの具体例を示す図である。
【符号の説明】
【０４１６】
１０００  テキスト音声合成装置
１００１  テキスト入力部
１００２  テキスト解析部
１００３  制御パラメータ生成部
１００４  音声信号生成部
１００５  音声信号出力部
１０２１  テキスト変換部
１０２２  言語解析部
１０２３  テキスト変換辞書
１０２４  テキスト変換辞書編集部
【図１】
2005284182.tif 000003
【図２】
2005284182.tif 000004
【図３】
2005284182.tif 000005
【図４】
2005284182.tif 000006
【図５】
2005284182.tif 000007
【図６】
2005284182.tif 000008
【図７】
2005284182.tif 000009
【図８】
2005284182.tif 000010
【図９】
2005284182.tif 000011
【図１０】
2005284182.tif 000012
【図１１】
2005284182.tif 000013
【図１２】
2005284182.tif 000014
【図１３】
2005284182.tif 000015
【図１４】
2005284182.tif 000016
【図１５】
2005284182.tif 000017
【図１６】
2005284182.tif 000018
【図１７】
2005284182.tif 000019
【図１８】
2005284182.tif 000020
【図１９】
2005284182.tif 000021
【図２０】
2005284182.tif 000022
【図２１】
2005284182.tif 000023
【図２２】
2005284182.tif 000024
【図２３】
2005284182.tif 000025
【図２４】
2005284182.tif 000026
【図２５】
2005284182.tif 000027
【図２６】
2005284182.tif 000028
【図２７】
2005284182.tif 000029
【図２８】
2005284182.tif 000030
【図２９】
2005284182.tif 000031
【図３０】
2005284182.tif 000032
【図３１】
2005284182.tif 000033
【図３２】
2005284182.tif 000034
【図３３】
2005284182.tif 000035
【図３４】
2005284182.tif 000036
【図３５】
2005284182.tif 000037
【図３６】
2005284182.tif 000038
【図３７】
2005284182.tif 000039
【図３８】
2005284182.tif 000040
【図３９】
2005284182.tif 000041
【図４０】
2005284182.tif 000042
【図４１】
2005284182.tif 000043
【図４２】
2005284182.tif 000044
【図４３】
2005284182.tif 000045
【図４４】
2005284182.tif 000046
【図４５】
2005284182.tif 000047
【図４６】
2005284182.tif 000048
【図４７】
2005284182.tif 000049
【図４８】
2005284182.tif 000050
【図４９】
2005284182.tif 000051
【図５０】
2005284182.tif 000052
【図５１】
2005284182.tif 000053
【図５２】
2005284182.tif 000054
【図５３】
2005284182.tif 000055
【図５４】
2005284182.tif 000056
【図５５】
2005284182.tif 000057
【図５６】
2005284182.tif 000058
【図５７】
2005284182.tif 000059
【図５８】
2005284182.tif 000060
【図５９】
2005284182.tif 000061
【図６０】
2005284182.tif 000062
【図６１】
2005284182.tif 000063
【図６２】
2005284182.tif 000064
【図６３】
2005284182.tif 000065
【図６４】
2005284182.tif 000066
【図６５】
2005284182.tif 000067
【図６６】
2005284182.tif 000068
【図６７】
2005284182.tif 000069
【図６８】
2005284182.tif 000070
【図６９】
2005284182.tif 000071
【図７０】
2005284182.tif 000072
【図７１】
2005284182.tif 000073
【図７２】
2005284182.tif 000074
【図７３】
2005284182.tif 000075
【図７４】
2005284182.tif 000076
【図７５】
2005284182.tif 000077