开源llama.cpp Releases·原文 2026年10月23日

llama.cpp b11828修改实时API:按已提交音频解码完成度触发完成信号

该版本把实时API的“完成”触发条件从流是否暂时无数据,改为按已提交音频对应的行号是否全部解码来决定;发布说明称旧做法会让后续追加的音频混入已提交条目。

llama.cpp发布b11828版本,其server组件的实时API改为在“已提交音频对应的行全部解码完成”之后才发送complete,替代此前以流暂时无数据来判断完成的计时做法。相关改动对应PR #30994,发布说明标注共同作者为Pascal。

完成信号不再依赖“流跑空”

发布说明描述旧逻辑的问题:完成由stream runs dry触发,而这是一个计时代理。由此产生的三种情况是:尾部排空期间追加的音频会泄漏进已提交条目;排空前的最后一次提交会把两个条目合并;连续提交会塌缩成一个。

新逻辑在刷新音频时记录结束行号,并按行号顺序完成提交。

  • mtmd_audio_stream_flush() 记录本次刷新音频结束处的行数,接口为mtmd_audio_stream_get_n_rows_flushed;同时对照当前已产出的行数mtmd_audio_stream_get_n_rows。
  • slot维护一个由这些结束行组成的FIFO。
  • 每个提交要等到它结束行之前的所有行都解码完毕才被完成。

同批发布的平台构建

发布页面同时列出b11828的多平台预编译产物,覆盖macOS、iOS、Linux、Android和Windows,并包含CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL以及Snapdragon的CPU/Adreno GPU/Hexagon NPU等变体。发布说明中标注为DISABLED的项目包括macOS Apple Silicon的KleidiAI版本与openEuler构建。

信息来源

llama.cpp Releases原始来源