A computing device, comprising: a processing unit; memory; and one or more microphones; the computing device configured with a voice-controlled digital personal assistant to perform operations for discovering capabilities of a plurality of third-party voice-enabled applications, wherein the plurality of third-party voice-enabled applications are applications that are locally installed on the computing device or that are remotely available to the computing device, wherein capabilities of the applications have been registered with the voice-controlled digital personal assistant using a data structure, the operations comprising: receiving, via the one or more microphones, a digital voice input generated by a user; calling a remote service to perform natural language processing using the digital voice input to determine a user voice request, wherein the user voice request is a request for one or more available third-party voice-enabled applications that are capable of performing a task; identifying one or more third-party voice-enabled applications of the plurality of third-party voice-enabled applications that are capable of performing the task using voice input, wherein the one or more third-party voice-enabled applications are identified using the data structure that defines, for each of at least some of the plurality of third-party voice-enabled applications, (i) tasks supported by the third-party voice-enabled application using voice input (ii) voice commands supported by the third-party voice-enabled application and (iii) variations of the voice commands that a user could speak in order to perform the voice commands supported by the third-party voice-enabled application; providing a response to the user voice request, said response identifying the one or more third-party voice-enabled applications that are capable of performing the task; and receiving a user-initiated request to practice one or more voice commands for performing one or more tasks supported by a specific third-party voice-enabled application of the one or more third-party voice-enabled applications; receiving a voice command spoken by the user for initiating a particular task supported by the specific a-party voice-enabled application; determining if the voice command spoken by the user would activate the particular task; and providing a report to the user whether the voice command spoken by the user would have been successful in performing the particular task. a processing unit; memory; and one or more microphones; the computing device configured with a voice-controlled digital personal assistant to perform operations for discovering capabilities of a plurality of third-party voice-enabled applications, wherein the plurality of third-party voice-enabled applications are applications that are locally installed on the computing device or that are remotely available to the computing device, wherein capabilities of the applications have been registered with the voice-controlled digital personal assistant using a data structure, receiving, via the one or more microphones, a digital voice input generated by a user; calling a remote service to perform natural language processing using the digital voice input to determine a user voice request, wherein the user voice request is a request for one or more available third-party voice-enabled applications that are capable of performing a task; identifying one or more third-party voice-enabled applications of the plurality of third-party voice-enabled applications that are capable of performing the task using voice input, wherein the one or more third-party voice-enabled applications are identified using the data structure that defines, for each of at least some of the plurality of third-party voice-enabled applications, (i) tasks supported by the third-party voice-enabled application using voice input (ii) voice commands supported by the third-party voice-enabled application and (iii) variations of the voice commands that a user could speak in order to perform the voice commands supported by the third-party voice-enabled application; providing a response to the user voice request, said response identifying the one or more third-party voice-enabled applications that are capable of performing the task; and receiving a user-initiated request to practice one or more voice commands for performing one or more tasks supported by a specific third-party voice-enabled application of the one or more third-party voice-enabled applications; receiving a voice command spoken by the user for initiating a particular task supported by the specific a-party voice-enabled application; determining if the voice command spoken by the user would activate the particular task; and providing a report to the user whether the voice command spoken by the user would have been successful in performing the particular task.