I have tried to implement something similar and it seems to be working fairly well.
I have included “and” as this is often used within numbers. “nine hundred and eight one”.
One issue I am having is that “thirty” “fifty” and “eighty” are often wrongly identified as each other.
I will try adding “one hundred”, “two hundred” … into the grammar as this should make it slightly easier to parse.
–Current grammar—
ONE
TWO
THREE
FOUR
FIVE
SIX
SEVEN
EIGHT
NINE
TEN
ELEVEN
TWELVE
THIRTEEN
FOURTEEN
FIFTEEN
SIXTEEN
SEVENTEEN
EIGHTEEN
NINETEEN
TWENTY
THIRTY
FOURTY
FIFTY
SIXTY
SEVENTY
EIGHTY
NINETY
HUNDRED
THOUSAND
MILLION
POUND
PEE
PENCE
AND