package com.tlabs.speechalyzer.synthesizer; import org.apache.log4j.Logger; import com.felix.util.Constants; import com.felix.util.FileUtil; import com.felix.util.KeyValues; import com.felix.util.PlayWave; import com.felix.util.Util; import com.felix.util.logging.Log4JLogger; public class IvonaSynthesizer implements ISynthesizer { private String cmd; private KeyValues _config; Log4JLogger _logger; public IvonaSynthesizer(KeyValues config) { _config = config; _logger = new Log4JLogger(this.getClass().getName()); cmd = _config.getString("ivonaCmd"); } public void synthesize(String intext, String outfile, String emotion, String sex, String voice) { synthesize(intext, outfile, null, voice); } public void synthesize(String intext, String outfile, String sex, String voice) { String tmpTextFile = _config.getAbsPath("tmpTxtFile"); try { FileUtil.writeFileContent(tmpTextFile, intext, FileUtil.ENCODING_UTF_8); String execCmd; execCmd = cmd + " " + tmpTextFile + " " + outfile; Util.execCmd(execCmd, _logger); } catch (Exception e) { _logger.error(e.getMessage()); e.printStackTrace(); } } public void synthesize(String intext, String outfile, boolean female, String lang) { String tmpTextFile = _config.getAbsPath("tmpTxtFile"); try { FileUtil.writeFileContent(tmpTextFile, intext, FileUtil.ENCODING_UTF_8); String execCmd; execCmd = cmd + " " + tmpTextFile + " " + outfile; Util.execCmd(execCmd, _logger); } catch (Exception e) { _logger.error(e.getMessage()); e.printStackTrace(); } } public void synthesize(String intext, String outfile, String sex) { String tmpTextFile = _config.getAbsPath("tmpTxtFile"); try { FileUtil.writeFileContent(tmpTextFile, intext, FileUtil.ENCODING_UTF_8); String execCmd; execCmd = cmd + " " + tmpTextFile + " " + outfile; Util.execCmd(execCmd, _logger); } catch (Exception e) { Util.errorOut(e, _logger); } } public void synthesize(String intext, String outfile) { synthesize(intext, outfile, Constants.SEX_MALE); } }