It is very common. If I look at my personality some years back, I was facing similar problem. Not only with English but even if i had to communicate face to face with someone even in Hindi or my mother tongue.
The problem was lack of confidence, shyness and my introvert nature.
But every problem has a solution, and even your problem can be solved.
Communication is a base to any form of interaction. Speaking is a little difficult than writing cause-
1. While speaking, one's mind should work at a speed greater than while writing as we cannot fall short of words while speaking and go blank.
2. Speaking will not involve just plain words - Each word we speak would be added by the weights of our tone, clarity, expression, pronunciation, the accent etc.
Hence it is a common problem with many of us that though we are strong in written communication, when it comes to speaking, we take a back seat.
What should be done:
1. Read novels or dramas that involves dialouges and speak out loud the dialouges with proper emotions and intensity.
2. Speak to mirror: At first it would be difficult even to look into our own eyes in the mirror. But eventually we'll be able to and then we can speak. If you're not comfortable making a rapport with your mirror image, talk with it in your mother tongue and later start conversing in informal english. Do this for almost 15-20 days and when you think you have a little grip over English, than you can start forming some prepared notes to speak to yourself (formal ones) and later go for unprepared or extempore.
3. Play: Honestly we forget the child in us who wish to flourish and learn more. Give yourself 1-2 min to prepare pointers on any given topic. Keep a timer / stopwatch to keep a track. After this time yourself to 3-5 min and you speak whatever you can in that time. Do not think if what you're saying is right or wrong, on the topic or off, as there would be no one to judge you. But speak, speak out whatever comes.
4. Once you think you've better grip on the language you can ask someone to judge your extempore play and evaluate it for you. Ask someone who you confide with so that you are not scared.
5. Whenever you meet different people, talk. For eg. I stay in Mumbai. I meet so many people every day. From my watchman to laundry man to auto driver to co-commuters in train and bus to colleagues to random people in lift etc. Smile to them and atleast wish them for the day. This will help you gain confidence and make your as well as their day. Neither you nor them lose right.
6. Have self confidence.You know that you're written format is good. So don't be scared of faltering somewhere. And if you'd listen carefully to many of the people who speak fluent English with lots of confidence, you'd be able to make out mistakes in their language.
In simple terms all i wish to say is - We all make mistakes but that don't mean we stop doing the thing. Failure is not the actual failure but not trying is definetly a failure...
Also refer to following thread that have same/similar issues and there are ample of solutions which you can try for yourself -
https://www.citehr.com/446692-good-w...s-but-not.html
<link no longer exists - removed>
https://www.citehr.com/117196-presen...unication.html
https://www.citehr.com/284792-how-i-...unication.html
https://www.citehr.com/118064-how-im...ls.html#641155
Don't worry have a little confidence. Hope it helped. :)
All the best. :)