Microsoft Speech API を使用して音声認識を実行しています。
外部ルール参照を使用するまではすべて問題ありませんでした(http://msdn.microsoft.com/en-us/library/hh361619によると)
<grammar version="1.0" xml:lang="fr-FR" mode="voice" root="ruleCalendar" xmlns="http://www.w3.org/2001/06/grammar" tag-format="semantics/1.0">
<rule id="ruleAddEvent">
<item>Hello</item>
<ruleref uri="#world" />
</rule>
</grammar>
正常に動作しますが、ruleref を外部ファイルに置き換えると、RecognizeCompleted イベントで認識ループが発生し、何にでも一致するように見えます。
<ruleref uri="other.xml#world" />
- 非常に単純なファイルを参照しようとしました
- cmnrules.cfg を参照してみました
- 絶対パスを設定してみた
- エラーを入れたらファイル上がり解析エラー
- other2.xml のように ruleref に間違った値を入力してもループします。
C# コードはここにあります l.75: https://github.com/JpEncausse/WSRMacro/blob/master/WSRMacro/WSRMacro.cs
ruleref で定義されたファイルが見つからないと思います。
- 相対パスで検索しましたか?
- デフォルトの文法ディレクトリを設定する方法はありますか?