gpt4 book ai didi

java - 两种语言的TextToSpeech-Android

转载 作者:行者123 更新时间:2023-12-02 23:26:35 25 4
gpt4 key购买 nike

我有一个对象“单词”的ArrayList,它具有两个Strings属性,这是一种语言的单词,另一种语言的翻译。这些单词是从txt文件中提取的,这些文件用符号“=”分隔,因此每行中都有一个单词及其翻译。像这样:

word1Language1=word1language2
word2Language1=word2Language2
word3Language1=word3Language2

因此,我使用一种将它们成功放入前面提到的ArrayList中的方法来读取这些单词。但是现在我希望机器人在按下按钮时发音这些单词(并且我也希望在再次按下按钮时也能停止发音)。目前这是我的代码,“wordsList”是ArrayList的名称。我不知道如何告诉bot在单词之间等待(因此它会正确地发音):
mTTS = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR){
mTTS.setLanguage(Locale.US);
}
}
});

imageButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
for(int i=0; i <= wordsList.size(); i++){
mTTS.setLanguage(Locale.US);
String toSpeak1 = wordsList.get(i).getLanguage1();
mTTS.speak(toSpeak1, TextToSpeech.QUEUE_FLUSH, null);
mTTS.setLanguage(Locale.ITALIAN);
String toSpeak2 = wordsList.get(i).getLanguage2();
mTTS.speak(toSpeak2, TextToSpeech.QUEUE_FLUSH, null);
}
mTTS.shutdown();
}
});

谢谢!

最佳答案

您要做的就是每次您调用tts.speak(...)时,等待tts停止说其他单词。您可以使用侦听器或回调进行操作,但我不知道它的调用方式,而只是使用谷歌“完成语音侦听器的tts”。说完后,您可以输入下一个单词并相应地更改语言环境。您现在正在做的是告诉tts同时播放两种语言中的所有单词,并且由于for循环也不会等待,因此输入下一个单词时无需等待其他输入停止说话。

关于java - 两种语言的TextToSpeech-Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62309617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com