From 202960eb645478085dc57f57263ddade92e894b6 Mon Sep 17 00:00:00 2001 From: starmen1265 Date: Fri, 27 Feb 2026 15:36:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BB=9F=E4=B8=80=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E6=8A=80=E8=83=BD=E6=A8=A1=E5=9E=8B=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E4=B8=BA=20glm-5=EF=BC=8C=E8=A1=A5=E5=85=85=20OCR=20=E5=92=8C?= =?UTF-8?q?=20kb-funasr=20=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - kb-deep-analyzer: glm-4.7 → glm-5, gpt-4 → glm-5 - kb-workflow: 步骤5增加 OCR 和 kb-funasr 作为备用方案 - 统一命令使用 --type subtitle-download --- kb-deep-analyzer/SKILL.md | 2 +- kb-deep-analyzer/deep_analyzer.py | 4 ++-- kb-workflow/README.md | 2 +- kb-workflow/SKILL.md | 29 ++++++++++++++++++++++++++++- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/kb-deep-analyzer/SKILL.md b/kb-deep-analyzer/SKILL.md index 4cbf26c..f421c76 100644 --- a/kb-deep-analyzer/SKILL.md +++ b/kb-deep-analyzer/SKILL.md @@ -31,7 +31,7 @@ python deep_analyzer.py -m meta.json -c content.json -o out.md --provider zhipu ```bash export AI_API_KEY="your-api-key" export AI_PROVIDER="zhipu" # 或 openai, minimax -export AI_MODEL="glm-4.7" # 模型名称 +export AI_MODEL="glm-5" # 模型名称 export AI_BASE_URL="https://..." # 可选,自定义 API 地址 ``` diff --git a/kb-deep-analyzer/deep_analyzer.py b/kb-deep-analyzer/deep_analyzer.py index 205f378..057289a 100644 --- a/kb-deep-analyzer/deep_analyzer.py +++ b/kb-deep-analyzer/deep_analyzer.py @@ -39,7 +39,7 @@ class SimpleAIClient: def __init__(self, api_key: str = None, provider: str = None, model: str = None, base_url: str = None): self.api_key = api_key or os.environ.get("AI_API_KEY", "") self.provider = provider or os.environ.get("AI_PROVIDER", "") - self.model = model or os.environ.get("AI_MODEL", "gpt-4") + self.model = model or os.environ.get("AI_MODEL", "glm-5") self.base_url = base_url or os.environ.get("AI_BASE_URL", "") self.max_retries = 3 @@ -447,7 +447,7 @@ def main(): ai_client = SimpleAIClient( api_key=args.api_key or os.environ.get("AI_API_KEY", ""), provider=args.provider or os.environ.get("AI_PROVIDER", ""), - model=args.model or os.environ.get("AI_MODEL", "gpt-4"), + model=args.model or os.environ.get("AI_MODEL", "glm-5"), base_url=args.base_url or os.environ.get("AI_BASE_URL", "") ) analyzer = DeepAnalyzer(ai_client) diff --git a/kb-workflow/README.md b/kb-workflow/README.md index 14d720b..9fda761 100644 --- a/kb-workflow/README.md +++ b/kb-workflow/README.md @@ -236,7 +236,7 @@ python3 kb-link-parser/link-parser.py --url "https://www.bilibili.com/video/BVxx python3 kb-bilibili-metadata/bilibili_metadata.py --id "BVxxxxx" --type video # 3. 内容下载 -python3 kb-bilibili-content/bilibili_content.py --id "BVxxxxx" --type subtitle +python3 kb-bilibili-content/bilibili_content.py --id "BVxxxxx" --type subtitle-download # 4. 深度分析 python3 kb-deep-analyzer/deep_analyzer.py --metadata meta.json --content content.json --output analysis.md diff --git a/kb-workflow/SKILL.md b/kb-workflow/SKILL.md index b899b1b..260d97b 100644 --- a/kb-workflow/SKILL.md +++ b/kb-workflow/SKILL.md @@ -262,6 +262,31 @@ else fi ``` +**方式 C: kb-funasr(备用方案,Whisper 效果不佳时使用)** +```bash +# 当 Whisper 识别效果不好时,可尝试使用 FunAudioLLM 的 SenseVoice 模型 +# 支持中文、英文、粤语、日语、韩语等 +python3 /path/to/funasr_runner.py --input [video_path] --model sensevoice --output [content_dir] + +# 或使用 Paraformer 模型(更精准但稍慢) +python3 /path/to/funasr_runner.py --input [video_path] --model paraformer --output [content_dir] +``` + +**方式 D: OCR 识别(当语音识别困难时的替代方案)** +> ⚠️ **适用场景**:音频质量差、有背景音乐干扰、多种语言混合等情况,语音识别效果不佳时使用 OCR 作为补充或替代。 + +```bash +# 使用 kb-ocr-processor 进行视频 OCR 识别 +# 会截取视频帧并进行文字识别 +python3 /path/to/ocr_processor.py --input [video_path] --output [content_dir] +``` + +> 📌 **识别方式选择建议**: +> - **首选 Whisper**(通用性强) +> - **Whisper 效果不佳时**尝试 kb-funasr(中文支持更好) +> - **音频质量极差或多种语言混合**时考虑 OCR +> - **访谈/对话类视频**推荐使用带说话者分离的 Whisper + 3. 等待 Whisper 完成(定时汇报进度) 4. 解析输出 JSON: @@ -347,6 +372,8 @@ python3 kb_workflow.py --archive-file "[分析报告文件路径]" | 4 | kb-zhihu-content | `--id "xxx" --type video` | `{p}_{id}.mp4` | **知乎视频下载** | | 5 | kb-whisper | `--input xxx.mp4 --model base` | `{p}_{id}.json`, `{p}_{id}.txt` | 仅当没有官方字幕时执行 | | 5 | kb-whisper-diarization | `--input xxx.mp4 --model base --diarize` | `{p}_{id}_diarized.json` | 带说话者分离(需 HF_TOKEN) | +| 5 | kb-funasr | `--input xxx.mp4 --model sensevoice` | `{p}_{id}.json`, `{p}_{id}.txt` | **推荐用于中文视频** | +| 5 | kb-ocr-processor | `--input xxx.mp4` | `{p}_{id}_ocr.json` | 语音识别困难时的替代方案 | | 6 | kb-deep-analyzer | `--metadata x.meta.json --content x.json --output x.md --provider zhipu --model glm-5` | `{p}_{id}.md` | **使用 g5 模型,必须成功** | ## 条件分支逻辑 @@ -407,7 +434,7 @@ python3 kb_workflow.py --archive-file "[分析报告文件路径]" ``` > ⚠️ **重要:深度分析失败则整个流程失败** -> - 深度分析必须使用正确的 AI 模型(glm-4.7)完整分析字幕内容 +> - 深度分析必须使用正确的 AI 模型(glm-5)完整分析字幕内容 > - 如果 `kb-deep-analyzer` 返回 `success: false`,**必须汇报失败**,不能继续执行后续步骤 > - 不能使用预设模板或降级内容来"假装成功" > - 失败时必须向用户报告具体的错误原因