[Feat]新增支持多语言的TTS
[Feat]新增支持多语言的TTS
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.mogo.tts.base
|
||||
|
||||
enum class LanguageType(val langName: String) {
|
||||
CHINESE("chinese"),
|
||||
ENGLISH("english"),
|
||||
KOREAN("korean")
|
||||
}
|
||||
@@ -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}"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user