@@ -20,6 +20,7 @@ static OfflineTtsConfig GetOfflineTtsConfig(JNIEnv *env, jobject config) {
20
20
jobject model = env->GetObjectField (config, fid);
21
21
jclass model_config_cls = env->GetObjectClass (model);
22
22
23
+ // vits
23
24
fid = env->GetFieldID (model_config_cls, " vits" ,
24
25
" Lcom/k2fsa/sherpa/onnx/OfflineTtsVitsModelConfig;" );
25
26
jobject vits = env->GetObjectField (model, fid);
@@ -64,6 +65,54 @@ static OfflineTtsConfig GetOfflineTtsConfig(JNIEnv *env, jobject config) {
64
65
fid = env->GetFieldID (vits_cls, " lengthScale" , " F" );
65
66
ans.model .vits .length_scale = env->GetFloatField (vits, fid);
66
67
68
+ // matcha
69
+ fid = env->GetFieldID (model_config_cls, " matcha" ,
70
+ " Lcom/k2fsa/sherpa/onnx/OfflineTtsMatchaModelConfig;" );
71
+ jobject matcha = env->GetObjectField (model, fid);
72
+ jclass matcha_cls = env->GetObjectClass (matcha);
73
+
74
+ fid = env->GetFieldID (matcha_cls, " acousticModel" , " Ljava/lang/String;" );
75
+ s = (jstring)env->GetObjectField (matcha, fid);
76
+ p = env->GetStringUTFChars (s, nullptr );
77
+ ans.model .matcha .acoustic_model = p;
78
+ env->ReleaseStringUTFChars (s, p);
79
+
80
+ fid = env->GetFieldID (matcha_cls, " vocoder" , " Ljava/lang/String;" );
81
+ s = (jstring)env->GetObjectField (matcha, fid);
82
+ p = env->GetStringUTFChars (s, nullptr );
83
+ ans.model .matcha .vocoder = p;
84
+ env->ReleaseStringUTFChars (s, p);
85
+
86
+ fid = env->GetFieldID (matcha_cls, " lexicon" , " Ljava/lang/String;" );
87
+ s = (jstring)env->GetObjectField (matcha, fid);
88
+ p = env->GetStringUTFChars (s, nullptr );
89
+ ans.model .matcha .lexicon = p;
90
+ env->ReleaseStringUTFChars (s, p);
91
+
92
+ fid = env->GetFieldID (matcha_cls, " tokens" , " Ljava/lang/String;" );
93
+ s = (jstring)env->GetObjectField (matcha, fid);
94
+ p = env->GetStringUTFChars (s, nullptr );
95
+ ans.model .matcha .tokens = p;
96
+ env->ReleaseStringUTFChars (s, p);
97
+
98
+ fid = env->GetFieldID (matcha_cls, " dataDir" , " Ljava/lang/String;" );
99
+ s = (jstring)env->GetObjectField (matcha, fid);
100
+ p = env->GetStringUTFChars (s, nullptr );
101
+ ans.model .matcha .data_dir = p;
102
+ env->ReleaseStringUTFChars (s, p);
103
+
104
+ fid = env->GetFieldID (matcha_cls, " dictDir" , " Ljava/lang/String;" );
105
+ s = (jstring)env->GetObjectField (matcha, fid);
106
+ p = env->GetStringUTFChars (s, nullptr );
107
+ ans.model .matcha .dict_dir = p;
108
+ env->ReleaseStringUTFChars (s, p);
109
+
110
+ fid = env->GetFieldID (matcha_cls, " noiseScale" , " F" );
111
+ ans.model .matcha .noise_scale = env->GetFloatField (matcha, fid);
112
+
113
+ fid = env->GetFieldID (matcha_cls, " lengthScale" , " F" );
114
+ ans.model .matcha .length_scale = env->GetFloatField (matcha, fid);
115
+
67
116
fid = env->GetFieldID (model_config_cls, " numThreads" , " I" );
68
117
ans.model .num_threads = env->GetIntField (model, fid);
69
118
0 commit comments