I would use speak when referring to a language, i.e. "I speak English," "Do you speak Spanish?"

"Talk" seems maybe slightly more informal, like "We need to talk." "Let's talk about pets." But when someone is giving a speech or a lecture they are usually considered to be "speaking" or a "speaker." Subtle differences and in some cases interchangeable.