TN systems can be rule-based, neural or a combination of both. The traditional rule-based systems utilize either regular expressions or weighted finite-state transducers (WFST) [1]} to define a set of language-specific rules. These systems are easy to extend, debug and reason about. However, they can not resolve contextual ambiguity well without making the rules significantly more complex. For example, it is very complicated to write a rule that resolves  “1/4" to “one quarter" in one case and to “January fourth" in another context, see Figure REF . Additionally, rule-based systems can be easily customized to support Speech Synthesis Markup Language (SSML) [2]}, which is becoming a requirement for TTS systems in production. SSML gives users control over different verbalization options, and users can explicitly specify if “2" should be spoken as the cardinal “two" or the ordinal “second".
Recent neural systems treat TN as a machine translation task using Seq2Seq models [3]}, [4]}, [5]}. These are good at incorporating context, but they require large datasets to scale,
and suffer from catastrophic unrecoverable errors. Therefore, some hybrid systems propose to use a generative neural network (NN) constrained by WFST grammars [6]}, [7]}. Nonetheless, if the WFST does not cover a particular example, the NN performs unconstrained normalization. These hybrid systems can reduce the number of unrecoverable errors, but still require supervised training data [6]}. Therefore, state-of-the-art TN systems in production rely mostly on rule-based normalization [9]}, [1]}.
