如何知道tts.synthesizeToFile写文件完成?

问题描述

我正在研究文本到语音转换,使用tts.synthesizetoFile()将文本保存到wav文件,并将输出的.wav文件合并为一个文件。问题是synthesizetoFile()是异步函数,在合并.wav文件之前需要放置一些延迟。将文本转换为wav的代码

Pattern re = Pattern.compile("[^.!?\\s][^.!?]*(?:[.!?](?!['\"]?\\s|$)[^.!?]*)*[.!?]?['\"]?(?=\\s|$)",Pattern.MULTILINE | Pattern.COMMENTS);
        Matcher reMatcher = re.matcher(charSequence);
        /////
        int position=0 ;
        int sizeOfChar= charSequence.length();
        String testStri= charSequence.substring(position,sizeOfChar);
        while(reMatcher.find()) {

            String temp="";
            final File sddir = new File(Environment.getExternalStorageDirectory() + "/JG-Audios/temp/");
            sddir.mkdir();
            String tmAudioFilename = sddir.getAbsolutePath() + "/" + charSequence.lastIndexOf(reMatcher.group()) + ".wav";

            try {
                temp = testStri.substring(charSequence.lastIndexOf(reMatcher.group()),charSequence.indexOf(reMatcher.group())+reMatcher.group().length());
                //tts.speak(temp,TextToSpeech.QUEUE_ADD,null,"play");
                tts.synthesizetoFile(temp,new File(tmAudioFilename),mUtteranceID);

            } catch (Exception e) {
                temp = testStri.substring(0,testStri.length());
                tts.speak(temp,null);
                break;

            }
        }

此后,我合并输出的wav文件。有什么方法可以知道需要放置的确切延迟时间,还是可以知道文件实际上已转换为WAV?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...