Linear-interpolation resampler for streaming Float32 audio. Stateful across
process() calls so chunk boundaries don't introduce phase discontinuities:
the last input sample and a fractional read position are carried over.
Linear interpolation is good enough for ASR ingest — the downstream
StreamingTranscriber band-limits at the target rate anyway, and a polyphase
filter would be overkill in the AudioWorklet hot path. If a customer needs
higher quality they can supply their own VadDetector + bypass the encoder.
Linear-interpolation resampler for streaming Float32 audio. Stateful across
process()calls so chunk boundaries don't introduce phase discontinuities: the last input sample and a fractional read position are carried over.Linear interpolation is good enough for ASR ingest — the downstream StreamingTranscriber band-limits at the target rate anyway, and a polyphase filter would be overkill in the AudioWorklet hot path. If a customer needs higher quality they can supply their own VadDetector + bypass the encoder.