Lo que buscas está rompiendo tecnología de punta. Las herramientas como cmusphinx pueden detectar palabras de un diccionario dedicado y limitado (para que pueda enseñarle a comprender, digamos, 15 palabras y eso es todo; no puede enseñarle a comprender el inglés).
Básicamente, esas herramientas intentan encontrar patrones en las ondas de sonido que usted les da de comer. No entienden nada, solo usan el mismo algoritmo en cualquier cosa y luego tratan de encontrar la coincidencia más cercana. Esto funciona bien para juegos pequeños de palabras, pero a medida que aumenta el número de palabras, la diferencia entre ellos se reduce y los trabajos se vuelven cada vez más difíciles (sin siquiera comenzar con palabras como "clima" o "C" y ver).
Lo que podría considerar es el software "repetir después de mí". Aquí, debe registrar todas las palabras para la prueba como plantillas. Luego puede registrar las palabras de los alumnos y luego calcular la diferencia. Si la diferencia no es demasiado grande, la palabra es correcta. Pero de nuevo: esta es una repetición simple para mejorar la pronunciación, no en inglés.
Hay software de escritorio que puede comprender mucho inglés (por ejemplo, los productos de Nuance, siendo Dragon Naturally Speaking uno de los más destacados). Ofrecen soluciones de servidor, pero ese software no es gratuito o barato si tiene un presupuesto ajustado.
Solo para decirte, lo que estás tratando de lograr no es trivial, y probablemente no haya una solución que te otorgue una conversión del 100% ... al revés (text2speech) es mucho más fácil. Es posible que desee buscar en las aplicaciones/libs de terceros que lo hacen, no necesariamente en Java, y luego simplemente integrarse con ellas. – Marcelo