This is probably the #1 feature I'm hoping for in an iPhone software update. OSX already has a great text-to--speech function (that this tip makes use of), so why not apply it to the iPhone? Think about it. It's winter. It's cold outside. You're walking to work, your iPhone securely in your pocket. You get a call. You don't want to take off your gloves and reach into your inside pocket just to see who's calling.
Why can't your iPhone just tell you? As I say, hopefully this will be a user-selectable option in the future, but for now, you can do it yourself.
If you have GarageBand 4 it's really easy. It's completely doable with GB3, but there's one more step.
First, open up Terminal and type in:
say -o ~/Desktop/Output.aiff NAME
This creates a file called Output.aiff on your desktop. Mine said "Incoming call from NAME", but you can do what you like.
Now open up GarageBand. There are some built in ringer sound effects, or you can find one you like online or whatever. Drag that into one track, and drag your Output.aiff into another. If you prefer, you can obviously record yourself saying the name right in GB instead of using Terminal, but I think Terminal is a quicker and easier solution. And if you're like me, you hate the sound of your own voice recorded.
If you're in GB4, go to Share as Ringtone.
In GB3, go to "Share to Disk" and save the file, then simply change the extension from .m4a to .m4r and import into iTunes.
In either case, save it as "NAME.m4r", and then sync to your iPhone.
The last step is to assign your new, custom ringtones to their respective callers.
And now, when you're listening to music and a call comes in, your phone will ring and say "Incoming call from John Smith". It's a really handy, if a bit of a long work-around, tool.

Why can't your iPhone just tell you? As I say, hopefully this will be a user-selectable option in the future, but for now, you can do it yourself.
If you have GarageBand 4 it's really easy. It's completely doable with GB3, but there's one more step.
First, open up Terminal and type in:
say -o ~/Desktop/Output.aiff NAME
This creates a file called Output.aiff on your desktop. Mine said "Incoming call from NAME", but you can do what you like.
Now open up GarageBand. There are some built in ringer sound effects, or you can find one you like online or whatever. Drag that into one track, and drag your Output.aiff into another. If you prefer, you can obviously record yourself saying the name right in GB instead of using Terminal, but I think Terminal is a quicker and easier solution. And if you're like me, you hate the sound of your own voice recorded.
If you're in GB4, go to Share as Ringtone.
In GB3, go to "Share to Disk" and save the file, then simply change the extension from .m4a to .m4r and import into iTunes.
In either case, save it as "NAME.m4r", and then sync to your iPhone.
The last step is to assign your new, custom ringtones to their respective callers.
And now, when you're listening to music and a call comes in, your phone will ring and say "Incoming call from John Smith". It's a really handy, if a bit of a long work-around, tool.