JPH0546607A - 文書読み上げ装置 - Google Patents
文書読み上げ装置Info
- Publication number
- JPH0546607A JPH0546607A JP3223516A JP22351691A JPH0546607A JP H0546607 A JPH0546607 A JP H0546607A JP 3223516 A JP3223516 A JP 3223516A JP 22351691 A JP22351691 A JP 22351691A JP H0546607 A JPH0546607 A JP H0546607A
- Authority
- JP
- Japan
- Prior art keywords
- reading
- item
- document
- information
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Document Processing Apparatus (AREA)
Abstract
(57)【要約】
【目的】 文書読み上げ装置において、文書に含まれる
表のデータ部分を読み上げる際、対応する表項目名を合
わせて読み上げることが出来るようにする。 【構成】 文書を文書バッファに読み込み、読み込んだ
文書情報からケイ線情報を検出することにより表の抽出
を行い、表構造の解析を行い、表中の項目名、データ文
字列の配置構造を示す桁位置情報、項目名、データ文字
列等からなる文書情報テーブルを作成し、この文書情報
テーブルに基づき項目名とデータ部分を合わせて読み上
げる表読み上げ文を生成し、この読み上げ文を音声合成
装置により音声に変換し、表データを音声で読み上げ
る。
表のデータ部分を読み上げる際、対応する表項目名を合
わせて読み上げることが出来るようにする。 【構成】 文書を文書バッファに読み込み、読み込んだ
文書情報からケイ線情報を検出することにより表の抽出
を行い、表構造の解析を行い、表中の項目名、データ文
字列の配置構造を示す桁位置情報、項目名、データ文字
列等からなる文書情報テーブルを作成し、この文書情報
テーブルに基づき項目名とデータ部分を合わせて読み上
げる表読み上げ文を生成し、この読み上げ文を音声合成
装置により音声に変換し、表データを音声で読み上げ
る。
Description
【0001】
【産業上の利用分野】計算機上の任意の自然語テキスト
データを、合成音声で読み上げる文書読み上げ装置に係
り、特に表形式の文書を読み上げる文書読み上げ装置に
関する。
データを、合成音声で読み上げる文書読み上げ装置に係
り、特に表形式の文書を読み上げる文書読み上げ装置に
関する。
【0002】
【従来の技術】計算機上の任意の自然語からなる文書を
合成音声を用いて読み上げる文書読み上げ技術として
は、例えば特開平2−45868号公報に記載の技術が
ある。この従来技術では、入力された文書の発声位置を
記憶する発声ポインタを設けている。発声ポインタは、
現在指し示している文章を読み上げると、次の文章を指
し、読み上げを継続する。
合成音声を用いて読み上げる文書読み上げ技術として
は、例えば特開平2−45868号公報に記載の技術が
ある。この従来技術では、入力された文書の発声位置を
記憶する発声ポインタを設けている。発声ポインタは、
現在指し示している文章を読み上げると、次の文章を指
し、読み上げを継続する。
【0003】
【発明が解決しようとする課題】従来技術によると、入
力された文書が表形式である場合、まず表の項目名を全
て読み上げ、後で表データを列挙して読み上げるので、
項目名と該当する表データとを対応づけて聞くことがで
きず、読み上げの内容を理解できないという問題があっ
た。本発明の目的は、表の項目名と対応する表データを
認識し、表データを読み上げる際には項目名も合わせて
読み上げることにより、読み上げの内容の理解を容易に
する文書読み上げ装置を提供することである。
力された文書が表形式である場合、まず表の項目名を全
て読み上げ、後で表データを列挙して読み上げるので、
項目名と該当する表データとを対応づけて聞くことがで
きず、読み上げの内容を理解できないという問題があっ
た。本発明の目的は、表の項目名と対応する表データを
認識し、表データを読み上げる際には項目名も合わせて
読み上げることにより、読み上げの内容の理解を容易に
する文書読み上げ装置を提供することである。
【0004】
【課題を解決するための手段】上記目的達成のため、本
発明の文書読み上げ装置では、読み上げる文書より表を
抽出し、抽出された表を読み上げる場合に表を構成する
項目名と表データを組み合わせて表読み上げ文を生成
し、表の代りに表読み上げ文を読み上げる。
発明の文書読み上げ装置では、読み上げる文書より表を
抽出し、抽出された表を読み上げる場合に表を構成する
項目名と表データを組み合わせて表読み上げ文を生成
し、表の代りに表読み上げ文を読み上げる。
【0005】
【作用】本発明の文書読み上げ装置では、表の代りに項
目名と表データを組み合わせた表読み上げ文を読み上げ
るので、表の項目名と該当する表データとを対応づけて
聞くことができ、表が含まれる文書について読み上げの
内容の理解を容易に行なうことができる。
目名と表データを組み合わせた表読み上げ文を読み上げ
るので、表の項目名と該当する表データとを対応づけて
聞くことができ、表が含まれる文書について読み上げの
内容の理解を容易に行なうことができる。
【0006】
【実施例】以下、本発明の第1実施例を図1〜図17に
より説明する。本実施例の特徴は、入力された自然語か
らなる文書(コードにより記述されており、ケイ線コー
ドも含まれている。)を表と文章に分類し、表データを
読み上げるときは、その前に対応する項目名を読み上げ
ることである。
より説明する。本実施例の特徴は、入力された自然語か
らなる文書(コードにより記述されており、ケイ線コー
ドも含まれている。)を表と文章に分類し、表データを
読み上げるときは、その前に対応する項目名を読み上げ
ることである。
【0007】図2は、第1実施例の文書読み上げ装置の
構成を示すブロック図である。入力装置81は文書を処
理装置82に入力するためのものである。処理装置82
は、前記入力された文書を読み上げるための処理を行う
ものである。記憶装置83は、処理装置82で行われる
処理に用いられる辞書87を記憶し、また、処理のため
に必要とされる文書バッファ86、読み上げ文章バッフ
ァ88および各種テーブル51,61(テーブルについ
ては後述する)のエリアと、ワークエリア89を備え
る。音声合成装置84及びスピーカ85は、処理装置8
2からの読み情報を受けて文書を音声出力するための、
音声合成出力装置を構成する。
構成を示すブロック図である。入力装置81は文書を処
理装置82に入力するためのものである。処理装置82
は、前記入力された文書を読み上げるための処理を行う
ものである。記憶装置83は、処理装置82で行われる
処理に用いられる辞書87を記憶し、また、処理のため
に必要とされる文書バッファ86、読み上げ文章バッフ
ァ88および各種テーブル51,61(テーブルについ
ては後述する)のエリアと、ワークエリア89を備え
る。音声合成装置84及びスピーカ85は、処理装置8
2からの読み情報を受けて文書を音声出力するための、
音声合成出力装置を構成する。
【0008】図14は、文書バッファ88に格納されて
いる文書の、表と文章(複数の文からなる)の内訳を表
す文書情報テーブル51の一例である。該テーブルにお
いて、番号52は表あるいは文章の文書情報毎に文書情
報テーブル51の先頭より1から昇順に与えられる。分
類コード53は、初期値は−1であり、当該文書情報が
文章を表す場合に0、表を表す場合には、当該表が文書
先頭から何番目の表であるかを示す数値が入る。データ
位置54は、当該文書情報が示す表または文章の先頭バ
イトが、文書バッファ88の先頭から何バイト目に位置
するかを表す数値が入る。但し、データ位置54は常に
当該文書情報が示す表または文章のいずれかの行先頭バ
イトを指す。データ長55は、当該文書情報が示す表ま
たは文章の総バイト数を表す数値が入る。なお、表の場
合、表を構成する表ケイ線はケイ線素片から構成され、
ケイ線素片には夫々コードが設定されている。第37図
にケイ線素片を示す。
いる文書の、表と文章(複数の文からなる)の内訳を表
す文書情報テーブル51の一例である。該テーブルにお
いて、番号52は表あるいは文章の文書情報毎に文書情
報テーブル51の先頭より1から昇順に与えられる。分
類コード53は、初期値は−1であり、当該文書情報が
文章を表す場合に0、表を表す場合には、当該表が文書
先頭から何番目の表であるかを示す数値が入る。データ
位置54は、当該文書情報が示す表または文章の先頭バ
イトが、文書バッファ88の先頭から何バイト目に位置
するかを表す数値が入る。但し、データ位置54は常に
当該文書情報が示す表または文章のいずれかの行先頭バ
イトを指す。データ長55は、当該文書情報が示す表ま
たは文章の総バイト数を表す数値が入る。なお、表の場
合、表を構成する表ケイ線はケイ線素片から構成され、
ケイ線素片には夫々コードが設定されている。第37図
にケイ線素片を示す。
【0009】図15は、文書バッファ86に格納されて
いる文書データのうち、表を表す文書データの構成を示
す表構造テーブル61の一例である。該テーブルにおい
て、表NO62は、当該表構造が文書情報テーブル51
における、いずれの表についてかを示すため、対応する
文書情報が持つ分類コード53と同じ値をとる。表始点
桁63は、表先頭行において、表ケイ線の左上隅(すな
わち、図37の(ハ)のケイ線素片)が何バイト目にあ
たるかを示す数値が入る。同様に表終点桁64は、表ケ
イ線の右上隅(すなわち、図37の(ニ)のケイ線素
片)の位置を示す数値が入る。項目末尾行65は、表の
項目名を記述する欄の終わりを示す横ケイ線が表先頭行
から数えて何行目にあたるかを示す数値が入る。項目数
66は、当該表の持つ項目の個数を表す。図13の場
合、最上部の文字行となる横の欄に記載された「銘柄」
「始値」……「出来高」の6項目になる。レコード数6
7は、当該表の持つレコードの個数を示す。図13を例
にとると、「A社」を含む横の欄のデータで1つのレコ
ードを構成し、同様に「B工業」を含む横の欄のデータ
が1つのレコードを構成する。項目情報68については
図16にて後述する。なお、以下では表構造テーブル6
1の各要素を、「表構造テーブル61の要素名(表NO
62の値)」の形式で記述する。(例えば、「表始点桁
(2)」は、表NO=2の表についての表始点桁63の
値を指す。)
いる文書データのうち、表を表す文書データの構成を示
す表構造テーブル61の一例である。該テーブルにおい
て、表NO62は、当該表構造が文書情報テーブル51
における、いずれの表についてかを示すため、対応する
文書情報が持つ分類コード53と同じ値をとる。表始点
桁63は、表先頭行において、表ケイ線の左上隅(すな
わち、図37の(ハ)のケイ線素片)が何バイト目にあ
たるかを示す数値が入る。同様に表終点桁64は、表ケ
イ線の右上隅(すなわち、図37の(ニ)のケイ線素
片)の位置を示す数値が入る。項目末尾行65は、表の
項目名を記述する欄の終わりを示す横ケイ線が表先頭行
から数えて何行目にあたるかを示す数値が入る。項目数
66は、当該表の持つ項目の個数を表す。図13の場
合、最上部の文字行となる横の欄に記載された「銘柄」
「始値」……「出来高」の6項目になる。レコード数6
7は、当該表の持つレコードの個数を示す。図13を例
にとると、「A社」を含む横の欄のデータで1つのレコ
ードを構成し、同様に「B工業」を含む横の欄のデータ
が1つのレコードを構成する。項目情報68については
図16にて後述する。なお、以下では表構造テーブル6
1の各要素を、「表構造テーブル61の要素名(表NO
62の値)」の形式で記述する。(例えば、「表始点桁
(2)」は、表NO=2の表についての表始点桁63の
値を指す。)
【0010】図16は、表構造テーブル61の要素の一
つである項目情報68の一例である。項目情報68は、
表を構成する項目に関する情報をテーブルの形で表した
ものである。図16の項目情報68において、項目NO
69は、当該項目情報の各項目について昇順につけた識
別番号である。項目名70には、表の各項目名が入る。
項目始点桁71は、当該項目の欄を囲むケイ線のうち、
左タテケイ線が行先頭から何バイト目にあたるかを示す
数値が入る。同様に、項目終点桁72は、右タテケイ線
が行先頭から何バイト目にあたるかを示す数値が入る。
そして、この図16に示す項目情報が、例えば図15の
表NO1の項目情報の欄に入る。レコード情報73につ
いては図17にて後述する。なお、以下では項目情報6
8の各要素(例えば、図16の項目NO1の「銘柄」
「3」「13」「レコード情報」が夫々要素になる)
を、「項目情報の要素名(当該表NO62の値,当該項
目NO69の値)」の形式で記述する。(例えば、項目
名70(1,1)となり、これは「銘柄」である。)
つである項目情報68の一例である。項目情報68は、
表を構成する項目に関する情報をテーブルの形で表した
ものである。図16の項目情報68において、項目NO
69は、当該項目情報の各項目について昇順につけた識
別番号である。項目名70には、表の各項目名が入る。
項目始点桁71は、当該項目の欄を囲むケイ線のうち、
左タテケイ線が行先頭から何バイト目にあたるかを示す
数値が入る。同様に、項目終点桁72は、右タテケイ線
が行先頭から何バイト目にあたるかを示す数値が入る。
そして、この図16に示す項目情報が、例えば図15の
表NO1の項目情報の欄に入る。レコード情報73につ
いては図17にて後述する。なお、以下では項目情報6
8の各要素(例えば、図16の項目NO1の「銘柄」
「3」「13」「レコード情報」が夫々要素になる)
を、「項目情報の要素名(当該表NO62の値,当該項
目NO69の値)」の形式で記述する。(例えば、項目
名70(1,1)となり、これは「銘柄」である。)
【0011】図17は、項目情報68の要素の一つであ
るレコード情報73の一例である。レコード情報73
は、項目情報68で示される項目に属する表データを格
納するものである。レコードNO74は、当該表データ
が何番目のレコードのものかを表す数値が入る。データ
文字列75は、表データを表す文字列が入る。図17の
例には、図16における項目名「銘柄」に対応するレコ
ード情報が示されており、レコードNOとしては図13
の「A社」で始まる横欄のレコードにレコードNO1が
付され、以下「B工業」のレコードにNO2、「C建
設」のレコードにNO3というようにレコードNOが付
され、これらの数値がレコードNO74の欄に書き込ま
れる。データ文字列の欄には、各レコードNOのレコー
ドにおける銘柄情報が書き込まれる。すなわち、レコー
ドNO1については「A社」、レコードNO2について
は「B工業」というように書き込まれる。また、図16
の項目NO2、項目名「始値」のレコード情報における
データ文字列としては、「1130」「745」「78
1」……のデータが書き込まれる。そして、図17に示
すレコード情報が、図16の項目NO1のレコード情報
の欄に入る。なお、以下ではレコード情報73の各デー
タ文字列を、「データ文字列(当該表NO62の値,当
該項目NO69の値,当該レコードNO74の値)」の
形式で記述する。(例えば、「データ文字列75(1,
1,2)」となり、これは「B工業」である。)
るレコード情報73の一例である。レコード情報73
は、項目情報68で示される項目に属する表データを格
納するものである。レコードNO74は、当該表データ
が何番目のレコードのものかを表す数値が入る。データ
文字列75は、表データを表す文字列が入る。図17の
例には、図16における項目名「銘柄」に対応するレコ
ード情報が示されており、レコードNOとしては図13
の「A社」で始まる横欄のレコードにレコードNO1が
付され、以下「B工業」のレコードにNO2、「C建
設」のレコードにNO3というようにレコードNOが付
され、これらの数値がレコードNO74の欄に書き込ま
れる。データ文字列の欄には、各レコードNOのレコー
ドにおける銘柄情報が書き込まれる。すなわち、レコー
ドNO1については「A社」、レコードNO2について
は「B工業」というように書き込まれる。また、図16
の項目NO2、項目名「始値」のレコード情報における
データ文字列としては、「1130」「745」「78
1」……のデータが書き込まれる。そして、図17に示
すレコード情報が、図16の項目NO1のレコード情報
の欄に入る。なお、以下ではレコード情報73の各デー
タ文字列を、「データ文字列(当該表NO62の値,当
該項目NO69の値,当該レコードNO74の値)」の
形式で記述する。(例えば、「データ文字列75(1,
1,2)」となり、これは「B工業」である。)
【0012】図13は、読み上げのために入力された文
書の一例である。この例の場合、項目数は6、レコード
数は30(第4レコード以下は記載を省略)である。本
実施例の場合、項目欄の上下には横ケイ線が配され、各
レコード欄の間には横ケイ線は配されない。
書の一例である。この例の場合、項目数は6、レコード
数は30(第4レコード以下は記載を省略)である。本
実施例の場合、項目欄の上下には横ケイ線が配され、各
レコード欄の間には横ケイ線は配されない。
【0013】以上の説明は、図13の表を例に用い、項
目名(「銘柄」「始値」……)が表の上部に横に並んで
いる場合についてのものであるが、項目名が表の左端に
縦に並んでいる場合には、ステップ6の処理終了時に得
られる表構造テーブル61を、ステップ7に進む前に以
下のように書き換えれば良い。すなわち、タテ型の表の
表No62がXであるとすれば、まず項目数(X)をレ
コード数(X)+1、レコード数(X)を項目数(X)
−1の値に置き換える。次に、1<Y≦項目数(X)の
範囲で、項目名(X,Y)とデータ文字列(X,1,Y
−1)を交換し、さらに1<Y≦項目数(X)かつ1≦
Z≦レコード数(X)の全てのデータ文字列(X,Y,
Z)とデータ文字列(X,Z+1,Y−1)を交換す
る。このように表構造テーブル61を書き換えるだけ
で、ステップ7で項目名が横に並んだ表と同様に読み上
げを行うことが可能である。
目名(「銘柄」「始値」……)が表の上部に横に並んで
いる場合についてのものであるが、項目名が表の左端に
縦に並んでいる場合には、ステップ6の処理終了時に得
られる表構造テーブル61を、ステップ7に進む前に以
下のように書き換えれば良い。すなわち、タテ型の表の
表No62がXであるとすれば、まず項目数(X)をレ
コード数(X)+1、レコード数(X)を項目数(X)
−1の値に置き換える。次に、1<Y≦項目数(X)の
範囲で、項目名(X,Y)とデータ文字列(X,1,Y
−1)を交換し、さらに1<Y≦項目数(X)かつ1≦
Z≦レコード数(X)の全てのデータ文字列(X,Y,
Z)とデータ文字列(X,Z+1,Y−1)を交換す
る。このように表構造テーブル61を書き換えるだけ
で、ステップ7で項目名が横に並んだ表と同様に読み上
げを行うことが可能である。
【0014】図1は、本発明の第1実施例の処理手順を
示すフローチャートである。ステップ1では、入力装置
81より入力される文書を文書バッファ86に読み込
む。ステップ2では、文書バッファ86に格納された文
書を表と文章に分類する。
示すフローチャートである。ステップ1では、入力装置
81より入力される文書を文書バッファ86に読み込
む。ステップ2では、文書バッファ86に格納された文
書を表と文章に分類する。
【0015】すなわち、図3に示すように、バッファ位
置を文書バッファの先頭にセットし(ステップ11)、
表個数として初期値0を代入し(ステップ12)、図1
4の文書情報テーブル51の番号52のためのカウンタ
としてiを初期値1とする(ステップ13)。次に現在
のバッファ位置から表を抽出する(ステップ14)(表
抽出処理については図4を用いて後述する。)。さら
に、ステップ14で表の抽出が成功したか否かを判定す
る(ステップ15)。現在のバッファ位置からの文書デ
ータが表でなければ表の抽出は失敗するので、文章であ
るとみなし、バッファ位置より一行取り出し(ステップ
16)、文書情報テーブル51の分類コード53(i)
に文章であることを表す0を代入し(ステップ17)、
データ位置54(i)に現在のバッファ位置を格納し
(ステップ18)、データ長55(i)にステップ16
で取り出した行のバイト長を代入する(ステップ1
9)。現在のバッファ位置からの文書データが表であれ
ば表の抽出は成功する。詳細は表抽出処理の説明で後述
するが、抽出が成功したとき、表始点桁63(表個
数)、表終点桁64(表個数)、項目末尾行65(表個
数)、項目数66(表個数)、項目始点桁(表個数、
1)〜項目始点桁(表個数、項目数66(表個数))、
項目終点桁(表個数、1)〜項目終点桁(表個数、項目
数66(表個数))には既に値が代入されている。
置を文書バッファの先頭にセットし(ステップ11)、
表個数として初期値0を代入し(ステップ12)、図1
4の文書情報テーブル51の番号52のためのカウンタ
としてiを初期値1とする(ステップ13)。次に現在
のバッファ位置から表を抽出する(ステップ14)(表
抽出処理については図4を用いて後述する。)。さら
に、ステップ14で表の抽出が成功したか否かを判定す
る(ステップ15)。現在のバッファ位置からの文書デ
ータが表でなければ表の抽出は失敗するので、文章であ
るとみなし、バッファ位置より一行取り出し(ステップ
16)、文書情報テーブル51の分類コード53(i)
に文章であることを表す0を代入し(ステップ17)、
データ位置54(i)に現在のバッファ位置を格納し
(ステップ18)、データ長55(i)にステップ16
で取り出した行のバイト長を代入する(ステップ1
9)。現在のバッファ位置からの文書データが表であれ
ば表の抽出は成功する。詳細は表抽出処理の説明で後述
するが、抽出が成功したとき、表始点桁63(表個
数)、表終点桁64(表個数)、項目末尾行65(表個
数)、項目数66(表個数)、項目始点桁(表個数、
1)〜項目始点桁(表個数、項目数66(表個数))、
項目終点桁(表個数、1)〜項目終点桁(表個数、項目
数66(表個数))には既に値が代入されている。
【0016】表の抽出が成功すると、表個数を1増やし
(ステップ20)、文書情報テーブル51の分類コード
53(i)に表個数を代入し(ステップ21)、データ
位置54(i)に現在のバッファ位置を格納し(ステッ
プ22)データ長55(i)にはステップ14で表抽出
が成功した場合に与えられる表バイト長を代入する(ス
テップ23)。次に、表抽出の成功、不成功にかかわら
ず、バッファ位置を文書情報テーブル51のデータ長5
5(i)の値だけ進め(ステップ24)、文書バッファ
86に格納されている文書データの終わりか否かを判定
する(ステップ25)。文書データがあれば、カウンタ
iを1増やし(ステップ26)、ステップ14に戻る。
文書データが終わりならば、文書を表と文章に分類する
処理(ステップ2)を終了する。
(ステップ20)、文書情報テーブル51の分類コード
53(i)に表個数を代入し(ステップ21)、データ
位置54(i)に現在のバッファ位置を格納し(ステッ
プ22)データ長55(i)にはステップ14で表抽出
が成功した場合に与えられる表バイト長を代入する(ス
テップ23)。次に、表抽出の成功、不成功にかかわら
ず、バッファ位置を文書情報テーブル51のデータ長5
5(i)の値だけ進め(ステップ24)、文書バッファ
86に格納されている文書データの終わりか否かを判定
する(ステップ25)。文書データがあれば、カウンタ
iを1増やし(ステップ26)、ステップ14に戻る。
文書データが終わりならば、文書を表と文章に分類する
処理(ステップ2)を終了する。
【0017】図1に戻って、ステップ3では、番号52
のカウンタiを初期値1にセットする。ステップ4で
は、変数jに文書情報テーブル51の分類コード53
(i)を代入する。ステップ5では、変数jが0である
か否か、すなわち文書情報(i)が文章であるか表であ
るかを判定する。変数jが0でなければ、表であるとみ
なし、ステップ6にすすむ。ステップ6では、変数jを
表構造テーブル61の表NO62として有する表構造を
解析する。すなわち、図8に示すように、まず、表の項
目名を抽出して表構造テーブル61の項目情報欄の項目
名70に格納し(ステップ31)、次に表データを抽出
して同じく項目情報欄のデータ文字列75に格納する
(ステップ32)。ステップ7では、ステップ6で格納
した項目名70とデータ文字列75を組み合わせた表読
み上げ文をレコード数67(j)の数だけ生成し、読み
上げ文章バッファ88に蓄積し、ステップ8へすすむ。
ステップ5において、変数jが0であり、文書情報
(i)が文章であるとみなされると、ステップ100で
当該文書データを読み上げ文章バッファ88に格納し、
ステップ8へすすむ。ステップ8では、辞書87を参照
し、読み上げ文章バッファ88に蓄積されている文章の
読み情報を得て、得られた読み情報に基づき音声を出力
する。続いてステップ9で、カウンタiを1増やし、ス
テップ10で、分類コード53(i)が負値であるか否
か判定する。ステップ10で分類コード53(i)が0
以上であればステップ4に戻り、負値であれば、文書の
読み上げを終了する。
のカウンタiを初期値1にセットする。ステップ4で
は、変数jに文書情報テーブル51の分類コード53
(i)を代入する。ステップ5では、変数jが0である
か否か、すなわち文書情報(i)が文章であるか表であ
るかを判定する。変数jが0でなければ、表であるとみ
なし、ステップ6にすすむ。ステップ6では、変数jを
表構造テーブル61の表NO62として有する表構造を
解析する。すなわち、図8に示すように、まず、表の項
目名を抽出して表構造テーブル61の項目情報欄の項目
名70に格納し(ステップ31)、次に表データを抽出
して同じく項目情報欄のデータ文字列75に格納する
(ステップ32)。ステップ7では、ステップ6で格納
した項目名70とデータ文字列75を組み合わせた表読
み上げ文をレコード数67(j)の数だけ生成し、読み
上げ文章バッファ88に蓄積し、ステップ8へすすむ。
ステップ5において、変数jが0であり、文書情報
(i)が文章であるとみなされると、ステップ100で
当該文書データを読み上げ文章バッファ88に格納し、
ステップ8へすすむ。ステップ8では、辞書87を参照
し、読み上げ文章バッファ88に蓄積されている文章の
読み情報を得て、得られた読み情報に基づき音声を出力
する。続いてステップ9で、カウンタiを1増やし、ス
テップ10で、分類コード53(i)が負値であるか否
か判定する。ステップ10で分類コード53(i)が0
以上であればステップ4に戻り、負値であれば、文書の
読み上げを終了する。
【0018】図4は、文書を表と文章に分類する処理
(図3)におけるステップ14の表抽出処理手順を表す
詳細フローチャートである。まず、抽出した表の長さを
格納する表バイト長に0を代入し初期化する(ステップ
101)。処理に用いるポインタを現在のバッファ位置
にセットし(ステップ102)、当該文書データの行カ
ウンタiを0で初期化する(ステップ103)。次に、
ポインタの指す位置より1行取り出し(ステップ10
4)、行カウンタiを1増やす(ステップ105)。取
り出した1行分の文書データについて、表の最上部のヨ
コケイ線を含んでいるか解析する、表先頭行解析を行う
(ステップ106)(表先頭行解析処理については図5
を用いて後述する)。
(図3)におけるステップ14の表抽出処理手順を表す
詳細フローチャートである。まず、抽出した表の長さを
格納する表バイト長に0を代入し初期化する(ステップ
101)。処理に用いるポインタを現在のバッファ位置
にセットし(ステップ102)、当該文書データの行カ
ウンタiを0で初期化する(ステップ103)。次に、
ポインタの指す位置より1行取り出し(ステップ10
4)、行カウンタiを1増やす(ステップ105)。取
り出した1行分の文書データについて、表の最上部のヨ
コケイ線を含んでいるか解析する、表先頭行解析を行う
(ステップ106)(表先頭行解析処理については図5
を用いて後述する)。
【0019】次に表先頭行解析が成功したか否かを判定
する(ステップ107)。表先頭行解析が失敗すると、
当該行を先頭とする表はありえないとみなし、表バイト
長を0にして(ステップ126)、表抽出が失敗したこ
とを、表・文章分類処理に報告し、終了する。表先頭行
解析が成功すると、表バイト長に当該行のバイト長を加
え(ステップ108)、ポインタを当該行バイト長分、
先にすすめる(ステップ109)。現在ポインタが文書
バッファ86に格納された文書データの終わりを指して
いるか否かを判定し、終わりならば表として未完成なの
で、ステップ126にすすみ同様に終了する。文書デー
タの終わりでなければ、ステップ111にすすむ(ステ
ップ110)。続いて、ポインタの指す位置よりさらに
1行取り出し(ステップ111)、行カウンタiを1増
やす(ステップ112)。取り出した1行分の文書デー
タについて、表の項目名の欄と表データの欄の境界を示
すケイ線を含んでいるか解析する、区切り行解析を行う
(ステップ113)(区切り行解析処理については図6
を用いて後述する。)。
する(ステップ107)。表先頭行解析が失敗すると、
当該行を先頭とする表はありえないとみなし、表バイト
長を0にして(ステップ126)、表抽出が失敗したこ
とを、表・文章分類処理に報告し、終了する。表先頭行
解析が成功すると、表バイト長に当該行のバイト長を加
え(ステップ108)、ポインタを当該行バイト長分、
先にすすめる(ステップ109)。現在ポインタが文書
バッファ86に格納された文書データの終わりを指して
いるか否かを判定し、終わりならば表として未完成なの
で、ステップ126にすすみ同様に終了する。文書デー
タの終わりでなければ、ステップ111にすすむ(ステ
ップ110)。続いて、ポインタの指す位置よりさらに
1行取り出し(ステップ111)、行カウンタiを1増
やす(ステップ112)。取り出した1行分の文書デー
タについて、表の項目名の欄と表データの欄の境界を示
すケイ線を含んでいるか解析する、区切り行解析を行う
(ステップ113)(区切り行解析処理については図6
を用いて後述する。)。
【0020】次に区切り行解析が成功したか否かを判定
する(ステップ114)。区切り行解析が失敗すると、
当該行は依然として項目名の欄に含まれているとみな
し、ステップ108へ戻る。区切り行解析が成功する
と、当該行が項目末尾行であるとみなし、表構造テーブ
ル61の項目末尾行65(現在の表個数+1)に表先頭
行からの行数を示しているiを格納する(ステップ11
5)。この時点で、次行から現われる表データ行の行数
をカウントするため、行カウンタiを0に初期化する
(ステップ116)。次に、表バイト長に当該行のバイ
ト長を加え(ステップ117)、ポインタを当該行バイ
ト長分、先にすすめる(ステップ118)。現在ポイン
タが文書バッファ86に格納された文書データの終わり
を指しているか否かを判定し、終わりならば表として未
完成なので、ステップ126にすすむ。文書データの終
わりでなければ、ステップ120にすすむ(ステップ1
19)。続いて、ポインタの指す位置より1行取り出し
(ステップ120)、行カウンタiを1増やす(ステッ
プ121)。取り出した1行分の文書データについて、
表の最終行を表すヨコケイ線を含んでいるか解析する、
表末尾行解析を行う(ステップ122)(表末尾行解析
処理については図7を用いて後述する。)。
する(ステップ114)。区切り行解析が失敗すると、
当該行は依然として項目名の欄に含まれているとみな
し、ステップ108へ戻る。区切り行解析が成功する
と、当該行が項目末尾行であるとみなし、表構造テーブ
ル61の項目末尾行65(現在の表個数+1)に表先頭
行からの行数を示しているiを格納する(ステップ11
5)。この時点で、次行から現われる表データ行の行数
をカウントするため、行カウンタiを0に初期化する
(ステップ116)。次に、表バイト長に当該行のバイ
ト長を加え(ステップ117)、ポインタを当該行バイ
ト長分、先にすすめる(ステップ118)。現在ポイン
タが文書バッファ86に格納された文書データの終わり
を指しているか否かを判定し、終わりならば表として未
完成なので、ステップ126にすすむ。文書データの終
わりでなければ、ステップ120にすすむ(ステップ1
19)。続いて、ポインタの指す位置より1行取り出し
(ステップ120)、行カウンタiを1増やす(ステッ
プ121)。取り出した1行分の文書データについて、
表の最終行を表すヨコケイ線を含んでいるか解析する、
表末尾行解析を行う(ステップ122)(表末尾行解析
処理については図7を用いて後述する。)。
【0021】次に表末尾行解析が成功したか否かを判定
する(ステップ123)。表末尾行解析が失敗すると、
当該行は依然として表データ行であるとみなし、ステッ
プ117へ戻る。表末尾行解析が成功すると、当該行が
表末尾行であるとみなし、レコード数67(現在の表個
数+1)に表データ行の行数であるi−1を格納する
(ステップ124)。最後に、表バイト長に表末尾行の
バイト長を加え(ステップ125)、表抽出が成功した
ことを、表・文章分類処理に報告し、終了する。
する(ステップ123)。表末尾行解析が失敗すると、
当該行は依然として表データ行であるとみなし、ステッ
プ117へ戻る。表末尾行解析が成功すると、当該行が
表末尾行であるとみなし、レコード数67(現在の表個
数+1)に表データ行の行数であるi−1を格納する
(ステップ124)。最後に、表バイト長に表末尾行の
バイト長を加え(ステップ125)、表抽出が成功した
ことを、表・文章分類処理に報告し、終了する。
【0022】図5は、表抽出処理(図4)におけるステ
ップ106の表先頭解析処理の手順を示す詳細フローチ
ャートである。ステップ1001では、変数nに現在解
析しようとしている表の表NO62となる表個数+1の
値を代入する。ステップ1002では、当該行の着目す
る桁を表わす桁カウンタiを0で初期化する。ステップ
1003では、当該桁が表の何番目の項目欄に含まれる
かを示す項目カウンタjを1で初期化する。ステップ1
004では、桁カウンタiを1増やし、ステップ100
5で、当該行の文字(i)がスペースか否かを判定す
る。文字(i)がスペースならば、まだ表始点桁には及
んでいないとみなし、ステップ1004に戻る。文字
(i)がスペースでなければ、今度はステップ1006
で、文字(i)が表ケイ線の左上隅部分か否かを判定す
る。文字(i)が表ケイ線の左上隅部分でなければ、当
該行は表先頭行でないとみなし、ステップ1007で表
構造テーブル61のn番目の要素をクリアし、表抽出処
理に表先頭行でないことを報告し、終了する。
ップ106の表先頭解析処理の手順を示す詳細フローチ
ャートである。ステップ1001では、変数nに現在解
析しようとしている表の表NO62となる表個数+1の
値を代入する。ステップ1002では、当該行の着目す
る桁を表わす桁カウンタiを0で初期化する。ステップ
1003では、当該桁が表の何番目の項目欄に含まれる
かを示す項目カウンタjを1で初期化する。ステップ1
004では、桁カウンタiを1増やし、ステップ100
5で、当該行の文字(i)がスペースか否かを判定す
る。文字(i)がスペースならば、まだ表始点桁には及
んでいないとみなし、ステップ1004に戻る。文字
(i)がスペースでなければ、今度はステップ1006
で、文字(i)が表ケイ線の左上隅部分か否かを判定す
る。文字(i)が表ケイ線の左上隅部分でなければ、当
該行は表先頭行でないとみなし、ステップ1007で表
構造テーブル61のn番目の要素をクリアし、表抽出処
理に表先頭行でないことを報告し、終了する。
【0023】文字(i)が表ケイ線の左上隅部分であれ
ば、この桁が表の始点であるとみなし、ステップ100
8で表始点桁63(n)に桁カウンタiを格納する。同
時に、この桁は最初の項目欄の始点桁でもあるため、ス
テップ1009で、項目始点桁71(n,j)にも桁カ
ウンタiを格納する。ステップ1010では、桁カウン
タiを1増やし、次の文字に進む。ステップ1011で
は、文字(i)は項目欄の始点桁と終点桁との間にある
かどうか、すなわち文字(i)がタテケイ線と交わらな
いヨコケイ線であるか否かを判定する。ステップ101
1で、文字(i)は項目欄の始点桁と終点桁との間にあ
ると判定されれば、ステップ1010に戻り次の桁に進
む。ステップ1011で、文字(i)は項目欄の始点桁
と終点桁との間にないと判定されれば、ステップ101
2に進み、文字(i)が項目欄の境界であるかどうか、
すなわち文字(i)がタテケイ線とT字型に交わるヨコ
ケイ線であるか否かを判定する。
ば、この桁が表の始点であるとみなし、ステップ100
8で表始点桁63(n)に桁カウンタiを格納する。同
時に、この桁は最初の項目欄の始点桁でもあるため、ス
テップ1009で、項目始点桁71(n,j)にも桁カ
ウンタiを格納する。ステップ1010では、桁カウン
タiを1増やし、次の文字に進む。ステップ1011で
は、文字(i)は項目欄の始点桁と終点桁との間にある
かどうか、すなわち文字(i)がタテケイ線と交わらな
いヨコケイ線であるか否かを判定する。ステップ101
1で、文字(i)は項目欄の始点桁と終点桁との間にあ
ると判定されれば、ステップ1010に戻り次の桁に進
む。ステップ1011で、文字(i)は項目欄の始点桁
と終点桁との間にないと判定されれば、ステップ101
2に進み、文字(i)が項目欄の境界であるかどうか、
すなわち文字(i)がタテケイ線とT字型に交わるヨコ
ケイ線であるか否かを判定する。
【0024】ステップ1012で、文字(i)が項目欄
の境界であると判定されれば、ステップ1016に進
み、当該項目の終点桁としてiを項目情報68の項目終
点桁72(n,j)に格納し、ステップ1017で項目
カウンタjを1増やし、ステップ1018で項目情報6
8の項目始点桁71(n,j)にiを格納し、ステップ
1010へ戻る。ステップ1012で、文字(i)が項
目欄の境界でないと判定されると、ステップ1013へ
進み、文字(i)が表ケイ線の右上隅部分であるか否か
を判定する。ステップ1013で、文字(i)が表ケイ
線の右上隅部分であると判定されれば、ステップ101
4で、まず当該項目の終点桁としてiを項目終点桁72
(n,j)に格納し、最後にステップ1015で、表終
点桁64(n)にiを格納して、表抽出処理に表先頭行
であることを報告し、終了する。ステップ1013で、
文字(i)が表ケイ線の右上隅部分でないと判定される
と、ステップ1007へ進み、表構造テーブル61のn
番目の要素をクリアし、表抽出処理に表先頭行でないこ
とを報告し、終了する。
の境界であると判定されれば、ステップ1016に進
み、当該項目の終点桁としてiを項目情報68の項目終
点桁72(n,j)に格納し、ステップ1017で項目
カウンタjを1増やし、ステップ1018で項目情報6
8の項目始点桁71(n,j)にiを格納し、ステップ
1010へ戻る。ステップ1012で、文字(i)が項
目欄の境界でないと判定されると、ステップ1013へ
進み、文字(i)が表ケイ線の右上隅部分であるか否か
を判定する。ステップ1013で、文字(i)が表ケイ
線の右上隅部分であると判定されれば、ステップ101
4で、まず当該項目の終点桁としてiを項目終点桁72
(n,j)に格納し、最後にステップ1015で、表終
点桁64(n)にiを格納して、表抽出処理に表先頭行
であることを報告し、終了する。ステップ1013で、
文字(i)が表ケイ線の右上隅部分でないと判定される
と、ステップ1007へ進み、表構造テーブル61のn
番目の要素をクリアし、表抽出処理に表先頭行でないこ
とを報告し、終了する。
【0025】図6は、表抽出処理(図4)におけるステ
ップ113の区切り行解析処理の手順を示す詳細フロー
チャートである。ステップ1021では、変数nに現在
解析しようとしている表の表NO62となる表個数+1
の値を代入する。ステップ1022では、本処理で着目
する桁を表わす桁カウンタiを表始点桁63(n)に初
期化する。ステップ1023では、当該桁が表の何番目
の項目欄に含まれるかを示す項目カウンタjを1で初期
化する。ステップ1024では、当該行の文字(i)が
表左側のタテケイ線であり、かつヨコケイ線の左端の始
点である(真)か否(偽)かを判定する。ステップ10
4で偽と判定されれば、当該行は区切り行ではないとみ
なし、表抽出処理に区切り行でないことを報告し、終了
する。ステップ1024で真と判定されれば、この桁が
表の左端であるとみなし、ステップ1025では、桁カ
ウンタiを1増やし、次の文字に進む。
ップ113の区切り行解析処理の手順を示す詳細フロー
チャートである。ステップ1021では、変数nに現在
解析しようとしている表の表NO62となる表個数+1
の値を代入する。ステップ1022では、本処理で着目
する桁を表わす桁カウンタiを表始点桁63(n)に初
期化する。ステップ1023では、当該桁が表の何番目
の項目欄に含まれるかを示す項目カウンタjを1で初期
化する。ステップ1024では、当該行の文字(i)が
表左側のタテケイ線であり、かつヨコケイ線の左端の始
点である(真)か否(偽)かを判定する。ステップ10
4で偽と判定されれば、当該行は区切り行ではないとみ
なし、表抽出処理に区切り行でないことを報告し、終了
する。ステップ1024で真と判定されれば、この桁が
表の左端であるとみなし、ステップ1025では、桁カ
ウンタiを1増やし、次の文字に進む。
【0026】ステップ1026では、文字(i)は項目
欄の始点桁と終点桁との間にあるかどうか、すなわち文
字(i)がタテケイ線と交わらないヨコケイ線であるか
否かを判定する。ステップ1026で、文字(i)は項
目欄の始点桁と終点桁との間にあると判定されれば、ス
テップ1025に戻り次の桁に進む。ステップ1026
で、文字(i)は項目欄の始点桁と終点桁との間にない
と判定されれば、ステップ1027で、文字(i)が2
つの項目欄の境界であり、かつ項目行と表データ行の境
界であるかどうか、すなわち文字(i)がタテケイ線と
十字型に交わるヨコケイ線である(真)か否(偽)かを
判定する。ステップ1027で、真であると判定されれ
ば、ステップ1028に進み、項目カウンタjを1増や
し、ステップ1029で項目始点桁71(n,j)がi
と一致するか否かを判定する。ステップ1029で、項
目始点桁71(n,j)がiと一致すると、ステップ1
025へ戻る。iと一致しなければ、既に解析が成功し
ている表先頭行と対応する区切り行でないとみなし、表
抽出処理に区切り行でないことを報告し、終了する。
欄の始点桁と終点桁との間にあるかどうか、すなわち文
字(i)がタテケイ線と交わらないヨコケイ線であるか
否かを判定する。ステップ1026で、文字(i)は項
目欄の始点桁と終点桁との間にあると判定されれば、ス
テップ1025に戻り次の桁に進む。ステップ1026
で、文字(i)は項目欄の始点桁と終点桁との間にない
と判定されれば、ステップ1027で、文字(i)が2
つの項目欄の境界であり、かつ項目行と表データ行の境
界であるかどうか、すなわち文字(i)がタテケイ線と
十字型に交わるヨコケイ線である(真)か否(偽)かを
判定する。ステップ1027で、真であると判定されれ
ば、ステップ1028に進み、項目カウンタjを1増や
し、ステップ1029で項目始点桁71(n,j)がi
と一致するか否かを判定する。ステップ1029で、項
目始点桁71(n,j)がiと一致すると、ステップ1
025へ戻る。iと一致しなければ、既に解析が成功し
ている表先頭行と対応する区切り行でないとみなし、表
抽出処理に区切り行でないことを報告し、終了する。
【0027】一方、ステップ1027で偽であると判定
されれば、ステップ1030に進み、当該桁が表の右端
ケイ線であり、かつ項目行と表データ行の境界であるか
どうかを判定する。ステップ1030で表の右端でない
と判定されると、文字(i)は区切り行を構成するのに
不適な文字であるとみなし、表抽出処理に区切り行でな
いことを報告し、終了する。ステップ1030で表の右
端であると判定されると、ステップ1031に進み、当
該桁iが表終点桁64(n)と一致するか否かを判定す
る。ステップ1031で、表終点桁64(n)がiと一
致しなければ、既に解析が成功している表先頭行と対応
する区切り行でないとみなし、表抽出処理に区切り行で
ないことを報告し、終了する。一方、ステップ1031
でiと一致すると、表先頭行と対応する区切り行である
とみなし、表抽出処理に区切り行であることを報告し、
終了する。
されれば、ステップ1030に進み、当該桁が表の右端
ケイ線であり、かつ項目行と表データ行の境界であるか
どうかを判定する。ステップ1030で表の右端でない
と判定されると、文字(i)は区切り行を構成するのに
不適な文字であるとみなし、表抽出処理に区切り行でな
いことを報告し、終了する。ステップ1030で表の右
端であると判定されると、ステップ1031に進み、当
該桁iが表終点桁64(n)と一致するか否かを判定す
る。ステップ1031で、表終点桁64(n)がiと一
致しなければ、既に解析が成功している表先頭行と対応
する区切り行でないとみなし、表抽出処理に区切り行で
ないことを報告し、終了する。一方、ステップ1031
でiと一致すると、表先頭行と対応する区切り行である
とみなし、表抽出処理に区切り行であることを報告し、
終了する。
【0028】図7は、表抽出処理(図4)におけるステ
ップ122の表末尾行解析処理の手順を示す詳細フロー
チャートである。ステップ1041では、変数nに現在
解析しようとしている表の表NO62となる表個数+1
の値を代入する。ステップ1042では、本処理で着目
する桁を表わす桁カウンタiを表始点桁63(n)に初
期化する。ステップ1043では、当該桁が表の何番目
の項目欄に含まれるかを示す項目カウンタjを1に初期
化する。ステップ1044では、当該行の文字(i)が
表ケイ線の左下隅部分であるか否かを判定する。ステッ
プ1044で、左下隅部分でないと判定されると、当該
行は既に解析が成功している表先頭行と対応する表末尾
行でないとみなし、表抽出処理に表末尾行でないことを
報告し、終了する。
ップ122の表末尾行解析処理の手順を示す詳細フロー
チャートである。ステップ1041では、変数nに現在
解析しようとしている表の表NO62となる表個数+1
の値を代入する。ステップ1042では、本処理で着目
する桁を表わす桁カウンタiを表始点桁63(n)に初
期化する。ステップ1043では、当該桁が表の何番目
の項目欄に含まれるかを示す項目カウンタjを1に初期
化する。ステップ1044では、当該行の文字(i)が
表ケイ線の左下隅部分であるか否かを判定する。ステッ
プ1044で、左下隅部分でないと判定されると、当該
行は既に解析が成功している表先頭行と対応する表末尾
行でないとみなし、表抽出処理に表末尾行でないことを
報告し、終了する。
【0029】一方、ステップ1044で、左下隅部分で
あると判定されると、当該桁が表の左端であるとみな
し、ステップ1045にすすみ、桁カウンタiを1増や
す。次にステップ1046では、文字(i)は項目欄の
始点桁と終点桁の間にあるかどうか、すなわち文字
(i)がタテケイ線と交わらないヨコケイ線であるか否
かを判定する。ステップ1046で、文字(i)は項目
欄の始点桁と終点桁との間にあると判定されれば、ステ
ップ1045に戻り次の桁に進む。ステップ1046
で、文字(i)は項目欄の始点桁と終点桁との間にない
と判定されれば、ステップ1047で、文字(i)が2
つの項目欄の境界であり、かつ表の下端のケイ線である
かどうか、すなわち文字(i)がタテケイ線と逆T字型
に交わるヨコケイ線である(真)か否(偽)かを判定す
る。ステップ1047で、真であると判定されれば、ス
テップ1048に進み、項目カウンタjを1増やし、ス
テップ1049で項目始点桁71(n,j)がiと一致
するか否かを判定する。ステップ1049で、項目始点
桁71(n,j)がiと一致すると、ステップ1045
へ戻る。iと一致しなければ、既に解析が成功している
表先頭行と対応する表末尾行でないとみなし、表抽出処
理に表末尾行でないことを報告し、終了する。
あると判定されると、当該桁が表の左端であるとみな
し、ステップ1045にすすみ、桁カウンタiを1増や
す。次にステップ1046では、文字(i)は項目欄の
始点桁と終点桁の間にあるかどうか、すなわち文字
(i)がタテケイ線と交わらないヨコケイ線であるか否
かを判定する。ステップ1046で、文字(i)は項目
欄の始点桁と終点桁との間にあると判定されれば、ステ
ップ1045に戻り次の桁に進む。ステップ1046
で、文字(i)は項目欄の始点桁と終点桁との間にない
と判定されれば、ステップ1047で、文字(i)が2
つの項目欄の境界であり、かつ表の下端のケイ線である
かどうか、すなわち文字(i)がタテケイ線と逆T字型
に交わるヨコケイ線である(真)か否(偽)かを判定す
る。ステップ1047で、真であると判定されれば、ス
テップ1048に進み、項目カウンタjを1増やし、ス
テップ1049で項目始点桁71(n,j)がiと一致
するか否かを判定する。ステップ1049で、項目始点
桁71(n,j)がiと一致すると、ステップ1045
へ戻る。iと一致しなければ、既に解析が成功している
表先頭行と対応する表末尾行でないとみなし、表抽出処
理に表末尾行でないことを報告し、終了する。
【0030】一方、ステップ1047で偽であると判定
されれば、ステップ1050に進み、当該桁が表ケイ線
の右下隅部分であるかどうかを判定する。ステップ10
50で表の右下隅部分でないと判定されると、文字
(i)は表末尾行を構成するのに不適な文字であるとみ
なし、表抽出処理に表末尾行でないことを報告し、終了
する。ステップ1050で表の右下隅部分であると判定
されると、ステップ1051に進み、当該桁iが表終点
桁64(n)と一致するか否かを判定する。ステップ1
051で、表終点桁64(n)がiと一致しなければ、
既に解析が成功している表先頭行と対応する表末尾行で
ないとみなし、表抽出処理に表末尾行でないことを報告
し、終了する。一方、ステップ1051でiと一致する
と、表先頭行と対応する表末尾行であるとみなし、表抽
出処理に表末尾行であることを報告し、終了する。
されれば、ステップ1050に進み、当該桁が表ケイ線
の右下隅部分であるかどうかを判定する。ステップ10
50で表の右下隅部分でないと判定されると、文字
(i)は表末尾行を構成するのに不適な文字であるとみ
なし、表抽出処理に表末尾行でないことを報告し、終了
する。ステップ1050で表の右下隅部分であると判定
されると、ステップ1051に進み、当該桁iが表終点
桁64(n)と一致するか否かを判定する。ステップ1
051で、表終点桁64(n)がiと一致しなければ、
既に解析が成功している表先頭行と対応する表末尾行で
ないとみなし、表抽出処理に表末尾行でないことを報告
し、終了する。一方、ステップ1051でiと一致する
と、表先頭行と対応する表末尾行であるとみなし、表抽
出処理に表末尾行であることを報告し、終了する。
【0031】以下、図13〜図17を用いて説明する。
図9は、表構造解析処理(図8)における項目名抽出処
理(ステップ31)の手順を示す詳細フローチャートで
ある。図13に示す文書が文書バッファ86に読み込ま
れており、図14の文書情報テーブル51にある文書情
報(3)について表構造を解析するものとする。
図9は、表構造解析処理(図8)における項目名抽出処
理(ステップ31)の手順を示す詳細フローチャートで
ある。図13に示す文書が文書バッファ86に読み込ま
れており、図14の文書情報テーブル51にある文書情
報(3)について表構造を解析するものとする。
【0032】まず、変数nに現在解析している表の表N
O62である「1」を代入する(ステップ201)。次
に、文書バッファ86内で着目する行の位置を示すポイ
ンタが現在解析している表の先頭を指すように、文書情
報(3)のデータ位置である「88」をセットする(ス
テップ202)。さらに、抽出する項目名の項目NO6
9を表わす項目カウンタiに初期値1を代入し(ステッ
プ203)、着目している行が表先頭行から何行目かを
示す行カウンタjに初期値1を代入する(ステップ20
4)。続いて、ケイ線行を読み捨てるため、表先頭行で
ある1行目(ケイ線行)を取り出し(ステップ20
5)、取り出した行のバイト数だけポインタをすすめる
(ステップ206)。この時点で、ポインタは表の2行
目(文字行)先頭を指している。
O62である「1」を代入する(ステップ201)。次
に、文書バッファ86内で着目する行の位置を示すポイ
ンタが現在解析している表の先頭を指すように、文書情
報(3)のデータ位置である「88」をセットする(ス
テップ202)。さらに、抽出する項目名の項目NO6
9を表わす項目カウンタiに初期値1を代入し(ステッ
プ203)、着目している行が表先頭行から何行目かを
示す行カウンタjに初期値1を代入する(ステップ20
4)。続いて、ケイ線行を読み捨てるため、表先頭行で
ある1行目(ケイ線行)を取り出し(ステップ20
5)、取り出した行のバイト数だけポインタをすすめる
(ステップ206)。この時点で、ポインタは表の2行
目(文字行)先頭を指している。
【0033】再び、ポインタの位置から1行取り出し
(ステップ207)、ポインタの位置を取り出した行の
バイト数だけすすめておく(ステップ208)。次に、
当該行で着目する桁を示す桁カウンタkに項目始点桁7
1(1,1)である「3」を代入し(ステップ20
9)、桁カウンタkを1増やして「4」とする(ステッ
プ210)。kが項目終点桁72(1,1)、すなわち
「13」より小さいか否かを判定して(ステップ21
1)、「4」(=k)は「13]より小さいので文字
(k)、すなわちスペースを項目名70(1,1)に格
納する(ステップ212)。同様にステップ210、ス
テップ211、ステップ212を繰返すと、kが「1
3」になったときに項目名70(1,1)には「 銘柄
」が格納されている。この時点で、項目名70(1,
1)の抽出は完了し、項目カウンタiを1増やし「2」
とする(ステップ213)。次に、iが項目数66
(1)、すなわち「6」より大きいか否かを判定し(ス
テップ214)、「2」(=i)は「6」以下なので、
再びステップ209に戻り次の項目名の抽出を行う。こ
うして、iが「6」より大きくなったときに、表の2行
目の文書データは6個の項目名に振り分けられている。
(ステップ207)、ポインタの位置を取り出した行の
バイト数だけすすめておく(ステップ208)。次に、
当該行で着目する桁を示す桁カウンタkに項目始点桁7
1(1,1)である「3」を代入し(ステップ20
9)、桁カウンタkを1増やして「4」とする(ステッ
プ210)。kが項目終点桁72(1,1)、すなわち
「13」より小さいか否かを判定して(ステップ21
1)、「4」(=k)は「13]より小さいので文字
(k)、すなわちスペースを項目名70(1,1)に格
納する(ステップ212)。同様にステップ210、ス
テップ211、ステップ212を繰返すと、kが「1
3」になったときに項目名70(1,1)には「 銘柄
」が格納されている。この時点で、項目名70(1,
1)の抽出は完了し、項目カウンタiを1増やし「2」
とする(ステップ213)。次に、iが項目数66
(1)、すなわち「6」より大きいか否かを判定し(ス
テップ214)、「2」(=i)は「6」以下なので、
再びステップ209に戻り次の項目名の抽出を行う。こ
うして、iが「6」より大きくなったときに、表の2行
目の文書データは6個の項目名に振り分けられている。
【0034】続いて行カウンタjを1増やし「2」とし
(ステップ215)、jが項目末尾行65(1)−1=
「2」より小さいか否かを判定する(ステップ21
6)。jが「2」より小さければ、項目名が次の行にま
たがっているとみなし、再びステップ207〜ステップ
216の処理を繰り返すが、j=「2」となるため、項
目名の抽出は全て完了したとみなし、終了する。こうし
て、図16の項目名70に示されるように、6個の項目
名が抽出される。
(ステップ215)、jが項目末尾行65(1)−1=
「2」より小さいか否かを判定する(ステップ21
6)。jが「2」より小さければ、項目名が次の行にま
たがっているとみなし、再びステップ207〜ステップ
216の処理を繰り返すが、j=「2」となるため、項
目名の抽出は全て完了したとみなし、終了する。こうし
て、図16の項目名70に示されるように、6個の項目
名が抽出される。
【0035】項目名抽出処理に引き続き、表データ抽出
処理を説明する。図10は、表構造解析処理(図8)に
おける表データ抽出処理(ステップ32)の手順を示す
詳細フローチャートである。まず、変数nに現在解析し
ている表の表NO62である「1」を代入する(ステッ
プ221)。次に、文書バッファ86内で着目する行の
位置を示すポインタが表データ行先頭を指すように、
(データ位置(1)+(項目末尾行+1)行分のバイト
長)をセットする(ステップ222)。さらに、抽出す
る表データの属する項目NO69を表わす項目カウンタ
iに初期値1を代入し(ステップ223)、着目してい
る行が表データ先頭行から何行目か(何番目のレコード
か)を示す行カウンタjに初期値1を代入する(ステッ
プ224)。次に、ポインタの位置から1行取り出し
(ステップ225)、ポインタの位置を取り出した行の
バイト数だけすすめておく(ステップ226)。
処理を説明する。図10は、表構造解析処理(図8)に
おける表データ抽出処理(ステップ32)の手順を示す
詳細フローチャートである。まず、変数nに現在解析し
ている表の表NO62である「1」を代入する(ステッ
プ221)。次に、文書バッファ86内で着目する行の
位置を示すポインタが表データ行先頭を指すように、
(データ位置(1)+(項目末尾行+1)行分のバイト
長)をセットする(ステップ222)。さらに、抽出す
る表データの属する項目NO69を表わす項目カウンタ
iに初期値1を代入し(ステップ223)、着目してい
る行が表データ先頭行から何行目か(何番目のレコード
か)を示す行カウンタjに初期値1を代入する(ステッ
プ224)。次に、ポインタの位置から1行取り出し
(ステップ225)、ポインタの位置を取り出した行の
バイト数だけすすめておく(ステップ226)。
【0036】次に、当該行で着目する桁を示す桁カウン
タkに項目始点桁71(1,1)である「3」を代入し
(ステップ227)、桁カウンタkを1増やして「4」
とする(ステップ228)。ここで、kが項目終点桁7
2(1,1)、すなわち「13」より小さいか否かを判
定して(ステップ229)、「4」(=k)は「13]
より小さいので文字(k)、すなわちスペースをデータ
文字列75(1,1,1)に格納する(ステップ23
0)。同様にステップ228、ステップ229、ステッ
プ230を繰返すと、kが「13」になったときにデー
タ文字列75(1,1,1)には「 A社 」が格納さ
れている。この時点で、データ文字列75(1,1,
1)の抽出は完了し、項目カウンタiを1増やし「2」
とする(ステップ231)。次に、iが項目数66
(1)、すなわち「6」より大きいか否かを判定し(ス
テップ232)、「2」(=i)は「6」以下なので、
再びステップ227に戻り次の表データの抽出を行う。
こうして、iが「6」より大きくなったときに、表デー
タ先頭行、すなわち第1レコードの文書データは6個の
データ文字列に振り分けられている。
タkに項目始点桁71(1,1)である「3」を代入し
(ステップ227)、桁カウンタkを1増やして「4」
とする(ステップ228)。ここで、kが項目終点桁7
2(1,1)、すなわち「13」より小さいか否かを判
定して(ステップ229)、「4」(=k)は「13]
より小さいので文字(k)、すなわちスペースをデータ
文字列75(1,1,1)に格納する(ステップ23
0)。同様にステップ228、ステップ229、ステッ
プ230を繰返すと、kが「13」になったときにデー
タ文字列75(1,1,1)には「 A社 」が格納さ
れている。この時点で、データ文字列75(1,1,
1)の抽出は完了し、項目カウンタiを1増やし「2」
とする(ステップ231)。次に、iが項目数66
(1)、すなわち「6」より大きいか否かを判定し(ス
テップ232)、「2」(=i)は「6」以下なので、
再びステップ227に戻り次の表データの抽出を行う。
こうして、iが「6」より大きくなったときに、表デー
タ先頭行、すなわち第1レコードの文書データは6個の
データ文字列に振り分けられている。
【0037】続いて行カウンタjを1増やし「2」とし
(ステップ233)、jがレコード数67(1)=「3
0」より小さいか否かを判定する(ステップ234)。
j(=「2」)は「30」より小さいので、抽出する表
データがまだ存在するとみなし、再びステップ225〜
ステップ234の処理を繰り返し、次のレコードについ
て同様に処理を行う。j=「30」となった時点で、表
データの抽出は全て完了したとみなし、終了する。こう
して、図17のデータ文字列75に示されるように、各
レコード情報73にレコード数個のデータ文字列が格納
される。
(ステップ233)、jがレコード数67(1)=「3
0」より小さいか否かを判定する(ステップ234)。
j(=「2」)は「30」より小さいので、抽出する表
データがまだ存在するとみなし、再びステップ225〜
ステップ234の処理を繰り返し、次のレコードについ
て同様に処理を行う。j=「30」となった時点で、表
データの抽出は全て完了したとみなし、終了する。こう
して、図17のデータ文字列75に示されるように、各
レコード情報73にレコード数個のデータ文字列が格納
される。
【0038】図11は、図1における表読み上げ文生成
処理(ステップ7)の手順を示す詳細フローチャートで
ある。前記表データ抽出処理に引き続き、図11の処理
について説明する。まず、変数nに現在解析している表
の表NO62である「1」を代入する(ステップ4
0)。次に、レコードNO74を示すレコードカウンタ
jに初期値1を代入する(ステップ41)。同様に、項
目NO69を示す項目カウンタiに初期値1を代入する
(ステップ42)。
処理(ステップ7)の手順を示す詳細フローチャートで
ある。前記表データ抽出処理に引き続き、図11の処理
について説明する。まず、変数nに現在解析している表
の表NO62である「1」を代入する(ステップ4
0)。次に、レコードNO74を示すレコードカウンタ
jに初期値1を代入する(ステップ41)。同様に、項
目NO69を示す項目カウンタiに初期値1を代入する
(ステップ42)。
【0039】ここで、データ文字列75(1,1,1)
を読み上げるための表読み上げ文を生成する(ステップ
43)。ステップ43の処理の詳細については図12に
より後述するが、この時点で、読み上げ文章バッファ8
8には「銘柄、A社。」という表読み上げ文が格納され
る。次に項目カウンタiを1増やし「2」として(ステ
ップ44)、iが項目数66(n)より大きいか否かを
判定する(ステップ45)。項目数66(n)は「6」
であり、iより大きいので、次のデータ文字列75
(1,2,1)の表読み上げ文を生成する(ステップ4
3)。こうして、データ文字列75(1,2,1)〜
(1,6,1)の表読み上げ文を読み上げ文章バッファ
88に格納したあと、次のレコードについて処理すべ
く、レコードカウンタjを1増やし、「2」とする(ス
テップ46)。そして、j(=「2」)がレコード数6
7(1)(=「30」)より大きいか否かを判定し(ス
テップ47)、jが「30」を超えるまでステップ42
〜ステップ47を繰り返す。こうして、全てのデータ文
字列75を処理すると、表読み上げ文生成処理を終了す
る。
を読み上げるための表読み上げ文を生成する(ステップ
43)。ステップ43の処理の詳細については図12に
より後述するが、この時点で、読み上げ文章バッファ8
8には「銘柄、A社。」という表読み上げ文が格納され
る。次に項目カウンタiを1増やし「2」として(ステ
ップ44)、iが項目数66(n)より大きいか否かを
判定する(ステップ45)。項目数66(n)は「6」
であり、iより大きいので、次のデータ文字列75
(1,2,1)の表読み上げ文を生成する(ステップ4
3)。こうして、データ文字列75(1,2,1)〜
(1,6,1)の表読み上げ文を読み上げ文章バッファ
88に格納したあと、次のレコードについて処理すべ
く、レコードカウンタjを1増やし、「2」とする(ス
テップ46)。そして、j(=「2」)がレコード数6
7(1)(=「30」)より大きいか否かを判定し(ス
テップ47)、jが「30」を超えるまでステップ42
〜ステップ47を繰り返す。こうして、全てのデータ文
字列75を処理すると、表読み上げ文生成処理を終了す
る。
【0040】図12は、表データ1つ分の表読み上げ文
を合成する処理(図11のステップ43)の手順を示す
詳細フローチャートである。データ文字列75(1,
1,1)について表読み上げ文を処理するときのふるま
いについて説明する。まず、nに表NO62(=1)を
代入し(ステップ301)、iに項目NO69(=1)
を代入し(ステップ302)、jにレコードNO74
(=1)を代入する(ステップ303)。項目名(1,
1)(=「 銘柄 」)をまず取り出し、スペースを除
いて、「銘柄」を読み上げ文章バッファ88に格納する
(ステップ304)。次に、読点「、」を格納する(ス
テップ305)。さらに、データ文字列(1,1,1)
(=「 A社 」)を取り出し、スペースを除いて、
「A社」を格納し(ステップ306)、最後に句
点「。」を格納する(ステップ307)。こうして読み
上げ文章バッファ88には「銘柄、A社。」という表読
み上げ文が格納される。
を合成する処理(図11のステップ43)の手順を示す
詳細フローチャートである。データ文字列75(1,
1,1)について表読み上げ文を処理するときのふるま
いについて説明する。まず、nに表NO62(=1)を
代入し(ステップ301)、iに項目NO69(=1)
を代入し(ステップ302)、jにレコードNO74
(=1)を代入する(ステップ303)。項目名(1,
1)(=「 銘柄 」)をまず取り出し、スペースを除
いて、「銘柄」を読み上げ文章バッファ88に格納する
(ステップ304)。次に、読点「、」を格納する(ス
テップ305)。さらに、データ文字列(1,1,1)
(=「 A社 」)を取り出し、スペースを除いて、
「A社」を格納し(ステップ306)、最後に句
点「。」を格納する(ステップ307)。こうして読み
上げ文章バッファ88には「銘柄、A社。」という表読
み上げ文が格納される。
【0041】以上のようにして、入力された文書データ
を表と文章に分類し、表データを読み上げるときには、
当該表データの属する項目名を先に読み上げるので、項
目名と表データを関係づけて聞くことができ、表が含ま
れる文書について読み上げの内容を容易に正しく理解す
ることができる。
を表と文章に分類し、表データを読み上げるときには、
当該表データの属する項目名を先に読み上げるので、項
目名と表データを関係づけて聞くことができ、表が含ま
れる文書について読み上げの内容を容易に正しく理解す
ることができる。
【0042】また、本実施例に変形を加えることで、さ
らに高機能な文書読み上げ装置を提供できるため、変形
例を第2実施例として図13〜図31により説明する。
なお、図18〜図31において図1〜図17と同じ参照
番号は、同じものを指す。
らに高機能な文書読み上げ装置を提供できるため、変形
例を第2実施例として図13〜図31により説明する。
なお、図18〜図31において図1〜図17と同じ参照
番号は、同じものを指す。
【0043】本実施例の特徴は、記憶装置上に内容が可
変である表読み上げ指定テーブルを設け、表に分類され
た文書データを読み上げる場合に、当該テーブルの内容
に基づいた読み上げ方をすることである。具体的には、 (1)表を構成する全ての項目について表データを読み
上げるのではなく、指定の項目に属する表データのみ読
み上げの対象とする (2)表で示される大量のレコードを全て読み上げるの
ではなく、指定の項目に特定の表データを持つレコード
だけ選択して読み上げの対象とすることで、必要とする
情報をあらかじめ知っていれば、冗長な読み上げを行う
ことなく即座に聞きたい情報を読み上げることができ
る。さらに、 (3)表を構成する任意の項目に対して、当該項目に属
する表データを読み上げる場合に付与する単位を指定す
る ことで、読み上げの内容をより簡単に理解できる。
変である表読み上げ指定テーブルを設け、表に分類され
た文書データを読み上げる場合に、当該テーブルの内容
に基づいた読み上げ方をすることである。具体的には、 (1)表を構成する全ての項目について表データを読み
上げるのではなく、指定の項目に属する表データのみ読
み上げの対象とする (2)表で示される大量のレコードを全て読み上げるの
ではなく、指定の項目に特定の表データを持つレコード
だけ選択して読み上げの対象とすることで、必要とする
情報をあらかじめ知っていれば、冗長な読み上げを行う
ことなく即座に聞きたい情報を読み上げることができ
る。さらに、 (3)表を構成する任意の項目に対して、当該項目に属
する表データを読み上げる場合に付与する単位を指定す
る ことで、読み上げの内容をより簡単に理解できる。
【0044】図19は、第2実施例の文書読み上げ装置
の構成を示すブロック図である。記憶装置83は、表の
構造と読み上げ方を記述した表読み上げ指定テーブル9
0および辞書87を記憶し、その他のバッファおよびテ
ーブルを備える。出力装置91は、表読み上げ指定テー
ブル90に表読み上げ指定情報を登録する際に、登録用
画面を表示するためのもので、本実施例において特別の
意味はない。
の構成を示すブロック図である。記憶装置83は、表の
構造と読み上げ方を記述した表読み上げ指定テーブル9
0および辞書87を記憶し、その他のバッファおよびテ
ーブルを備える。出力装置91は、表読み上げ指定テー
ブル90に表読み上げ指定情報を登録する際に、登録用
画面を表示するためのもので、本実施例において特別の
意味はない。
【0045】図20は、表読み上げ指定テーブル90の
一例である。項番161は、本テーブルに登録される表
読み上げ指定情報に1から昇順に与えられる識別番号で
ある。項目指定情報162は、当該表読み上げ指定情報
の対象となる表がどのような項目から構成されている
か、および任意項目に関する読み上げ方を登録されてい
る。項目指定情報162については、図21を用いて後
述する。レコード指定情報163は、項目指定情報16
2と一対になっており、項目指定情報162で定義され
た表のどのようなレコードを読み上げるかを条件として
記述している。レコード指定情報163については、図
22を用いて後述する。
一例である。項番161は、本テーブルに登録される表
読み上げ指定情報に1から昇順に与えられる識別番号で
ある。項目指定情報162は、当該表読み上げ指定情報
の対象となる表がどのような項目から構成されている
か、および任意項目に関する読み上げ方を登録されてい
る。項目指定情報162については、図21を用いて後
述する。レコード指定情報163は、項目指定情報16
2と一対になっており、項目指定情報162で定義され
た表のどのようなレコードを読み上げるかを条件として
記述している。レコード指定情報163については、図
22を用いて後述する。
【0046】図21は、表読み上げ指定テーブル90の
一要素である項目指定情報162の一例である。項目N
O69、項目名70、項目読み上げフラグ164、付与
単位165からなる。項目NO69、項目名70によ
り、表を構成する項目を表す項目名とその出現順序を表
す。項目読み上げフラグ164は、当該項目名で表され
る項目に属する表データを読み上げる場合は<O>、読
み飛ばす場合は<X>の値をとる。付与単位165は、
当該項目に属する表データを読み上げる際に、表データ
のあとに付与して読み上げるための単位を、表記文字列
で格納する。
一要素である項目指定情報162の一例である。項目N
O69、項目名70、項目読み上げフラグ164、付与
単位165からなる。項目NO69、項目名70によ
り、表を構成する項目を表す項目名とその出現順序を表
す。項目読み上げフラグ164は、当該項目名で表され
る項目に属する表データを読み上げる場合は<O>、読
み飛ばす場合は<X>の値をとる。付与単位165は、
当該項目に属する表データを読み上げる際に、表データ
のあとに付与して読み上げるための単位を、表記文字列
で格納する。
【0047】図22は、表読み上げ指定テーブル90の
一要素であるレコード指定情報163の一例である。レ
コード指定情報163は、テーブルの先頭から昇順にふ
られる条件NO166と、指定条件167(後述)より
なる。
一要素であるレコード指定情報163の一例である。レ
コード指定情報163は、テーブルの先頭から昇順にふ
られる条件NO166と、指定条件167(後述)より
なる。
【0048】図23は、レコード指定情報163の一要
素である指定条件167の一例である。番号168は、
後述の指定データ170に1から昇順につけられた識別
番号である。指定項目NO169は、前出の項目NO6
9のうち、読み上げるレコードを限定するために属する
表データを指定することになる項目NOを登録する。指
定データ170は、指定項目NO169で指定された項
目に属し、かつ読み上げるレコードに含まれる表データ
を表記文字列で記述する。
素である指定条件167の一例である。番号168は、
後述の指定データ170に1から昇順につけられた識別
番号である。指定項目NO169は、前出の項目NO6
9のうち、読み上げるレコードを限定するために属する
表データを指定することになる項目NOを登録する。指
定データ170は、指定項目NO169で指定された項
目に属し、かつ読み上げるレコードに含まれる表データ
を表記文字列で記述する。
【0049】図18は、本発明の第2実施例の処理手順
を示すフローチャートである。文書を読み込み、表と文
章に分類して、表に分類された文書データについて表構
造解析を行うまで(ステップ1〜ステップ6)は、第1
実施例と同じである。ステップ151では、表読み上げ
指定テーブル90に登録されている任意個数の表読み上
げ指定情報から、読み上げる表と同じ表構造を持つもの
を検索する。すなわち、図24に示すように、変数nに
当該表NO62を代入し(ステップ251)、表読み上
げ指定テーブル90の項番161を示す項番カウンタi
を1で初期化する(ステップ252)。次に、表読み上
げ指定情報(i)と表構造テーブル61における表構造
情報(n)で示されている表構造が一致するか否かを判
定し(ステップ253)、同一の構造であると判定され
た場合、表読み上げ指定情報(i)と一致したことを図
18の処理に報告し、本処理を終了する。
を示すフローチャートである。文書を読み込み、表と文
章に分類して、表に分類された文書データについて表構
造解析を行うまで(ステップ1〜ステップ6)は、第1
実施例と同じである。ステップ151では、表読み上げ
指定テーブル90に登録されている任意個数の表読み上
げ指定情報から、読み上げる表と同じ表構造を持つもの
を検索する。すなわち、図24に示すように、変数nに
当該表NO62を代入し(ステップ251)、表読み上
げ指定テーブル90の項番161を示す項番カウンタi
を1で初期化する(ステップ252)。次に、表読み上
げ指定情報(i)と表構造テーブル61における表構造
情報(n)で示されている表構造が一致するか否かを判
定し(ステップ253)、同一の構造であると判定され
た場合、表読み上げ指定情報(i)と一致したことを図
18の処理に報告し、本処理を終了する。
【0050】表構造が一致しない場合は、iを1増やし
(ステップ255)、表読み上げ指定情報(i)がまだ
存在するならばステップ253に戻り、さもなければ、
表構造が一致する表読み上げ指定情報が存在しないこと
を図18の処理に報告し、本処理を終了する。
(ステップ255)、表読み上げ指定情報(i)がまだ
存在するならばステップ253に戻り、さもなければ、
表構造が一致する表読み上げ指定情報が存在しないこと
を図18の処理に報告し、本処理を終了する。
【0051】ステップ152では、表読み上げ指定情報
検索処理(図24)で該当する表読み上げ指定情報があ
ったか否かを判定する。該当する情報がある場合は、ス
テップ154にすすむ。該当する情報がなかった場合に
は、ステップ153にすすみ、現在読み上げようとして
いる表の構造を持つ表読み上げ指定情報を利用者と対話
的に決定し、表読み上げ指定テーブル90に登録してか
ら、ステップ154にすすむ。
検索処理(図24)で該当する表読み上げ指定情報があ
ったか否かを判定する。該当する情報がある場合は、ス
テップ154にすすむ。該当する情報がなかった場合に
は、ステップ153にすすみ、現在読み上げようとして
いる表の構造を持つ表読み上げ指定情報を利用者と対話
的に決定し、表読み上げ指定テーブル90に登録してか
ら、ステップ154にすすむ。
【0052】ステップ154では、表読み上げ指定情報
に基づいて、表構造テーブル61を加工する。すなわ
ち、図26に示すように、まず、レコード指定情報16
3を参照して読み上げレコードの指定を行う(ステップ
1521)。次に付与単位165を参照して、読み上げ
る表データに単位を付与する(ステップ1522)。最
後に項目読み上げフラグ164を参照して、読み上げ項
目を指定する(ステップ1523)。あとは、第1実施
例のステップ7〜ステップ10、ステップ100と同様
に、表構造テーブル61に従い、表読み上げ文を生成
し、読み上げを行う。
に基づいて、表構造テーブル61を加工する。すなわ
ち、図26に示すように、まず、レコード指定情報16
3を参照して読み上げレコードの指定を行う(ステップ
1521)。次に付与単位165を参照して、読み上げ
る表データに単位を付与する(ステップ1522)。最
後に項目読み上げフラグ164を参照して、読み上げ項
目を指定する(ステップ1523)。あとは、第1実施
例のステップ7〜ステップ10、ステップ100と同様
に、表構造テーブル61に従い、表読み上げ文を生成
し、読み上げを行う。
【0053】以下、詳細な手順の説明は、図15〜図1
7に示す表構造テーブル61と、図20〜図23に示す
表読み上げ指定テーブル90を用いて行う。図25は、
表読み上げ指定情報と表構造情報の比較処理(ステップ
253)の手順を示す詳細フローチャートである。ま
ず、変数nに読み上げる表の表NO62を代入する(ス
テップ1501)。(ここでは、説明のため変数nに1
を代入したこととする。)次に、変数mに比較する表読
み上げ指定情報の項番161を代入する(ステップ15
02)。(同じく、説明のためm=1とする。)さら
に、項目NO69のカウンタであるiを1とする(ステ
ップ1503)。ここで、項目情報(n)に格納されて
いる項目名(n,i)と項目指定情報(m)に格納され
ている指定項目名(m,i)が同じであるか否かを調べ
る(ステップ1504)。いま、項目名(1,1)は
「銘柄」で、指定項目名(1,1)も「銘柄」である。
このため、iを1増やし(=2)(ステップ150
5)、iが項目数66(n)よりも大きいか否かを判定
する(ステップ1506)。項目数66(1)は6であ
るため、指定項目名(m,i)が存在するか否かを判定
し(ステップ1508)、存在するので再びステップ1
504へ戻る。このようにして、ステップ1505にて
iが7になるまで処理が繰り返され、ステップ1506
でiが6より大きいことから、ステップ1507へすす
む。ここで、指定項目名(1,7)をさがすが、空なの
で、表の項目名および項目数が一致しているとみなし、
両情報の表構造は同じであることを、表読み上げ指定情
報検索処理(図24)に報告し、処理を終了する。
7に示す表構造テーブル61と、図20〜図23に示す
表読み上げ指定テーブル90を用いて行う。図25は、
表読み上げ指定情報と表構造情報の比較処理(ステップ
253)の手順を示す詳細フローチャートである。ま
ず、変数nに読み上げる表の表NO62を代入する(ス
テップ1501)。(ここでは、説明のため変数nに1
を代入したこととする。)次に、変数mに比較する表読
み上げ指定情報の項番161を代入する(ステップ15
02)。(同じく、説明のためm=1とする。)さら
に、項目NO69のカウンタであるiを1とする(ステ
ップ1503)。ここで、項目情報(n)に格納されて
いる項目名(n,i)と項目指定情報(m)に格納され
ている指定項目名(m,i)が同じであるか否かを調べ
る(ステップ1504)。いま、項目名(1,1)は
「銘柄」で、指定項目名(1,1)も「銘柄」である。
このため、iを1増やし(=2)(ステップ150
5)、iが項目数66(n)よりも大きいか否かを判定
する(ステップ1506)。項目数66(1)は6であ
るため、指定項目名(m,i)が存在するか否かを判定
し(ステップ1508)、存在するので再びステップ1
504へ戻る。このようにして、ステップ1505にて
iが7になるまで処理が繰り返され、ステップ1506
でiが6より大きいことから、ステップ1507へすす
む。ここで、指定項目名(1,7)をさがすが、空なの
で、表の項目名および項目数が一致しているとみなし、
両情報の表構造は同じであることを、表読み上げ指定情
報検索処理(図24)に報告し、処理を終了する。
【0054】図27は、読み上げレコード指定処理(ス
テップ1521)の手順を示す詳細フローチャートであ
る。まず、変数nに読み上げる表の表NO62を代入す
る(ステップ1601)。次に、レコードNO74のカ
ウンタであるiを1とする(ステップ1602)。ここ
で、各項目の第i番目の表データの集合(以下、レコー
ド(i)と表現する)を読み上げるか否かを判定する
(ステップ1603)。読み上げないと判定された場
合、表構造情報(n)のうち、レコードNO74がiと
等しいデータ文字列75すべてに空値を代入する(ステ
ップ1605)。そして、ステップ1605の読み上げ
判定の結果によらず、iを1増やし(ステップ160
6)、iがレコード数67(n)よりも大きくなるま
で、ステップ1603〜ステップ1607を繰り返す。
iがレコード数67(n)よりも大きくなると処理を終
了する。
テップ1521)の手順を示す詳細フローチャートであ
る。まず、変数nに読み上げる表の表NO62を代入す
る(ステップ1601)。次に、レコードNO74のカ
ウンタであるiを1とする(ステップ1602)。ここ
で、各項目の第i番目の表データの集合(以下、レコー
ド(i)と表現する)を読み上げるか否かを判定する
(ステップ1603)。読み上げないと判定された場
合、表構造情報(n)のうち、レコードNO74がiと
等しいデータ文字列75すべてに空値を代入する(ステ
ップ1605)。そして、ステップ1605の読み上げ
判定の結果によらず、iを1増やし(ステップ160
6)、iがレコード数67(n)よりも大きくなるま
で、ステップ1603〜ステップ1607を繰り返す。
iがレコード数67(n)よりも大きくなると処理を終
了する。
【0055】図28は、レコードの読み上げ判定処理
(ステップ1603)の手順を示す詳細フローチャート
である。まず、変数nに読み上げる表の表NO62を代
入する(ステップ2001)。(ここでは、説明のため
変数nに1を代入したこととする。)次に、変数mに参
照する表読み上げ指定情報の項番161を代入し(ステ
ップ2002)、変数lに当該レコードNO74を代入
する(ステップ2003)。(同じく、説明のためm=
1、l=1とする。)さらに、条件NO166のカウン
タであるiを1とし(ステップ2004)、同様に、指
定条件167の番号168を示すカウンタであるjを1
とする(ステップ2005)。
(ステップ1603)の手順を示す詳細フローチャート
である。まず、変数nに読み上げる表の表NO62を代
入する(ステップ2001)。(ここでは、説明のため
変数nに1を代入したこととする。)次に、変数mに参
照する表読み上げ指定情報の項番161を代入し(ステ
ップ2002)、変数lに当該レコードNO74を代入
する(ステップ2003)。(同じく、説明のためm=
1、l=1とする。)さらに、条件NO166のカウン
タであるiを1とし(ステップ2004)、同様に、指
定条件167の番号168を示すカウンタであるjを1
とする(ステップ2005)。
【0056】次に変数kにm、i、jで一意に決定した
指定項目NO169の値を代入する(ステップ200
6)。図23より指定項目NO(1,1,1)は、1で
あるので、この時点でkには1が格納されている。ここ
で、先にkに代入した指定項目NO169と対応する指
定データ170(m,i,j)が、データ文字列(n,
k,l)と等しいか否かを判定する(ステップ200
7)。指定データ(1,1,1)は「 A社 」であ
り、データ文字列(1,1,1)の「 A社 」と等し
いので、カウンタjを1増やし(ステップ2008)、
次の指定データ170にすすむ。指定データ170
(1,1,2)は空なので(ステップ2009)、表読
み上げ指定処理(図26)に読み上げるレコードと判定
したことを報告し、処理を終了する。
指定項目NO169の値を代入する(ステップ200
6)。図23より指定項目NO(1,1,1)は、1で
あるので、この時点でkには1が格納されている。ここ
で、先にkに代入した指定項目NO169と対応する指
定データ170(m,i,j)が、データ文字列(n,
k,l)と等しいか否かを判定する(ステップ200
7)。指定データ(1,1,1)は「 A社 」であ
り、データ文字列(1,1,1)の「 A社 」と等し
いので、カウンタjを1増やし(ステップ2008)、
次の指定データ170にすすむ。指定データ170
(1,1,2)は空なので(ステップ2009)、表読
み上げ指定処理(図26)に読み上げるレコードと判定
したことを報告し、処理を終了する。
【0057】図29は、単位付与処理(ステップ152
2)の手順を示す詳細フローチャートである。まず、変
数nに読み上げる表の表NO62を代入する(ステップ
1701)。(ここでは、説明のため変数nに1を代入
したこととする。)次に、変数mに参照する表読み上げ
指定情報の項番161を代入し(ステップ1702)、
項目NO69を示す変数iを1とする(ステップ170
3)。さらに付与単位(m,i)があるか否か判定する
が(ステップ1704)、付与単位(1,1)は空なの
でiを1増やし(ステップ1709)、次の項目にすす
む。項目名(n,i)があるか否か判定し(ステップ1
710)、「 始値」が存在するのでステップ1704
へ戻る。
2)の手順を示す詳細フローチャートである。まず、変
数nに読み上げる表の表NO62を代入する(ステップ
1701)。(ここでは、説明のため変数nに1を代入
したこととする。)次に、変数mに参照する表読み上げ
指定情報の項番161を代入し(ステップ1702)、
項目NO69を示す変数iを1とする(ステップ170
3)。さらに付与単位(m,i)があるか否か判定する
が(ステップ1704)、付与単位(1,1)は空なの
でiを1増やし(ステップ1709)、次の項目にすす
む。項目名(n,i)があるか否か判定し(ステップ1
710)、「 始値」が存在するのでステップ1704
へ戻る。
【0058】ステップ1704からステップ1710を
繰返し、項目名(1,5)=「終値」の時、付与単位
(1,5)に「円」があるため、ステップ1705にす
すみ、レコードNO74を表すjを初期値1とする(ス
テップ1705)。ここで、データ文字列(n,i,
j)の末尾に、付与単位「円」を追加し(ステップ17
06)、jを1増やし、次のレコードにすすむ(ステッ
プ1707)。データ文字列75(n,i,j)が存在
する間は、ステップ1706からステップ1708を繰
返し(ステップ1708)、付与単位「円」を持つ項目
に属するデータ文字列75にはすべて「円」の文字列が
追加される。
繰返し、項目名(1,5)=「終値」の時、付与単位
(1,5)に「円」があるため、ステップ1705にす
すみ、レコードNO74を表すjを初期値1とする(ス
テップ1705)。ここで、データ文字列(n,i,
j)の末尾に、付与単位「円」を追加し(ステップ17
06)、jを1増やし、次のレコードにすすむ(ステッ
プ1707)。データ文字列75(n,i,j)が存在
する間は、ステップ1706からステップ1708を繰
返し(ステップ1708)、付与単位「円」を持つ項目
に属するデータ文字列75にはすべて「円」の文字列が
追加される。
【0059】図30は、表読み上げ指定処理(図26)
における読み上げ項目指定処理(ステップ1523)の
手順についての詳細フローチャートである。始めに、変
数nに読み上げる表の表NO62を代入する(ステップ
1801)。 次に項目NO69を示す変数iを1とす
る(ステップ1802)。項目情報(n)のうち、項目
NO69がiの部分の読み上げ指定を行い(ステップ1
803 図31を用いて後述する。)、iを1増やし、
次の項目にすすむ(ステップ1804)。iが項目数
(n)を超えるまで、ステップ1803〜ステップ18
04を繰返し(ステップ1805)、全ての項目につい
て読み上げ指定を行ったあと、処理を終了する。
における読み上げ項目指定処理(ステップ1523)の
手順についての詳細フローチャートである。始めに、変
数nに読み上げる表の表NO62を代入する(ステップ
1801)。 次に項目NO69を示す変数iを1とす
る(ステップ1802)。項目情報(n)のうち、項目
NO69がiの部分の読み上げ指定を行い(ステップ1
803 図31を用いて後述する。)、iを1増やし、
次の項目にすすむ(ステップ1804)。iが項目数
(n)を超えるまで、ステップ1803〜ステップ18
04を繰返し(ステップ1805)、全ての項目につい
て読み上げ指定を行ったあと、処理を終了する。
【0060】図31は、読み上げ項目指定処理(図3
0)における項目読み上げ指定処理(ステップ180
3)の詳細フローチャートである。まず、変数nに読み
上げる表の表NO62を代入する(ステップ210
1)。次に、変数mに参照する表読み上げ指定情報の項
番161を代入し(ステップ2102)、項目NO69
を示す変数iに当該項目NO69を代入する(ステップ
2103)。(ここでは、説明のためn=1、m=1、
i=2を代入したこととする。)
0)における項目読み上げ指定処理(ステップ180
3)の詳細フローチャートである。まず、変数nに読み
上げる表の表NO62を代入する(ステップ210
1)。次に、変数mに参照する表読み上げ指定情報の項
番161を代入し(ステップ2102)、項目NO69
を示す変数iに当該項目NO69を代入する(ステップ
2103)。(ここでは、説明のためn=1、m=1、
i=2を代入したこととする。)
【0061】そして、項目読み上げフラグ164(m,
i)が<X>であるか否かを判定する(ステップ210
4)が、m=1、i=2のとき項目読み上げフラグ16
4は<X>である。したがって、レコードNO74を表
す変数jに初期値1を代入し(ステップ2105)、デ
ータ文字列(n,i,j)に空を代入する(ステップ2
106)。jを1増やし(ステップ2107)、jがレ
コード数67(n)よりも大きくなるまでステップ21
06、2107を繰り返す。すなわち、項目NO=iの
データ文字列を全て消去する。
i)が<X>であるか否かを判定する(ステップ210
4)が、m=1、i=2のとき項目読み上げフラグ16
4は<X>である。したがって、レコードNO74を表
す変数jに初期値1を代入し(ステップ2105)、デ
ータ文字列(n,i,j)に空を代入する(ステップ2
106)。jを1増やし(ステップ2107)、jがレ
コード数67(n)よりも大きくなるまでステップ21
06、2107を繰り返す。すなわち、項目NO=iの
データ文字列を全て消去する。
【0062】最後に項目名(n,i)に空を代入し(ス
テップ2109)、項目NO=iの項目名、データ文字
列とも消去して処理を終了する。以上のようにして、得
られる表構造情報をもとに、第1実施例と同様の表読み
上げ文生成処理(ステップ7)を行うと、表読み上げ指
定テーブル90に基づいた表読み上げ文を読み上げるこ
とができる。したがって、必要とする情報があらかじめ
定義できる場合に、表の読み上げを冗長に行うことな
く、即座に知りたい部分だけを、指定した単位をつけて
判り易く読み上げることができる。
テップ2109)、項目NO=iの項目名、データ文字
列とも消去して処理を終了する。以上のようにして、得
られる表構造情報をもとに、第1実施例と同様の表読み
上げ文生成処理(ステップ7)を行うと、表読み上げ指
定テーブル90に基づいた表読み上げ文を読み上げるこ
とができる。したがって、必要とする情報があらかじめ
定義できる場合に、表の読み上げを冗長に行うことな
く、即座に知りたい部分だけを、指定した単位をつけて
判り易く読み上げることができる。
【0063】次に、入力文書を表に限定した表読み上げ
装置について、第3実施例として図32〜図36により
説明する。なお、図32〜図36において、図1〜図3
1と同じ参照番号は、同じものを指す。本実施例の特徴
は、(1)読み上げる対象として表のみを取り扱う表読
み上げ装置であること、(2)記憶装置上に設けられる
表読み上げ指定テーブルに、表を構成する項目名と表デ
ータをどのように組み合わせて読み上げるかを指定する
表読み上げ文型を持ち、この表読み上げ文型にしたがっ
て表の読み上げを行うことである。
装置について、第3実施例として図32〜図36により
説明する。なお、図32〜図36において、図1〜図3
1と同じ参照番号は、同じものを指す。本実施例の特徴
は、(1)読み上げる対象として表のみを取り扱う表読
み上げ装置であること、(2)記憶装置上に設けられる
表読み上げ指定テーブルに、表を構成する項目名と表デ
ータをどのように組み合わせて読み上げるかを指定する
表読み上げ文型を持ち、この表読み上げ文型にしたがっ
て表の読み上げを行うことである。
【0064】図36は、第3実施例の表読み上げ装置の
構成を示すブロック図である。記憶装置83は、表読み
上げ指定テーブル170および辞書87を記憶し、その
他のバッファおよびテーブルを備えている。(同一参照
番号の構成要素については図19の説明を参照のこ
と。)
構成を示すブロック図である。記憶装置83は、表読み
上げ指定テーブル170および辞書87を記憶し、その
他のバッファおよびテーブルを備えている。(同一参照
番号の構成要素については図19の説明を参照のこ
と。)
【0065】図33は、本発明の第3実施例で用いられ
る表読み上げ指定テーブル170である。項番161、
項目NO69、項目名70は図20における同じ参照番
号のものと同様である。表読み上げ文型171は、当該
項目に属する表データを読み上げるために生成する表読
み上げ文の、読み上げ時に代入される項目名70とデー
タ文字列75を各々「#A」、「#D」に置き換えたも
のである。
る表読み上げ指定テーブル170である。項番161、
項目NO69、項目名70は図20における同じ参照番
号のものと同様である。表読み上げ文型171は、当該
項目に属する表データを読み上げるために生成する表読
み上げ文の、読み上げ時に代入される項目名70とデー
タ文字列75を各々「#A」、「#D」に置き換えたも
のである。
【0066】図32は、本発明の第3実施例の処理手順
を示すフローチャートである。第2実施例とは、読み込
む文書が表に限られているステップ180と、後述する
表読み上げ文生成処理(ステップ181)が異なってい
る。
を示すフローチャートである。第2実施例とは、読み込
む文書が表に限られているステップ180と、後述する
表読み上げ文生成処理(ステップ181)が異なってい
る。
【0067】図34は、表読み上げ文生成処理(図32
ステップ181)の詳細フローチャートである。ステッ
プ183以外は、第1実施例の表読み上げ文生成処理
(図11)と同様である。
ステップ181)の詳細フローチャートである。ステッ
プ183以外は、第1実施例の表読み上げ文生成処理
(図11)と同様である。
【0068】図35は、1表データの表読み上げ文生成
処理(図34ステップ183)の詳細フローチャートで
ある。ステップ301〜ステップ303は、図12と同
様である。ここまでで、n=1、i=5、j=1がセッ
トされており、データ文字列75(1,5,1)=「1
120」、該当する表読み上げ文型171が「昨日の#
Aは#D円でした。」であり、図15〜図17で示す表
構造テーブル61を持っているとし、以下具体的に説明
する。
処理(図34ステップ183)の詳細フローチャートで
ある。ステップ301〜ステップ303は、図12と同
様である。ここまでで、n=1、i=5、j=1がセッ
トされており、データ文字列75(1,5,1)=「1
120」、該当する表読み上げ文型171が「昨日の#
Aは#D円でした。」であり、図15〜図17で示す表
構造テーブル61を持っているとし、以下具体的に説明
する。
【0069】ステップ311で、当該表読み上げ文型が
空であるか否か判定する。先に述べたように表読み上げ
文型が与えられているので、空でないと判定され、ステ
ップ312にすすむ。ステップ312で、内部処理用の
文字列に当該表読み上げ文型をコピーする。以下、文字
(x)は当該表読み上げ文型の先頭からx番目の文字で
あるとする。次に文字カウンタkを初期値1にセットす
る(ステップ313)。ステップ314で文字(k)が
「#」であるか否か判定する。「#」でないとステップ
318にすすみ、読み上げ文章バッファ88に文字
(k)が格納され(ステップ318)、kを1増やして
(ステップ319)文字(k)が存在すればステップ3
14に戻り、存在しなければ処理を終了する(ステップ
320)。すなわち、「昨日の」が、読み上げ文章バッ
ファ88に格納されるまで、ステップ314〜ステップ
320を繰り返す。
空であるか否か判定する。先に述べたように表読み上げ
文型が与えられているので、空でないと判定され、ステ
ップ312にすすむ。ステップ312で、内部処理用の
文字列に当該表読み上げ文型をコピーする。以下、文字
(x)は当該表読み上げ文型の先頭からx番目の文字で
あるとする。次に文字カウンタkを初期値1にセットす
る(ステップ313)。ステップ314で文字(k)が
「#」であるか否か判定する。「#」でないとステップ
318にすすみ、読み上げ文章バッファ88に文字
(k)が格納され(ステップ318)、kを1増やして
(ステップ319)文字(k)が存在すればステップ3
14に戻り、存在しなければ処理を終了する(ステップ
320)。すなわち、「昨日の」が、読み上げ文章バッ
ファ88に格納されるまで、ステップ314〜ステップ
320を繰り返す。
【0070】続いて、ステップ314で文字(k)が
「#」であると判定されると、ステップ315にすす
み、kを1増やして(ステップ315)、文字(k)が
「A」であるか否かを判定する(ステップ316)。こ
こで、「A」であると判定され、ステップ304で、当
該項目名70(1,5)=「終値」を読み上げ文章バッ
ファ88に格納する。現在、読み上げ文章バッファ88
には、「昨日の終値」が格納されている。同様にステッ
プ314〜ステップ320が次の「#」が表われるまで
繰り返され、1文字づつ読み上げ文章バッファ88に格
納される。(読み上げ文章バッファ88は「昨日の終値
は」となる。)
「#」であると判定されると、ステップ315にすす
み、kを1増やして(ステップ315)、文字(k)が
「A」であるか否かを判定する(ステップ316)。こ
こで、「A」であると判定され、ステップ304で、当
該項目名70(1,5)=「終値」を読み上げ文章バッ
ファ88に格納する。現在、読み上げ文章バッファ88
には、「昨日の終値」が格納されている。同様にステッ
プ314〜ステップ320が次の「#」が表われるまで
繰り返され、1文字づつ読み上げ文章バッファ88に格
納される。(読み上げ文章バッファ88は「昨日の終値
は」となる。)
【0071】次にステップ314で文字(k)が「#」
であると判定されると、ステップ315にすすみ、kを
1増やして(ステップ315)、文字(k)が「A」で
あるか否かを判定する(ステップ316)。今度は
「A」でないのでステップ317にすすみ、文字(k)
が「D」であるか否かを判定する(ステップ317)。
ここで、文字(k)は「D」であるので、ステップ30
6にすすみ、当該データ文字列75(1,5,1)=
「1120」を読み上げ文章バッファ88に格納する。
(読み上げ文章バッファ88は「昨日の終値は112
0」となる。)文字(k)がなくなるまで以上の処理を
続けると、処理が終了したとき、読み上げ文章バッファ
88には「昨日の終値は1120円でした。」が格納さ
れている。
であると判定されると、ステップ315にすすみ、kを
1増やして(ステップ315)、文字(k)が「A」で
あるか否かを判定する(ステップ316)。今度は
「A」でないのでステップ317にすすみ、文字(k)
が「D」であるか否かを判定する(ステップ317)。
ここで、文字(k)は「D」であるので、ステップ30
6にすすみ、当該データ文字列75(1,5,1)=
「1120」を読み上げ文章バッファ88に格納する。
(読み上げ文章バッファ88は「昨日の終値は112
0」となる。)文字(k)がなくなるまで以上の処理を
続けると、処理が終了したとき、読み上げ文章バッファ
88には「昨日の終値は1120円でした。」が格納さ
れている。
【0072】以上のようにして、表データが頻繁に更新
される表を読み上げる場合などに最適な表読み上げ装置
で、より判り易い表読み上げを実現することができる。
また、本表読み上げ装置を一定のパターンで通知を行う
構内放送等に適用する場合、表のデータ部を書き換える
だけで読み上げの変更ができるので、文章で作成した読
み上げ原稿を修正する手間を大幅に軽減することができ
る。
される表を読み上げる場合などに最適な表読み上げ装置
で、より判り易い表読み上げを実現することができる。
また、本表読み上げ装置を一定のパターンで通知を行う
構内放送等に適用する場合、表のデータ部を書き換える
だけで読み上げの変更ができるので、文章で作成した読
み上げ原稿を修正する手間を大幅に軽減することができ
る。
【0073】
【発明の効果】本発明の文書読み上げ装置によれば、表
の代りに、項目名と表データを組み合わせた表読み上げ
文を読み上げるので、表の読み上げの内容を正しく容易
に理解することができる。第2に、読み上げる項目やレ
コードを指定し、指定の項目およびレコードを選択して
読み上げるので、利用者が聞きたい情報のみを即座に提
供することができる。第3に、読み上げの際に用いる文
章を定義し、定義した文章に表の内容を組み合わせて読
み上げるので、個々の利用者について最も理解しやすい
形の読み上げを、簡単に実現できる。また、通知する事
柄が一定である構内放送等に適用すると、表のデータを
書き換えるだけで読み上げの内容を変更できるので、読
み上げ原稿を文章だけで作成し、内容が変わる度に文章
に修正を加える手間を大幅に軽減することができる。
の代りに、項目名と表データを組み合わせた表読み上げ
文を読み上げるので、表の読み上げの内容を正しく容易
に理解することができる。第2に、読み上げる項目やレ
コードを指定し、指定の項目およびレコードを選択して
読み上げるので、利用者が聞きたい情報のみを即座に提
供することができる。第3に、読み上げの際に用いる文
章を定義し、定義した文章に表の内容を組み合わせて読
み上げるので、個々の利用者について最も理解しやすい
形の読み上げを、簡単に実現できる。また、通知する事
柄が一定である構内放送等に適用すると、表のデータを
書き換えるだけで読み上げの内容を変更できるので、読
み上げ原稿を文章だけで作成し、内容が変わる度に文章
に修正を加える手間を大幅に軽減することができる。
【図1】本発明の第1実施例の処理内容を表わすフロー
チャートである。
チャートである。
【図2】本発明の第1実施例で示される文書読み上げ装
置のブロック構成図である。
置のブロック構成図である。
【図3】読み込んだ文書を表と文章に分類する処理(図
1ステップ2)の詳細フローチャートである。
1ステップ2)の詳細フローチャートである。
【図4】バッファ位置より表を抽出する処理(図3ステ
ップ14)の詳細フローチャートである。
ップ14)の詳細フローチャートである。
【図5】表先頭行解析処理(図4ステップ106)の詳
細フローチャートである。
細フローチャートである。
【図6】区切り行解析処理(図4ステップ113)の詳
細フローチャートである。
細フローチャートである。
【図7】表末尾行解析処理(図4ステップ122)の詳
細フローチャートである。
細フローチャートである。
【図8】表構造解析処理(図1ステップ6)の詳細フロ
ーチャートである。
ーチャートである。
【図9】項目名抽出処理(図8ステップ31)の詳細フ
ローチャートである。
ローチャートである。
【図10】表データ抽出処理(図8ステップ32)の詳
細フローチャートである。
細フローチャートである。
【図11】表読み上げ文生成処理(図1ステップ7)の
詳細フローチャートである。
詳細フローチャートである。
【図12】表データ1つ分の表読み上げ文を生成する処
理(図11ステップ43)の詳細フローチャートであ
る。
理(図11ステップ43)の詳細フローチャートであ
る。
【図13】本発明の実施例の説明に用いる文書である。
【図14】文書バッファ内の表と文章のデータ位置・デ
ータ長を登録する文書情報テーブル51の一例である。
ータ長を登録する文書情報テーブル51の一例である。
【図15】文書内の表の構造を登録する表構造テーブル
61の一例である。
61の一例である。
【図16】表構造テーブル61の項目情報68の一例で
ある。
ある。
【図17】項目情報68のレコード情報73の一例であ
る。
る。
【図18】本発明の第2実施例の処理手順を示すフロー
チャートである。
チャートである。
【図19】本発明の第2実施例で示される文書読み上げ
装置の構成を示すブロック図である。
装置の構成を示すブロック図である。
【図20】表読み上げ指定テーブル90の一例である。
【図21】表読み上げ指定テーブル90の一要素である
項目指定情報162の一例である。
項目指定情報162の一例である。
【図22】表読み上げ指定テーブル90の一要素である
レコード指定情報163の一例である。
レコード指定情報163の一例である。
【図23】レコード指定情報163の一要素である指定
条件167の一例である。
条件167の一例である。
【図24】表読み上げ指定情報検索処理(図18ステッ
プ151)の詳細フローチャートである。
プ151)の詳細フローチャートである。
【図25】表読み上げ指定情報と表構造情報の比較処理
(図24ステップ253)の詳細フローチャートであ
る。
(図24ステップ253)の詳細フローチャートであ
る。
【図26】表読み上げ指定処理(図18ステップ15
4)の詳細フローチャートである。
4)の詳細フローチャートである。
【図27】読み上げレコード指定処理(図26ステップ
1521)の詳細フローチャートである。
1521)の詳細フローチャートである。
【図28】レコード読み上げ判定処理(図27ステップ
1603)の詳細フローチャートである。
1603)の詳細フローチャートである。
【図29】単位付与処理(図26ステップ1522)の
詳細フローチャートである。
詳細フローチャートである。
【図30】読み上げ項目指定処理(図26ステップ15
23)の詳細フローチャートである。
23)の詳細フローチャートである。
【図31】項目読み上げ指定処理(図30ステップ18
03)の詳細フローチャートである。
03)の詳細フローチャートである。
【図32】本発明の第3実施例の処理手順を示すフロー
チャートである。
チャートである。
【図33】本発明の第3実施例における表読み上げ指定
テーブル170の一例である。
テーブル170の一例である。
【図34】表読み上げ文生成処理(図32ステップ18
1)の詳細フローチャートである。
1)の詳細フローチャートである。
【図35】1表データの表読み上げ文を生成する処理
(図34ステップ183)の詳細フローチャートであ
る。
(図34ステップ183)の詳細フローチャートであ
る。
【図36】本発明の第3実施例で示される表読み上げ装
置のブロック構成図である。
置のブロック構成図である。
【図37】ケイ線素片を示す図である。
Claims (10)
- 【請求項1】 任意の自然語からなる文書を入力するた
めの入力装置と、音声合成装置と、処理装置と、表記文
字列、品詞および読みの情報を持つ辞書を貯蔵する記憶
装置を備え、 前記辞書を参照して前記文書を構成する文章の読み情報
を得、前記読み情報に基づき、合成音声を出力すること
により文書を読み上げる文書読み上げ装置において、前
記処理装置は、前記文書より表を抽出する手段と、抽出
された表から該表を構成する項目名および表データを抽
出する手段と、前記抽出された表を読み上げる場合に、
抽出した前記表データが属する項目名を前記表データと
ともに読み上げるための読み上げ情報を生成する手段を
備え、該生成された読み上げ情報を読み上げるようにし
たことを特徴とする文書読み上げ装置。 - 【請求項2】 請求項1記載の文書読み上げ装置におい
て、前記処理装置は、予め入力された表読み上げ文型と
前記表データが属する項目名と前記表データとから表読
み上げ文を生成する手段を備え、前記項目名と表データ
の代りに前記表読み上げ文を読み上げることを特徴とす
る文書読み上げ装置。 - 【請求項3】 請求項1記載の文書読み上げ装置におい
て、前記項目名および表データを抽出する手段は抽出し
た項目名および表データを文書情報テーブルに登録する
ことを特徴とする文書読み上げ装置。 - 【請求項4】 請求項1記載の文書読み上げ装置におい
て、表の項目名および前記項目名の出現順序と前記表の
読み上げ方を定義した表読み上げ指定情報を任意個数登
録した表読み上げ指定テーブルを前記記憶装置上に設
け、前記処理装置は、前記抽出された表を読み上げる際
に該表に該当する前記表読み上げ指定情報を前記表読み
上げ指定テーブルより検索し、検索した表読み上げ指定
情報にしたがって前記抽出された表の項目名および表デ
ータの読み上げ情報を生成する手段を備えたことを特徴
とする文書読み上げ装置。 - 【請求項5】 請求項3記載の文書読み上げ装置におい
て、前記表読み上げ指定情報における表を構成する各項
目に対して該項目を読み上げるか否かを表わす項目読み
上げフラグを設定し、前記処理装置は、前記項目読み上
げフラグで読み上げが指定された項目の項目名および表
データのみを用いて読み上げ情報を生成する手段を備え
たことを特徴とする文書読み上げ装置。 - 【請求項6】 請求項3記載の文書読み上げ装置におい
て、前記表読み上げ指定情報における表を構成する任意
の項目に対して表データに付与する単位を表わす付与単
位を設定し、前記処理装置は、表を読み上げる際に前記
付与単位が指定された項目に属する表データに前記付与
単位をつけて読み上げ情報を生成する手段を備えたこと
を特徴とする文書読み上げ装置。 - 【請求項7】 請求項3記載の文書読み上げ装置におい
て、表を構成する任意の項目に属する表データの任意個
数の組からなるレコード指定情報を、前記表読み上げ指
定情報に設定し、前記処理装置は、表を読み上げる際に
前記レコード指定情報が持つ表データを含まないレコー
ドを除外して読み上げ情報を生成する手段を備えたこと
を特徴とする文書読み上げ装置。 - 【請求項8】 請求項3記載の文書読み上げ装置におい
て、前記表読み上げ指定情報における表を構成する任意
の項目に対して該項目の項目名および該項目に属する表
データの嵌め込み位置を示す情報を含む文章からなる表
読み上げ文型を設定し、前記処理装置は、前記表読み上
げ文型に前記嵌め込み位置を示す情報にしたがい前記項
目名および表データを嵌め込むことにより読み上げ情報
を生成する手段を備えたことを特徴とする文書読み上げ
装置。 - 【請求項9】 請求項3記載の文書読み上げ装置におい
て、前記処理装置は、検索の結果読み上げる表に該当す
る前記表読み上げ指定情報が存在しない場合、前記入力
装置より入力される前記表の読み上げ方と、前記読み上
げる表の項目名および前記項目名の出現順序とにより表
読み上げ指定情報を生成し、前記表読み上げ指定テーブ
ルに登録する手段を備えたことを特徴とする文書読み上
げ装置。 - 【請求項10】 任意の自然語からなる文書を入力する
ための入力装置と、音声合成装置と、処理装置と、表記
文字列、品詞および読みの情報を持つ辞書を貯蔵する記
憶装置を備え、 前記辞書を参照して前記文書を構成する文章の読み情報
を得、前記読み情報に基づき、合成音声を出力すること
により文書を読み上げる文書読み上げ装置において、前
記処理装置は、前記文書より表を抽出する手段と、抽出
された表から該表を構成する項目名および表データを抽
出する手段と、前記抽出された表を読み上げる場合に、
前記入力装置より入力される表の項目名および前記項目
名の出現順序と前記表の読み上げ方を定義した表読み上
げ指定情報と前記抽出された表を構成する項目名および
表データに基づき読み上げ情報を生成する手段を備え、
前記表の任意の部分を任意の順序で読み上げることがで
きるようにしたことを特徴とする文書読み上げ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3223516A JPH0546607A (ja) | 1991-08-08 | 1991-08-08 | 文書読み上げ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3223516A JPH0546607A (ja) | 1991-08-08 | 1991-08-08 | 文書読み上げ装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0546607A true JPH0546607A (ja) | 1993-02-26 |
Family
ID=16799368
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3223516A Pending JPH0546607A (ja) | 1991-08-08 | 1991-08-08 | 文書読み上げ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0546607A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5983181A (en) * | 1997-04-14 | 1999-11-09 | Justsystem Corp. | Method and apparatus for reading-out/collating a table document, and computer-readable recording medium with program making computer execute method stored therein |
| JP2007102605A (ja) * | 2005-10-06 | 2007-04-19 | Ntt Data Corp | 文書データ読み上げ装置及びそのコンピュータプログラム |
| JP2007241860A (ja) * | 2006-03-10 | 2007-09-20 | Fujitsu Ltd | 行計数プログラム |
-
1991
- 1991-08-08 JP JP3223516A patent/JPH0546607A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5983181A (en) * | 1997-04-14 | 1999-11-09 | Justsystem Corp. | Method and apparatus for reading-out/collating a table document, and computer-readable recording medium with program making computer execute method stored therein |
| JP2007102605A (ja) * | 2005-10-06 | 2007-04-19 | Ntt Data Corp | 文書データ読み上げ装置及びそのコンピュータプログラム |
| JP2007241860A (ja) * | 2006-03-10 | 2007-09-20 | Fujitsu Ltd | 行計数プログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3425408B2 (ja) | 文書読取装置 | |
| JP3302988B2 (ja) | キャラクタ処理方法及びキャラクタ識別方法 | |
| JP3372532B2 (ja) | 感情情報抽出方法および感情情報抽出プログラムの計算機読み取り可能な記録媒体 | |
| JP2005038395A (ja) | データベース検索装置 | |
| JP4005925B2 (ja) | 文書処理方法および文書処理装置およびプログラム | |
| JP2011238159A (ja) | 計算機システム | |
| JPH0546607A (ja) | 文書読み上げ装置 | |
| JP5245737B2 (ja) | 音声読み上げ文生成装置、音声読み上げ文生成方法および音声読み上げ文生成プログラム | |
| JP5326781B2 (ja) | 抽出規則作成システム、抽出規則作成方法及び抽出規則作成プログラム | |
| JPH0877196A (ja) | 文書情報抽出装置 | |
| JP3548372B2 (ja) | 文字認識装置 | |
| JPH08180066A (ja) | インデックス作成方法、文書検索方法及び文書検索装置 | |
| US20040034836A1 (en) | Information partitioning apparatus, information partitioning method, information partitioning program, and recording medium on which information partitioning program has been recorded | |
| JPH11250063A (ja) | 検索装置及び検索方法 | |
| JPH08212230A (ja) | 文書検索方法及び文書検索装置 | |
| KR100631086B1 (ko) | Xml을 이용한 텍스트 정규화 방법 및 장치 | |
| JPH10207875A (ja) | 表作成装置およびその方法 | |
| JP3187671B2 (ja) | 電子辞書表示装置 | |
| JPH03209564A (ja) | 文献データ登録方法 | |
| JPH06332934A (ja) | 電子辞書引き装置 | |
| JP2002014981A (ja) | 文書ファイリング装置 | |
| JP2000311170A (ja) | テキスト情報抽出方法 | |
| JPH07319890A (ja) | 文書登録検索システム | |
| JP3355289B2 (ja) | 文字データの自動校正方法及び装置 | |
| JP2001051992A (ja) | 日本語統計データ作成装置および方法、並びにディクテーションシステム |