Realtime: committed-utterance WAV written with fixed 16 kHz header breaks 24 kHz client commits (empty STT -> input_not_committed -> total silence)
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- go
- Domain
- audio-video-rtc
Research direction
Read commitUtteranceWithTranscript and writeUtteranceWAV, including both call sites described in the issue. Check how the WAV header rate relates to session.InputSampleRate; done means 24 kHz client-committed audio is written with a 24 kHz header and transcribes correctly.
Written by the indexing model from the issue text.
Description
Bug
In the OpenAI-Realtime pipeline, the client-commit path writes the committed
utterance to a temp WAV with a fixed 16 kHz header
(laudio.NewWAVHeader(uint32(len(utt))) in commitUtteranceWithTranscript,
and writeUtteranceWAV), while the input buffer holds audio at the
session input sample rate (e.g. 24 kHz for OpenAI-Realtime clients —
session.update audio.input.format.rate = 24000).
The file-based transcription backend then decodes 24 kHz PCM data with a
16 kHz header (1.5x speed/pitch), degrading transcription to garbage or
empty output. An empty transcript fails the follow-up response with
input_not_committed → total silence after the greeting (no reply at
all, recovery phrases not triggered either).
Reproduction
- Start a realtime session with
audio.input.format.rate = 24000and
turn_detection: null(client-driven commits). - Stream ~2 s of speech, send
input_audio_buffer.commit. - The committed WAV (temp file
realtime-audio-chunk-*.wav) carries a
16 kHz header; the transcription of 24 kHz content at 16 kHz is garbage
or empty →response.donefailedinput_not_committed.
Offline proof: identical audio transcribes cleanly with a 24 kHz header and
produces empty output with a 16 kHz header.
Fix
writeUtteranceWAV takes the sample rate; both call sites pass
session.InputSampleRate via the existing laudio.NewWAVHeaderWithRate
(PR follows).
Impact
Every client-commit session with an input rate other than 16 kHz
(WebRTC sessions resample to 16 kHz and are not affected).
- Dominant language
- Go
- Stars
- 49.5k
- Forks
- 4.5k
- Avg merge
- 20h 46m
- Merged PRs (30d)
- 371
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from mudler/LocalAI
-
Realtime: ASR EOU language tags leak into the LLM conversation (unintended reply-language switching)Possibly taken @nexxtmobile claimed this 4 days ago. Openarea/api bug unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Open Responses API doesn't accept "output_text" as an input ItemPossibly taken @localai-org-maint-bot claimed this 23 days ago. Openbug unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
mudler/LocalAI#12337 · 1 comment ·
Maintainers usually reply within 1 day
-
Gallery model audio-cpp-sortformer-diarization fails to install: SHA mismatch, reproducible across retriesMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
mudler/LocalAI#11995 · 1 comment ·
Maintainers usually reply within 1 day
-
Agent pool Postgres DSN is logged in cleartext, including the password, while the auth DSN is redactedPossibly taken @localai-org-maint-bot claimed this 39 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
mudler/LocalAI#11991 · 1 comment ·
Maintainers usually reply within 1 day
-
fish-speech: make compile:true usable on Blackwell sm_121 by honouring the CUDA toolkit's ptxasMay be free again A pull request for this issue was closed without being merged. Openenhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
mudler/LocalAI#11348 · 1 comment ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 60/100
-
✨ Propose the missing gate after three same-class findings instead of filing a fourthPossibly taken @hivecommons-hive claimed this today. Openenhancement help wanted hive/claimed-by-scanner stage/040-covered-by-pr
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
hivecommons/hive#13428 · 3 comments · 1 reaction ·
Maintainers usually reply within 1 day
-
🕷️ bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
sysadminsmedia/homebox#1805 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100