1. A method of generating a machine readable formant based codebook, the method comprising: detecting one or more formants in a voice sample, wherein each formant is characterized by a respective spectral location and a respective amplitude value; generating a candidate codebook tuple for the voice sample, wherein the candidate codebook tuple includes a formant spectrum value and one or more formant amplitude values, wherein the formant spectrum value is indicative of the spectral location of each of the one or more detected formants, and the one or more formant amplitude values are indicative of the corresponding amplitudes of the one or more detected formants; and selectively adding at least a portion of the candidate codebook tuple to the codebook based at least on whether any portion of the candidate codebook tuple matches a corresponding portion of an existing codebook tuple.