会议录音转成文字后之所以显得杂乱,主要是因为语音转写工具输出的文本通常是连续段落,既没有标注发言人,也没有区分观点、讨论和结论。解决这个问题不能只靠增加文字量,而要从结构入手,给原始记录补充说话人标签和重点信息。下面分别从说话人区分、重点提取和整体流程三个层面展开。

一、乱的不是文字,是缺失的结构
单纯依赖语音转写,得到的结果往往是一大段没有停顿、没有归属的文字。会议中常见的口语词、重复表达、话题突然跳跃,都会让转写文本看起来非常混乱。更关键的是,转写工具只负责把声音变成字,它不会告诉你哪句话是结论,哪句话是待办,也不会区分项目负责人和普通讨论者。也就是说,杂乱的本质不是字数太多,而是信息密度低、元数据缺失。
人工整理之所以效率低下,是因为需要反复回听录音,把连续文本拆成对话片段,再手动标注每段话的来源和性质。这个过程耗时通常是录音时长的数倍,而且容易遗漏风险点或承诺事项。将任务拆解为语音转写、说话人分离、重点提取三个环节后,每个环节都可以用独立工具或模型处理,后续只需要少量校对就能形成结构化纪要。
二、说话人区分:给每句话贴标签
说话人区分与语音识别是两个不同的任务。语音识别只负责输出文字,说话人区分则需要回答“某段音频是谁说的”。技术上的通用做法是先把音频切成若干小段,对每个小段提取声纹嵌入向量,再通过聚类算法把相似声纹归为同一人。聚类完成后,系统会给每类分配一个临时标签,例如SPEAKER_00、SPEAKER_01。这个流程在学术上称为说话人分离,英文叫speaker diarization。
开源工具方面,pyannote.audio是目前效果比较稳定的选择。它提供了预训练模型,可以直接加载并处理音频文件。下面这段代码演示了基本用法。
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization-3.1")
diarization = pipeline("meeting.wav")
for turn, _, speaker in diarization.itertracks(yield_label=True):
print(f"{turn.start:.2f} - {turn.end:.2f} {speaker}")
代码中的turn.start和turn.end返回浮点秒数,speaker是系统分配的临时标签。实际项目中需要把这些标签映射成真实参会人姓名,可以通过接入会议系统身份信息,或者让用户手动标注前几句音频来完成。多人抢话、远场录音会导致片段切得过于细碎,此时需要根据停顿阈值和聚类数量进行调整,否则可能会把同一个人识别成多个临时标签。
三、重点提取:把长文本压缩成行动项
重点提取可以分成抽取式和生成式两类。抽取式方法直接从原文中挑选权重较高的句子或关键词,生成式方法则重新组织语言,输出更简洁的摘要。对于会议记录这种口语化、重复率高的文本,抽取式方法适合先做关键词筛选,生成式方法适合最终形成决议和任务清单。简单场景可以使用TF-IDF或TextRank,不需要训练模型,处理速度快。
下面以TF-IDF为例,展示如何从若干条会议短句中找出相对重要的内容。
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
"确定下周发布版本",
"需要补充登录模块的测试用例",
"讨论界面配色方案",
]
vectorizer = TfidfVectorizer(tokenizer=jieba.lcut)
tfidf_matrix = vectorizer.fit_transform(corpus)
print(tfidf_matrix.toarray())
这段代码会输出每个词在当前句子中的权重矩阵,权重越高说明词在句中越具有区分度。实际使用时可以把整场会议按说话人分段,再对每段计算TF-IDF,筛选出包含高权重词的句子作为候选重点。对于更复杂的需求,可以直接调用大模型接口,把带说话人标签的文本传入,并要求模型输出任务、负责人、截止时间和风险点。提示词中最好加上“只提取明确写出的信息,不要推测”这类约束,避免模型过度生成。
四、从录音到纪要的落地流程
完整方案通常包含以下步骤:音频预处理、语音转写、说话人分离、时间轴对齐、文本清洗、重点提取、生成结构化纪要。音频预处理可以统一采样率、降低背景噪声;语音转写与说话人分离最好使用同一段音频源,避免时间偏移;对齐后,每句话就同时具备说话人和时间信息。最后根据业务需要输出表格或清单,而不是长段落文本。
落地时容易踩坑的地方集中在三个点。一是录音质量,电话会议和现场麦克风的声学环境差异很大,远场录音会导致声纹区分效果下降;二是行业术语识别错误,可以通过给转写引擎提供术语表来缓解;三是临时标签映射到真实姓名不稳定,建议每次会议开始前让参会人录制一句固定短语,或者直接使用会议系统提供的身份轨道。对于多人同时说话的情况,单声道混合录音几乎无法完美分离,有条件时应尽量使用多路音频。
会议记录整理的目标不是生成更多文字,而是把原始语音转换成可执行、可追溯的结构化信息。通过说话人区分解决“谁说的”,通过重点提取解决“说了什么以及下一步做什么”,再加上时间轴和类型标签,杂乱记录就可以稳定转化为清晰的纪要。先用简单工具跑通完整链路,再逐步替换为更重的模型,是比较务实的方式。