Disambiguation is a great way of getting clarification from a user about an uncertain intent. There are three levels of disambiguation we can consider when designing a voice interaction.
Complete uncertainty. This is where our system has no clue what the user wants. We can address this either with repeating the question and stating our uncertainty or to try to rephrase the question. We can probably do this two times before the user wants to unplug us and smash us against a wall.
Partial uncertainty. This is where we understand at least partially the intent but are missing some variables. For example, if you ask for a song but don’t say the song title, artist or genre. Or you ask to be reminded of something and don’t speak the time. Responses to partial uncertainty should be specific and ask for the missing information. Alternatively, the system can acknowledge what information it did receive and ask the user to provide more detail. Tread lightly — this can also quickly get annoying.
Verification. With this type of scenario, we state how we understood the request and ask for confirmation that this is indeed what the user intended before proceeding to execute the request. This is sometimes helpful when sending messages to contacts or making purchases.
We could also say that there’s a fourth category — certainty — where we just execute the command. In that case, there’s no need for disambiguation but we can add the ability for the user to cancel the request.