/**
*
*/
package marytts.tools.newlanguage;
import static org.junit.Assert.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InputStream;
import marytts.cart.CART;
import marytts.exceptions.MaryConfigurationException;
import marytts.modules.phonemiser.AllophoneSet;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
/**
* Test case for LTSTrainer
*
* @author fabio
*
*/
public class LTSTrainerTest {
@Rule
public TemporaryFolder testFolder = new TemporaryFolder();
@Test
public void test() {
InputStream alloStream = LTSTrainerTest.class.getResourceAsStream("allophones.it.xml");
AllophoneSet allophoneset;
try {
allophoneset = AllophoneSet.getAllophoneSet(alloStream, "test");
// Initialize trainer
LTSTrainer tp = new LTSTrainer(allophoneset, true, true, 2);
InputStream lexStream = LTSTrainerTest.class.getResourceAsStream("LTS_test.it.txt");
BufferedReader lexReader = new BufferedReader(new InputStreamReader(lexStream, "UTF-8"));
// read lexicon for training
tp.readLexicon(lexReader, "\\s");
// make some alignment iterations
for (int i = 0; i < 5; i++) {
System.out.println("iteration " + i);
tp.alignIteration();
}
CART st = tp.trainTree(10);
// Temp file for test
String OutputFilename = "LTS_test.tree";
File tempFile = testFolder.newFile(OutputFilename);
System.out.println("Writing tree in tempFile: " + tempFile.getAbsolutePath() + tempFile.getName());
tp.save(st, tempFile.getAbsolutePath() + tempFile.getName());
assertTrue(tempFile.exists());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
fail(e.toString());
} catch (MaryConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
fail(e.toString());
}
}
}