LeftRightContext API

来源:互联网 发布:三维游戏制作软件 编辑:程序博客网 时间:2024/05/29 03:24
<span style="font-size:24px;">public class LeftRightContext extends Context代表了一个单元的场景,在本声学系统中是一个音素的场景,即其左右音素。本类的属性:String stringRepresentation;此类对象的字符串表示。final Unit[] leftContext;特定单元(音素)的左场景(单元数组)即左音素。final Unit[] rightContext; 特定单元(音素)的右场景(单元数组)即右音素。private static final boolean CACHING_CONTEXTS = true;是否缓存单元的场景(左右)。private static final Map<String, LeftRightContext> cache;用于缓存单元的(左右)的map,此map的基本单元是此类对象和其字符串表示对。static {        if (CACHING_CONTEXTS) {            cache = new HashMap<String, LeftRightContext>();        }    }此为静态块,根据是否缓存来创建缓存用的map。本类的构造方法:private LeftRightContext(Unit[] leftContext, Unit[] rightContext);给定参数创建本类对象。leftContext为左场景即音素的左音素(单元)。rightContext为右音素即右场景为右单元。本类的方法:public Unit[] getLeftContext();即得到此单元的左单元即左场景。返回的是单元数组。public Unit[] getRightContext();得到的是此单元的右单元数组即右场景,返回的是单元数组。private static String getStringRepresentation(Unit[] leftContext, Unit[] rightContext);得到是特定单元的场景(左右)(左右单元数组)的字符串表示。public static String getContextName(Unit[] context);得到特定(场景)单元数组的场景名,输入context为场景即单元数组。返回的是单元数组的字符串表示。public static LeftRightContext get(Unit[] leftContext, Unit[] rightContext);返回的是本类的对象。本方法是根据是否缓存属性来处理的,如果是否缓存属性为true即从缓存map中获取本类对象,如果获得的为null,则根据输入新建本类对象,并存入缓存中。如果是否缓存属性为假,即根据输入创建此类对象,并返回为创建的对象。public boolean isPartialMatch(Context context);检查此类对象是否与给定场景对象部分匹配,部分匹配则返回为真,否则为false。注意空场景(左右都为空)是与任何场景相匹配的。注意左空场景与任何的场景的左场景匹配。注意右空场景与任何的场景的右场景匹配。注意任何非空的场景(包括左右)的匹配必须是严格匹配的即其中的每个单元都必须匹配。 本方法的处理分为两种情况:1,给的场景为LeftRightContexts类对象的情况,考虑其左右场景的匹配,必须是其都匹配时此返回为true。2,给定的场景不是LeftRightContexts类对象的情况。If both contexts are LeftRightContexts then a left or right context that is null is considered a wild card and matches anything, othewise the contexts must match exactly. Anything matches the Context.EMPTY_CONTEXT。</span>

0 0
原创粉丝点击