我有一个非常具体的要求。我正在开发一个应用程序,允许用户在应用程序中说出他们的员工编号,格式为HN56C12345(任何字母数字字符序列)。我已经浏览了链接:http://cmusphinx.sourceforge.net/wiki/tutoriallm但我不确定这是否适用于我的用例。
所以我的问题有三个方面:
答案 0 :(得分:1)
你不需要一个新的声学模型,而是一个自定义语法。请参阅http://cmusphinx.sourceforge.net/wiki/tutoriallm#building_a_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> ;
关于准确性,有两种方法可以增加它。如果员工人数不是太大,您可以使用所有可能的员工ID制作语法。如果不是这种情况,那么拥有通用语法是唯一的选择。虽然可以制作一个自定义记分员,它将使用上下文信息来比一般算法更好地预测员工ID。这种方式需要ASR和CMU Sphinx代码中的一些知识。