点訳のために私が用いている方法は、新聞の切り抜きなどの活字の資料を、まず、スキャナーとOCRでテキスト化し、それを音声読み上げソフトの機能を借りてかなだけの文章に変換します(これだけではいろいろな制御用文字が含まれていますので、BASICで作ったプログラムを用いて、制御用文字の排除とある程度の分かち書きをさせます)。これを「TDC」という変換ソフトで「BASE」用のデータに変換します。これだけでは、OCRの誤認識と分かち書きや表記上の難点がどうしてもありますので、それを「BASE」上で手で直して、きちんとした点字用の文章に仕上げます。
ここに記した音声読み上げソフト機能と言うのは、ニフティサーブの「目のフォーラム(TOOL編):FEYETOOL」より入手した「VC2」に梱包されている音声読み上げソフトのうちの「SPEAK.EXE」というソフトのことです。これを用いて漢字仮名混じりのテキスト文を「SPEAK.EXE」で処理させると、漢字がほぼその読みに翻訳され、またすべてカタカナに変換されるわけですが、その文内にいくつもの, ; ' | .等の制御文字が混入してきます。これでは「TDC」が受け付けないので、その制御文字を排除することが必要であるわけです。その作業をさせるために「N88BASIC」を用いてBASICプログラムを作りました。 (「VC2」の改良版の「VC232」というのもありますが、「VC2」にあわせて作っています。)
そのプログラム「PR3TOTXT.BAS」のリストを下に記しましたので、参考にしてください。
機能は一言で言えば、制御文字である、, ; ' | .等の文字、その他若干の数字やアルファベットをスペースに置き換えるだけのプログラムです。(これ以外にも、「.」を「。」に、「が」の鼻濁音が「カ゚」と表現されるのでそれを「ガ」に置き換える作業、まれに発生するエラーを避ける処理等を行わせています。)
「SPEAK.EXE」(これを動かすために「SPEAK.BAT」というバッチファイルを作っておきます)によって作成された「*.PR3」のファイルをこのプログラムに通せば、上に記した処理を行い、テキストファイル「*.TXT」で返します。
以下、手順と、それを行ったときの経過の状況について説明します。
任意のテキストファイルを「AA」(拡張子は付けないでください)という名前に変えておきます。
これを「SPEAK.BAT」でコンバートすると次のような「AA.PR3」というファイルに変換されます。
平成7年12月18日に障害者対策推進本部で決定した障害者プラン(ノーマライゼーション7か年戦略)の厚生省関係の概要は、次のとおりである。 次に「PR3TOTXT.BAS」をRUNさせ、ファイル名をINPUTすれば、次のような「AA.TXT」というファイルができあがります。これであれば「TDC」に乗せることができると思います。
ヘーセー|シチ'ネン,ジューニカ゚ツ|ジューハチニチニ,,ショーカ゚イシャタ'イサク;スイシンホ'ンブデ,,ケッテーシタ,,ショーカ゚イシャプ'ラン,,,,ノーマライゼ'ーション|ナ'ナカ,,ネ'ン|センリャク,,;ノ;コーセーショーカ'ンケーノ;ガイヨーワ,,ツキ゚ノ|トーリ'デアル.
ヘーセー シチネン ジューニガツ ジューハチニチニ ショーガイシャタイサク スイシンホンブデ ケッテーシタ ショーガイシャプラン ノーマライゼーション ナナカ ネン センリャク ノ コーセーショーカンケーノ ガイヨーワ ツギノ トーリデアル。
ちなみに、「SPEAK.BAT」のリストは次のとおりです。
echo off speak\speak speak < AA > AA.PR3 echo on
PR3TOTXT.BAS のプログラムリストです。
10 DIM F$(1000) 15 INPUT"FILENAME(.PR3イラナイ)";FD$ 20 OPEN FD$+".PR3" FOR INPUT AS #1 30 WHILE NOT EOF(1) 40 I=I+1:LINE INPUT #1,F$(I) 50 IF LEN(F$(I))<255 THEN F$(I)=F$(I)+"」" 60 'PRINT F$(I) 80 WEND 90 CLOSE:PRINT I 200 ' 210 FOR J=1 TO I 220 FOR K=1 TO LEN(F$(J)) 240 IF MID$(F$(J),K,1)="," THEN IF K<LEN(F$(J))-1 AND MID$(F$(J),K+1,1)="," THEN MID$(F$(J),K,1)=" ":MID$(F$(J),K+1,1)="'" 250 IF MID$(F$(J),K,1)="," OR MID$(F$(J),K,1)=";" OR MID$(F$(J),K,1)="|" THEN MID$(F$(J),K,1)=" " 270 IF MID$(F$(J),K,1)="゚" THEN IF ASC(MID$(F$(J),K-1,1))<190 THEN MID$(F$(J),K,1)="゙" 280 IF MID$(F$(J),K,1)="." THEN MID$(F$(J),K,1)="。" 290 NEXT K 295 'PRINT F$(J) 297 NEXT J 910 ' 920 OPEN FD$+".TXT" FOR OUTPUT AS #1 930 FOR J=1 TO I:FOR K=1 TO LEN(F$(J)) 940 FSU$=MID$(F$(J),K,1):IF FSU$="'" GOTO 970 ELSE IF FSU$="」" THEN FSU$=CHR$(13) 960 PRINT #1,FSU$; 970 NEXT K 980 NEXT J 990 CLOSE:SYSTEM