<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LLM | AIVIS</title><link>https://v5v5.fun/tags/llm/</link><atom:link href="https://v5v5.fun/tags/llm/index.xml" rel="self" type="application/rss+xml"/><description>LLM</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>zh-CN</language><lastBuildDate>Mon, 24 Aug 2026 00:00:00 +0000</lastBuildDate><image><url>https://v5v5.fun/media/sharing.png</url><title>LLM</title><link>https://v5v5.fun/tags/llm/</link></image><item><title>AI 教学视频生成平台</title><link>https://v5v5.fun/projects/ai-teaching-video-platform/</link><pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate><guid>https://v5v5.fun/projects/ai-teaching-video-platform/</guid><description>&lt;p&gt;&lt;strong&gt;AI Teaching Video Generation Platform&lt;/strong&gt; —— 从课程内容生成到数字人呈现的端到端 AI 教学视频生产系统。&lt;/p&gt;
&lt;p&gt;核心链路：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PPT → Script → Voice → Alignment → Digital Human-ready → Video
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;核心技术标签：LLM · TTS · Speech Alignment · Digital Human · Multimodal · GPU Pipeline&lt;/p&gt;
&lt;h2 id="项目概述"&gt;项目概述&lt;/h2&gt;
&lt;p&gt;传统课程视频生产需要人工完成一系列环节：阅读 PPT、撰写讲稿、录制配音、制作字幕、剪辑视频、数字人呈现。每个环节都是独立的手工任务，成本高、难以规模化。&lt;/p&gt;
&lt;p&gt;本系统将这些环节拆解为可组合的 AI Pipeline，由两个核心模块构成：&lt;/p&gt;
&lt;h3 id="设计原则content--presentation-separation"&gt;设计原则：Content / Presentation Separation&lt;/h3&gt;
&lt;p&gt;课程内容生产与数字人呈现解耦，两个模块只通过标准化的文本、音频和时间轴数据连接：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; AI Teaching Video Generation Platform
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌───────────────┴───────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Content Generation Digital Presentation
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; AI Course Generator Digital Human Media Pipeline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; PPT → Structure → Script Script → TTS → Alignment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Review → Revision → Subtitle → Media → Video
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └───────────────┬───────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Final Teaching Video
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这种解耦使内容侧可以独立改进讲稿质量，呈现侧可以独立替换 TTS 引擎或升级呈现形式，互不影响。&lt;/p&gt;
&lt;h2 id="端到端-pipeline"&gt;端到端 Pipeline&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PPT / Course Material
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PPT Parsing（python-pptx）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Course Structure（slides.json）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;LLM Lecture Script Generation
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Lecture Review / Revision（LLM-as-Judge）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;TTS（CosyVoice 3 / IndexTTS 2.5）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Audio
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;VAD + ASR（FunASR Paraformer）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Character / Word Alignment
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Subtitle / Timeline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Digital Human-ready Media
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;FFmpeg Composition
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Final MP4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt="端到端生产管线"
src="https://v5v5.fun/projects/ai-teaching-video-platform/e2e-pipeline.svg"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="module-01--ai-course-generator"&gt;Module 01 · AI Course Generator&lt;/h2&gt;
&lt;h3 id="ai-powered-course-content-generation"&gt;AI-powered course content generation&lt;/h3&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;负责「讲什么」。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;完整案例：
&lt;/p&gt;
&lt;p&gt;核心流程：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PPT → 内容解析 → 课程结构 → LLM 讲稿生成
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → Review → Revision → Final Script
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="已实现内容解析与结构化"&gt;已实现：内容解析与结构化&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;基于 &lt;strong&gt;python-pptx&lt;/strong&gt; 的 PPT 解析与图片渲染&lt;/li&gt;
&lt;li&gt;结构化中间表示 &lt;strong&gt;slides.json&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;页面 / 段落 / 句子三级层级结构&lt;/li&gt;
&lt;li&gt;中文 / 英文讲稿支持&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="已实现llm-讲稿生成"&gt;已实现：LLM 讲稿生成&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;基于课程结构的结构化讲稿生成&lt;/li&gt;
&lt;li&gt;页面间逻辑衔接与内容扩展&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="已实现讲稿审查与修订llm-as-judge"&gt;已实现：讲稿审查与修订（LLM-as-Judge）&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;重复内容检测&lt;/li&gt;
&lt;li&gt;页面衔接检查&lt;/li&gt;
&lt;li&gt;术语一致性检查&lt;/li&gt;
&lt;li&gt;机械表达检测&lt;/li&gt;
&lt;li&gt;一键修订与 human-in-the-loop 人工编辑&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本模块不涉及任何数字人技术，技术边界清晰。&lt;/p&gt;
&lt;h2 id="module-02--digital-human-media-pipeline"&gt;Module 02 · Digital Human Media Pipeline&lt;/h2&gt;
&lt;h3 id="speech-alignment-and-media-generation-infrastructure"&gt;Speech, alignment and media generation infrastructure&lt;/h3&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;负责「怎么讲出来」。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;完整案例：
&lt;/p&gt;
&lt;p&gt;需要明确的是：这个模块&lt;strong&gt;不是数字人建模系统&lt;/strong&gt;，而是数字人呈现所依赖的语音与媒体基础设施。当前能力链路：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Script → TTS → Audio → Alignment → Subtitle / Timeline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → Digital Human-ready Media → Video Composition
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="多引擎-tts-统一封装"&gt;多引擎 TTS 统一封装&lt;/h3&gt;
&lt;p&gt;集成 &lt;strong&gt;CosyVoice 3&lt;/strong&gt; 与 &lt;strong&gt;IndexTTS 2.5&lt;/strong&gt; 双引擎：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Unified TTS Interface
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;音色管理 · 语速控制 · 引擎选择
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ┌─────────┴─────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; CosyVoice 3 IndexTTS 2.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─────────┬─────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Audio 输出
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;已实现能力：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;统一 TTS 抽象层（Unified TTS abstraction）&lt;/li&gt;
&lt;li&gt;音色 / Speaker 配置管理&lt;/li&gt;
&lt;li&gt;语速控制&lt;/li&gt;
&lt;li&gt;多引擎可选&lt;/li&gt;
&lt;li&gt;多 GPU 执行&lt;/li&gt;
&lt;li&gt;重试（Retry）&lt;/li&gt;
&lt;li&gt;检查点（Checkpoint）与缓存（Cache）&lt;/li&gt;
&lt;li&gt;断点续跑（Resume）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不同 TTS 引擎具有不同的 API、模型依赖、GPU 占用和输出格式。统一 TTS 抽象使上层 Pipeline 与具体引擎解耦：新增或替换引擎时，不需要修改下游任何阶段。&lt;/p&gt;
&lt;h3 id="字级语音-文本强制对齐"&gt;字级语音-文本强制对齐&lt;/h3&gt;
&lt;p&gt;时间戳来自声音本身：TTS 音频先经 &lt;strong&gt;VAD&lt;/strong&gt; 切分语音段，再用 &lt;strong&gt;FunASR Paraformer&lt;/strong&gt; 识别出每一个字 / 词——识别结果天然携带真实的发音时间；随后将识别出的字词序列与原始讲稿逐字匹配，把声音时间戳映射回讲稿文本，得到字 / 词级的课程时间轴：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;TTS 音频
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;VAD 语音切分
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Paraformer ASR 识别
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;字词 + 真实发音时间戳
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;识别字词 ↔ 讲稿文本 逐字匹配
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;时间戳映射回讲稿
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Timeline JSON（字 / 词级）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;为什么不能按字符数估算字幕时间：长句、停顿、语速变化、中英文混读、标点和 TTS 韵律变化都会让估算产生累积误差。使用真实音频时间戳生成时间轴，字幕与语音才能逐字对齐。&lt;/p&gt;
&lt;h3 id="timeline-作为统一接口"&gt;Timeline 作为统一接口&lt;/h3&gt;
&lt;p&gt;对齐后的时间轴不只是字幕数据，而是整个媒体生产的统一时间轴接口：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Aligned Timeline
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├── Subtitle（字幕轨）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├── Lip-sync Driver（Future：为后续数字人口型驱动提供统一时间轴接口）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── Video Composition（视频合成）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;字幕与视频合成都直接消费同一份 Timeline JSON；后续接入口型驱动时，同样复用这份时间轴，无需重新对齐。&lt;/p&gt;
&lt;h3 id="生产级可恢复-pipeline"&gt;生产级可恢复 Pipeline&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Task
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dispatcher
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GPU Worker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;TTS / Alignment / Rendering
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Intermediate Result
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Checkpoint
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Next Task
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;面向长时间媒体任务设计可恢复 Pipeline，使单个句子、页面或阶段失败时无需重新执行整个任务：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多 GPU 与 Worker 化执行&lt;/li&gt;
&lt;li&gt;Task 级状态管理与失败隔离（Failure isolation）&lt;/li&gt;
&lt;li&gt;Retry 自动重试&lt;/li&gt;
&lt;li&gt;Checkpoint 检查点与中间结果缓存（Intermediate cache）&lt;/li&gt;
&lt;li&gt;Resume 断点续跑&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="视频合成"&gt;视频合成&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Audio + Subtitle + Background / PPT + Digital Human-ready Video
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; FFmpeg
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Final MP4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;FFmpeg 在系统中不只是「导出工具」，而是整个媒体时间轴最终落地的 &lt;strong&gt;composition layer&lt;/strong&gt;：音频轨、字幕轨、背景 / PPT 画面与数字人就绪画面按统一时间轴合成为最终教学视频。&lt;/p&gt;
&lt;h2 id="演示"&gt;演示&lt;/h2&gt;
&lt;p&gt;平台当前以本地服务方式运行：通过 Gradio Web UI 上传课程 PPT 或讲稿文本，即可走完上述端到端流程，产出带讲解配音与字级同步字幕的课程视频（MP4）。&lt;/p&gt;
&lt;p&gt;两条典型路径：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;端到端&lt;/strong&gt;：上传 PPT → 自动解析、生成并审查讲稿 → TTS → 对齐 → 合成成片&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;直接配音&lt;/strong&gt;：已有讲稿文本 → TTS → 对齐 → 合成成片&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="技术架构"&gt;技术架构&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Input
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── PPT / Course Material
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── Script Text
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Content Layer ── AI Course Generator
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ （Parsing · Script · Review）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Speech Layer
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── CosyVoice 3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── IndexTTS 2.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Alignment Layer
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── VAD
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── FunASR Paraformer
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── Text Matching
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Timeline Layer
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── Character timestamps
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── Word timestamps
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── Subtitle data
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Presentation Layer ── Digital Human / Lip-sync（Future）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Media Layer ── FFmpeg Composition
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Final MP4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="scope"&gt;Scope&lt;/h2&gt;
&lt;p&gt;当前项目聚焦 AI 教学视频生产中的内容生成、语音合成、语音-文本时间轴和媒体合成基础设施。&lt;/p&gt;
&lt;p&gt;数字人角色建模、完整 Avatar 系统、实时交互和复杂身体动作生成不属于当前核心范围，相关方向见下方 Future。&lt;/p&gt;
&lt;h2 id="我的贡献"&gt;我的贡献&lt;/h2&gt;
&lt;p&gt;负责整体架构设计与核心 Pipeline 实现，从 LLM 课程内容生成、TTS、语音-文本时间轴对齐到最终视频合成，完成跨模型、跨阶段的媒体生产链路集成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Designed the end-to-end architecture（端到端架构设计）&lt;/li&gt;
&lt;li&gt;Designed the separation between content generation and presentation（内容与呈现解耦）&lt;/li&gt;
&lt;li&gt;Built unified multi-engine TTS layer（多引擎 TTS 统一封装）&lt;/li&gt;
&lt;li&gt;Implemented character / word-level alignment pipeline（字 / 词级对齐流水线）&lt;/li&gt;
&lt;li&gt;Designed reusable timeline interface（可复用时间轴接口）&lt;/li&gt;
&lt;li&gt;Built checkpoint / retry / resume mechanism（可恢复生产管线）&lt;/li&gt;
&lt;li&gt;Integrated GPU inference workloads（GPU 推理工作负载集成）&lt;/li&gt;
&lt;li&gt;Built final media composition pipeline（FFmpeg 媒体合成层）&lt;/li&gt;
&lt;li&gt;Integrated multiple AI models into a production-oriented workflow（多模型工程化集成）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="future"&gt;Future&lt;/h2&gt;
&lt;h3 id="digital-human-lip-sync"&gt;Digital Human Lip-sync&lt;/h3&gt;
&lt;p&gt;将统一时间轴接入数字人口型驱动模型，实现语音驱动的口型同步。&lt;/p&gt;
&lt;h3 id="real-time-digital-human"&gt;Real-time Digital Human&lt;/h3&gt;
&lt;p&gt;从离线 Pipeline 向低延迟实时交互演进。&lt;/p&gt;
&lt;h3 id="prosody--emotion-control"&gt;Prosody / Emotion Control&lt;/h3&gt;
&lt;p&gt;进一步控制 TTS 的情绪、韵律、停顿和表达风格。&lt;/p&gt;</description></item><item><title>PharmaRAG</title><link>https://v5v5.fun/projects/pharma-rag/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://v5v5.fun/projects/pharma-rag/</guid><description>&lt;p&gt;一个为药师打造的&lt;strong&gt;企业级 LLM + RAG 知识库与辅助问答系统&lt;/strong&gt;，将分散的企业文档转化为可检索、可溯源的知识服务，所有正式答复均带来源引用，并经人工确认后发布。&lt;/p&gt;
&lt;h2 id="项目概述"&gt;项目概述&lt;/h2&gt;
&lt;p&gt;医药领域的专业提问对准确性和可溯源性的要求远高于一般场景：回答必须有据可查，且在正式生效前经过人工把关。本系统将企业文档接入知识库，通过检索增强生成（RAG）工作流产出带引用的回答，由药师复核确认后发布，形成「机器检索生成 + 人工最终决策」的可靠协作模式。&lt;/p&gt;
&lt;h2 id="问题"&gt;问题&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;专业回答必须准确且可追溯到来源文档，无法接受&amp;quot;模型自由发挥&amp;quot;。&lt;/li&gt;
&lt;li&gt;纯关键词检索会漏掉语义匹配；纯向量检索会丢失精确关键词命中——单一策略不可行。&lt;/li&gt;
&lt;li&gt;检索质量直接决定回答质量：检索链路薄弱，无法在生成阶段补救。&lt;/li&gt;
&lt;li&gt;面向真实业务的回答必须有人工确认环节，系统需将其纳入工作流而非游离在外。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="解决方案"&gt;解决方案&lt;/h2&gt;
&lt;p&gt;构建完整的 &lt;strong&gt;用户咨询 → 知识检索 → LLM 生成 → 人工确认&lt;/strong&gt; 工作流：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户咨询 → 混合检索（向量 + 关键词）→ RRF 融合 → 父文档聚合
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → Reranker 重排序 → LLM 生成（带来源引用）→ 人工确认发布
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;设计原则：先用多阶段检索把&amp;quot;最相关的完整证据&amp;quot;找出来，再让 LLM 基于证据作答。回答质量的上限由检索阶段决定，因此资源优先投入检索链路，而非 Prompt 调优。&lt;/p&gt;
&lt;h2 id="系统架构"&gt;系统架构&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="PharmaRAG 系统架构"
srcset="https://v5v5.fun/projects/pharma-rag/architecture_hu_40c3a089792b0ece.webp 320w, https://v5v5.fun/projects/pharma-rag/architecture_hu_374c21124a29a7e0.webp 480w, https://v5v5.fun/projects/pharma-rag/architecture_hu_5177034445221b1f.webp 658w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://v5v5.fun/projects/pharma-rag/architecture_hu_40c3a089792b0ece.webp"
width="658"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="核心技术挑战"&gt;核心技术挑战&lt;/h2&gt;
&lt;h3 id="多阶段混合检索"&gt;多阶段混合检索&lt;/h3&gt;
&lt;p&gt;单一检索策略难以同时保证语义召回与专业术语的精确命中，因此将检索拆分为多个协作阶段：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;向量检索&lt;/strong&gt; 负责语义匹配，&lt;strong&gt;关键词 / 全文检索&lt;/strong&gt; 负责精确术语。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RRF（Reciprocal Rank Fusion）&lt;/strong&gt; 融合异构检索结果，兼顾两路排序信号。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;父文档聚合&lt;/strong&gt; 返回完整、自洽的上下文段落，而非碎片片段。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reranker&lt;/strong&gt; 对候选结果精排，将最相关证据置于最前，降低 LLM 的阅读负担。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="知识入库数据链路"&gt;知识入库数据链路&lt;/h3&gt;
&lt;p&gt;检索质量的上游是干净、结构化的入库链路：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文档解析、数据清洗、分块与 Embedding 入库全流程自动化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pgvector&lt;/strong&gt; 与关系数据同库存储，简化事务与备份；&lt;strong&gt;Redis&lt;/strong&gt; 承担热点缓存；&lt;strong&gt;Celery&lt;/strong&gt; 运行后台任务；&lt;strong&gt;MinIO&lt;/strong&gt; 存放原始对象。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="上线前评估体系"&gt;上线前评估体系&lt;/h3&gt;
&lt;p&gt;先建立可度量的评估基准，再迭代检索策略：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;构建&lt;strong&gt;合成病例与评测 Query 数据集&lt;/strong&gt;，覆盖典型问法与边界问法。&lt;/li&gt;
&lt;li&gt;以召回率与排序质量等离线指标驱动检索策略迭代——先于任何 Prompt 调优。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="工程实现"&gt;工程实现&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;FastAPI&lt;/strong&gt; 应用层承载问答工作流与人工确认状态流转。&lt;/li&gt;
&lt;li&gt;基于 &lt;strong&gt;PostgreSQL / pgvector、Redis、Celery、MinIO&lt;/strong&gt; 组装 RAG 基础设施，全部 &lt;strong&gt;Docker&lt;/strong&gt; 容器化。&lt;/li&gt;
&lt;li&gt;提供离线检索评估工具，支撑数据驱动、可复现的原则性迭代。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="项目成果"&gt;项目成果&lt;/h2&gt;
&lt;p&gt;完成端到端企业级 RAG 系统：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;输入&lt;/strong&gt;：企业文档 + 用户咨询&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;输出&lt;/strong&gt;：带来源引用、经人工确认的回答&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input checked="" disabled="" type="checkbox"&gt; 解析 → 清洗 → Embedding → 检索 → 重排序 → 生成 全链路打通&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input checked="" disabled="" type="checkbox"&gt; 多阶段检索架构（RRF 融合 + 父文档聚合 + Reranker 精排）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input checked="" disabled="" type="checkbox"&gt; 合成病例与评测 Query 数据集及离线评估工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input checked="" disabled="" type="checkbox"&gt; 「咨询 → AI 答复 → 人工确认」业务流程真实运转&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="演示"&gt;演示&lt;/h2&gt;
&lt;p&gt;输入用户咨询后，系统执行混合检索、融合重排序证据，并生成带来源引用的回答；药师在确认界面复核引用与内容后正式发布。&lt;/p&gt;
&lt;h2 id="技术栈"&gt;技术栈&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;检索&lt;/strong&gt;：Embedding · 混合检索（向量 + 关键词）· RRF 融合 · 父文档聚合 · Reranker
&lt;strong&gt;生成与编排&lt;/strong&gt;：LLM · LangChain · Prompt 设计 · 人工确认工作流
&lt;strong&gt;基础设施&lt;/strong&gt;：FastAPI · PostgreSQL / pgvector · Redis · Celery · MinIO · Docker
&lt;strong&gt;评估&lt;/strong&gt;：合成病例数据集 · 离线检索评测&lt;/p&gt;
&lt;h2 id="我的贡献"&gt;我的贡献&lt;/h2&gt;
&lt;p&gt;独立完成设计与开发：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;设计多阶段混合检索架构与融合排序策略&lt;/li&gt;
&lt;li&gt;构建文档解析、清洗、分块与 Embedding 入库数据链路&lt;/li&gt;
&lt;li&gt;搭建合成病例评测数据集与离线检索评估工具&lt;/li&gt;
&lt;li&gt;组装生产级基础设施并完成 Docker 容器化交付&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;该项目完整体现了我从 &lt;strong&gt;混合检索链路设计、生成质量控制到生产级基础设施交付&lt;/strong&gt; 的企业级 RAG 工程能力。&lt;/p&gt;
&lt;h2 id="应用前景与可扩展方向"&gt;应用前景与可扩展方向&lt;/h2&gt;
&lt;p&gt;当前系统已支撑「咨询 → 检索生成 → 人工确认」闭环，其模块化架构具备向更广场景延展的潜力：&lt;/p&gt;
&lt;h3 id="应用场景"&gt;应用场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;用药咨询知识自助&lt;/strong&gt;：面向内部人员的药品知识自助问答，减少药师重复答疑负担。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;合规与制度问答&lt;/strong&gt;：同一套检索生成框架可直接迁移到制度、规范类文档问答。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;连锁 / 多组织知识统一&lt;/strong&gt;：多门店、多组织的分散文档统一入库，形成一致的知识服务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="可扩展技术方向"&gt;可扩展技术方向&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Agent 化多轮问答&lt;/strong&gt;：引入多轮澄清与追问，处理模糊提问与复合问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识库增量更新流水线&lt;/strong&gt;：文档版本变更时自动重建受影响分块，保持知识与源文件同步。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;审计与质量看板&lt;/strong&gt;：沉淀确认前后的修改差异，形成回答质量的持续改进依据。&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>