I wouldn't use any of them.
First of all, when I would always use "speak" when describing how someone is verbally using a language.
To me, "talking" strictly means, "having a conversation." For example:
Let me talk with you.
We were talking for hours.
Did you talk to her?
In the above examples, I could use "speak" interchangeable with any of the "talks", but it doesn't sound as natural.
Let me speak with you. (sounds pretty natural)
We were speaking for hours. (doesn't sound too natural)
Did you speak to her? (sounds somewhat natural)
If I'm describing how someone verbally uses a language, I always use speak:
He spoke with an accent.
He speaks very well.
Using "talk" instead sounds very unnatural, and also low class!
He talks with an accent. (not very natural)
He talks very well. (not natural)
In your examples, I would say, "I heard them speaking with a Scotch dialect."