1. 项目概述:当BERT遇上会议纪要自动化
上周团队连续开了三场马拉松式需求评审会,会后整理纪要时突然意识到:我们这群搞AI的人,居然还在用最原始的手动记录方式。这就像用算盘验证神经网络一样荒谬。于是花了两周时间,基于BERT搭建了这套MeetingMind智能会议纪要系统,实测能将90分钟的会议音频在3分钟内转化为结构化纪要,关键信息提取准确率达到87.6%。
这个系统的核心价值在于:
- 语音转写+语义理解双引擎:不同于单纯依赖ASR的转写工具,我们通过BERT模型理解发言内容的深层语义
- 动态摘要生成:自动识别会议中的决策点、待办事项和争议话题
- 上下文关联:能追踪同一议题在不同时间段的讨论演进过程
2. 核心架构设计解析
2.1 技术选型背后的思考
选择BERT作为基座模型而非GPT类模型,主要基于会议场景的特殊需求:
| 对比维度 | BERT优势 | GPT劣势 |
|---|---|---|
| 上下文理解 | 双向注意力机制适合分析发言间关系 | 单向生成可能导致关键信息遗漏 |
| 实时性要求 | 适合分块处理长音频 | 自回归生成延迟较高 |
| 领域适配 | 微调成本低 | 需要大量领域数据防止幻觉 |
实际测试中,使用BERT-base在NVIDIA T4显卡上处理1小时音频仅需90秒,而同等效果的GPT-3模型需要6分钟以上。
2.2 系统流水线设计
整套系统采用模块化设计,关键路径如下:
python复制# 伪代码展示核心流程
audio_input → VAD分割 → ASR转写 → 文本清洗 →
BERT编码 → 话题聚类 → 重要性评分 → 摘要生成 →
结构化输出(JSON/Markdown)
其中最具创新性的是话题演进追踪模块:通过计算发言片段的BERT嵌入相似度,绘制出议题讨论热度的时序变化曲线。这让我们能直观看到哪些话题被反复讨论却未达成共识。
3. 关键实现细节与调优
3.1 领域自适应微调策略
直接使用原始BERT模型处理会议文本会出现两个典型问题:
- 将"这个PRD需要再对齐"误分类为视觉任务
- 无法识别"Action Item"等会议专用术语
我们的解决方案:
- 数据增强:用500小时真实会议录音+人工标注构建专用数据集
- 分层微调:先在全量数据上微调底层Transformer,再用小批量高质量数据微调分类头
- 领域词注入:将"ROI"、"KPI"等术语加入tokenizer词汇表
bash复制# 微调命令示例
python run_glue.py \
--model_name_or_path bert-base-uncased \
--train_file ./meeting_data/train.json \
--validation_file ./meeting_data/dev.json \
--do_train \
--max_seq_length 512 \
--per_device_train_batch_size 8 \
--learning_rate 3e-5 \
--num_train_epochs 5
3.2 重要性评分算法
通过分析200+真实会议纪要,我们发现关键信息通常具有以下特征:
- 包含数字/时间等实体
- 出现在多人连续发言的片段
- 临近主持人发言位置
因此设计复合评分公式:
code复制score = 0.4*entity_score + 0.3*dialogue_density + 0.2*speaker_weight + 0.1*position_bias
4. 实战效果与调优记录
4.1 典型输出示例
输入:1小时产品需求讨论会音频
输出摘要:
code复制【核心决策】
- 确定v2.3版本砍掉朋友圈分享功能(00:32:15)
- 增加用户成长体系金币奖励(00:47:22)
【待办事项】
- @UI组 周三前提供新图标(责任人:张伟)
- @后端 评估接口改造成本(截止:周五)
【争议话题】
- 是否强制用户绑定手机号(讨论时长18分钟未决)
4.2 性能优化技巧
通过以下手段将处理速度提升40%:
- 动态分块:根据VAD检测结果调整文本片段长度
- 缓存机制:对重复出现的术语(如产品名)缓存其BERT嵌入
- 量化部署:使用TensorRT将模型转为FP16格式
重要提示:避免对包含多人同时发言的片段直接处理,这类片段需要先进行语音分离,否则会导致语义混乱。我们采用pyannote.audio库实现说话人分离。
5. 常见问题排查手册
5.1 转写文本碎片化
现象:输出内容被切分成不连贯的短句
解决方法:
- 检查音频质量,确保采样率≥16kHz
- 调整VAD参数:
pyannote.core.utils.vad_aggregation(onset=0.7) - 开启ASR的上下文联想功能
5.2 摘要遗漏关键信息
典型场景:未识别出会议中的隐性决策
优化方案:
- 在微调数据中加入"虽然没明说但实际达成共识"的标注样本
- 增加基于发言顺序的决策概率预测模块
6. 扩展应用方向
当前系统已衍生出两个有价值的扩展功能:
- 会议效率分析:通过统计发言时长/频次,识别过度主导讨论的人员
- 知识图谱构建:自动提取会议中提到的项目/人员/时间关系网
最近尝试将LLM与现有系统结合,在摘要后自动生成"会议亮点"和"幽默总结",显著提升了纪要阅读率。不过要注意控制生成内容的严肃性,我们为此设计了严格的内容过滤层。
