AISpot

llama.cpp 新增即時語音轉寫 API

llama.cpp releases版本更新地端推論開源開發工具

llama.cpp 的 server 加入 Realtime transcription API,可按 GA Realtime 規範提供基於 WebSocket 的即時語音轉寫會話,會話物件採用 type transcription,輸入格式、轉寫模型、輪次檢測與降噪放在 audio.input 下。API key 中介軟體現在會在 WebSocket 握手階段鑑權,支援 Bearer、原始 key 與 X-Api-Key,401 在升級前返回;

llama.cpp 的服務端首次提供即時轉寫介面,並一併修正即時會話與批處理排程的衝突,對用 llama.cpp 自建語音轉寫服務的開發者最直接。

原標題:b11780
閱讀原文

評分75 / 76(平均 75,門檻 60)
狀態精選

全文翻譯

server: 新增即時轉寫 API ( #30636 ) server: 新增即時轉寫 API - 移除 transcription_sessions - 代理 ws - 新增文件 server: 讓 API 金鑰中介軟體保護 websocket httplib 在 websocket 升級之前執行預路由處理器,因此 API 金鑰中介軟體會在握手時像任何其他路由一樣返回 401。這覆蓋了 router 代理,其子級以無金鑰方式執行,並接受與 HTTP 相同的金鑰形式(Bearer、原始金鑰、X-Api-Key)。 server: 將即時槽位排除在 prompt 迴圈之外 一個等待音訊的即時槽位處於 GENERATING 狀態,卻沒有任何內容可解碼,因此它落入了 prompt 迴圈並佔用了 slot_batched。隨後,較高槽位上的請求在任務型別上未通過 can_batch_with,並在整個會話期間一直得不到排程。即時槽位沒有 prompt:迴圈會一次性設定好它們,並始終讓它們保持原樣。 server: 在即時槽位就緒後啟動即時會話 音訊流是在 prompt 迴圈中建立的,而該迴圈會跳過無法與正在生成的槽位批處理的槽位,並且 session.created 在任務發布之前就發出了:早期的追加失敗,讀取器退出,導致套接字保持開啟,槽位一直被佔用,直到 HTTP 超時。該槽位現在在啟動時設定其流,並用 begin 結果發出訊號,session.created 等待它,而停止的讀取器會關閉套接字,因此會話也隨之結束。 server: 在 input_audio_buffer.committed 中命名已提交項 根據 Realtime 規範,item_id 是由已提交音訊生成的項,而 previous_item_id 是在其之前提交的項,對於第一個則為 null。committed 現在會在完成該項的 transcript 之前出現,並且二者都在同一把鎖下隨 item 切換一起發出,因此 delta 無法落在它們之間。 server: 使用 GA 轉寫會話結構 會話物件遵循 GA Realtime schema:type 為 transcription,其中輸入格式、轉寫模型、輪次檢測和降噪位於 audio.input 下。rate 保持為模型取樣率,也就是客戶端目前必須採用的。 Co-authored-by: Pascal [email protected] 網站: https://llama.app 證明: https://github.com/ggml-org/llama.cpp/attestations/58060985 macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI enabled) DISABLED - macOS Intel (x64) - iOS XCFramework Linux: - Ubuntu x64 (CPU) - Ubuntu arm64 (CPU) - Ubuntu s390x (CPU) - Ubuntu x64 (Vulkan) - Ubuntu arm64 (Vulkan) - Ubuntu x64 (CUDA 12) - CUDA 12.8 庫 - Ubuntu x64 (CUDA 13) - CUDA 13.4 庫 - Ubuntu arm64 (CUDA 13) - CUDA 13.4 庫 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - 設定指南 Android: - Android arm64 (CPU) - Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - 設定指南 Windows: - Windows x64 (CPU) - Windows arm64 (CPU) - Windows arm64 (OpenCL Adreno) - Windows x64 (CUDA 12) - CUDA 12.4 DLLs - Windows x64 (CUDA 13) - CUDA 13.4 DLLs - Windows arm64 (CUDA 13) - CUDA 13.4 DLLs - Windows x64 (Vulkan) - Windows arm64 (Vulkan) - Windows x64 (OpenVINO) - Windows x64 (SYCL) - Windows x64 (ROCm 10.0) openEuler: - 已停用 - openEuler x86 (310p) - openEuler x86 (910b, ACL Graph) - openEuler aarch64 (310p) - openEuler aarch64 (910b, ACL Graph) UI: - UI

由 AI 翻譯,以原文為準。

原文
server: add realtime transcription API ( #30636 ) server: add realtime transcription API drop transcription_sessions proxy ws add docs server: let the API key middleware guard the websocket httplib runs the pre-routing handler before the websocket upgrade, so the API key middleware answers 401 at handshake like any other route. This covers the router proxy, whose children run keyless, and accepts the same key forms as HTTP (Bearer, raw key, X-Api-Key). server: keep realtime slots out of the prompt loop A realtime slot waiting for audio is GENERATING with nothing to decode, so it fell through the prompt loop and took slot_batched. A request on a higher slot then failed can_batch_with on the task type and starved for the whole session. Realtime slots have no prompt: the loop sets them up once and always leaves them. server: start the realtime session once its slot is live The audio stream was created in the prompt loop, which skips a slot that cannot batch with the one generating, and session.created went out before the task was posted: early appends failed and the reader quit, leaving the socket open and the slot held until the HTTP timeout. The slot now sets up its stream at launch and signals it with the begin result, session.created waits for it, and a reader that stops closes the socket so the session ends with it. server: name the committed item in input_audio_buffer.committed Per the Realtime spec, item_id is the item made from the committed audio and previous_item_id the one committed before it, null for the first. committed now comes before the transcript that completes that item, and both go out with the item switch under one lock, so a delta cannot land between them. server: use the GA transcription session shape The session object follows the GA Realtime schema: type transcription, with the input format, transcription model, turn detection and noise reduction under audio.input. The rate stays the model sample rate, which is what the client must send for now. Co-authored-by: Pascal [email protected] Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/58060985 macOS/iOS: macOS Apple Silicon (arm64) macOS Apple Silicon (arm64, KleidiAI enabled) DISABLED macOS Intel (x64) iOS XCFramework Linux: Ubuntu x64 (CPU) Ubuntu arm64 (CPU) Ubuntu s390x (CPU) Ubuntu x64 (Vulkan) Ubuntu arm64 (Vulkan) Ubuntu x64 (CUDA 12) - CUDA 12.8 libraries Ubuntu x64 (CUDA 13) - CUDA 13.4 libraries Ubuntu arm64 (CUDA 13) - CUDA 13.4 libraries Ubuntu x64 (ROCm 10.0) Ubuntu x64 (OpenVINO) Ubuntu x64 (SYCL FP32) Ubuntu x64 (SYCL FP16) Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide Android: Android arm64 (CPU) Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide Windows: Windows x64 (CPU) Windows arm64 (CPU) Windows arm64 (OpenCL Adreno) Windows x64 (CUDA 12) - CUDA 12.4 DLLs Windows x64 (CUDA 13) - CUDA 13.4 DLLs Windows arm64 (CUDA 13) - CUDA 13.4 DLLs Windows x64 (Vulkan) Windows arm64 (Vulkan) Windows x64 (OpenVINO) Windows x64 (SYCL) Windows x64 (ROCm 10.0) openEuler: DISABLED openEuler x86 (310p) openEuler x86 (910b, ACL Graph) openEuler aarch64 (310p) openEuler aarch64 (910b, ACL Graph) UI: UI

相關報導

X @ggerganovAI 評分42

llama.cpp v0.7.0 發布,llama serve 新增懶載入與推測解碼

llama.cpp 發布 v0.7.0,作者給出的範例命令是 llama serve -hf ggml-org/Qwen3.8-Flash-Next-GGUF:IQ4_NL --spec-type draft-mtp --lazy-mode on。命令通過 -hf 指定 Hugging Face 上的 Qwen3.8-Flash-Next GGUF 倉庫及 IQ4_NL 量化,並同時開啟 --lazy-mode 懶載入與 --spec-type draft-mtp 推測解碼。

llama.cpp releasesAI 評分46

llama.cpp 新增 LiquidAI d1-omni-600M 決策模型

llama.cpp 建置 b11488 新增 LiquidAI/d1-omni-600M 決策模型支援,服務端可通過 images 與 input_audio 直接接收音訊輸入,模型與多模態輸入打通。同時決策型別 d1omni 更名為 lfm2-d1-omni,images 成為 files 的別名,無記憶的 lfm2 被限定為非因果模式,CUDA 後端保留 conformer 的 GLU sigmoid。四筆改動均標註由 Claude Opus 5.5 協助完成;

llama.cpp releasesAI 評分25

llama.cpp 伺服器新增 /v1/systemone API,支援 laya、julia-1 等模型

llama.cpp 的 server 元件新增了 /v1/systemone API,支援 laya、julia-1、lev、openjev、kev 五個模型。該 PR 包含模型轉換、服務端程式碼、共享提示字首、視覺支援,並新增 openjev tiny 模型用於測試。建置覆蓋 macOS、Linux、Windows、Android 等平台,但明確不支援 date_facts。