[Feat]新增支持多语言的TTS

[Feat]新增支持多语言的TTS
This commit is contained in:
chenfufeng
2023-02-24 14:11:40 +08:00
parent 5d378b833b
commit 1e7b13f151
19 changed files with 564 additions and 2 deletions

View File

@@ -64,6 +64,12 @@ interface IMogoTTS extends IProvider {
*/
void speakTTSVoice( String tts, PreemptType type, IMogoTTSCallback callback );
void speakMultiLangTTSWithLevel(
MultiLangTtsEntity ttsEntity,
int level,
IMogoTTSCallback callback
);
void stopSpeakTts(String text);
void stopTts();

View File

@@ -0,0 +1,7 @@
package com.mogo.tts.base
enum class LanguageType(val langName: String) {
CHINESE("chinese"),
ENGLISH("english"),
KOREAN("korean")
}

View File

@@ -0,0 +1,42 @@
package com.mogo.tts.base
data class MultiLangTtsEntity(
private var ttsList: List<LangTtsEntity>
) {
private val stringBuffer by lazy {
StringBuffer()
}
private var ttsIndex = 0
fun ttsNext(): LangTtsEntity? {
return if (ttsIndex in ttsList.indices) {
ttsList[ttsIndex++]
} else {
null
}
}
override fun toString(): String {
return stringBuffer.let {
it.setLength(0)
ttsList.forEachIndexed { index, langTtsEntity ->
if (index != ttsList.size - 1) {
it.append("${langTtsEntity};")
} else {
it.append(langTtsEntity)
}
}
it.toString()
}
}
}
data class LangTtsEntity(
var ttsContent: String,
var language: LanguageType
) {
override fun toString(): String {
return "ttsContent is:$ttsContent,language is:${language.langName}"
}
}