To be able to speak you need
- to develop your vocabulary
- to have a good enough grasp of grammar to be able to put meaningful sentences together (don't worry about them being perfect)
- a clear pronunciation (accent isn't important)
- an understanding about the topic on which you are talking (which can be very different in different cultures)
Sometimes people have a great receptive vocabulary (they recognise and understand the words when they see them) but aren't able to use them in conversation. Your brain needs to develop enough neuron connections between the concept that you want to communicate and the vocab and grammar that you need to use to express that conept.
People often make the mistake of learning language by translating. If you learn with translations then your brain is much slower as you will go from the concept, to the English and then to the fragmented French. You need to learn french vocabulary in contextualised sentences and then you need to practise summarising and elaborating upon the subject that you were reading about or listening to. If you often review vocabulary by making your brain practise the process of finding and putting together suitable language to communicate on a subject you will gradually become more fluent.
So the real question is, what is your main weakness? Vocab, Grammar, Pronunciation or Topic?
A teacher can't exactly 'teach' you how to speak. They have to give you suitable situations that provide opportunities for you to build your vocab and grammar into workable sentences and then they need to be able to correct you and answer questions when appropriate.
There is so much more to say on this subject but those are a few of the basics!