Refactor the UI of Android TTS engine (#533)

This commit is contained in:
Fangjun Kuang
2024-01-17 12:12:50 +08:00
committed by GitHub
parent 59e28518b4
commit bf1dd3daf6

View File

@@ -56,32 +56,21 @@ class MainActivity : ComponentActivity() {
TopAppBar(title = { Text("Next-gen Kaldi: TTS") }) TopAppBar(title = { Text("Next-gen Kaldi: TTS") })
}) { }) {
Box(modifier = Modifier.padding(it)) { Box(modifier = Modifier.padding(it)) {
Column(modifier = Modifier.padding(16.dp)) {
Column { Column {
Row { Text("Speed " + String.format("%.1f", TtsEngine.speed))
Text("Speed")
Slider( Slider(
value = TtsEngine.speedState.value, value = TtsEngine.speedState.value,
onValueChange = { TtsEngine.speed = it }, onValueChange = { TtsEngine.speed = it },
valueRange = 0.2F..3.0F valueRange = 0.2F..3.0F,
modifier = Modifier.fillMaxWidth()
) )
} }
var testText by remember { mutableStateOf("") } var testText by remember { mutableStateOf("") }
OutlinedTextField(
value = testText,
onValueChange = { testText = it },
label = { Text("Test text") },
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight()
.padding(16.dp),
singleLine = false,
)
val numSpeakers = TtsEngine.tts!!.numSpeakers() val numSpeakers = TtsEngine.tts!!.numSpeakers()
if (numSpeakers > 1) { if (numSpeakers > 1) {
Row {
Text("Speaker ID: (0-${numSpeakers - 1})")
OutlinedTextField( OutlinedTextField(
value = TtsEngine.speakerIdState.value.toString(), value = TtsEngine.speakerIdState.value.toString(),
onValueChange = { onValueChange = {
@@ -91,10 +80,28 @@ class MainActivity : ComponentActivity() {
TtsEngine.speakerId = it.toString().toInt() TtsEngine.speakerId = it.toString().toInt()
} }
}, },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) label = {
Text("Speaker ID: (0-${numSpeakers - 1})")
},
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 16.dp)
.wrapContentHeight(),
) )
} }
}
OutlinedTextField(
value = testText,
onValueChange = { testText = it },
label = { Text("Please input your text here") },
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 16.dp)
.wrapContentHeight(),
singleLine = false,
)
Row { Row {
Button( Button(
modifier = Modifier.padding(20.dp), modifier = Modifier.padding(20.dp),