2010-12-09 nvdajp の音声エンジン JTalk の開発メモをこちらに移動します。
以下に取り組みたい:
以下は着手済み:
_jtalk_core.py はアプリケーション、OSに依存しない処理をまとめた。
_nvdajp_jtalk.py は espeak ドライバに由来するコード。
覚え書き:
作業中のつぶやき https://twilog.org/24motz/date-100829
ブログ http://d.nishimotz.com/archives/596
with_jtalk ブランチを作りました https://code.launchpad.net/~nishimotz/nvdajp/with_jtalk
話速はフレームシフトの変更で行っている。
バージョンアップして rate プロパティがない場合の nvda.log のエラー。
configobj.py を直せたらいいと思うのですが。。
Initializing speech ERROR - synthDriverHandler.setSynth (14:20:05): setSynth Traceback (most recent call last): File "C:\work\nvdajp\lp\devinstaller\nvda\nvda\source\synthDriverHandler.py", line 77, in setSynth newSynth.loadSettings() File "C:\work\nvdajp\lp\devinstaller\nvda\nvda\source\synthDriverHandler.py", line 413, in loadSettings [setattr(self,s.name,c[s.name]) for s in self.supportedSettings if not s.name=="voice" and c[s.name] is not None] File "C:\work\nvdajp\lp\devinstaller\nvda\nvda\source\configobj.py", line 583, in __getitem__ val = dict.__getitem__(self, key) KeyError: 'rate'
バージョンアップ時のエラーを回避する。
本家をマージしないままの作業で恐縮ですが、
lp:~nishimotz/nvdajp/with_jtalk
リビジョン 3538 をpushしました。
ini ファイルに書き込まれるエンジン名を nvdajp_jtalk にしました。 ファイル名も揃えた方がよさそうだったので、 jtalk.py を nvdajp_jtalk.py に、 _jtalk.py を _nvdajp_jtalk.py に付け替えました。
他のファイルはいじっていません。 configobj.py を直そうかと思ったのですが、 値が見つからない場合に何らかのデフォルト値を与えなくてはならず、 変なことをすると副作用がありそうなので、やめておきます。
ソースから実行するときには pyc を消さないと、 エンジンが二つ現れて変なことになります。。
今回、音声設定には espeak と同じようにすべての設定項目が 現れますが、実際に変更できるのは速度の設定だけで、 あとはダミーです。 ini ファイルにはすべての項目が書き込まれるので、 今後、機能を追加しても、起動エラーは回避できると思います。
with_jtalk ブランチのリビジョン 3540
with_jtalk ブランチのリビジョン 3543
with_jtalk ブランチのリビジョン 3563
with_jtalk ブランチのリビジョン 3565
with_jtalk ブランチのリビジョン 3568
2010-12-01 の本家 Changeset main,3962 から orderedDict が使われるようになった。
http://www.nvda-project.org/changeset/main,3962
http://docs.python.org/whatsnew/2.7.html#pep-0372
これにより jtalk は最新ブランチとの互換性がなくなっている。
http://www.nvda-project.org/changeset/main,3977 SAPI 関連のfixあり
lp:~nishimotz/nvdajp/main 3533 にて解決。
http://bazaar.launchpad.net/~nvda-core-dev/nvda/main/revision/3995 本家が silence.py を直した。あっさり1行で。。2011-01-04