我一直在使用Microsoft Speech API(SAPI,5.3)爲我的應用程序(Windows,顯然,C++,Win8 SDK)添加語音識別支持,除了一些與加載語法有關的箍跳轉文件工作得很好。SAPI規則枚舉
但是,我無法弄清楚如何枚舉從文件加載的語法中的規則(或者甚至可能)。顯然,當您手動/動態地構建語法時,您自己正在創建規則。但是,沒有出現是從文件加載的語法中枚舉規則的一種方法。 IspRecoGrammar :: GetRule()似乎是我能夠查找規則的最接近的東西,但它旨在用於檢索單個已知規則(它需要規則名稱或ID)。
目前我只是簡單地解析XML並拔出規則名稱,但這不是一個完全的解決方案;我需要支持XML 和二進制語法配置文件,後者避開了我目前的解決方法。
任何有SAPI經驗的人都知道我會怎樣做到這一點?
你試圖在這裏實現的更高層次的目標是什麼? (AKA - 爲什麼你認爲你需要列舉SAPI規則?) –
感謝您的回覆,Eric。總之,我需要預先驗證其他數據,以反對加載的語法的規則。這些其他數據通過名稱引用規則,因此在加載其他數據時,我想驗證數據引用的語法規則(名稱)實際上是有效的。 – SBD
除了前面提到的XML處理之外,我可以(並且已經)通過簡單地不驗證然後將規則添加到「已知集合」,因爲它們是通過SAPI識別回調遇到的,但這不是一個非常強大的解決方案捕獲數據錯誤。 – SBD