1. A method for processing a speech signal, comprising: using a memory, coupled to a processor, to receive an input speech signal; using the processor to construct a phoneme lattice for the input speech signal; determining vertices and arc parameters of the phoneme lattice for the input speech signal; searching the phoneme lattice to produce a likelihood score for each potential path; and determining a processing result for the input speech signal based on the likelihood score of each potential path; wherein constructing the phoneme lattice includes: segmenting an input speech signal into frames, extracting acoustic features for a frame of the input speech signal, determining K-best initial phoneme paths leading to the frame based on a first score of each potential phoneme path leading to the frame, and calculating a second score for each of the K-best phoneme paths for the frame; wherein searching the phoneme lattice comprises: receiving a phoneme lattice; traversing the phoneme lattice via potential paths; computing a score for a traversed path based on at least one of a phoneme confusion matrix and a plurality of language models; and modifying the score for the traversed path by allowing repetition of phonemes and allowing flexible endpoints for phonemes in a path such that at least one of a first arc that ends at a first frame and a second arc that starts at a third frame is extended so that the first arc and the second arc are directly connected at a second frame.