Converting large numbers to text causes crash #240
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Explanation of issue
When trying to convert numbers to words in coqui-ai-TTS/TTS/tts/utils/text/english/number_norm.py, numbers with more than 36 digits will cause inflect to throw
inflect.NumOutOfRangeError
crashing the app.Reproduction
This script will reproduce the issue:
Solution
The solution is to read out numbers with more than 36 digits one digit at a time. This replicates how a human speaker might handle this. For example reading out digits of pi.
Tests
I have added two tests to verify this change. One will convert a number with 35 digits normally and the other will convert a number with 36 digits.