feat: 添加豆包 ASR 热词功能支持

- 在 config.yaml 中添加 hotwords 配置项,支持本地管理热词列表
- 实现热词解析、格式化和表名生成工具(internal/asr/hotwords.go)
- 在 ASR 连接建立时自动将热词发送给豆包(boosting_table_name 参数)
- 支持热词权重配置(1-10,默认 4),格式:"词|权重" 或 "词"
- 支持配置热重载,修改热词后新连接自动生效
- 为未来动态热词功能预留扩展接口

热词格式示例:
  hotwords:
    - 张三|8
    - VoicePaste|10
    - 人工智能|6
This commit is contained in:
2026-03-02 00:55:37 +08:00
parent b87fead2fd
commit 96d685fdf2
8 changed files with 152 additions and 11 deletions

View File

@@ -133,6 +133,11 @@ func (h *Handler) handleStart(s *session) {
if s.active {
return
}
// Future extension: support runtime dynamic hotwords (Phase 2)
// if len(msg.Hotwords) > 0 {
// // Priority: runtime hotwords > config.yaml hotwords
// // Need to modify asrFactory signature to pass msg.Hotwords
// }
s.previewMu.Lock()
s.previewText = ""
s.previewMu.Unlock()

View File

@@ -17,6 +17,8 @@ const (
type ClientMsg struct {
Type MsgType `json:"type"`
Text string `json:"text,omitempty"` // Only for "paste"
// Future extension: dynamic hotwords (Phase 2)
// Hotwords []string `json:"hotwords,omitempty"`
}
// ── Server → Client messages ──