Language immersion is my suggestion. If you can understand for the most part when people talk, then an immersion environment will help you improve dramatically. By immersion, I mean an environment where you can't use your native tongue. When you are immersed in an language, that is all you hear and speak. You are forced to use English - even very brokenly - and you can't fall back to your native tongue at any time.
A substitute to 'full immersion' and not leaving your own country, is searching for classroom tuition that is 100% English and speaking any other language isn't tolerated at the school.
The best option is to go to an English speaking country for a holiday and enrol in an immersion English language course. If you can do it for a month+ you will see a vast improvement. But even a few weeks is good.