transcribe method

List<SpeechText> transcribe()

Implementation

List<SpeechText> transcribe() {
  List<SpeechText> result = [];
  // Process
  int status = ailiaSpeech.ailiaSpeechTranscribe(ppAilia!.value);
  throwError("ailiaSpeechTranscribe", status);
  if (postProcess) {
    status = ailiaSpeech.ailiaSpeechPostProcess(ppAilia!.value);
    throwError("ailiaSpeechTranscribe", status);
  }

  // Get results
  final ffi.Pointer<ffi.UnsignedInt> count = malloc<ffi.UnsignedInt>();
  status = ailiaSpeech.ailiaSpeechGetTextCount(ppAilia!.value, count);
  throwError("ailiaSpeechGetTextCount", status);

  for (int idx = 0; idx < count.value; idx++) {
    final ffi.Pointer<ailia_speech_dart.AILIASpeechText> text =
        malloc<ailia_speech_dart.AILIASpeechText>();
    status = ailiaSpeech.ailiaSpeechGetText(
      ppAilia!.value,
      text,
      ailia_speech_dart.AILIA_SPEECH_TEXT_VERSION,
      idx,
    );
    throwError("ailiaSpeechGetText", status);

    SpeechText s = SpeechText.fromPointer(text);
    result.add(s);

    malloc.free(text);
  }
  malloc.free(count);
  return result;
}