チケット #29870

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

登録: 2012-10-17 18:50 最終更新: 2014-05-24 23:07

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

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

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

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

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

チケットの履歴 (7 件中 3 件表示)

2012-10-17 18:50 更新者: nishimoto
  • 新しいチケット "ProTALKERの話速設定" が作成されました
2014-03-01 11:09 更新者: nishimoto
コメント

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

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

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

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

2014-05-18 16:19 更新者: nishimoto
  • 担当者(未割り当て) から nishimoto に更新されました
  • 解決法なし から 受領 に更新されました
  • コンポーネント(未割り当て) から 音声合成 に更新されました
  • 概要が更新されました
2014-05-18 16:33 更新者: nishimoto
  • 概要が更新されました
コメント

概要を「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 更新者: nishimoto
コメント

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

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

  • NVDA 日本語版で rate 101 がエラーにならないようにバリデーションの処理を変更する
  • ただし新たに nvda.ini に書き込むときには 100 を超える値を書き込まないようにして、互換性を維持する
2014-05-22 23:16 更新者: nishimoto
  • 解決法受領 から 修正済み に更新されました
コメント

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

日本語テスト版 jpbeta140522

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

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

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

2014-05-24 23:07 更新者: nishimoto
  • マイルストーン(未割り当て) から 2014.2jp (完了済み) に更新されました
  • チケット完了時刻2014-05-24 23:07 に更新されました
  • 状況オープン から 完了 に更新されました
コメント

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

添付ファイルリスト

添付ファイルはありません

編集

このチケットにコメントを追加するには、ログインが必要です » ログインする