gpt4 book ai didi

android - TTS 随机跳过句子的第一个字母

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:35 25 4
gpt4 key购买 nike

我有一个严重依赖 TTS 的应用程序供视力不佳的人使用。但是由于某些原因,当我使用 speak 方法时,TTS 会随机跳过句子的前几个字母,或者以非常低的音量说出前几个字母,而以正常音量说出其余字母。

知道为什么会发生这种情况吗?

这是我当前的代码:

public class SpeechHelper implements TextToSpeech.OnInitListener {
private Context context = null;
private TextToSpeech tts;

public SpeechHelper(Context context)
{
this.context = context;
try {
tts = new TextToSpeech(context, this);
} catch(Exception e) {
Log.e("Phone Features Exception","Couldn't initiate TTS", e);
}
}


@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
tts.setLanguage(Locale.getDefault());
}
}

public void speak(String s, int mode, String messageID) {

Log.d("VOLUME", "getStreamVolume " + am.getStreamVolume(AudioManager.STREAM_MUSIC)); // Always 15
Log.d("VOLUME", "isMusicActive " + (am.isMusicActive() ? "true" : "false")); // Always false
Log.d("VOLUME", "isVolumeFixed " + (am.isVolumeFixed() ? "true" : "false")); // Always false
Log.d("VOLUME", "isSpeakerphoneOn: " + (am.isSpeakerphoneOn() ? "true" : "false")); // Always false
Log.d("VOLUME", "getMode: " + am.getMode()); // Always 0

HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, messageID);
tts.speak(s, mode, params);
}
}

我注意到问题总是在调用电话后或将手机解锁到应用程序后的 5 秒内发生。

最佳答案

要么你做错了什么,要么 Android 做错了。如果我必须在上面花钱,我会说是你。

从调用开始

tts.speak("the quick brown fox jumps over the lazy dog", tts.QUEUE_FLUSH, null);

看看您是否可以在测试应用程序中重现该问题(我不能)。如果可以,那么我很好奇您运行的是什么手机/操作系统。您的问题可能在于被截断的字符串,或者其他以编程方式干扰音量的问题。

关于android - TTS 随机跳过句子的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447124/

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