Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,17 +52,36 @@ def __init__(self):
(graph_ties + delete_hyphen + graph_digit),
)

# accept `double zéro` -> `00`
single_digits = graph_digit | graph_zero
digit_words = pynini.union(graph_digit.optimize(), graph_zero).invert()

doubled_digit = pynini.union(
*[
pynini.cross(
pynini.project(str(i) @ digit_words, "output")
+ pynini.accep(" ")
+ pynini.project(str(i) @ digit_words, "output"),
pynutil.insert("double ") + pynini.project(str(i) @ digit_words, "output"),
)
for i in range(10)
]
)
doubled_digit.invert()
digit_twice = single_digits + pynutil.delete(" ") + single_digits
doubled_digit @= digit_twice

graph_first_pair = graph_zero + delete_space + graph_digit
graph_first_pair |= pynutil.insert("0") + graph_digit # if zero is omitted
graph_first_pair |= doubled_digit
graph_first_pair += (
delete_space + insert_space
) # delete_space since closure allows possible gaps to be removed

# All digits
single_digits = graph_digit | graph_zero

graph_pair_all_digits = single_digits + delete_space
graph_pair_all_digits += single_digits
graph_pair_all_digits |= doubled_digit

graph_all_digits = pynini.closure(graph_pair_all_digits + delete_space + insert_space, 3, 3)
graph_all_digits = graph_first_pair + graph_all_digits + graph_pair_all_digits
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
zéro deux douze trente-deux trente trente~02 12 32 30 30
zéro deux une deux trois deux trois zéro trois zéro~02 12 32 30 30
deux douze trente-deux trente trente~02 12 32 30 30
deux une deux trois deux trois zéro trois zéro~02 12 32 30 30
deux une deux trois deux trois zéro trois zéro~02 12 32 30 30
double neuf douze trente-deux trente trente~99 12 32 30 30