TextToSpeech 口音变化
TextToSpeech Accent Change
我正在使用以下库的 TextToSpeech 功能来说话 -
'net.gotev:speech:1.3.1'
现在我需要将所有国家/地区的口音改成我试过的美国英语 -
Speech.getInstance().setLocale(Locale.US);
但是还是不行,请指教。
在下面代码的帮助下,我试图让它说一个词 -
Speech.getInstance().say("Hello", new TextToSpeechCallback() {
@Override
public void onStart() {
}
@Override
public void onCompleted() {
}
@Override
public void onError() {
}
});
例如,现在它实际上使用基于语言环境的英语口音说话 -
如果它是俄罗斯用户 运行 那么由于它的语言环境,它说的是俄语口音的英语,但我希望它应该用美国英语口音而不是基于语言环境的口音说它
在查看了该库的代码后,我认为使用标准 Android TextToSpeech object.
会更好
使用 normal TextToSpeech,做你想做的事情可以像这样简单:
TextToSpeech tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int i) {
tts.setLanguage(Locale.US);
tts.speak("Hello", TextToSpeech.QUEUE_FLUSH, null);
}
});
我发现该库存在的问题:
- 它不使用它自己的嵌入式引擎,而是简单地包装一个标准的 Android TextToSpeech 对象,而不知道设备上的引擎是什么类型!
- 它使用单例模式,在 Google 等某些语音引擎的情况下,容易出现内存泄漏。
- 这个问题与您的问题有关:检查或响应其内部 TextToSpeech 对象的初始化没有任何意义。这意味着当它试图在其内部 TTS 对象上设置默认 Locale 时,它实际上什么都不做......但错误是不可见的,因为 TTS 默认情况下会这样做。但是,当您尝试手动设置语言环境时,同样的事情会发生(没有),因为 TTS 对象尚未初始化。
我正在使用以下库的 TextToSpeech 功能来说话 -
'net.gotev:speech:1.3.1'
现在我需要将所有国家/地区的口音改成我试过的美国英语 -
Speech.getInstance().setLocale(Locale.US);
但是还是不行,请指教。
在下面代码的帮助下,我试图让它说一个词 -
Speech.getInstance().say("Hello", new TextToSpeechCallback() {
@Override
public void onStart() {
}
@Override
public void onCompleted() {
}
@Override
public void onError() {
}
});
例如,现在它实际上使用基于语言环境的英语口音说话 - 如果它是俄罗斯用户 运行 那么由于它的语言环境,它说的是俄语口音的英语,但我希望它应该用美国英语口音而不是基于语言环境的口音说它
在查看了该库的代码后,我认为使用标准 Android TextToSpeech object.
会更好使用 normal TextToSpeech,做你想做的事情可以像这样简单:
TextToSpeech tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int i) {
tts.setLanguage(Locale.US);
tts.speak("Hello", TextToSpeech.QUEUE_FLUSH, null);
}
});
我发现该库存在的问题:
- 它不使用它自己的嵌入式引擎,而是简单地包装一个标准的 Android TextToSpeech 对象,而不知道设备上的引擎是什么类型!
- 它使用单例模式,在 Google 等某些语音引擎的情况下,容易出现内存泄漏。
- 这个问题与您的问题有关:检查或响应其内部 TextToSpeech 对象的初始化没有任何意义。这意味着当它试图在其内部 TTS 对象上设置默认 Locale 时,它实际上什么都不做......但错误是不可见的,因为 TTS 默认情况下会这样做。但是,当您尝试手动设置语言环境时,同样的事情会发生(没有),因为 TTS 对象尚未初始化。