There is no standard library that I know of that does that, and as far as I know, you can't make a scalable solution for this.
One approach I'd recommend is to create arrays that essentially map the numbers to their word counterparts. For example,
String[] numerators = {"One", "Two", "Three", ... // etc., until you reach your desired limit
String[] denominators = {"whole", "hal", "third", ...
Your getSpokenWords(numerator, denominator) method can then concatenate these strings and add plural endings if needed. ("Half" is listed as "hal" because of its irregular plural form, so that you can concatenate "ves" or "f" as necessary)
Edit: If you want to be clever about it, you can even use loops, division, and modulo to separate higher numbers into their places values. 525600, for example, can be separated into 525 and 600, where you can get the text equivalent of 525 (five hundred twenty five) and append "thousand" to it. Of course, getting the string "five hundred twenty five" also requires separation in itself.