Hassan, there's nothing much wrong with your written English, but that said, speaking is a different ballgame altogether.
I had learned German off and on for about three decades from books, tapes and later with apps, not to mention a couple of trips to Germany. I could still barely speak until I found my German exchange partner. We spoke fairly regularly for over 18 months. Initially I could barely say a couple of words but in a couple of months my spoken fluency improved remarkably. Now I'm forgetting some of it because I'm out of practice again.
The same was the case with Spanish. I learned for over a year but still couldn't speak anything. Then I started taking conversation classes here and also found my steady exchange partner. I can now express most common things in Spanish, but I still have problems with grammatically correct expressions and vocabulary, especially for complex topics.
On the plus side I have no hesitation in speaking whatever comes to my mind, whether right or wrong. I am neither shy nor worried about being laughed at, and I have never met anyone who laughed at me for trying. I have also never met anyone who did not understand me, despite my limited vocabulary and imperfect grammar. Worst come worst, I can always default to a few English sentences or gestures.
It is simple. You have to speak in order to be able to speak. It's a skill that only comes with practice, and it goes without saying that your initial experience will be like me. How best you can do it and with whom, depends on you and your specific circumstances. One thing is sure, though. The more you practice and the more mistakes your are willing to make, the better it gets. There are no exceptions to this.