12. A computer software product that includes a non-transitory medium readable by a processor, the medium having stored thereon a set of instructions for testing memorization, the instructions comprising: (a) a first sequence of instructions which, when executed by the processor, causes the processor to record a database in computer readable memory, the database including a set of digital data representing a text of a written work to be memorized by a user; (b) a second sequence of instructions which, when executed by the processor, causes the processor to select at least a portion of the text of the set of digital data stored in the database for testing; (c) a third sequence of instructions which, when executed by the processor, causes the processor to divide the portion into individual words; (d) a fourth sequence of instructions which, when executed by the processor, causes the processor to receive audio input from the user; (e) a fifth sequence of instructions which, when executed by the processor, causes the processor to convert the audio input from the user into textual data representing a sequence of spoken words; (f) a sixth sequence of instructions which, when executed by the processor, causes the processor to compare the textual data representing one word in the sequence of spoken words with a corresponding word of the portion stored in the database; (g) a seventh sequence of instructions which, when executed by the processor, causes the processor to instantly display a visual representation of the spoken word if the spoken word matches the corresponding word of the portion stored in the database; and (h) an eighth sequence of instructions which, when executed by the processor, causes the processor to delay display of the visual representation of the spoken word if the spoken word does not match the corresponding word of the portion stored in the database, and further recording an error indicator in the computer readable memory corresponding to the word.
12. A computer software product that includes a non-transitory medium readable by a processor, the medium having stored thereon a set of instructions for testing memorization, the instructions comprising: (a) a first sequence of instructions which, when executed by the processor, causes the processor to record a database in computer readable memory, the database including a set of digital data representing a text of a written work to be memorized by a user; (b) a second sequence of instructions which, when executed by the processor, causes the processor to select at least a portion of the text of the set of digital data stored in the database for testing; (c) a third sequence of instructions which, when executed by the processor, causes the processor to divide the portion into individual words; (d) a fourth sequence of instructions which, when executed by the processor, causes the processor to receive audio input from the user; (e) a fifth sequence of instructions which, when executed by the processor, causes the processor to convert the audio input from the user into textual data representing a sequence of spoken words; (f) a sixth sequence of instructions which, when executed by the processor, causes the processor to compare the textual data representing one word in the sequence of spoken words with a corresponding word of the portion stored in the database; (g) a seventh sequence of instructions which, when executed by the processor, causes the processor to instantly display a visual representation of the spoken word if the spoken word matches the corresponding word of the portion stored in the database; and (h) an eighth sequence of instructions which, when executed by the processor, causes the processor to delay display of the visual representation of the spoken word if the spoken word does not match the corresponding word of the portion stored in the database, and further recording an error indicator in the computer readable memory corresponding to the word. 13. The computer software product as recited in claim 12 , further comprising a ninth sequence of instructions which, when executed by the processor, causes the processor to generate a report indicating the error.