FlatLinguist API 语言专家

<span style="font-size:24px;">public class FlatLinguist implements Linguist, Configurable
搜索空间一个网络为发音,单元,声学hmm网络。此网络在组合成一个大的搜索空间。相同字的不同发音处理并列的状态。发音到发音的第一个单元,单元后是hmm,hmm后在是单元,直到发音的最后那个单元的hmm,此hmm后连接的发音。
此主要用来产生搜索图。构造一个搜索网络。其搜索空间不是动态产生,而是产生整个搜索图(空间)。此只能用于词汇量少的语言识别情况。不能用于大词汇量的语言识别。
语言专家的简单形式。FlatLinguist需要一个语法图(由底层的,可配置的语法返回),产生了一个搜索图为此语法。
它遵循以下简单假设:
每一个语法节点零个或者一个字。不允许扇入,没有组成组件,仅仅只有单元,HMM状态,发音状态(在图中的初始化和终止语法状态,(没有字,口供选择对象或者语法状态达到)仅仅只有合法的转换(匹配场景)被允许,没有单元的树结构,分支语法状态是被允许的。
注意所有的概率都是log域内的。
本类的属性:
@S4Component(type = Grammar.class)
public final static String PROP_GRAMMAR = "grammar";属性定义了在创建搜索图时所使用的语法类。(对象)
@S4Component(type = UnitManager.class)
public final static String PROP_UNIT_MANAGER = "unitManager";属性定义了在创建搜索图时所使用的单元管理(器)。
@S4Component(type = AcousticModel.class)
public final static String PROP_ACOUSTIC_MODEL = "acousticModel";属性定义了在创建搜索图时所使用的声学模型(类或对象)。
@S4Component(type = LogMath.class)
public final static String PROP_LOG_MATH = "logMath";属性定义了被搜索管理器使用的logmath。
@S4Boolean(defaultValue = false)
public final static String PROP_DUMP_GSTATES = "dumpGstates";属性用来决定是否打印Gstates图状态。
@S4Boolean(defaultValue = false)
public final static String PROP_ADD_OUT_OF_GRAMMAR_BRANCH = "addOutOfGrammarBranch";属性确定是否为检测到的out-of-grammar utterances(语法外的语句)添加一个分支。
@S4Double(defaultValue = 1.0)
public final static String PROP_OUT_OF_GRAMMAR_PROBABILITY = "outOfGrammarProbability";为进入out-of-grammar(语法外分支)分支的概率属性。
@S4Component(type = AcousticModel.class)
public static final String PROP_PHONE_LOOP_ACOUSTIC_MODEL = "phoneLoopAcousticModel";声学模型(是否)使用场景独立音素循环的属性。
@S4Double(defaultValue = 1.0)
public static final String PROP_PHONE_INSERTION_PROBABILITY = "phoneInsertionProbability"在out-of-grammar场景独立音素循环中插入一个场景独立音素的概率。
@S4Boolean(defaultValue = false)
public final static String PROP_SHOW_COMPILATION_PROGRESS = "showCompilationProgress";属性用于控制编译过程是否被显示在标准的输出中。如果此属性值为true,则对于每一1000添加到搜索空间的搜索状态一个“dot”被显示。
@S4Boolean(defaultValue = false)
public final static String PROP_SPREAD_WORD_PROBABILITIES_ACROSS_PRONUNCIATIONS =
"spreadWordProbabilitiesAcrossPronunciations";属性用于控制字的概率的概率是否传遍所有的发音。
protected final static float logOne = LogMath.getLogOne();
注意一些属性被保护允许在FlatLinguist.compileGrammar()中被重载。子组件通过property sheet被配置。
protected Grammar grammar;语法对象
private AcousticModel acousticModel;声学模型
private UnitManager unitManager;单元管理
protected LogMath logMath;
属性定义了OOV行为。即对不在字典中的字的处理行为的属性
protected AcousticModel phoneLoopAcousticModel; 声学模型(是否)使用场景独立音素循环。
protected boolean addOutOfGrammarBranch; 是否添加一个OutOfGrammar分支
protected float logOutOfGrammarBranchProbability;
OutOfGrammar分支的概率
protected float logPhoneInsertionProbability;音素插入概率,在out-of-grammar场景独立音素循环中插入一个场景独立音素的概率。
通过property sheet被配置的数据。
private float logWordInsertionProbability;字插入概率。
private float logSilenceInsertionProbability;静音插入概率。
private float logFillerInsertionProbability;填充插入概率
    private float logUnitInsertionProbability;单元插入概率
    private boolean showCompilationProgress = true;
    private boolean spreadWordProbabilitiesAcrossPronunciations;
    private boolean dumpGStates;是否打印图状态
    private float languageWeight;语言权重
用来监视性能的数据:
protected StatisticsVariable totalStates; 总状态数
    protected StatisticsVariable totalArcs;状态弧数
    protected StatisticsVariable actualArcs;实际弧数
    private transient int totalStateCounter;总状态计数器。
private final static boolean tracing = false;是否跟踪。
被用来创建和维护搜索图的数据:
private transient Collection<SentenceHMMState> stateSet;
    private String name;
    protected Map<GrammarNode, GState> nodeStateMap;
    protected Cache<SentenceHMMStateArc> arcPool;句hmm状态弧缓存池
    protected GrammarNode initialGrammarState;初始语法(节点)状态
    protected SearchGraph searchGraph;
本类的构造方法:
public FlatLinguist(AcousticModel acousticModel,
LogMath logMath,Grammar grammar,UnitManager unitManager,double wordInsertionProbability,double silenceInsertionProbability,
double fillerInsertionProbability,double unitInsertionProbability,
float languageWeight,boolean dumpGStates,boolean showCompilationProgress,Boolean spreadWordProbabilitiesAcrossPronunciations,boolean addOutOfGrammarBranch,double outOfGrammarBranchProbability,double phoneInsertionProbability,AcousticModel phoneLoopAcousticModel
);给定参数创建对象。
public FlatLinguist();空的构造方法。
本类的方法:
public void newProperties(PropertySheet ps);为属性进行设置。
protected void setupAcousticModel(PropertySheet ps);设置声学模型对象,从property sheet中获得。
public String getName();获得本类对象的名字。
public void allocate();分配资源。
protected void allocateAcousticModel();为声学模型分配资源。
public void deallocate();释放资源。
public void startRecognition();开始识别之前调用。
public void stopRecognition();识别完成后调用。
public LogMath getLogMath();获得logmath。
  public float getLogSilenceInsertionProbability();获得静音插入在log域的概率。
protected Collection<SentenceHMMState> compileGrammar();编辑语法成一个句hmm。一个grammarjob被创建为初始化语法节点。并且被添加到grammarjob列队中。然而在grammar job 列队中存在着许多遗留的工作。一个grammer job从列队中移除,其相应的语法节点被扩展,添加到尾部。Grammarjob的后续被添加入grammar job列队中。从语法中获得节点,并创建状态,把非空的gstate加入到gstate列表中。
protected GState createGState(GrammarNode grammarNode);为给定的语法节点返回一个新的gstate。
protected void addStartingPath();确保存在一个开始路径通过添加一个空的左场景到开始的gstate。目前flatlinguist要求通过语法返回的初始语法节点包含一个”sil”字。
protected void addStartingPath(GrammarNode initialNode);在指定的节点开始搜索。通过添加一个空的左场景到开始的gstate来确保一条到初始节点的开始路径。
protected boolean grammarHasChanged();决定语法是否改变,因为我们上次已经编译过的搜索图。如果语法已经改变,返回为true。
protected SentenceHMMState findStartingState();找到开始状态,返回的是开始状态。
protected SentenceHMMStateArc getArc(SentenceHMMState nextState,float logLanguageProbability,float logInsertionProbability);得到一个句hmm状态弧。弧从存储弧的池中获得。输入参数:nextState为下一个状态。logLanguageProbability为语言概率,logInsertionProbability为插入概率。
protected GState getGState(GrammarNode node);给定一个语法节点来获得相应的gstate。</span>









 


你可能感兴趣的:(sphinx,语音识别)