sách gpt4 ăn đã đi

android - TextToSpeech OnUtteranceCompletedListener 导致延迟

In lại 作者:太空狗 更新时间:2023-10-29 13:24:58 27 4
mua khóa gpt4 giày nike

我需要 TextToSpeech 引擎来一个接一个地说出我的话,我正试图捕获一个词说完以开始说下一个词。但是 OnUtteranceCompletedListener 导致语音有些延迟。所以我的问题是,如何解决这个问题或更好地实现 OnUtteranceCompletedListener?

public class AndroidTextToSpeechActivity extends Activity implements TextToSpeech.OnInitListener {

int result = 0, CURRENT_WORD = 0;
HashMap myHash;
String[] words;
Button btnSpeak;
TextToSpeech tts;
Handler hand = new Handler();

@Ghi đè
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
thiết lậpContentView(R.layout.activity_main);

text = "Hi there how are you";
words = text.split(" ", 50);
myHash = new HashMap();
tts = new TextToSpeech(this, this);

btnSpeak = (Button) findViewById(R.id.btnSpeak);
btnSpeak.setOnClickListener(new View.OnClickListener() {
@Ghi đè
public void onClick(View arg0) {
hand.postDelayed(run, 300);
}
});
}

@Ghi đè
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
result = tts.setLanguage(Locale.getDefault());
tts.setPitch(1f);
tts.setSpeechRate(1f);
} khác
Log.e("TTS", "Init failed");
}

Runnable run = new Runnable() {
công khai void run() {
text = words[CURRENT_WORD];
tts.speak(text, 1, myHash);
tts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() {

@Ghi đè
public void onUtteranceCompleted(String utteranceId) {
CURRENT_WORD++;
hand.post(run1);
}
});
}
};

}

câu trả lời hay nhất

您可以通过不在每次运行中重新创建 OnUtteranceCompleteListener 来加快速度

OnUtteranceCompletedListener listener=new OnUtteranceCompletedListener(){
@Ghi đè
public void onUtteranceCompleted(String utteranceId) {
CURRENT_WORD++;
hand.post(run1);
}
}
tts.setOnUtteranceCompletedListener(listener);
Runnable run = new Runnable() {
công khai void run() {
text = words[CURRENT_WORD];
tts.speak(text, 1, myHash);
}
};

此外,您可以使用 onUtteranceCompleted 方法调用 speak() 方法,而不是使用 Runnable 通过处理程序调用引擎的 speek() 方法

OnUtteranceCompletedListener listener=new OnUtteranceCompletedListener(){
@Ghi đè
public void onUtteranceCompleted(String utteranceId) {
CURRENT_WORD++;
if(CURRENT_WORD<>
String text=words[CURRENT_WORD];
tts.speak(text,1,myHash);
}
}
}
tts.setOnUtteranceCompletedListener(listener);
Runnable run = new Runnable() {
công khai void run() {
text = words[CURRENT_WORD];
tts.speak(text, 1, myHash);
}
};

关于android - TextToSpeech OnUtteranceCompletedListener 导致延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22483912/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress