1. 项目概述
作为一名在自然语言处理领域深耕多年的开发者,我深知会议纪要整理这项工作的繁琐与耗时。每次开完会,光是整理录音和提炼关键信息就要花费数小时。这促使我萌生了一个想法:能否利用当前最先进的大模型技术,开发一个能够自动生成会议纪要并提取任务的系统?
这个毕业设计项目的核心目标,就是构建一个基于大模型的智能会议处理系统。系统需要实现三个核心功能:一是将会议录音或文字记录自动转化为结构化的会议纪要;二是从会议内容中精准识别和提取任务项;三是根据任务的重要性和紧急程度进行智能分类排序。
提示:在实际开发中发现,单纯的语音转文字准确率往往难以满足需求,需要结合上下文语义理解进行纠错和补全。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 整体技术栈选择
经过多方对比和实验,我最终确定了以下技术方案:
-
语音识别模块:采用开源工具Whisper,其优势在于:
- 支持多语言识别
- 对专业术语识别准确率较高
- 可以输出带时间戳的文本
-
文本处理核心:使用HuggingFace的Transformers库
- 基础模型选择BART-large-cnn
- 微调数据集包含AMI、ICSI等会议语料库
-
任务提取模块:
- 命名实体识别:spaCy + 自定义实体类型
- 关系抽取:基于依存句法分析的规则引擎
-
前端界面:Vue.js + Element UI
- 录音上传组件
- 纪要编辑面板
- 任务看板视图
2.2 数据处理流程
系统处理流程分为以下几个关键步骤:
-
语音转文字:
- 输入:会议录音文件(支持mp3/wav格式)
- 输出:带说话人分离的文本(需要额外说话人识别模型)
-
文本清洗:
- 去除填充词("嗯"、"啊"等)
- 合并断句
- 纠正同音错字
-
纪要生成:
- 关键点提取
- 冗余信息过滤
- 结构化重组
-
任务提取:
- 责任人识别
- 截止时间提取
- 任务内容概括
3. 核心算法实现
3.1 基于BART的摘要生成
BART模型特别适合会议纪要生成任务,因其同时具备编码器和解码器结构。在实际应用中,我对标准BART做了以下改进:
python复制from transformers import BartForConditionalGeneration, BartTokenizer
model = BartForConditionalGeneration.from_pretrained('facebook/bart-large-cnn')
tokenizer = BartTokenizer.from_pretrained('facebook/bart-large-cnn')
# 输入预处理
inputs = tokenizer([meeting_text], max_length=1024, return_tensors='pt', truncation=True)
# 生成摘要
summary_ids = model.generate(
inputs['input_ids'],
num_beams=4,
length_penalty=2.0,
max_length=300,
min_length=100,
no_repeat_ngram_size=3
)
summary = tokenizer.batch_decode(summary_ids, skip_special_tokens=True)[0]
关键参数说明:
num_beams=4:平衡生成质量和速度length_penalty=2.0:鼓励生成长度适中的摘要no_repeat_ngram_size=3:避免重复短语
3.2 任务提取规则引擎
任务提取采用规则+机器学习混合方案:
-
模式匹配规则:
- "请[人名]负责[任务内容]"
- "[任务内容]需要在[时间]前完成"
- "下一步是[任务描述]"
-
机器学习模型:
- 微调BERT模型进行任务/非任务分类
- 使用BiLSTM-CRF模型进行实体识别
python复制# 示例规则实现
def extract_tasks(text):
tasks = []
# 匹配责任人模式
for match in re.finditer(r'(请|让|由)(.+?)(负责|处理)(.+?)(。|;|$)', text):
tasks.append({
'assignee': match.group(2).strip(),
'content': match.group(4).strip()
})
return tasks
4. 系统优化策略
4.1 领域自适应微调
直接使用预训练模型效果有限,需要进行领域适应:
-
数据收集:
- 收集企业内部历史会议记录
- 人工标注关键信息和任务项
-
微调策略:
- 两阶段微调:先摘要生成,后任务提取
- 使用LoRA技术降低微调成本
4.2 实时处理优化
为支持实时会议场景,采用以下优化:
-
增量处理:
- 每5分钟自动保存中间结果
- 支持断点续处理
-
缓存机制:
- 缓存常见术语识别结果
- 预加载部门人员名单
5. 评估与测试
5.1 评估指标
采用三类指标评估系统性能:
| 指标类型 | 具体指标 | 目标值 |
|---|---|---|
| 摘要质量 | ROUGE-L | ≥0.65 |
| 任务提取 | F1-score | ≥0.80 |
| 用户体验 | 响应时间 | ≤3秒 |
5.2 测试结果
在100场真实会议数据上的测试结果:
- 纪要生成准确率:78.3%
- 任务提取完整度:85.7%
- 平均处理时间:2.4分钟/小时录音
注意:测试发现系统对技术讨论类会议表现最佳,对头脑风暴类会议效果较差,需要后续针对性优化。
6. 实际应用案例
在某科技公司的月度项目评审会上,系统实现了:
-
效率提升:
- 纪要生成时间从人工4小时缩短至15分钟
- 任务项遗漏率降低60%
-
功能亮点:
- 自动关联历史任务
- 智能提醒任务逾期
- 支持多格式导出
7. 常见问题与解决方案
7.1 语音识别错误
问题表现:
- 专业术语识别错误
- 同音词混淆
解决方案:
- 构建领域术语表
- 添加后处理纠错规则
- 允许用户编辑中间结果
7.2 任务关联缺失
问题表现:
- 无法识别隐式任务
- 忽略跨会议的任务依赖
解决方案:
- 引入知识图谱存储历史任务
- 添加手动关联功能
- 实现任务依赖分析算法
8. 开发经验分享
在项目开发过程中,有几个关键经验值得分享:
-
数据质量决定上限:
- 收集真实场景数据比想象中困难
- 标注规范需要反复迭代
-
模型不是越大越好:
- 百亿参数模型反而不如精调的中等模型
- 推理速度是实际应用的关键
-
用户反馈至关重要:
- 早期就让目标用户参与测试
- 记录每个错误案例进行分析
这个项目从构思到实现历时6个月,最大的收获是认识到AI系统落地需要紧密结合实际场景。单纯追求技术指标而不考虑用户体验,最终产品很难真正产生价值。
