I have an iPhone 4S with iOS 5.
How do I record speech or sound to use as a ringtone dedicated to certain phone numbers, especially numbers that aren't in my address book?
I think this is two questions. How do I record ringtones? and How do I get a ringtone for non-contacts? I will address the second.
You cannot explicitly set a ringtone for numbers not in you address book. But, you can get this effect. Simply make sure all your contacts have a "custom" ringtone set. Then, set your default ringtone to something else. You can do this with only two ringtones, one for contacts and one for the non-contacts. Or, you could customize your contacts as much as you want. Just make sure that every time you add a contact you give them a rintone other than the default.
I'll answer the first of these two questions. Once you've recorded audio (e.g. with Audacity):
You should now see your tones on your iPhone under Settings > Sounds > Ringtone. Refer to Morgan Wise's answer for a trick to have separate ringtones for known & unknown numbers. (That's not something that's supported by default on iPhone.)