No, there is no other way to declare the language of individual words than wrapping each word in an element and setting the lang
attribute on it. You might be able to generate such markup programmatically, but this depends on your data, the exact definition of how words should be marked up, and the technologies available.
On the other hand, speech browsers often ignore lang
attributes or implement them oddly. Switching to a different language in the midst of a sentence might produce something disruptive. So do some testing to check whether the lang
markup really helps, before spending time and effort on generating it.