1. A method for determining whether a user has correctly read a target sentence string, comprising: receiving a sentence array including component words of the target sentence string; using a computing device, processing the sentence array to generate a symbolic representation of the target sentence string, the symbolic representation including a subset of words selected from the component words of the target sentence string, the subset of words having fewer words than the sentence array; receiving user speech input; using the computing device, processing the user speech input to recognize in the user speech input each of the words in the subset of words in the symbolic representation of the target sentence string, the subset of words including a first word of the target sentence string, an intermediate word of the target sentence string, and a last word of the target sentence string, wherein the intermediate word is a random intermediate word randomly chosen from a plurality of intermediate words of the target sentence string; and upon recognizing the subset of words in the symbolic representation of the target sentence string, making a determination whether the user has correctly read the target sentence string.