openModel method
Implementation
void openModel(
String encoder,
String decoder1,
String decoder2,
String wave,
String? ssl,
int modelType,
int cleanerType,
int envId,
) {
close();
ailiaVoice = ailia_voice_dart.ailiaVoiceFFI(
_ailiaCommonGetLibrary(_ailiaCommonGetVoicePath()),
);
ailia = _ailiaCommonGetLibrary(_ailiaCommonGetPath());
ailiaAudio = _ailiaCommonGetLibrary(_ailiaCommonGetAudioPath());
ppAilia = malloc<ffi.Pointer<ailia_voice_dart.AILIAVoice>>();
ffi.Pointer<ailia_voice_dart.AILIAVoiceApiCallback> callback =
getCallback();
int memoryMode = ailia_voice_dart.AILIA_MEMORY_REDUCE_CONSTANT |
ailia_voice_dart.AILIA_MEMORY_REDUCE_CONSTANT_WITH_INPUT_INITIALIZER |
ailia_voice_dart.AILIA_MEMORY_REUSE_INTERSTAGE;
int flag = ailia_voice_dart.AILIA_VOICE_FLAG_NONE;
int status = ailiaVoice.ailiaVoiceCreate(
ppAilia,
envId,
ailia_voice_dart.AILIA_MULTITHREAD_AUTO,
memoryMode,
flag,
callback.ref,
ailia_voice_dart.AILIA_VOICE_API_CALLBACK_VERSION,
);
throwError("ailiaVoiceCreate", status);
if (Platform.isWindows){
status = ailiaVoice.ailiaVoiceOpenModelFileW(
ppAilia!.value,
encoder.toNativeUtf16().cast<ffi.WChar>(),
decoder1.toNativeUtf16().cast<ffi.WChar>(),
decoder2.toNativeUtf16().cast<ffi.WChar>(),
wave.toNativeUtf16().cast<ffi.WChar>(),
(ssl != null) ? ssl.toNativeUtf16().cast<ffi.WChar>():ffi.nullptr,
modelType,
cleanerType,
);
}else{
status = ailiaVoice.ailiaVoiceOpenModelFileA(
ppAilia!.value,
encoder.toNativeUtf8().cast<ffi.Char>(),
decoder1.toNativeUtf8().cast<ffi.Char>(),
decoder2.toNativeUtf8().cast<ffi.Char>(),
wave.toNativeUtf8().cast<ffi.Char>(),
(ssl != null) ? ssl.toNativeUtf8().cast<ffi.Char>():ffi.nullptr,
modelType,
ailia_voice_dart.AILIA_VOICE_CLEANER_TYPE_BASIC,
);
}
throwError("ailiaVoiceOpenModelFile", status);
malloc.free(callback);
if (debug){
print("ailia Voice initialize success");
}
available = true;
}