Ever since I upgraded to Ubuntu 12.04 I 'd been experiencing problems with my mic, for some reason ALSA did not recognize my internal/external mic. So I went on looking for a fix on google and found a temporary solution which was installing pulse-audio controller and tweaking the input sound settings. But I had to fiddle with pulse-audio controller every time I had to use my mic. Since this wasn't a real fix I continued searching, but all I could find was bug reports filled with launchpad and a few askubuntu answers which were of no use.
Luckily today I stumbled upon this old webupd8 post which had some information on altering ALSA and Pulse audio settings through gstreamer-properties. Changing the input values in gstreammer-settings was the permanent fix.
Here's what I did.
Open terminal(Ctrl+Alt+T) and run the gstreamer-properties.
Change the settings under Default Input to the below screenshot.
Close the gstreamer-properties and plugin your mic to see if its working.
Note: If its still not working then you may have to try giving different Device inputs under Default Input.