"You do plan to have... metamancers... on your... metamancer tour, right?"
=D
There are a couple of metascript tools that could help, depending on how you want to proceed. For instance, Fetch has a formation to get information from the tokens in the tracker. You'd probably be interested only in the current-turn's token, so retrieving that token's name (for instance) would look like:
@(tracker.token_name)
Keith mentioned a script that changes your "Speaking As..." value. That script uses the character ID. So you could use a Fetch formation to get the character ID from the current turn:
@(tracker.character_id)
You could have a single ability macro (which I, personally, would put in my button bar) that would fire the script using that formation:
!switch @(tracker.character_id)
The way Fetch constructions work, if there wasn't a character id associated with the token, that would return blank, and the macro would revert to you (the player/gm). You could have another ability macro that simply reset the Speaking As -- not using a fetch construction at all.
Extended Application
If you have a bunch of mooks pulling from the same sheet, you might find that the "Speaking As" differentiation isn't enough... if you have 10 goblins attacking, it doesn't help to differentiate them by calling them all "Goblin". In that case, you could have the tokens individually named, and pull the current turn's token's name like this:
@(tracker.token_name)
You can really quickly rename a bunch of tokens using SelectManager and TokenMod... select the tokens and run:
!forselected token-mod --set name|MookNameHere{&i}
If you swapped out "MookNameHere" with "Goblin", you could have Goblin0, Goblin1, Goblin2, etc. Having individually named tokens could get around the differentiation problem... but it would change your workflow. Instead of changing your Speaking As value, you'd just reference the current token's name (as shown above).