create method

void create(
  1. bool liveTranscribe,
  2. bool taskTranslate,
  3. int envId,
  4. {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);
}