语音输入(ASR)
让通千算智听懂你说话:麦克风、语音消息与引擎配置
控制台麦克风
网页控制台输入框右侧的麦克风按钮走 POST /api/voice/asr:
浏览器用 MediaRecorder 录音 → 上传 → 后端调用识别引擎 → 把文字填回输入框。
三项必须配齐,否则按钮点了没反应:
json
{
"speech_recognition": true,
"voice_to_text": "ali",
"ali_voice_api_key": "<你的语音服务 Key>"
}注意
必须是 HTTPS。浏览器只在安全上下文(HTTPS 或 localhost)下允许访问麦克风,
用 http://公网IP:端口 打开页面时浏览器会直接拒绝授权。
自建部署请看公网访问加固里的 HTTPS 配置。
语音消息(微信等通道)
在微信等通道里,用户直接发语音消息也能识别,流程是:
代码
收到语音 → 下载音频(微信的 silk 格式需转码)→ 调用识别引擎 → 当作用户输入配置项:
| 配置 | 说明 |
|---|---|
speech_recognition |
单聊语音消息是否识别 |
group_speech_recognition |
群聊里是否识别(群里噪音多,默认关闭) |
引擎怎么选
引擎(voice_to_text) |
适合场景 | 备注 |
|---|---|---|
ali(阿里云) |
中文普通话、国内部署 | 中文识别效果好,与合成同厂商时 Key 可复用 |
openai |
多语种、英文 | 需能访问 OpenAI |
baidu / xunfei |
国内传统方案 | 需要各自的 AppID/Key 组合 |
azure / google |
海外/多语种 | 需配置区域 |
选型建议:中文为主选 ali,多语种选 openai/azure。
不要在识别引擎上省钱——识别错一个字,后面整段推理都偏了。
常见故障排查
| 现象 | 排查方向 |
|---|---|
| 点麦克风没反应/没权限提示 | 是否 HTTPS;浏览器麦克风权限是否被拒;系统输入设备是否可用 |
| 上传后一直转圈 | 识别引擎 Key 未配或无效;后端到引擎的网络是否通 |
| 识别出来是空白 | 音频太短/太吵;编码格式不被引擎接受 |
| 微信里发语音没反应 | speech_recognition 是否为 true;音频转码依赖是否装齐 |
| 群聊里不识别 | 这是设计如此,需显式开启 group_speech_recognition |
隐私说明
语音会上传到你配置的识别服务商。如果业务上不允许把语音发到第三方,请选择:
- 本地部署的离线识别(自建
custom链路,或使用支持私有化的服务商); - 关闭语音输入,仅使用文字。