# Optional final transcript silence ## Deliberate vendored divergence Decision date: 2026-08-14. Upstream SphinxTrain requires the filler-dictionary HMMs represented by `` and `` on every utterance path. Pstrain deliberately diverges: `training.optional_final_silence` defaults to `true`, permitting the final boundary silence HMM to consume zero frames. Initial silence remains mandatory. The option is declared in the versioned configuration schema; setting it to `false` reproduces upstream's mandatory initial and final boundary behavior exactly. The reason for the divergence is training contamination. A recording without boundary silence otherwise contributes speech frames to `SIL` merely to meet the HMM's minimum duration. Those posteriors are accumulated into the silence model on every Baum-Welch pass. ## Graph ownership The forced aligner's `align_build_sent_hmm()` separately adds mandatory start and finish words. A separately gated bypass prototype was observed to make every one of the 1,132 measured SLT alignments fail. That observation was the removal criterion; the failure mechanism was not diagnosed, so the graph is deliberately unchanged. This divergence belongs only to the training state sequence, where posterior accumulation creates the contamination being corrected. With the option enabled, both single-pronunciation and multipron training use the owned graph builder. The graph retains the initial and final `SIL` HMMs and adds direct arcs from the last spoken HMM exits to the existing final non-emitting sentence exit. The ordinary arcs through final `SIL` remain available. The added final alternative consumes zero frames; initial and interior silence behavior is unchanged. The graph has exactly one frame-zero emitting entry, so `forward.c` and `backward.c` retain their upstream single-initial-state preconditions. The bypass is a probabilistic alternative, not an unnormalized free path. Each last-spoken exit splits half of its outgoing mass across its retained successors and assigns half to the direct final-exit bypass. The retained and bypass alternatives therefore total one, matching the graph builder's normalized fan-out convention. ## What mandatory final silence can measure The forced-aligner topology also limits what alignment-derived trailing-silence durations can establish. A successful path through a topology ending in a mandatory three-state `SIL` must traverse that model, so every aligned utterance is assigned a positive final-`SIL` duration. Exact zero is outside the instrument's support: widening the beam cannot produce a value that the topology forbids. Consequently, these alignments cannot measure the prevalence of utterances with no trailing silence or provide that population as a stratifier. The observed shape is still useful, within that limitation. Pstrain's native forced aligner, `pstrain_align_mfcc`, aligned 1,092 of the 1,132 CMU Arctic SLT utterances at the shipped `1e-64` beam and another 6 only at `1e-120`, a beam 56 orders of magnitude wider. The remaining 34 did not align at either beam; they are an observed class, not zero-duration observations, so the duration distribution has a conditional denominator of 1,098. Of those 1,098 alignments, 344 (31.33%) assigned final `SIL` exactly 3 frames, the minimum permitted by its three emitting states. The median was 5 frames, the nearest-rank 90th percentile was 11, and the range was 3 to 22. At 10 ms per frame, this is a 30 ms floor, a 50 ms median, and a 220 ms maximum. The pileup at the model-imposed floor is consistent with the aligner absorbing the boundary into mandatory silence for a population with little or no real trailing silence, but it does not count that population. These measurements characterize pstrain's forced aligner, not PocketSphinx's two-pass Viterbi alignment in `state_align_search.c`. No arm of the PocketSphinx PR #468 experiment was built or run, so they provide no evidence for or against that change. They are also distinct from the separately gated forced-aligner bypass prototype described above, which produced no successful duration observations. A reproduction that selects utterances with no trailing silence therefore needs an independent criterion, such as a signal-level detector, hand annotation, or a corpus with boundary labels. An energy-based detector over this corpus produced a wildly different population from the alignment; substituting either for the other would change what the experiment tests. ## Scope This divergence is decode-affecting within BW's training alignment: its utterance graph now permits the last spoken HMM as its exit, which the upstream graph does not. It changes the frames eligible for `SIL` accumulation. It does not manufacture, generate, score, or exclude frames and does not change dither, scoring, evaluation, beams, or any other default.