g2p method

String g2p(
  1. String inputText,
  2. int g2pType
)

Implementation

String g2p(String inputText, int g2pType){
  if (debug){
    print("ailiaVoiceGraphemeToPhoeneme $inputText");
  }

  int status = ailiaVoice.ailiaVoiceGraphemeToPhoneme(
    ppAilia!.value,
    inputText.toNativeUtf8().cast<ffi.Char>(),
    g2pType,
  );
  throwError("ailiaVoiceGraphemeToPhoneme", status);

  final ffi.Pointer<ffi.UnsignedInt> len = malloc<ffi.UnsignedInt>();
  status = ailiaVoice.ailiaVoiceGetFeatureLength(ppAilia!.value, len);
  throwError("ailiaVoiceGetFeatureLength", status);
  if (debug){
    print("length ${len.value}");
  }

  final ffi.Pointer<ffi.Char> features = malloc<ffi.Char>(len.value);
  status = ailiaVoice.ailiaVoiceGetFeatures(
    ppAilia!.value,
    features,
    len.value,
  );
  throwError("ailiaVoiceGetFeatures", status);

  ffi.Pointer<Utf8> p = features.cast<Utf8>();
  String s = p.toDartString();
  if (debug){
    print("g2p output $s");
  }

  malloc.free(len);
  malloc.free(features);

  return s;
}