我有一个非常具体的要求。我正在开发一个应用程序,允许用户在应用程序中使用格式为HN56C12345 (任意字母数字字符序列)的员工号码。我已经浏览了链接:http://cmusphinx.sourceforge.net/wiki/tutoriallm,但我不确定这对我的用法是否有效。
所以我的问题是三倍:
发布于 2015-10-08 22:42:31
你不需要一个新的声学模型,而是一个自定义语法。请参阅grammar和http://cmusphinx.sourceforge.net/doc/sphinx4/edu/cmu/sphinx/jsgf/JSGFGrammar.html以了解更多信息。如果将字符分隔在语法中,Sphinx4就能很好地识别它们:
#JSGF V1.0
grammar jsgf.emplID;
<digit> = zero | one | two | three | four | five | six | seven | eight | nine ;
<digit2> = <digit> <digit> ;
<digit4> = <digit2> <digit2> ;
<digit5> = <digit4> <digit> ;
// This rule accepts IDs of a kind: hn<2 digits>c<5 digits>.
public <id> = h n <digit2> c <digit5> ;至于准确性,有两种方法来提高它。如果员工人数不是太大,您可以使用所有可能的员工If来制定语法。如果这不是你的情况,那么拥有一个通用语法是你唯一的选择。尽管可以定制一个记分器,它将使用上下文信息比一般算法更好地预测员工ID。这种方法需要一些ASR和CMU代码方面的知识。
https://stackoverflow.com/questions/33026460
复制相似问题