llama.cpp b12238增加OpenAI兼容 /v1/audio/speech语音接口
llama.cpp发布b12238构建,其server新增与OpenAI API兼容的 /v1/audio/speech端点,并补充端到端pytest;同时统一WAV与PCM的s16舍入方式,让 /tts与 /v1/audio/speech共用同一套请求体解析。
llama.cpp发布b12238构建。根据发布说明,server新增了与OpenAI API兼容的 /v1/audio/speech端点(PR #31763),并加入对应的端到端pytest测试。
同一PR调整了TTS音频处理的舍入与解析方式:WAV写入器与pcm_f32_to_s16原本一个截断、一个舍入,导致WAV与PCM相差 1 个最低有效位,现在两者都舍入。pcm_f32_to_s16改为接收指针和数量,直接转换TTS字节,省去中间拷贝。
/tts与 /v1/audio/speech现在都用parse_tts_body解析请求体,因此speed等multipart字段会先获得类型,再进入语音转换检查。
本次改动的范围
发布说明把改动归在server的OpenAI兼容接口下,核心是新增 /v1/audio/speech路径,并为其补充端到端pytest。
音频辅助部分同步修正了WAV与PCM的取整差异,两者此前相差 1 个最低有效位;同时精简了pcm_f32_to_s16的转换路径。
发布说明没有给出该端点的延迟、并发或音质数据,也未说明它覆盖OpenAI语音接口的哪些参数。
- 新增端点:/v1/audio/speech(OpenAI兼容)
- 测试:新增端到端pytest
- 修复:WAV写入与pcm_f32_to_s16统一为舍入,消除 1 LSB偏差
- 实现:pcm_f32_to_s16改为指针加数量,转换TTS字节不再中间拷贝
- 解析:/tts与 /v1/audio/speech共用parse_tts_body,multipart字段如speed先定类型
构建产物
b12238发布页列出了面向macOS、iOS、Linux、Android和Windows的预编译包,覆盖CPU、Vulkan、CUDA 12.8/13.5、ROCm 10.0、OpenVINO 2026.4.1、SYCL等后端,另有UI包。
发布页同时标注macOS Apple Silicon的KleidiAI版本与openEuler相关构建为DISABLED。
- macOS:Apple Silicon arm64、Intel x64;iOS XCFramework
- Linux:Ubuntu x64/arm64 CPU、s390x、Vulkan、CUDA 12.8、CUDA 13.5、ROCm 10.0、OpenVINO、SYCL FP32/FP16,以及Snapdragon的CPU/Adreno GPU/Hexagon NPU包
- Windows:x64/arm64 CPU、OpenCL Adreno、CUDA 12.4与 13.5、Vulkan、OpenVINO、SYCL、ROCm 10.0
- Android:arm64 CPU与Snapdragon三后端包
- DISABLED:macOS KleidiAI版本、openEuler构建