Learning English is much like learning to drive. Put in the hours at the wheel and you will be able to drive.
Think about driving for a second
Someone knows the theory perfectly. They have memorised everything. But they have only driven for an hour or two. How could that person possibly be a competent driver?
English is no different. You can be excellent at grammar and vocabulary, but if you never get the chance to talk, you will not be able to talk.
Do the arithmetic
Think back to the English classes you have taken, at school or at a centre. In a ninety-minute lesson, how much did you actually speak?
And by speaking I do not mean reading out a question and then reading out an answer. That is reading, not communicating.
At best, about fifteen minutes per lesson, during the part where the teacher announces it is time for speaking practice.
Fifteen minutes a lesson, two lessons a week, comes to two hours a month of speaking English.
Compare that with learning to drive
In Vietnam, before you can sit the driving test you must complete the required distance, around a thousand kilometres. At an average of fifty kilometres an hour, that is at least twenty hours behind the wheel.
Speaking English works the same way. Put in roughly twenty hours of real conversation and you will find you can communicate, with the basic skills to handle yourself.
At two hours a month, that takes you ten months. The problem is not that you are bad at this. The problem is that the hours of practice are nowhere near what the task requires.