WordPruningBreadthFirstSearchManager API
来源:互联网 发布:淘宝售后处理时间 编辑:程序博客网 时间:2024/06/06 01:02
public class WordPruningBreadthFirstSearchManagerextends TokenSearchManager
提供了一个宽度优先搜索。为了执行识别,应用程序在识别开始前需调用initialize初始化,然后在重复调用recognize方法,直到result.isfinal()返回为true。一旦一个final结果已经获得,则stoprecognize方法应该被调用。
所有的概率都必须在log域中。
本类的属性:
@S4Component(type= Linguist.class)
public final static String PROP_LINGUIST = “linguist”;
/** The property that defines the name of the linguist to beused by this search manager. */
@S4Component(type = Pruner.class)
public final static String PROP_PRUNER = “pruner”;
/** The property that defines the name of the scorer to be usedby this search manager. */
@S4Component(type = AcousticScorer.class)
public final static String PROP_SCORER = “scorer”;
/** The property that defines the name of the logmath tobe used by this search manager. */
@S4Component(type = LogMath.class)
public final static String PROP_LOG_MATH = “logMath”;
/**
* The property than, when set to <code>true</code> will cause therecognizer to count up all the tokens in the
* active list after every frame.
*/
@S4Boolean(defaultValue = false)
public final static StringPROP_SHOW_TOKEN_COUNT = “showTokenCount”;
@S4Integer(defaultValue = 0)
public final static String PROP_GROW_SKIP_INTERVAL =“growSkipInterval”; 此属性用于控制每次所处理的帧数,解码器增长步长是被跳跃的。设置此属性为0,则不能进行跳跃。设置此属性为一个小的整数值,将会增加解码器的速度,但是会减少其准确性。此属性值越高,越少的增长代码被跳跃,值在6-8之间通过对于大词汇量任务来说是足够的,此意味着6帧将会被跳跃。
@S4Boolean(defaultValue = false)
public final static String PROP_CHECK_STATE_ORDER =“checkStateOrder”;此属性用于检查状态的阶是否合法。
@S4Integer(defaultValue = 100)
public final static String PROP_MAX_LATTICE_EDGES =“maxLatticeEdges”;属性却了最lattice的边。
@S4Double(defaultValue= 0)
public final static String PROP_ACOUSTIC_LOOKAHEAD_FRAMES =“acousticLookaheadFrames”;此属性控制了简单声学前看的执行数。设置此属性为0,则简单声学前看将不会执行。此值不需设置成一个整数。
private int currentFrameNumber; // the current frame number
protected ActiveList activeList; // the list of activetokens
private List<Token> resultList; // the current set ofresults
protected Map<Object, Token>bestTokenMap;
private AlternateHypothesisManagerloserManager;
private int numStateOrder;
// private TokenTracker tokenTracker;
// private TokenTypeTracker tokenTypeTracker;
private boolean streamEnd;
构造方法:
public WordPruningBreadthFirstSearchManager(LogMath logMath, Linguistlinguist, Pruner pruner, AcousticScorer scorer, ActiveListManageractiveListManager,booleanshowTokenCount, doublerelativeWordBeamWidth, intgrowSkipInterval, booleancheckStateOrder,booleanbuildWordLattice,intmaxLatticeEdges,floatacousticLookaheadFrames,booleankeepAllTokens);给定属性参数创建对象。
public WordPruningBreadthFirstSearchManager();空的构造方法。
本类的方法:
public void newProperties(PropertySheetps);对属性进行设置。
public void allocate() ;分配资源。
public void deallocate() ;释放资源。
public void startRecognition();在开始识别之前调用。
protected void localStart();从语言专家中获得初始语法节点,并创建一个语法节点标记对象。GrammarNodeToken。
private void clearCollectors();清除列表和map在下一次expansion阶段之前。
protected void createBestTokenMap()创建一个新的最好的token map用最合适的尺寸。
protected boolean allowExpansion(Token t);决定给定的token是否应该被扩展。本类此返回返回为true。
public StatisticsVariablegetTokensCreated() ;返回的是tokensCreated 统计变量。为创建的token的数量。
public Timer getGrowTimer() ;返回的是growtime属性即增长步长。
public int getCurrentFrameNumber();返回的是当前的帧数。currentFrameNumber属性。
public voidsetResultList(List<Token> resultList) ;返回的是结果列表。给定的是list列表。为resultList属性。
public List<Token>getResultList();返回的是resultList属性。
public void setActiveList(ActiveListactiveList); 设置活动列表,即activeList属性。
public ActiveList getActiveList();获得activeList属性。
private void showTokenCount();计算在活动列表中的所有token并显示它们,此操作是一个发费昂贵的操作。会获得每一个token的前续。直到其为null。Resultlist也会进行处理。
protected void activeListReplace(Token old,Token newToken);用新的token代替旧的token。
protected void activeListAdd(Token token);往新的活动列表中添加token。
private boolean isVisited(Token t);决定是否我们已经访问过与给定token t相关的状态在以前的帧中。是为true。
private void checkStateOrder(SearchStatefromState, SearchState toState);检查两个给定的状态是否在合法的阶。From的阶要必须大于to的阶。
protected void collectSuccessorTokens(Token token);收集发射token的下一集合从一个token,并积累它们于活动列表或结果列表中。(如果此是一个final状态,添加它到final列表。如果它是非发射token,并且我们在已经访问过相同的状态在此帧中,我们在语法循环中,所以我们将会不会继续扩展。这会继续合适的检查工作如果我们已经保持了所有的帧,代替跳过的非字标记。注意一些语言专家将不会产生语言循环例如lextree。对于有些例子,不允许通过设置keepalltoken为false来检查是很好的。对于每一个后续,计算其进入的token得分基于前续token得分和转移概率。如果得分高于搜索状态和帧所遇到的最好得分则创建一个新的token,把它添加入lattice中。如果此token是发射token,则添加它到列表状态,否则迭代收集到最新的token后续。)
protected ObjectgetStateKey(SearchState state);返回的是给定状态的状态关键字。此关键字被用于存储besttoken于besttoken于map中。有相同关键字的所有的token被基本的共享,此方法为搜索添加了适应性。例如此状态可以是允许是hmm状态,hmm状态有着相同的字历史,相同的hmm状态都被同等的对待。当我们使用最好token关键字时,每一个hmm都仅有着最好的token和给定的字历史。
protected void setBestToken(Token token, SearchStatestate);为给定的状态设置最好的token。
protected TokengetBestToken(SearchState state);为此状态获得最好的token。
protected void pruneBranches();减去活动列表中不受期待的分支。
private void monitorStates(ActiveListactiveList);跟踪和记录关于活动状态的数量。activeList为活动的状态列表。
private void monitorWords(ActiveList activeList);此方法没有被使用。为给定活动列表跟踪和记录所有的活动历史字。
protected boolean scoreTokens();计算声学得分为活动列表。活动列表应该仅仅包含发射标记token。如果这有多个帧需要被得分,则返回为true。
private void growNonEmittingBranches();增长非发射分支,直到遇到一个发射状态,token。
protected void growEmittingBranches();增长发射状态分支。此版本被用于一个简单的lookahead基于当前声学得分的改变率。
protected void growBranches();浏览活动列表中的所有token,并扩展每一个token,找到后续token集,直到所有的后续token都是发射token为止。
protected void localStop();搜索管理的局部清楚。
public void stopRecognition();终止一次识别。
private boolean recognize() ;进行识别。
public Result recognize(int nFrames);对给定数量的帧进行识别。
转自:http://blog.csdn.net/taiyb/article/details/46293771
- WordPruningBreadthFirstSearchManager API
- WordPruningBreadthFirstSearchManager API
- WordPruningBreadthFirstSearchManager API
- API
- api
- API
- API
- api
- API
- API
- API
- API
- API
- API
- API
- API
- API
- api
- PHP中的数组
- c++函数重载的原理
- spring项目开发小记
- Windows下Redis的安装使用
- 排序算法总结
- WordPruningBreadthFirstSearchManager API
- pwnable之tiny_easy
- Toast的工具类和自定义工具类
- Codeforces Round #422 (Div. 2) B. Crossword solving
- Presentation Error的问题
- 一个响应式数据库框架SQLBrite,完美解决数据库和UI的同步更新!
- 乐观锁
- android 使用sharedpreferences 保存对象
- 代理模式