Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ class MainActivity : AppCompatActivity() {
var dataDir: String?
var dictDir: String?
var assets: AssetManager? = application.assets
var isKitten = false

// The purpose of such a design is to make the CI test easier
// Please see
Expand Down Expand Up @@ -291,6 +292,14 @@ class MainActivity : AppCompatActivity() {
// lexicon = "kokoro-multi-lang-v1_0/lexicon-us-en.txt,kokoro-multi-lang-v1_0/lexicon-zh.txt"
// ruleFsts = "$modelDir/phone-zh.fst,$modelDir/date-zh.fst,$modelDir/number-zh.fst"

// Example 11
// kitten-nano-en-v0_1-fp16
// modelDir = "kitten-nano-en-v0_1-fp16"
// modelName = "model.fp16.onnx"
// voices = "voices.bin"
// dataDir = "kokoro-multi-lang-v1_0/espeak-ng-data"
// isKitten = true

if (dataDir != null) {
val newDir = copyDataDir(dataDir!!)
dataDir = "$newDir/$dataDir"
Expand All @@ -315,6 +324,7 @@ class MainActivity : AppCompatActivity() {
dictDir = dictDir ?: "",
ruleFsts = ruleFsts ?: "",
ruleFars = ruleFars ?: "",
isKitten = isKitten,
)!!

tts = OfflineTts(assetManager = assets, config = config)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ object TtsEngine {
private var dataDir: String? = null
private var dictDir: String? = null
private var assets: AssetManager? = null
private var isKitten = false

init {
// The purpose of such a design is to make the CI test easier
Expand Down Expand Up @@ -172,6 +173,15 @@ object TtsEngine {
//
// This model supports many languages, e.g., English, Chinese, etc.
// We set lang to eng here.

// Example 11
// kitten-nano-en-v0_1-fp16
// modelDir = "kitten-nano-en-v0_1-fp16"
// modelName = "model.fp16.onnx"
// voices = "voices.bin"
// dataDir = "kitten-nano-en-v0_1-fp16/espeak-ng-data"
// lang = "eng"
// isKitten = true
}

fun createTts(context: Context) {
Expand Down Expand Up @@ -207,7 +217,8 @@ object TtsEngine {
dataDir = dataDir ?: "",
dictDir = dictDir ?: "",
ruleFsts = ruleFsts ?: "",
ruleFars = ruleFars ?: ""
ruleFars = ruleFars ?: "",
isKitten = isKitten,
)

speed = PreferenceHelper(context).getSpeed()
Expand Down
5 changes: 5 additions & 0 deletions scripts/apk/build-apk-tts-engine.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ sed -i.bak s/"lang = null"/"lang = \"$lang_iso_639_3\""/ ./TtsEngine.kt
sed -i.bak s/"lang2 = null"/"lang2 = \"$lang_iso_639_3_2\""/ ./TtsEngine.kt
{% endif %}

{% if tts_model.is_kitten %}
sed -i.bak s/"isKitten = false"/"isKitten = true"/ ./TtsEngine.kt
{% endif %}


{% if tts_model.model_name %}
sed -i.bak s/"modelName = null"/"modelName = \"$model_name\""/ ./TtsEngine.kt
{% endif %}
Expand Down
4 changes: 4 additions & 0 deletions scripts/apk/build-apk-tts.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ sed -i.bak s/"modelDir = null"/"modelDir = \"$model_dir\""/ ./MainActivity.kt
sed -i.bak s%"lexicon = null"%"lexicon = \"$lexicon\""% ./MainActivity.kt
{% endif %}

{% if tts_model.is_kitten %}
sed -i.bak s/"isKitten = false"/"isKitten = true"/ ./MainActivity.kt
{% endif %}

git diff
popd

Expand Down
18 changes: 18 additions & 0 deletions scripts/apk/generate-tts-apk-script.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class TtsModel:
lang_iso_639_3: str = ""
lang_iso_639_3_2: str = ""
lexicon: str = ""
is_kitten: bool = False


def convert_lang_to_iso_639_3(models: List[TtsModel]):
Expand Down Expand Up @@ -494,6 +495,22 @@ def get_kokoro_models() -> List[TtsModel]:
return english_models + multi_lingual_models


def get_kitten_models() -> List[TtsModel]:
english_models = [
TtsModel(
model_dir="kitten-nano-en-v0_1-fp16",
model_name="model.fp16.onnx",
lang="en",
)
]
for m in english_models:
m.data_dir = f"{m.model_dir}/espeak-ng-data"
m.voices = "voices.bin"
m.is_kitten = True

return english_models


def main():
args = get_args()
index = args.index
Expand All @@ -507,6 +524,7 @@ def main():
all_model_list += get_coqui_models()
all_model_list += get_matcha_models()
all_model_list += get_kokoro_models()
all_model_list += get_kitten_models()

convert_lang_to_iso_639_3(all_model_list)
print(all_model_list)
Expand Down
9 changes: 9 additions & 0 deletions sherpa-onnx/csrc/piper-phonemize-lexicon.cc
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,10 @@ template PiperPhonemizeLexicon::PiperPhonemizeLexicon(
template PiperPhonemizeLexicon::PiperPhonemizeLexicon(
AAssetManager *mgr, const std::string &tokens, const std::string &data_dir,
const OfflineTtsKokoroModelMetaData &kokoro_meta_data);

template PiperPhonemizeLexicon::PiperPhonemizeLexicon(
AAssetManager *mgr, const std::string &tokens, const std::string &data_dir,
const OfflineTtsKittenModelMetaData &kokoro_meta_data);
#endif

#if __OHOS__
Expand All @@ -552,6 +556,11 @@ template PiperPhonemizeLexicon::PiperPhonemizeLexicon(
NativeResourceManager *mgr, const std::string &tokens,
const std::string &data_dir,
const OfflineTtsKokoroModelMetaData &kokoro_meta_data);

template PiperPhonemizeLexicon::PiperPhonemizeLexicon(
NativeResourceManager *mgr, const std::string &tokens,
const std::string &data_dir,
const OfflineTtsKittenModelMetaData &kokoro_meta_data);
#endif

} // namespace sherpa_onnx
Loading