They could mean almost the same as Michael mentioned and be often interchanged .
In other context they are not interchangeable as for example :
He speaks German very well .
You can't in that sense interchange it with 'talk' as in 'he talks German very well "
'Talk' being informal is more about conversing with someone ,exchanging ideas etc.. ,while 'speak' is relatively more concise as in expressing a message .
To know exactly which to choose among both is as well a matter of usage . The more you practice you will know automatically which one is more appropriate to use in a certain context .