TDT beam search fails above ~40-90s of audio: "zero-duration expansion did not reduce score" (greedy on the same audio is fine)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 58/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- cpp
- Lĩnh vực
- audio-video-rtc
Hướng nghiên cứu
Tái hiện lỗi thông qua parakeet_capi_transcribe_pcm_nbest_json bằng trường hợp PCM đơn kênh 16 kHz được cung cấp, sau đó so sánh với các entry point greedy và âm thanh bị cắt ngắn. Truy vết đường đi TDT beam-search xung quanh bất biến được báo cáo “zero-duration expansion did not reduce score” và hành vi của mô hình tdt-0.6b-v3. Công việc được xem là hoàn tất khi việc giải mã N-best cho đầu vào dài không còn bị hủy, trong khi hành vi hiện có với đầu vào greedy và ngắn hơn vẫn được giữ nguyên.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
parakeet_capi_transcribe_pcm_nbest_json aborts on longer inputs with
tdt_beam_search: zero-duration expansion did not reduce score
while greedy decoding of the same audio with the same model succeeds. It reads like an internal invariant that long inputs violate, rather than a bad-input case.
Environment
- parakeet.cpp v0.5.0, released
lib-macos-metal-arm64bundle (ABI 6) - macOS arm64, Metal backend
- Model:
mudler/parakeet-cpp-gguf→tdt-0.6b-v3-q4_k.gguf - Audio: 16 kHz mono float PCM, AMI meeting recordings (~100s each)
What fails
22 of 23 AMI clips (~100s each) fail. One succeeded, and only at beam 4.
It is not a beam-width interaction — beam 1 fails identically to beam 8:
beam_size=1 FAIL beam_size=2 FAIL beam_size=4 FAIL beam_size=8 FAIL
What succeeds on the identical audio
parakeet_capi_transcribe_pcm(greedy) — 242 words, no errorparakeet_capi_transcribe_pcm_batch_json(greedy + timestamps) — 242 words, 242 word records- The same N-best call on the first 30s or 40s of that same file
So the encoder, the model and the audio are all fine; it is specific to the beam search path at length.
Threshold varies with content, not a fixed limit
Truncating each file to N seconds and decoding at beam 4:
| file | length | 30s | 40s | 50s | 60s | 70s | 80s | 90s |
|---|---|---|---|---|---|---|---|---|
| ES2004a_FEE013 | 100.6s | ok | ok | ok | fail | fail | fail | fail |
| EN2002c_MEE071 | 100.0s | ok | ok | ok | ok | ok | ok | fail |
| ES2004b_MEO015 | 105.7s | ok | ok | fail | fail | fail | fail | fail |
All three pass at 30s and 40s and fail before 100s, at different points — consistent with something accumulating over frames rather than a hard cap.
Possibly model-specific
The same 100.6s clip decodes fine at beam 2, 4 and 8 with tdt_ctc-1.1b-q4_k.gguf. Only tdt-0.6b-v3 failed here, so it may be an interaction between that checkpoint's duration predictions and the expansion check.
Minimal reproduction
# ctypes against libparakeet.dylib from the v0.5.0 release
ptr = lib.parakeet_capi_transcribe_pcm_nbest_json(
ctx, samples_p, len(samples), 16000, 4, 1, 1, None)
# ptr is NULL; parakeet_capi_last_error(ctx) reports the message above.
# Truncating `samples` to 40s makes the same call succeed.
Possibly related to #55 (error above 5 min), though the threshold here is far lower and the message differs.
Not blocking for us — we moved to transcribe_pcm_batch_json, which gives greedy output with per-word timestamps and no beam search. Reporting because the failure is silent-until-it-isn't for anyone relying on N-best over long audio.
- Ngôn ngữ chính
- C++
- Star
- 786
- Fork
- 93
- Merge trung bình
- 9 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của mudler/parakeet.cpp
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
mudler/parakeet.cpp#68 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
mudler/parakeet.cpp#62 ·
-
Real streaming from a micĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
mudler/parakeet.cpp#60 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
mudler/parakeet.cpp#59 · 3 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
mudler/parakeet.cpp#55 · 1 bình luận ·
Tất cả issue của mudler/parakeet.cpp
Issue tương tự
-
bug
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100
isl-org/Open3D#7585 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Unconfirmed bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
luanti-org/luanti#17605 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
area: config area: firmware priority: P2 - medium size: S type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Mizithra/ActiveTerrain#16 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
grumpycoders/pcsx-redux#2171 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 2 ngày