For instance, the following should work:
Map[Style[#, 72, Hue[Random], FontFamily -> "Frosty"] &,
Characters["*** ~Happy Birthday!~ ***"]]],
UpdateInterval -> 0.2]], Background -> Lighter[LightYellow, .1]]
Note that it's basically a work letter by letter that is then wrapped in the Text[ ..., Background -> ...]. I did so because setting a background for each letter would lead to a non-uniform background size around letters: a "H" is bigger than a "*" and setting each of them a background color would lead to different sizes of colored surfaces ... if that makes sense.
I hope it helps.