support reading rule FST for Android TTS (#410)
This commit is contained in:
@@ -101,12 +101,14 @@ class MainActivity : AppCompatActivity() {
|
||||
fun initTts() {
|
||||
var modelDir :String?
|
||||
var modelName :String?
|
||||
var ruleFsts: String?
|
||||
|
||||
// The purpose of such a design is to make the CI test easier
|
||||
// Please see
|
||||
// https://github.com/k2-fsa/sherpa-onnx/blob/master/scripts/apk/generate-tts-apk-script.py
|
||||
modelDir = null
|
||||
modelName = null
|
||||
ruleFsts = null
|
||||
|
||||
// Example 1:
|
||||
// modelDir = "vits-vctk"
|
||||
@@ -116,7 +118,12 @@ class MainActivity : AppCompatActivity() {
|
||||
// modelDir = "vits-piper-en_US-lessac-medium"
|
||||
// modelName = "en_US-lessac-medium.onnx"
|
||||
|
||||
val config = getOfflineTtsConfig(modelDir = modelDir!!, modelName = modelName!!)!!
|
||||
// Example 3:
|
||||
// modelDir = "vits-zh-aishell3"
|
||||
// modelName = "vits-aishell3.onnx"
|
||||
// ruleFsts = "vits-zh-aishell3/rule.fst"
|
||||
|
||||
val config = getOfflineTtsConfig(modelDir = modelDir!!, modelName = modelName!!, ruleFsts = ruleFsts ?: "")!!
|
||||
tts = OfflineTts(assetManager = application.assets, config = config)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ data class OfflineTtsModelConfig(
|
||||
|
||||
data class OfflineTtsConfig(
|
||||
var model: OfflineTtsModelConfig,
|
||||
var ruleFsts: String = "",
|
||||
)
|
||||
|
||||
class GeneratedAudio(
|
||||
@@ -116,7 +117,7 @@ class OfflineTts(
|
||||
// please refer to
|
||||
// https://k2-fsa.github.io/sherpa/onnx/tts/pretrained_models/index.html
|
||||
// to download models
|
||||
fun getOfflineTtsConfig(modelDir: String, modelName: String): OfflineTtsConfig? {
|
||||
fun getOfflineTtsConfig(modelDir: String, modelName: String, ruleFsts: String): OfflineTtsConfig? {
|
||||
return OfflineTtsConfig(
|
||||
model = OfflineTtsModelConfig(
|
||||
vits = OfflineTtsVitsModelConfig(
|
||||
@@ -125,8 +126,9 @@ fun getOfflineTtsConfig(modelDir: String, modelName: String): OfflineTtsConfig?
|
||||
tokens = "$modelDir/tokens.txt"
|
||||
),
|
||||
numThreads = 2,
|
||||
debug = false,
|
||||
debug = true,
|
||||
provider = "cpu",
|
||||
)
|
||||
),
|
||||
ruleFsts=ruleFsts,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user