I think the question pretty much says it all.
Is there any API by which I can take speech input from the user and then convert it to text? (windows phone 7 or windows 8 metro) ?
You may want to take a look at the Hawaii project :-
Speech-to-Text Service This service takes a spoken phrase and returns text (currently in English only).