What about using a different language to teach Duke. You could call on either with their perspective language without creating confusion.
That's what I was going to suggest. Duke is a German dog, so give him his commands in German.
Or just use different commands for him. Of course, single syllabic commands are easiest/best, especially when you have two dogs. This way, the commands are clearer; avoid having 'smudge' and 'sludge' as separate commands, as they sound too similar.
Special note: if you do use different languages for the commands, you may not always be able to use the proper words. For example, 'come' in German is 'kommen,' which can sound a lot alike. Instead, just pick a fun different word.
I started re-training my current pup (non-gsd) with commands that aren't so obvious. Since I take him to a nice dog park virtually every single day (rain makes the place extremely muddy; he plays at home then), every person is saying 'come,' 'sit,' 'heel,' 'stop,' etc.. As a result, he'll hear a lot of commands that he can then ignore. I don't want my pup hearing ignore-able commands. As a result, I'm currently teaching him words/commands that aren't commonly heard at the park. For example, one of his "come" commands is 'target,' in which he is to come to me AND touch his nose to my two fingers (essentially a 'peace sign,' but with my index and middle fingers touching), thus creating his "target."
It may seem strange to others that your dog sits when you say 'tomato,' but better training is the important thing!