The Pleco app contains this information. It was actually confusing me for a while, but the //'s in the pinyin indicate verb separability. Pleco includes some free dictionaries, but it also allows you to download others for a price. I'm not sure if the verb-separation indications are tied to any particular dictionary.
What I can tell you is that this kind of structure is to express emphasis.
'她惊讶得说不出话来' has the same meaning as '她惊讶得话都说不出来'.
But the latter uses the inverted pattern, which is always used as for emphasis.
'说话' and '出来' in this kind of situation do not overlap. What's more, '出来' stresses the act of speaking.
It may be translated as 'I even can't work ...
说话 = say(v) + words(n)
The combination of 说话, was made into a single verb for "to speak/ to talk"
When we want to express "can't speak" we can treat "说话" as a single word "speak" and write 不能(can't) 说话 (speak);
We can also treat 说 as verb, 话 as noun. In this case [说不出] is a [verb (say)+ potential particle(can't) + result ...