改めて nvdaController_isSpeaking について公開している説明を読んでみたら、 返り値が bool なのか int なのかよくわからないことに気付きました。
https://osdn.net/projects/nvdajp/wiki/ControllerClientEnhancement
Controller Client enhancement by NVDAJP の説明を更新しました。
https://osdn.net/projects/nvdajp/wiki/ControllerClientEnhancement
例えば isSpeaking の返り値は32ビット整数です。 この値が 0 の場合は False として、 この値が 0 以外の場合は True として解釈してください。
API の利用方法が NVDA 日本語版の仕様と異なる場合には NVDA が TypeError などを出し、 正しく API が動作しない可能性があります。
NVDA 日本語版の API 実装に関する不備を発見された場合は、 NVDA 日本語チームのチケットやメーリングリストでご報告いただければ幸いです。
なお、NVDA 日本語ベータ版 2017.1jp-beta-161229
http://s.nvda.jp/nvda_2017.1jp-beta-161229.exe
にて、ベータ版とリリース版の違いにかかわらず 日本語設定「NVDAのエラーを音で報告」 でエラー音を無効化できるようにしました。 デフォルトは報告なしです。
NVDA 対応アプリの開発においては「エラーを音で報告」を有効にしていただくことをお勧めします。 (設定変更後には念のため NVDA を再起動してください)
本家のチケットで点字ディスプレイドライバーに関連して、ちょっと似ているエラーログが報告されていて、 Python 2.7.13 から ctypes の挙動が変わったことの影響ではないかと言われています。
https://github.com/nvaccess/nvda/issues/6705#issuecomment-271184769
前述の件が関係あるとすれば
Python Issue29082
In 2.7.13, _ctypes.LoadLibrary no longer accepts Unicode objects
再現条件として報告していただいたこと
コントローラークライアントAPI と SAPI5 音声エンジンの検証として、 下記の NvdaDemoApp 140616 が正常に動くことを確認しました。
bin/Debug に WpfApplication1.exe ができるので、同じ場所に下記の nvdaControllClient32.dll および nvdaControllClient64.dll を置いておく。
nvda_2016.4jp_controllerClientJp.zip
テスト環境 1
テスト環境 2
いずれも Test IsXXX を実行して isSpeaking などの結果が正常に取得される。 NVDA のログにエラーメッセージは出ていない。
以下、MLから引用:
MMメール2が NVDA 日本語ベータ版 2017.1jp-beta-161227 で頻繁にエラー音を出す問題について、 ログファイルを送っていただいたので、問題箇所だけ引用します。
nvdaController_isSpeaking に起因するエラーのようです。
なお、リリース版でもこのエラーは出ているはずで、 エラー音が鳴らないため気づかれていなかったと思います。