А почему бы просто так взять и не разбить число, например, "2134" на отдельные звуки:
"две" "тысячи" "сто" "тридцать" "четыре" ?
При обновлении числа - Вы будете грузить только изменившиеся разряды: "2314":
"две" "тысячи" - не грузим, используем из предыдущей озвучки
"триста" "четырнадцать" - грузим
Можно сделать один файл с разбивкой по временным меткам и воспроизводить с разных меток для получения нужного голосового фрагмента заданного числа.
Тогда у Вас будет всего лишь 5 файлов!
Однократно закэшированный файл на стороне клиента - уже не будет грузиться каждый раз.
Проверьте поддержку TTS на нужном языке в браузере и если возможно - произнесите с его помощью вместо загрузки файла.
Вариантов - масса..