pushInputData method

void pushInputData(
  1. List<double> pcm,
  2. int sampleRate,
  3. int nChannels
)

Implementation

void pushInputData(
  List<double> pcm,
  int sampleRate,
  int nChannels
) {
  if (!available) {
    throw Exception("Model not opened yet. wait one second and try again.");
  }

  ffi.Pointer<ffi.Float> waveBuf = malloc<ffi.Float>(pcm.length);
  for (int i = 0; i < pcm.length; i++) {
    waveBuf[i] = pcm[i];
  }

  int status = 0;
  int pushSamples = pcm.length;
  status = ailiaSpeech.ailiaSpeechPushInputData(
    ppAilia!.value,
    waveBuf,
    nChannels,
    pushSamples ~/ nChannels,
    sampleRate,
  );
  throwError("ailiaSpeechPushInputData", status);

  malloc.free(waveBuf);
}