(This post comes as a response to a question on HTLAL, where someone asked for the best websites to teach him how to actually speak Hindi, although he already had excellent passive understanding of Hindi. I had a very similar experience with German where I could understand, but not speak. In this case, searching for a website that will give you magical knowledge is not what you need. Here’s my response: )
You might be better with something like Lang-8, where you attempt to write something and get it corrected. Also, reading more books would help you develop a better sense of intuition about the language (but won’t help you directly with actual speaking).
In my experience, if someone can already understand the language, but not speak it, the problem is just lack of speaking / writing practice. It feels really hard at first, but you have to try to come up with things to say, and when you don’t know how it would work, just come up with an approximation and then ask someone who knows. When you find out, then you know for next time. The process of just trying to talk a few times per week can have impressive results in a short amount of time, if you already have an in-depth understanding of the language passively.
Activation of that knowledge happens when you put some pressure on yourself to come up with something. You could be talking to yourself when nobody’s around, or you could be in a cafe trying to chat with someone. Sometimes it also helps to read something out loud, and try to act it out like you mean it, or imagine yourself saying that in some situation.
Even with languages that have widespread instruction amongst English speakers, such as German and French, there are very few, if any, web sites that are going to be able to just explain something to you in a theoretical sense and then suddenly allow you to be able to speak better. My feeling is that when you understand but can’t speak, it’s just a matter of speaking practice.
Online, try writing a blog, writing a diary, whatever, and have people on Lang-8 correct you. Think about the things you want to be able to say, and when you can’t figure out how to say it then write it down in a notebook, and then you can ask someone later. Practice saying helpful phrases. This is the stuff that has helped me with activation.
Try to concentrate on simple everyday tasks. Describe in simple terms what you did that day. If you can’t, you may have to look up some of the common words. Then try again. Describe what you did as you walked through a store…which items did you pick up, were you hungry, etc. Talk about what you want to do tomorrow. Once you’ve worked hard on describing the basics like this, then try moving to logical connectives. Try to explain the reason you did something, or explain some concept that you like to talk about.
All of these things are handy to know in all sorts of situations, and you have to deliberately practice them in order to get good at them. Get awesome at the fundamentals through practice, and then the harder things will just fall down easily with a little more effort.