Phonemes are a basic unit of speech. English has 40+ phonemes and sequences of them form syllables and words. Each phoneme is modeled by a Hidden Markov Model, an HMM. These models were popular in earlier generation speech recognition startups.
Speech is sampled and gets encoded into an audio format, like mu-law. That is then divided into a sequence of overlapping speech frames, each holding 25ms of speech data.

Features are derived from the frequencies in a speech sound frame and saved as a feature vector. This is feature extraction.
A feature vector is an input into HMMs. An HMM is a finite state machine that emits probabilities for its inputs. It answers the question of how likely a feature vector could be in a given state of an HMM. HMMs learn probability distributions and transition probabilities during training.
p(feature vector 1 | start state of hmm1) = 0.05
p(feature vector 1 | start state of hmm2) = 0.04
As a feature vector is consumed by HMMs, multiple paths are considered and after state transition each path is scored. Lower scoring paths get discarded and the best paths remain. Paths form sequences of phonemes, and those map to words.
Here is a classic example of phonetically similar phrases in speech reco:
System: Did you say “Wreck a nice beach” ?
User: Nope
System: Did you say “Recognize speech” ?
User: Yes!