create method
void
create(- bool liveTranscribe,
- bool taskTranslate,
- int envId,
- {bool virtualMemory = false}
)
Implementation
void create(
bool liveTranscribe,
bool taskTranslate,
int envId,
{bool virtualMemory = false}
) {
ailiaSpeech = ailia_speech_dart.ailiaSpeechFFI(
_ailiaCommonGetLibrary(_ailiaCommonGetSpeechPath()),
);
ailiaAudio = _ailiaCommonGetLibrary(_ailiaCommonGetAudioPath());
ailia = _ailiaCommonGetLibrary(_ailiaCommonGetPath());
ailiaTokenizer = _ailiaCommonGetLibrary(_ailiaCommonGetTokenizerPath());
ppAilia = malloc<ffi.Pointer<ailia_speech_dart.AILIASpeech>>();
ffi.Pointer<ailia_speech_dart.AILIASpeechApiCallback> callback =
getCallback();
int memoryMode = ailia_speech_dart.AILIA_MEMORY_REDUCE_CONSTANT |
ailia_speech_dart.AILIA_MEMORY_REDUCE_CONSTANT_WITH_INPUT_INITIALIZER |
ailia_speech_dart.AILIA_MEMORY_REUSE_INTERSTAGE;
if (virtualMemory){
memoryMode = ailia_speech_dart.AILIA_MEMORY_REDUCE_CONSTANT |
ailia_speech_dart.AILIA_MEMORY_REDUCE_CONSTANT_WITH_INPUT_INITIALIZER |
ailia_speech_dart.AILIA_MEMORY_REUSE_INTERSTAGE |
ailia_speech_dart.AILIA_MEMORY_REDUCE_CONSTANT_WITH_FILE_MAPPED;
}
int taskId = ailia_speech_dart.AILIA_SPEECH_TASK_TRANSCRIBE;
if (taskTranslate) {
taskId = ailia_speech_dart.AILIA_SPEECH_TASK_TRANSLATE;
}
int flag = ailia_speech_dart.AILIA_SPEECH_FLAG_NONE;
if (liveTranscribe) {
flag = ailia_speech_dart.AILIA_SPEECH_FLAG_LIVE;
}
int status = ailiaSpeech.ailiaSpeechCreate(
ppAilia,
envId,
ailia_speech_dart.AILIA_MULTITHREAD_AUTO,
memoryMode,
taskId,
flag,
callback.ref,
ailia_speech_dart.AILIA_SPEECH_API_CALLBACK_VERSION,
);
throwError("ailiaSpeechCreate", status);
malloc.free(callback);
}