From f1f2d8120161521f28aaec6134ad08f17947c399 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Mon, 29 Dec 2025 01:53:07 +0800 Subject: [PATCH] update add asr config --- assistant/src/module/assistant/config/index.ts | 7 ++++++- assistant/src/services/asr/qwen-asr.ts | 15 ++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/assistant/src/module/assistant/config/index.ts b/assistant/src/module/assistant/config/index.ts index 2bcd813..5775103 100644 --- a/assistant/src/module/assistant/config/index.ts +++ b/assistant/src/module/assistant/config/index.ts @@ -130,7 +130,7 @@ export type AssistantConfigData = { */ home?: string; /** - * 启用本地AI代理 + * 启用AI代理 */ ai?: { enabled?: boolean; @@ -138,6 +138,11 @@ export type AssistantConfigData = { apiKey?: string; model?: string; }; + /** 阿里云的语音识别服务,模型 qwen3-asr-flash-realtime */ + asr?: { + enabled?: boolean; + token?: string; + } /** * 自定义脚本, asst 启动时会执行这些脚本 */ diff --git a/assistant/src/services/asr/qwen-asr.ts b/assistant/src/services/asr/qwen-asr.ts index 1408793..c4bd12b 100644 --- a/assistant/src/services/asr/qwen-asr.ts +++ b/assistant/src/services/asr/qwen-asr.ts @@ -2,6 +2,7 @@ import { QwenAsrRelatime } from "@kevisual/video-tools/src/asr/index.ts"; import { Listener, WebSocketListenerFun, WebSocketReq } from "@kevisual/router"; import { lightHA } from "@/routes/ha-api/ha.ts"; +import { assistantConfig } from "@/app.ts"; const func: WebSocketListenerFun = async (req: WebSocketReq<{ asr: QwenAsrRelatime, msgId: string, startTime?: number }>, res) => { const { ws, emitter, id, data } = req; @@ -13,7 +14,19 @@ const func: WebSocketListenerFun = async (req: WebSocketReq<{ asr: QwenAsrRelati return; } if (!asr) { - const token = process.env.BAILIAN_API_KEY || '' + const confg = assistantConfig.getConfig(); + const asrConfig = confg?.asr; + if (!asrConfig?.enabled) { + ws.send(JSON.stringify({ type: 'error', message: 'asr服务未启用' })); + ws.close(); + return; + } + const token = asrConfig?.token; + if (!token) { + ws.send(JSON.stringify({ type: 'error', message: 'asr服务未配置token' })); + ws.close(); + return; + } // 第一次请求 asr = new QwenAsrRelatime({ token,