音声を滑らかにする
---BartPE実用編---

この項を試すのは、「BartPEにスクリーンリーダーを載せる」作業が成功した後にしてください。さもないと問題が複雑になって、成功はいよいよ遠ざかります。

BartPEはCDROMから立ち上がり、必要なファイル類もCDR上に存在します。
HDDに比べるとCDRの読み出し速度は格段に遅く、そのため、ともすれば音声が途切れがちになります。
これを改善するのがこの項の目的です。
ProTALKER97を使って説明しますが、他の音声エンジンを使う場合でも、ほぼ同じような処理が可能です。


■RAMDISKプラグインを確認する
BartPEの配布には、RAMDISKプラグインが同梱されており、デフォルトで機能するようになっています。一応、自分で確認してください。
ramdisk.infをエディッタなどで開きます。

[PEBuilder]
Name="RAMDisk [QSoft]"
Enable=1
Help="ramdisk.htm"

のEnable=1になっていることを確認します。
次にRamdiskに割り当てるメモリサイズです。

[Strings]
RamDiskDriveLetter="B:"
; Approximate
; Ramdisk Hex
; Size Value
; 32 megs. 0x02000000 (default)
; 64 megs. 0x04000000
; 96 megs. 0x06000000
; 128 megs. 0x08000000
RamDiskDiskSize="0x02000000"

という記述がramdisk.infにありますが、

RamDiskDiskSize="0x02000000"

でメモリサイズを指定しています。デフォルトは0x0200000になっており、これはそのすぐ上に説明があるように、32MBを割り当てることを意味しています。
この項ではProTALKER d97の辞書ディレクトリをRAMDISKに置くことを作業目的にしています。
ProTALKER 97の辞書ディレクトリは3MB足らずなので、RAMDISKの大きさもデフォルトのままでいいでしょう。

もし大規模なデータをRAMDISKに載せる必要があるときは、RAMDISKの大きさを拡大しておく必要があります。ただしむやみに大きくすると、搭載されていう物理メモリ量によっては、Windowsそのものが使えるメモリ量が足らなくなり、結果として正常に機能しなくなるので注意してください。)
ramdisk.infの確認が終われば、エディッタを閉じます。


■IBMVoices.infを編集する
GenIBMVoicesInf.exeが生成してIBMVoices.infをエディッタで開いてください。
infファイルは[XXX]という行から次の[XXXX]までが、ひとまとまりになっています。
そこで、
[Software.AddReg]

というグループの下に、

0x1,"IBM\VoiceFont\2.0","DataDir","X:\Program Files\IBM\ProTALKER 97\DICT"

というような行が存在するはずです。
行の前半分「0x1,"IBM\VoiceFont\2.0","DataDir"」までは変わりませんが、実際のディレクトリをしている後半は、PCのインストール状況によってこれとは違う場合があります。
ここで2つ仕事があります。

(1)行の後半、"X:\Program Files\IBM\ProTALKER 97\DICT"というところをメモってください。

(2)そして次に、元の行について、[X:]というドライブ名を[B:]に変更してください。ramdiskはBドライブになるので、Bドライブ上のフォルダをProTALKERが参照するようにするためです。
つまり、同行を、

0x1,"IBM\VoiceFont\2.0","DataDir","B:\Program Files\IBM\ProTALKER 97\DICT"

と書き換えます。(実際のフォルダ名はこれと違っている場合があります。)

それだけです。編集が終わったら上書き保存してエディッタを閉じます。


■Autorun_IBMVoices.cmdを編集する
IBMVoicesプラグインのフォルダに、Autorun.IBMVoices.cmdというファイルがあります。
これはPE起動時に自動実行するコマンドを書いたファイルです。
今度はこれを編集します。エディッタで開いてください。
デフォルトでは、

Subst X: %SystemDrive%\

Exit

と、コマンドが書いてあります。
1行目のSubstコマンドは、システムドライブ(BartPEを立ち上げたCDROMドライブ)をXドライブに割り当てており、その次のExitコマンドは、処理の終了を告げてます。
これを、真ん中に一行を加えて次のようにします。

Subst X: %SystemDrive%\

xcopy "X:\Program Files\IBM\ProTALKER 97\DICT" "B:\Program Files\IBM\ProTALKER 97\DICT" /E /C /H /I
Exit

IBMVoices.infをみて、さっきディレクトリをメモリましたね。それをxcopyの第1引数にします。
同じようにXをBに変えたパスを第2引数にします。
(フォルダ名は空白が含まれる場合があるので、それぞれ2重引用符で囲ってください。
/E /C /H /Iはオプション文字列です。/Eはフォルダが空でも新たにフォルダを作るようにし、/Cはエラーが発生しても作業を続けるようにし、/Hは隠しファイル類を含めてコピーするようにします。/Iはコピー先指定がディレクトリであることを示します。
つまり全体で、第1引数で指定したディレクトリの内容を、そっくりそのまま第2引数のディレクトリへコピーしています。
これで辞書をramdisk上におけるわけです。
編集が終わったら、あとは上書き保存して閉じます。


あとはPE Builderを起動してISOイメージを作ればいいのですが、環境によっては、このPE起動時のXCOPYの処理に時間がかかるかもしれません。そうすると音声エンジンの準備が整わないうちに、スクリーンリーダーが起動してしまうおそれがあります。
DelayedStartup.iniを編集して、スクリーンリーダーの起動を少し遅らせたほうがいいかもしれません。
このあたりは各自の環境にあわして調整してください。
「デスクトップリーダーを組み込む」に説明があります。