I'm sorry, I misread your post. Not sure that is possible on Android because I don' t see it in the user guide and I cannot do it on my Epic. I will keep looking though.
I don't think Android natively supports setting a separate text tone for a contact, just for texts from everyone in general. There may be an Android phone running a custom interface that will allow this; somehting like HTC Sense, Samsung TouchWiz or MotoBLUR. I can't remember seeing an Android phone that supports text tones for each contact though.
I use a program by Edward Kawas called Enhanced SMS and Caller ID. This program will speak the name of the person who sent you a text. It will also speak the caller names, calendar events, and Gmail senders. You select which items to speak and which to leave alone.
If you want a more natural sounding voice to go with this program, check out SVOX voices.