Update:
I got the USB sound card (cheap off ebay. HDE 7.1 sound system, I think).
I have mic from a pair of headphones plugged into it, and my desktop PC speakers.
The sound is much better, but not sure if it is good enough for a photobooth yet, may have to experiment with other mics till I get one I like.
I have been spending a LOT of time troubleshooting a problem I had in my photobooth python program.
It is set up so a user can select to make a photo or video.
If video is selected, video records while displaying on screen, and sound is recorded.
I merge the video and audio files using ffmpeg, into one .mkv video file
Then a review (with sound) is displayed so the user can see how it turned out.
I was having a problem playing the video file. Video showed but no sound.
I searched all over the net for a possible cause and tried about a ga-zillion things, nothing worked.
When played back on my windows pc, the video and audio both worked.
When played on the pi terminal, using mplayer, played good. (Im using mplayer to play the video in my python code.)
Just when I tried to play it from the photobooth program in the video review, no sound.
I finally noticed that the usb sound card has a green light that flashes when the card is being accessed.
Then I noticed the card began flashing as soon as my photobooth program started, and didnt stop flashing until I quit the program.
So after searching through my code, I found the card was being accessed by Pygame, a module I use to display screens in my photobooth program.
I wasnt intentionally accessing the sound with pygame, evidently it does it itself.
Man this could have saved many hours of work if I had just paid attention to the light on the sound card from the start. Oh well, you live you learn.
Anyway, to fix it it, I simply installed this command in my code:
pygame.mixer.quit()
Inserted after my first pygame.init() command.
Now back to my microphone trials!
(Note: RPi: thou are as fickle as a kept woman!)