Возможно, вам вот указали sphinx, читайте про него. Есть версия для джавы (sphinx4), есть — для C (poketsphinx).
Но.
Дело в том, что сама схема распознавания речи основана на скрытых марковских моделях (HMM).
Вот так работает sphinx: вначале происходит обработка звука (фильтрация, получение кепстра), потом из этого кепстра извлекаются особенности (features) — в итоге имеем поток, если не ошибаюсь, 13-мерных feature vectors с частотой 100 Гц. Вот векторы этого потока соотносятся с конкретными звуками — либо там будет переходный процесс, связанный с согласным, либо — много похожих векторов подряд — тянущийся гласный звук.
Проблема тут в том, что этот поток очень грязный в смысле качества информации. Что там за особенности извлекли — одному Дану Журафски известно. Поток указанный обычно потом направляется в HMM, которая знает именно слова, в смысле — какие звуки обычно идут за какими и т. д., и на основании этих знаний предполагает, что на самом деле должно было получиться на выходе (что «имелось ввиду»). Я плохо представляю себе, как можно что-то делать без фильтрации с HMM.