Skip to content

OverflowError when parsing numbers in text #145

@icfred

Description

@icfred

Quite a funny one, and probably quite an edge case scenario. It seems that handling written numbers can trigger an overflow error:

2026-02-24 16:05:35 [INFO] [job 0dc94a1b4e5f4332a7e21205d14adaf3] Chunk 0014_p0005 · 530,408/802934: ten octillion, one hundred and ten septillion, ten sextillion, ten quintillion,
2026-02-24 16:05:35 [ERROR] [job 0dc94a1b4e5f4332a7e21205d14adaf3] Job failed (OverflowError): abs(10010010001011110100001001101010101010101000100110101001001010010010100101101001001011110100010101010101010100101010010101101010010000001000101110101001001010100101001001010101001000100100100100100100101001001010110101001001001010110101010101010111101000010011010101010101000100110110101010100110010001000101010111010000101011001010010100011001001110010001000000000000100111111100010010010101) must be less than 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] Context => chunk_level=paragraph, chapters=31, chunk_groups=31, chunks=1956
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] First chunk sample => id=0000_p0000, speaker=narrator, chars=15, preview=List of Sources
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE: Traceback (most recent call last):
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:   File "/home/wsl/.local/share/uv/tools/abogen/lib/python3.12/site-packages/abogen/webui/conversion_runner.py", line 2109, in run_conversion_job
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:     emitted = emit_text(
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:               ^^^^^^^^^^
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:   File "/home/wsl/.local/share/uv/tools/abogen/lib/python3.12/site-packages/abogen/webui/conversion_runner.py", line 1871, in emit_text
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:     for segment in segment_iter:
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:   File "/home/wsl/.local/share/uv/tools/abogen/lib/python3.12/site-packages/kokoro/pipeline.py", line 376, in __call__
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:     _, tokens = self.g2p(graphemes)
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:                 ^^^^^^^^^^^^^^^^^^^
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:   File "/home/wsl/.local/share/uv/tools/abogen/lib/python3.12/site-packages/misaki/en.py", line 663, in __call__
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:     w.phonemes, w.rating = self.lexicon(replace(w, _=w._), ctx)
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:   File "/home/wsl/.local/share/uv/tools/abogen/lib/python3.12/site-packages/misaki/en.py", line 485, in __call__
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:     ps, rating = self.get_number(word, tk._.currency, tk._.is_head, tk._.num_flags)
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:   File "/home/wsl/.local/share/uv/tools/abogen/lib/python3.12/site-packages/misaki/en.py", line 429, in get_number
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:     word = num2words(int(word), to='cardinal')
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:   File "/home/wsl/.local/share/uv/tools/abogen/lib/python3.12/site-packages/num2words/__init__.py", line 111, in num2words
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:     return getattr(converter, 'to_{}'.format(to))(number, **kwargs)
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:   File "/home/wsl/.local/share/uv/tools/abogen/lib/python3.12/site-packages/num2words/base.py", line 115, in to_cardinal
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE:     raise OverflowError(self.errmsg_toobig % (value, self.MAXVAL))
2026-02-24 16:05:35 [DEBUG] [job 0dc94a1b4e5f4332a7e21205d14adaf3] TRACE: OverflowError: abs(10010010001011110100001001101010101010101000100110101001001010010010100101101001001011110100010101010101010100101010010101101010010000001000101110101001001010100101001001010101001000100100100100100100101001001010110101001001001010110101010101010111101000010011010101010101000100110110101010100110010001000101010111010000101011001010010100011001001110010001000000000000100111111100010010010101) must be less than 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions