我正在研究各种语音识别策略,我喜欢grammars as defined in the Web Speech spec的想法。似乎如果你能告诉语音识别服务你期望“是”或“否”,服务可以更可靠地将“是”识别为“是”,将“否”识别为“否”,并且希望也能够说“它听起来不像那些!”。
但是,在SFSpeechRecognitionRequest
中,我只看到taskHint
来自confirmation
dictation
,search
,unspecified
和{{{{}}的值1}}。
我也看到SFSpeechRecognitionTaskHint
,但似乎是出于不同的目的。即,我认为我应该把品牌/商标类型的东西放在那里。将“是”和“否”置于不会使这些单词更有可能被选中,因为它们已经存在于系统字典中(这是我根据文档所说的基础做出的假设)。
使用API可以做更像语法的事情,或者更简单地说,只是提供一个预期短语列表,这样语音识别更有可能产生一个我期望的结果,而不是类似听起来的胡言乱语/同音词? contextualStrings
是否可能会增加系统选择其中一个字符串的可能性,而不仅仅是扩展系统字典?或者也许我采取了错误的方法,我应该自己强制执行语法并枚举SFSpeechRecognitionRequest.contextualStrings
,直到找到一个匹配的预期单词?
不幸的是,我自己无法测试这些API;我只是在研究编写原生iOS应用程序的可行性,而没有必要的开发环境。