语音合成:不断收到“fifty”而非“50”。

9
在使用PromptBuilder进行各种操作时,我在处理数字方面遇到了困难。当用户被问及他们为某物支付了多少钱,并回答“50”(是的,只是“50”,而不是“50美元”),我得到的值是“fifty”,而不是“50”。
当我期望得到一个数字时,如何确保我得到的结果是实际的数字,而不是它的等价词?

4
你的意思是:“...是‘五十’而不是‘50’。”吗? - Abbas
什么鬼!?我不记得犯了那么多错误哈哈。抱歉,我会修复的。已修复。谢谢。 - uSeRnAmEhAhAhAhAhA
不知道它是否适用于WP8,但是您需要创建一个CreateDigitsGrammar对象吗(http://msdn.microsoft.com/en-us/library/system.speech.recognition.grammar.priority.aspx)? - Neil
1
一个补丁而不是解决方案:https://dev59.com/fGgu5IYBdhLWcg3wgXO5 - spender
1
我不确定这是否适用于Win8,但我正在使用语音识别语法(虽然这在资源方面代价很大),当我说“50”时,数字而不是单词会被打印在我的richtextbox中。虽然使用Neil建议的CreateDigitsGrammar可能更具成本效益。您还可以添加自己的自定义语法,在recognizer_SpeechRecognized EventHandler中,您可以将文本框的值设置为任何您认为合适的值(或使用SendKeys将文本发送到表单或其他内容)。 - John Bartels
这种情况是否发生在其他值上?比如说输入20,会返回“twenty”吗?因为我使用的是Win7的文本识别,并且我创建了自己的文本关系,类似于ORM但用于文本识别VRD文本。 - S.H.
1个回答

0

我建议您使用Google语音搜索API,而不是这个。当然,Google搜索API是非官方的,它是反向工程的,因此如果您想将其用于官方用途,则建议不要使用它,但如果您像我一样不在意,则可以继续使用。 访问Google语音API 这是如何做到这一点的链接。与Microsoft.speech不同,Google语音需要互联网进行识别,并且集成有点棘手,但一旦完成,它会给出100%的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接