convert method

  1. @override
G2pResult convert(
  1. String text
)
override

Converts text into exact phoneme output and optional token details.

Implementation

@override
G2pResult convert(String text) {
  final preprocessed = preprocessInput
      ? const EnglishInlinePreprocessor().preprocess(text)
      : EnglishPreprocessResult(
          text: text,
          sourceWords: const <String>[],
          controls: const <int, EnglishInlineControl>{},
        );
  final tokenized = _tokenize(preprocessed);
  final folded = foldEnglishTokenHeads(
    tokenized,
    unknownMarker: unknownMarker,
  );
  final items = retokenizeEnglishTokens(folded);
  final resolved = _resolve(items);
  final finalTokens = <MisakiToken>[
    for (final item in resolved)
      switch (item) {
        EnglishRetokenizedToken(:final token) => token,
        EnglishRetokenizedGroup(:final tokens) => mergeEnglishTokens(
          tokens,
          unknownMarker: unknownMarker,
        ),
      },
  ];
  return renderEnglishTokens(
    finalTokens,
    version: phonemeVersion,
    unknownMarker: unknownMarker,
  );
}