Well, when a person talks, this is called:
WhoTalkSo::AddId(%this,%id)
When a player stops talking, this is called:
WhoTalkSo::RemoveId(%this,%id)
Since i'm not entirely sure how to get names from the IDs (never needed to), you can probably package each of those functions and use chatWhosTalkingText.getValue(); to do some things.