seapkは必ずしも相手を必要とせず、話すこと自体にフォーカスしている
speakは相手との会話というより、話すという行為自体のことを表しています。声を発する、言語を話すというイメージです。言語や言葉を話す場合はspeakが使えるでしょう。話すこと自体にフォーカスしているので、話す内容はspeakの後に基本的には来ません。話す内容を付け加えるにはaboutを続けます。誰かに話すときはtoを続けます。
また、speakは少し堅いイメージがあるので、友達と話すというより、公式な話しというイメージが連想できます。
名詞がspeechなので、そこからも一方的に公式な場で話すようなイメージが連想できます。
sayは必ずしも相手を必要とせず、話す内容にフォーカスしている
sayは相手を必要とはしない点ではspeakと同じですが、sayは話す内容にフォーカスしています。なのでsayのあとは基本的にはthat節などで話す内容が続きます。また、sayは人が何かを言うとき以外にも使われることがあって、手紙やメール、何かの掲示板などに書かれている(=言っている)と考え、人以外にもsayを使うこともあります。
talkは相手を必要とし、話すこと自体にフォーカスしている
talkは日常的な会話の意味合いが強くやりとりできる相手が必要です。なので話し相手がいることが基本です。speakと違って、気軽な話しや打ち合わせなどのイメージがあり、親しさもあるのがtalkです。友達、親しい同僚、兄弟などと話すときはtalkがよいでしょう。また、speakのように一方的に話すようなイメージはなく、お互いがワイワイしているようなイメージがあります。
speakと同じで話すこと自体にフォーカスしているので、話す内容を付け加えたい場合は、aboutなどの前置詞が必要です。
tellは相手を必要とし、内容にフォーカスしている
tellは何かを伝えるという意味があり、伝えるための相手が必要となります。tellは伝える行為よりも伝える内容にフォーカスしていて、that節などで話す内容などが続くことがあります。伝えるイメージなので、話し手の考えや意見がまとまっています。
それぞれの英単語にちょっとした違いはありますが、あまり深く考えなくても通じるので、混乱して会話が止まるぐらいなら思いついた英単語を言ってしまっても問題ないことも多いです。