
package fonemos;

/**
 * Fonemų atpažinimo klasė.
 * Lietuviškų fonemų sąrašas yra {@link fonemuSarasas} masyve.
 * fonemuPanashumoEile - atpažinimo rezultatams gauti metodas.
*/
abstract public class Fonemos{

/**
 * Lietuviškų fonemų sąrašas yra {@link fonemuSarasas} masyve:
 * <pre>
 * public static String[] fonemuSarasas = new String[]{
 *		"a","A1","A1a","aa","aA1",
 *		"b","b'","d","d'","dz","dz'","dZ1","dZ1'",
 *		"e","E1","E1a","E1e","ea","eA1","ee","eE1",
 *		"f","f'","g","g'","h","h'",
 *		"i","I1","I1e","I1i","ie","iE1","ii","iI1",
 *		"j","j'","J1","k","k'","l","l'","L1","L1'",
 *		"m","m'","M1","M1'","n","n'","N1","N1'",
 *		"o","O1","O1o","oo","oO1","p","p'","r","r'","R1","R1'",
 *		"s","s'","S1","S1'","t","t'","ts","ts'","tS1","tS1'",
 *		"u","U1","U1o","U1u","uo","uO1","uu","uU1",
 *		"v","v'","w","W1","x","x'","z","z'","Z1","Z1'"
 *	};
 * </pre>
*/
 public static String[] fonemuSarasas = new String[]{
		"a","A1","A1a","aa","aA1",
		"b","b'","d","d'","dz","dz'","dZ1","dZ1'",
		"e","E1","E1a","E1e","ea","eA1","ee","eE1",
		"f","f'","g","g'","h","h'",
		"i","I1","I1e","I1i"
		,"ie","iE1","ii","iI1",
		"j","j'","J1","k","k'","l","l'","L1","L1'",
		"m","m'","M1","M1'","n","n'","N1","N1'",
		"o","O1","O1o","oo","oO1","p","p'","r","r'","R1","R1'",
		"s","s'","S1","S1'","t","t'","ts","ts'","tS1","tS1'",
		"u","U1","U1o","U1u","uo","uO1","uu","uU1",
		"v","v'","w","W1","x","x'","z","z'","Z1","Z1'"
	};

/**	Pagrindinis metodas, kurį turi realizuoti {@link #Fonemos} klasės vaikai.
 * Metodas turi grąžinti {@link #failoVardas} faile esančios fonemos,
 * kurios vieta lokalizuojama pagal {@link #skip} ir {@link #ilgis} duomenis,
 * panašumo eilę į {@link #fonemuSarasas} masyve išvardintas fonemas.
 * <pre>
 * Pvz. fonemuPanashumoEile("C:\\duomenys\\","kuku",".raw",16241,1534)
 * grąžino rezultatus: {5,6,8,3,...,88}. Tai reiškia, kad metodas
 * C:\duomenys\kuku.raw faile nuskaitytus 1534 short tipo duomenis
 * (praleidus 1624*2 baitus) pripažino panašiausius į:
 * "b", "b'", "d'", ..., "z'" fonemas
 * ("b" labiausiai tikėtina, "z'" - mažiausiai
 * </pre>
 * @param path duomenų katalogo vardas
 * @param failoVardas failo vardas, iš kurio skaitomi duomenys atpažinti
 * @param rawGalune duomenų failo galūnė. Dažniausiai turėtų būti ".raw" arba ".wav" reikšmės.
 * @param skip kiek baitų porų (laikoma, kad vienai imčiai skiriami 2 baitai)
 * 		praleisti prieš pradedant skaityti duomenis
 * @param ilgis nuskaitomų atpažinimui <em>short</em> tipo imčių skaičius
 * @return nuskaitytos fonemos duomenų panašumas į {@link #fonemuSarasas} masyve išvardintas fonemas.
*/
	public abstract int[] fonemuPanashumoEile(String path,
		String failoVardas, String rawGalune, int skip, int ilgis);
}