Update TTS Engine APK to support multi-lang (#2294)
This commit is contained in:
@@ -23,6 +23,9 @@ object TtsEngine {
|
||||
// cmn for Mandarin
|
||||
var lang: String? = null
|
||||
|
||||
// if a model supports two languages, set also lang2
|
||||
var lang2: String? = null
|
||||
|
||||
|
||||
val speedState: MutableState<Float> = mutableFloatStateOf(1.0F)
|
||||
val speakerIdState: MutableState<Int> = mutableIntStateOf(0)
|
||||
@@ -76,6 +79,7 @@ object TtsEngine {
|
||||
dataDir = null
|
||||
dictDir = null
|
||||
lang = null
|
||||
lang2 = null
|
||||
|
||||
// Please enable one and only one of the examples below
|
||||
|
||||
@@ -125,6 +129,7 @@ object TtsEngine {
|
||||
// lexicon = "lexicon.txt"
|
||||
// dictDir = "vits-melo-tts-zh_en/dict"
|
||||
// lang = "zho"
|
||||
// lang2 = "eng"
|
||||
|
||||
// Example 7
|
||||
// matcha-icefall-zh-baker
|
||||
@@ -162,6 +167,7 @@ object TtsEngine {
|
||||
// dictDir = "kokoro-multi-lang-v1_0/dict"
|
||||
// lexicon = "kokoro-multi-lang-v1_0/lexicon-us-en.txt,kokoro-multi-lang-v1_0/lexicon-zh.txt"
|
||||
// lang = "eng"
|
||||
// lang2 = "zho"
|
||||
// ruleFsts = "$modelDir/phone-zh.fst,$modelDir/date-zh.fst,$modelDir/number-zh.fst"
|
||||
//
|
||||
// This model supports many languages, e.g., English, Chinese, etc.
|
||||
|
||||
@@ -60,6 +60,9 @@ class TtsService : TextToSpeechService() {
|
||||
|
||||
// see https://github.com/Miserlou/Android-SDK-Samples/blob/master/TtsEngine/src/com/example/android/ttsengine/RobotSpeakTtsService.java#L68
|
||||
onLoadLanguage(TtsEngine.lang, "", "")
|
||||
if (TtsEngine.lang2 != null) {
|
||||
onLoadLanguage(TtsEngine.lang2, "", "")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
@@ -71,7 +74,7 @@ class TtsService : TextToSpeechService() {
|
||||
override fun onIsLanguageAvailable(_lang: String?, _country: String?, _variant: String?): Int {
|
||||
val lang = _lang ?: ""
|
||||
|
||||
if (lang == TtsEngine.lang) {
|
||||
if (lang == TtsEngine.lang || lang == TtsEngine.lang2) {
|
||||
return TextToSpeech.LANG_AVAILABLE
|
||||
}
|
||||
|
||||
@@ -87,12 +90,12 @@ class TtsService : TextToSpeechService() {
|
||||
Log.i(TAG, "onLoadLanguage: $_lang, $_country")
|
||||
val lang = _lang ?: ""
|
||||
|
||||
return if (lang == TtsEngine.lang) {
|
||||
return if (lang == TtsEngine.lang || lang == TtsEngine.lang2) {
|
||||
Log.i(TAG, "creating tts, lang :$lang")
|
||||
TtsEngine.createTts(application)
|
||||
TextToSpeech.LANG_AVAILABLE
|
||||
} else {
|
||||
Log.i(TAG, "lang $lang not supported, tts engine lang: ${TtsEngine.lang}")
|
||||
Log.i(TAG, "lang $lang not supported, tts engine lang: ${TtsEngine.lang}, ${TtsEngine.lang2}")
|
||||
TextToSpeech.LANG_NOT_SUPPORTED
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user