When I explain these words to my Japanese students, I usually say something along the lines of this.
The verb "tell" requires a listener. This listener may or may not be mentioned in the sentence, but there has to be a listener, otherwise you would use "say"
Bob told (Sally) a story.
The listener, Sally, does not need to be mentioned for this sentence to be correct.
The verb "say" does not require a listener. It is merely indicating that words came out of someone's mouth in a verbal way.
Bob said, "Hello."
No mention of a listener. One isn't necessary for this to be correct.
The verb "speak" is usually reserved for communication. A listener does not need to be mentioned anywhere, but one is assumed in most cases
because it is used for communication.
Speak is also used for languages, as in, I speak Japanese.
Speak is sometimes used to focus on the actual enunciation of the words being communicated, or the way they are being communicated.
He spoke clearly and succinctly.
I've been teaching conversational English in Japan for 14 years. I am not a trained or certified ESL teacher, nor am I a linguist. This is just my quick and dirty explanation for interested non-native speakers.
If anyone disagrees or has a better explanation, I would be happy to hear it. Anything that I can do to help my students improve their English makes me a happy camper.
