### 提交前确认 / Before submitting - [x] 我已经搜索过现有 Issue,确认这不是重复问题。 - [x] 我已经移除日志、截图和配置中的密钥及隐私信息。 ### Operit 版本 / Operit version 1.12.2 ### 运行形态 / Distribution Release APK ### 设备与运行环境 / Environment 设备模型:IQOO Z8 安卓版本13 ### 问题领域 / Area Model or provider / 模型或服务商 ### 主要问题描述 / Main problem description 在“AI模型配置”中无法正常配置和调用硅基流动asr模型,解决方法是聊天框上传音频文件之后直接给硅基流动key和要求调用的指定模型。 ### 复现步骤 / Steps to reproduce 模型与参数设置中选择厂商硅基流动,api端点配置为https://api.siliconflow.cn/v1/audio/transcriptions,key正常。勾选了模型支持音频解析,选用一个或多个asr模型点击测试稳定报错“聊天”和“音频”API请求失败,状态码400,错误信息空白。 ### 复现频率 / Reproducibility Always / 每次发生 ### 相关配置 / Related context 无 ### 截图或录屏 / Screenshot or recording <img width="1076" height="672" alt="Image" src="https://github.com/user-attachments/assets/9204855c-fe93-457a-9812-87231ff7c4fc" /> <img width="1080" height="2388" alt="Image" src="https://github.com/user-attachments/assets/0c16d8d0-8665-4e1a-8369-5bef2a0d8e5c" /> ### 日志或错误信息 / Logs or error output 无
Activity
yoruuuchan commentedon Oct 23, 2026
认领。已核对现有工作,避免重复:搜索了仓库内与
1382、audio/transcriptions、siliconflow、ASR相关的 Issue/PR,未发现对应 PR,Issue 目前也没有评论或 assignee。初步定位(附证据):
POST /v1/audio/transcriptions是专用语音转写接口,请求必须是multipart/form-data,官方 OpenAPI 只定义file与model两个字段,模型为FunAudioLLM/SenseVoiceSmall、TeleAI/TeleSpeechASR,响应为{"text":"..."}:https://docs.siliconflow.com/en/api-reference/audio/create-audio-transcriptionsOpenAIProvider.sendMessage(),即向配置的端点 POSTapplication/json的 chat/completions 请求体。把端点填成/v1/audio/transcriptions后,JSON 请求打到只接受 multipart 的转写接口,因此稳定 400;错误体为空时界面就只显示状态码 400。/v1/chat/completions调用;“模型支持音频解析”只适用于原生支持input_audio的聊天模型,不适用于 ASR 端点。计划修复:
test/1.mp3发起真实的 multipart 转写请求并按转写文本判定,不再用聊天 JSON 请求误测;AUDIO_RECOGNITION)使用转写端点时,真实请求同样走 multipart 转写客户端;file+model,不发送对方 schema 未定义的字段),其他服务商行为保持不变;完成后会提交 PR 到
dev并关联Fixes #1382。yoruuuchan commentedon Oct 23, 2026
已提交修复 PR:#1406 (目标分支
dev,Fixes #1382)。问题结论(复述)
POST /v1/audio/transcriptions是专用语音转写接口:请求必须是multipart/form-data,官方 OpenAPI 只声明file与model,响应为{"text": "..."}(官方文档)。FunAudioLLM/SenseVoiceSmall、TeleAI/TeleSpeechASR)不是聊天模型,不能用/v1/chat/completions调用。enableDirectAudioProcessing)只对原生支持input_audiocontent part 的聊天模型有意义;硅基流动聊天接口的 schema 里没有input_audio。修复内容
AudioTranscriptionProtocol/AudioTranscriptionClient:端点判定、multipart 构造(file+model)、{"text": ...}解析、错误体归一(硅基流动{"code":...,"message":...}与 OpenAI{"error":{"message":...}})。/v1/chat/completions,转写请在语音服务配置”;AUDIO 项改用test/1.mp3发起真实 multipart 转写并按文本判定。analyzeAudioWithIntent)同样按端点类型走转写客户端。OpenAISttProvider:硅基流动只发送file、model,其他 OpenAI 兼容服务保持language(可选)与response_format=json。正确用法
https://api.siliconflow.cn/v1/audio/transcriptions,模型填FunAudioLLM/SenseVoiceSmall或TeleAI/TeleSpeechASR。https://api.siliconflow.cn/v1/chat/completions,并选择真正的聊天模型(如Qwen/Qwen2.5-72B-Instruct等)。/audio/transcriptions填进「AI模型配置」的聊天端点,也不要对硅基流动 ASR 模型勾选「模型支持音频解析」。验证
.\gradlew.bat :app:compileDebugKotlin:BUILD SUCCESSFUL.\gradlew.bat :app:testDebugUnitTest --tests "...AudioTranscriptionProtocolTest":12 项全部通过check_localizations.py/check_markdown_links.py/git diff --check:无新增问题计划文档:
docs/TODO/issue-1382-siliconflow-asr/。