For starters, in the description, "Nobody will ever say ''it's 11:57''. People just say ''it's noon''." Well, no. People do say ''it's 11:57''. They also say "it's almost noon", "it's about noon", or "it's just after noon", etc.
I'm not sure I agree with how time is divided up: the source code says hours 0-4 are night, and 5-7 are "early morning", for instance. Hours 11-13 are "noon", but I'd hardly call 11:01 or 13:59 "noon". Those distinctions are rather subjective.
People in the English-speaking world have different ways of describing time. In some parts of the world, people will say "half past one", others will say "half one", or "bottom of one". Or they'll say "quarter of one" or "fifteen minutes before" in place of "quarter to one".
My (albeit limited) experience is that people are so used to regional dialects with respect to time that "quarter to one" is not always universally understood as "12:45".
It's an interesting idea for a module, but the problem it's meant to solve has a lot more complexity than it can handle.
Nitpick: it belongs in the Lingua::EN namespace, since it converts time to a natural language string (English).