pkg/audio/asr/README.zh.md
这个目录负责 PicoClaw 的语音转文字能力。
如果你是第一次配置 ASR,可以参考如下步骤:
model_list 里添加一个或多个支持 ASR 的模型条目。voice.model_name 指向你想使用的那个条目。.security.yml 里配置对应的 API Key。对于大多数新用户,建议先从下面两种开始:
| 提供商 | 示例模型 | 推荐理由 |
|---|---|---|
| Groq | groq/whisper-large-v3-turbo | Whisper 风格转录速度快,并且提供 OpenAI 兼容接口,配置比较直接。Groq 目前官方提供2000请求每日的免费套餐。 |
| ElevenLabs | elevenlabs/scribe_v1 | 上手简单,语音转文字质量也不错。ElevenLabs 目前官方免费套餐包含 STT 用量。 |
价格和免费额度可能会变化,正式使用前请以官网定价页为准。
PicoClaw 不会把 ASR 的 API Key 放在 voice 配置里。
推荐的方式是:
voice.model_name 用来选择 model_list 里的某个命名模型。model_list 条目描述真实的提供商和模型。.security.yml 负责保存该模型条目的 API Key。这种方式更明确、更安全,也和 PicoClaw 其他模型配置方式保持一致。
config.json
{
"voice": {
"model_name": "groq-asr",
"echo_transcription": true
},
"model_list": [
{
"model_name": "groq-asr",
"model": "groq/whisper-large-v3-turbo"
}
]
}
.security.yml
model_list:
groq-asr:
api_keys:
- "gsk_your_groq_key"
说明:
api_base,PicoClaw 会自动使用 Groq 默认接口地址。api_base,下面两种写法都可以:
https://api.groq.com/openai/v1https://api.groq.com/openai/v1/audio/transcriptionswhisper 的模型,都可以走 Whisper 转录路径,不仅限于 whisper-large-v3-turbo。config.json
{
"voice": {
"model_name": "elevenlabs-asr",
"echo_transcription": true
},
"model_list": [
{
"model_name": "elevenlabs-asr",
"model": "elevenlabs/scribe_v1"
}
]
}
.security.yml
model_list:
elevenlabs-asr:
api_keys:
- "sk-elevenlabs-your-key"
config.json
{
"voice": {
"model_name": "openai-asr"
},
"model_list": [
{
"model_name": "openai-asr",
"model": "openai/whisper-1"
}
]
}
.security.yml
model_list:
openai-asr:
api_keys:
- "sk-openai-your-key"
PicoClaw 目前主要支持三种 ASR 路径:
| 路径 | 示例模型 | 行为说明 |
|---|---|---|
| ElevenLabs ASR | elevenlabs/scribe_v1 | 使用 ElevenLabs 的语音转录接口。 |
| Whisper 接口模型 | openai/whisper-1、groq/whisper-large-v3 | 使用 OpenAI 兼容的 /audio/transcriptions 接口。 |
| 支持音频的聊天模型 (重构中) | openai/gpt-4o-audio-preview、gemini/gemini-2.5-flash | 把音频发给多模态聊天模型,并要求它返回转录结果。 |
如果你不确定该选哪种,建议优先使用 Groq Whisper 或 ElevenLabs。
DetectTranscriber 会按下面顺序选择 ASR:
voice.model_name 在 model_list 中找到对应模型。elevenlabs/...,则使用 ElevenLabs transcriber。AudioModelTranscriber。voice.model_name,PicoClaw 会为了兼容旧配置,扫描 model_list 中可自动识别的 ASR 条目。回退扫描只是为了兼容旧行为。新配置建议始终显式设置 voice.model_name。
model_list 里定义了 ASR 模型,但忘了设置 voice.model_name。voice,而不是 .security.yml。api_base,导致请求打到错误的接口地址。在测试语音输入前,请确认:
voice.model_name 能正确匹配某个 model_list[].model_name。.security.yml 中对应条目已经配置了有效 API Key。