I think one of the biggest obstacles in speaking is overcoming the fear of saying something wrong, or not being understood. At least that was the case for me. Once you get over that fear and get a more "I don't give a crap" attitude towards if what you're saying is correct, and instead just say it, you've come a long way and it will help you improve.
Simple version of what I'm trying to convey:
Try to not be afraid to say something wrong, just speak your mind. Don't worry about grammar when you speak. It will come naturally after a while.
Personally I learnt most my spoken English through co-operative computer games and speaking to other players over ventrilo / mumble or in-game voice comms. The fear of saying something wrong or being misunderstood was minimized in this online setting, sitting safely at home but still communicating with real people.