我正在研究一个android Studio项目,需要文本到语音。 我想实现一个程序,该程序可以识别文字所用的语言并以适当的发音来阅读。
示例:如果我有英文文本,我希望应用程序用英语发音和英语发音。
有可能吗?
谢谢
我已经成功用法语实施了TTS,并且效果很好。
mTTS = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = mTTS.setLanguage(Locale.FRENCH);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "Language not supported");
} else {
mButtonSpeak.setEnabled(true);
}
} else {
Log.e("TTS", "Initialization failed");
}
}
});
我想要一个多语言文本语音应用程序
谢谢
答案 0 :(得分:2)
您可以使用Android ML Kit
识别文本的语言将ML Kit Android库的依赖项添加到模块(应用程序级)Gradle文件(通常为app/build.gradle
):
dependencies {
// ...
implementation 'com.google.firebase:firebase-ml-natural-language:20.0.0'
implementation 'com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.0'
}
要识别字符串的语言,请获取FirebaseLanguageIdentification的实例,然后将字符串传递给identifyLanguage()
方法。
例如:
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyLanguage(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(@Nullable String languageCode) {
if (languageCode != "und") {
Log.i(TAG, "Language: " + languageCode);
} else {
Log.i(TAG, "Can't identify language.");
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Model couldn’t be loaded or other internal error.
// ...
}
});