语音转写(STT)
wesgine 内置可选的语音转写适配器,基于 Whisper 实现语音到文本的转换。
启用方式
通过 CellSpec.STT 声明启用:
spec := wesgine.CellSpec{
STT: &wesgine.STTConfig{
// Whisper 配置
},
}
CellSpec.STT 非 nil 即启用。
实现位置
adapter/stt/ 目录:
- 语音转写 Whisper 处理
- 故意脱离 ctx(转写要活过请求)
- 必须设
SysProcAttr建进程组
进程安全
STT 适配器是 INV-EXEC-PROC-01 的三个豁免文件之一:
- 不使用
proc.Command(需脱离 ctx 生命周期) - 必须自行设置
SysProcAttr建进程组 - ffmpeg 子孙必须是后台任务而非孤儿
使用场景
| 场景 | 说明 |
|---|---|
| IM 渠道语音消息 | 企业微信/飞书语音转文字 |
| 桌面应用语音输入 | 用户语音 → 文字 → Agent |
| 会议记录 | 音频文件批量转写 |
与其他适配器关系
| 适配器 | 输入 | 输出 |
|---|---|---|
| STT | 音频 | 文字(消息) |
| Channel | 文字消息 | Agent 处理 |
| 邮件正文 | Agent 处理 |
STT 输出的文字可以作为 Channel 或 Chat 的输入,形成完整的语音交互链路。