In my application, the user needs to listen to a transcript of a conversation while taking notes. But the user ALSO needs to be able to indicate in some way when the speaker changes.

I have the note taking interface built. Basically, keeping her hands on the keyboard, the user listens and whenever a note is needed, she hits a hotkey to create a new note and place the keyboard focus there, and she can just type the note.

Now I need an interface to allow her to record when the speaker changes. The speakers are known in advance, so all the user has to do is pick one. There will be at most a handful of speakers, certainly not more than 9.

My best idea so far is to number the speakers 1 - 9 and establish a hotkey like Ctrl+N to assign the current speaker as speaker N.

But my concern is that the number is arbitrary and people will have trouble remembering the assignment between number and speaker, especially if the number of speakers is on the high side, like 6 or 7 people.

Is there a better way to do this that I'm missing?

  • You say it's transcribing a conversation - does that mean the current speaker is changing very often? (i.e. Speaker A says a sentence, Speaker B says 'yes', back to Speaker A...?) or is it more like a structured talk - speaker A will say their part then pass over to Speaker B to continue?
    – JonW
    Jan 17, 2019 at 16:09
  • It's actually a legal transcript, so it's an attorney asking a question, and the person answering. But the question could be long and the answer just "Yes". Or the question could be short and the answer long. But, yes, it's structured in that at any time, the conversation mostly switches between those two people. But at any time someone else could jump in, such as the occasional objection from another lawyer. Jan 17, 2019 at 16:18
  • Does the action only need to indicate a change of speaker, or does it also have to indicate who it changed TO? Can those be separate actions? Also, is a standard keyboard the only hardware commonly available? Jan 17, 2019 at 20:24
  • The goal is to identify who is speaking throughout, so we need to indicate who it changed TO. It'd be simplest to stick to a standard keyboard, but I'm open to creative gadgetry here. Jan 17, 2019 at 21:37

2 Answers 2


You are right about remembering the assignment between numbers and speakers. If people which can speak in conversation are already known, I would like to use their names, or in this case their designation, e.g. defender's lawyer. We can create a shortcut for every designation e.g. dl for defender's lawyer, j for judge, etc.

I would like to use letters instead of ctrl+number shortcut because in a fast conversation, it is much easier to use letters instead of moving my hand all the way to Ctrl and number. We can use a mode selection similar to vi editor, like press Esc to choose a shortcut, and as soon as shortcut matches to any available options, next character will be written to a new note for that speaker.

Then I would like a top bar displaying a shortcut and speaker it is assigned to, similar to how contacts appear in Android phones (initials as shortcut and name as designation).

By using designations, shortcuts can be more standard, I can use df for defender at anytime and might not need the top bar displaying shortcuts after some time.

Make sure that shortcuts do not clash.

  • This is a good idea, but remember that the users are taking notes at the same time as the speaker switch. So without a Ctrl+ type of modifier, I don't see how to tell the difference between the speaker identification keystrokes and the note taking keystrokes. Jan 21, 2019 at 15:06
  • @JoshuaFrank I already mentioned it. We can use modes like vi editor. At the start you are in speaker selection mode. Then you two keys, df, one after other. As soon as these two keys match a shortcut in predefined list of shortcuts, that speaker (e.g. defender in this case) is selected, and mode changes to note mode. Any key pressed after these two keys will be added to note as normal text. Then, to go back to speaker selection mode, press Esc. Now you can type another shortcut to select another speaker.
    – user118858
    Jan 23, 2019 at 14:39
  • @JoshuaFrank If the idea of vi editor seems complex, you can go ahead with how commands are selected in sublime or VS code. E.g. Press Ctrl+Shift+P, a small box opens up, you type df in the box, and defender is selected from autocomplete. Press Enter to confirm it and new note opens up for that speaker to write notes. This might be a better option as many people use VS code, this shortcut is much easier to learn plus it provides a richer visual interface. While it might seem to be a little longer process than previous one, but it works very well.
    – user118858
    Jan 23, 2019 at 14:46
  • This is a very helpful line of thinking. I am pondering your idea. Thanks! Jan 23, 2019 at 15:03

If the user is creating "notes" and the notes need to be assigned to a person, creating the note and assigning it to a person should be the same action. They shouldn't be separate keys or key combinations. Use one enter-key combination to create a new note and assign a speaker in one action.

Hitting ctrl+enter, for example, would open a simple "new note" dialog with a list of speakers and subsequent ctrl+enter presses scrolls through the list selecting the speaker. Hitting enter with no control creates that new note under the highlighted speaker.

You could use ctrl+alt+enter to re-open the speaker dialog on the current note.

This design keeps creating a new note and changing the speaker as easy and simple as possible. The enter key is naturally for new paragraphs already. An alternative enter is a natural match.

The list of speakers should be sortable in smart ways. It can sort itself to try to get the next speaker to the top of the list.

  • The notes are just capturing what's going on, including in the middle of one bit of speech. And the transition between speakers doesn't necessarily get noted. So they're independent actions. The speakers aren't necessarily sequential, so how would you know who the next speaker should be? Jan 17, 2019 at 21:41
  • Yes, this is a tool that combines independent actions. There should be standard ways to do everything. It's like a macro. It sounds like you're talking about only a few people that are discussing or interviewing. Simply sorting by the last people to speak would probably be all that's needed. If the last person that spoke before the current is at the top of the list, the user can hit cntrl+enter without even looking because they know who's selected. Simply hitting cntrl+enter again selects the next person in the list.
    – moot
    Jan 17, 2019 at 23:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.