Ticket #29870

SAPI4 ProTALKERの話速設定の影響で音声エンジンが起動できない

Open Date: 2012-10-17 18:50 Last Update: 2014-05-24 23:07

Reporter: nishimoto Owner: nishimoto
Type: Bugs Status: Closed
Component: 音声合成 MileStone: 2014.2jp (closed)
Priority: 5 - Medium Severity: 5 - Medium
Resolution: Fixed

Details

本家チケット2341として登録されていますが、本家が対応するかどうか分からないので登録します。

http://www.nvda-project.org/ticket/2341

SAPI4 ドライバで ProTALKER を使うときに「簡単音声設定」(NVDA+Ctrl+上下左右の矢印)での速度変更がうまく動かないとのことです。

速度設定および速度範囲を返すAPIの互換性の問題のようです。

Attachment File List

No attachments

Ticket History (3/7 Histories)

2012-10-17 18:50 Updated by: nishimoto
  • New Ticket "ProTALKERの話速設定" created
2014-03-01 11:09 Updated by: nishimoto
Comment

SAPI4 ドライバで ProTALKER を使うときの不具合についてご報告があったので、ここに追記しておきます:

  • 速度の設定を95以上にするとOKをクリックしてもダイアログを閉じることができません。キャンセルはできます。
  • 94以下にすると閉じることはできますが、再度ダイアログを開くとなぜか89になっています。84から94の間の数字にすると、すべて89になります。
  • 83以下にすると78になります。

本家チケット 2341 に関連していると思われますが、当該チケットにはその後コメントが付いていません:

http://community.nvda-project.org/ticket/2341

2014-05-18 16:19 Updated by: nishimoto
  • Owner Update from (None) to nishimoto
  • Resolution Update from None to Accepted
  • Component Update from (None) to 音声合成
  • Summary Updated
2014-05-18 16:33 Updated by: nishimoto
  • Summary Updated
Comment

概要を「ProTALKERの話速設定」から「SAPI4 ProTALKERの話速設定の影響で音声エンジンが起動できない」に変更。

以下のようなことに気づいたのでこのチケットに追記します。

2013.2jp 以前の SAPI4 ドライバーでProTALKERの話速を最高(100)にすると、実際には nvda.ini には101という値が書き込まれます。

[speech]
     synth = sapi4

     [[sapi4]]
          capPitchChange = 0
          sayCapForCapitals = False
          beepForCapitals = True
          useSpellingFunctionality = True
          voice = {904AAB60-5D94-11D0-830A-444553540000}
          rate = 101
          pitch = 25
          volume = 100

この設定ファイルの環境を 2013.3jp に更新すると、設定ファイルの値のチェックが厳しくなっている影響で、音声エンジンの初期化に失敗します。

ERROR - synthDriverHandler.setSynth (16:15:05):
setSynth
Traceback (most recent call last):
  File "synthDriverHandler.pyo", line 80, in setSynth
  File "synthDriverHandler.pyo", line 473, in loadSettings
  File "config\__init__.pyo", line 918, in __getitem__
  File "config\__init__.pyo", line 973, in _cacheLeaf
  File "validate.pyo", line 602, in check
  File "validate.pyo", line 634, in _check_value
  File "validate.pyo", line 822, in is_integer
VdtValueTooBigError: the value "101" is too big.

さらにこの状態から音声エンジンを SAPI4 に切り替えることもできなくなります。

この問題は以下の手順で解決できます:

  • NVDA を終了する
  • nvda.ini の sapi4 セクション rate = 101 を rate = 100 に書きかえる
  • NVDA を再起動する

もっと簡単な対策を用意して SAPI4 エンジンがちゃんと使える状態にしてあげる必要がありそうに思います。

バージョンごとにバリデーション処理がどう変化しているか、もうすこし調べてみます。

備考:さきほど同じ内容でコメントを書いたのですが、完全削除してタイトルと wiki 記法を修正しました。

2014-05-21 12:40 Updated by: nishimoto
Comment

更新チェック統計から 2014.1jp に移行していないユーザーが約15パーセントいることがわかっており、 一方で NVDA を旧バージョンから更新すると SAPI4 エンジンがエラーになると指摘されている (実際に最近の本家のバージョンアップで nvda.ini のバリデーションが厳しくなっている)ので、 本件への対応は重要かもしれません。

以下の変更が可能か、検討したいと思います:

  • NVDA 日本語版で rate 101 がエラーにならないようにバリデーションの処理を変更する
  • ただし新たに nvda.ini に書き込むときには 100 を超える値を書き込まないようにして、互換性を維持する
2014-05-22 23:16 Updated by: nishimoto
  • Resolution Update from Accepted to Fixed
Comment

このチケットの問題と、SAPI4での「簡単音声設定」での声の高さの変更の不具合への対策 #33821 を行ったテスト版を作りました:

日本語テスト版 jpbeta140522

https://dl.dropboxusercontent.com/u/62564469/nvda_jpbeta140522.exe

SAPI4 の音声エンジンをお使いのかたにテストしていただいて、 動作報告で問題がなさそう(既存の問題の解決になっていそう)であれば、 2014.2jp に取り入れることは可能です。

5月25日までに何もリアクションがなければ、検証不十分ということで、2014.2jp への採用は見送ります。

2014-05-24 23:07 Updated by: nishimoto
  • Milestone Update from (None) to 2014.2jp (closed)
  • Ticket Close date is changed to 2014-05-24 23:07
  • Status Update from Open to Closed
Comment

問題なさそうなので、本チケットはクローズして、ひきつづき 2014.2jp リリース候補版で最終チェックをしたいと思います。

Edit

Please login to add comment to this ticket » Login