public void newProperties(PropertySheet ps) throws PropertyException {
    logMath = LogMath.getLogMath();
    logger = ps.getLogger();

    unitManager = (UnitManager) ps.getComponent(PROP_UNIT_MANAGER);

    hmmManager = new HMMManager();
    contextIndependentUnits = new LinkedHashMap<String, Unit>();
    phoneList = new LinkedHashMap<String, Integer>();

    meanTransformationMatrixPool = createDummyMatrixPool("meanTransformationMatrix");
    meanTransformationVectorPool = createDummyVectorPool("meanTransformationMatrix");
    varianceTransformationMatrixPool = createDummyMatrixPool("varianceTransformationMatrix");
    varianceTransformationVectorPool = createDummyVectorPool("varianceTransformationMatrix");

    String modelName = ps.getString(MODEL_NAME);

    String location = ps.getString(LOCATION);
    String phone = ps.getString(PHONE_LIST);
    String dataDir = ps.getString(DATA_DIR);

    logger.info("Creating Sphinx3 acoustic model: " + modelName);
    logger.info("    Path      : " + location);
    logger.info("    phonelist : " + phone);
    logger.info("    dataDir   : " + dataDir);

    // load the HMM model file
    boolean useCDUnits = ps.getBoolean(PROP_USE_CD_UNITS);

    assert !useCDUnits;
    try {
      loadPhoneList(
          ps,
          useCDUnits,
          StreamFactory.getInputStream(location, phone),
          location + File.separator + phone);
    } catch (StreamCorruptedException sce) {
      printPhoneListHelp();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }