public void tmat_read(String path) throws IOException {
		FileInputStream is = null;
		DataInputStream dis = null;
		try{
			is = new FileInputStream(path);
			dis = new DataInputStream(new BufferedInputStream(is));
			ci_states = (int)dis.readFloat();
			int states_per_triphone = (int)dis.readFloat();
			tmat = new float[ci_states][states_per_triphone][states_per_triphone];
			for(int i = 0; i < ci_states; i++)
				{
				for(int j = 0; j < states_per_triphone - 1 ; j++){
					for(int k = j ; k <= j+1; k++)
						tmat[i][j][k] = dis.readFloat();
					}
				}
		}catch(Exception e){
			System.out.println(path + " file missing");
			e.printStackTrace();
		}
		finally{
			if(is != null)is.close();
			if(dis != null)dis.close();
			}
	}