Speak and say both mean to express thoughts, opinions, emotions etc orally. The main difference is in the structure used. The direct object of 'say' is usually the actual words spoken whether in a) direct speech = He said, ''good morning'' or b) indirect speech = He said he was happy.
The direct object of speak is usually the general context of what he said. 'He spoke about his years in India.' He spoke words of wisdom. But 'speak' is most often intransitive. 'They have been speaking for a long time.' 'Speak' doesn't focus on the actual words. 'Say' does.