用Python把通话转写成文本,自动检查“必须说/禁止说”话术,生成合规记分卡,让小团队用更少质检成本把风险降下来。

Python语音识别做脚本合规:省下质检时间
一通客服电话里,最“值钱”的往往不是问题本身,而是流程是否合规。比如“本次通话将被录音用于质检”这种开场白,在很多地区与行业都属于硬性要求;漏说一次,轻则被投诉,重则引来合规与法务成本。
多数小团队处理这件事的方式很原始:抽样听录音、靠主管经验打分、发现问题再补救。现实是,抽样永远覆盖不到所有风险;而且客服量一上来,质检就变成了纯体力活。
更省事的做法是:**把通话转成文本,再用规则或模型自动检查“该说的有没有说、不该说的有没有说”。**这就是语音识别在合规场景里最落地的一类应用:脚本合规监控(script compliance)。这篇文章会用 Python 的思路,把 RSS 教程的核心做法扩展成一套适合小企业的自动化工作流,并放到「人工智能在法律科技与合规」系列的语境里:把合规从“事后补救”变成“过程控制”。
脚本合规监控到底在管什么?(以及为什么法务会在意)
脚本合规监控要解决的核心问题很直白:在一段对话中,某些句子必须出现,某些词不能出现,出现的时机最好也别错。
从法律科技与合规角度看,它常见于三类风险:
- 告知义务:录音告知、隐私告知、金融产品风险提示、售后条款说明等。
- 用语边界:例如“保证收益”“一定能批”“100%有效”等容易触发监管红线或虚假宣传的词。
- 流程证据链:当发生纠纷时,你需要证明“我当时明确告知过/对方明确同意过”。转写文本 + 时间戳(或片段定位)比“录音里大概在前面”更像证据。
我见过不少团队把脚本当成培训材料,而不是合规模板。结果就是:新人记不住、老员工图省事、质检只能抓典型。自动化检查的价值不是替代人,而是把人从重复劳动里解放出来,让质检与主管把精力用在“怎么改流程、怎么培训、怎么设计话术”上。
从“语音转文本”到“自动质检”:最小可行的技术路径
答案先给出来:**你不需要从头训练语音模型。**绝大多数小企业的最佳路线是:
- 用成熟的 ASR(Automatic Speech Recognition,自动语音识别)服务把通话转写
- 在转写结果上做规则检测(关键词、短语、正则、相似匹配)
- 输出一张“合规记分卡”(scorecard),进入你的工单/CRM/数据看板
RSS 原文用的是 Deepgram + Python SDK,演示了一个入门级脚本:读取音频文件、拿到 transcript、用 count() 统计敏感词、再检查“想要出现的句子”是否出现。
这条路线的优点是清晰:
- 迭代快:先用规则跑起来,立刻能抓到明显问题。
- 可解释:合规最怕黑箱;规则命中能解释给客服、主管、法务听。
- 易接入自动化工作流:后续把结果推到飞书/钉钉、写入数据库、触发复训任务都很顺。
你可以监控哪些“必须说/禁止说”的清单?
给你一份小企业常见清单模板,拿来就能改:
- 必须说(Wanted)
- “本次通话将被录音用于质量保证/服务改进”
- “为保护隐私,我需要核对您的身份信息”
- “价格以系统最终展示为准/活动规则以页面为准”
- 禁止说(Flagged)
- “保证/肯定/绝对/100%”
- “不用看合同/不用看条款”
- “我们不会收集任何信息”(通常不真实且风险极高)
对于法律科技与合规系列来说,建议你把清单和内部制度做映射:每条规则标注来源(监管条款/内部 SOP/合同条款),这样才便于审计。
Python实现:把转写结果变成“合规记分卡”
答案先给出来:你要的输出不是一段 transcript,而是一张可行动的表——哪些通话需要复听、哪位坐席在哪条规则上反复失误、哪些脚本句子在旺季更容易漏。
下面这段思路来自 RSS 教程,但我会补上更贴近生产环境的小改动:
- 避免误报:直接
transcript.count('and')会把单词片段也算进去;中文也会遇到“包含关系”误判。更稳的做法是用词边界、分词或正则。 - 记录证据:不只记录“命中/未命中”,还记录命中位置或命中片段,方便回溯。
- 可扩展:规则不要散落在代码里,最好放到 YAML/JSON 配置,法务或运营能参与维护。
关键逻辑(示例代码片段)
下面以“概念示例”为主(保持简洁),核心结构与 RSS 一致:
import re
FLAGGED = {
r"\b保证\b": "疑似承诺性用语,需复核语境",
r"100%": "绝对化表述,合规风险高",
}
WANTED = [
"本次通话将被录音用于",
"为保护您的隐私",
]
def check_compliance(transcript: str):
hits_flagged = []
for pattern, msg in FLAGGED.items():
if re.search(pattern, transcript):
hits_flagged.append({"pattern": pattern, "message": msg})
hits_wanted = []
for phrase in WANTED:
hits_wanted.append({"phrase": phrase, "found": phrase in transcript})
score = {
"flagged_count": len(hits_flagged),
"wanted_found": sum(1 for x in hits_wanted if x["found"]),
"wanted_total": len(WANTED),
}
return score, hits_flagged, hits_wanted
要点:
- `FLAGGED` 用正则比裸 `count()` 更靠谱(至少能减少部分误报)。
- `wanted_found / wanted_total` 这种比率能直接做 KPI 或告警阈值。
### 把它接成自动化工作流(小企业友好版)
很多团队卡在“脚本能跑”到“真正省人力”之间。差的不是技术,而是流程设计。按我的经验,最实用的是这条链:
1. **通话结束**:录音文件落盘或进入云存储
2. **触发转写**:异步任务(队列/定时器/函数计算)调用 ASR
3. **合规检查**:跑规则,生成记分卡 JSON
4. **动作分流**:
- 高风险:自动建工单 + 发送主管提醒
- 低风险:入库用于统计
5. **复训闭环**:同一条规则连续 3 次失败,自动创建培训任务
这就是“AI 语音助手与自动化工作流”的典型落地点:语音识别负责把语音变成结构化数据,自动化系统负责把数据变成动作。
## 从教程到上线:你必须补的4个“合规级”细节
答案先说清楚:**能跑不等于能用在合规。**脚本合规监控一旦被当作质检依据,就会遇到审计、申诉、取证等真实问题。下面四点不补齐,风险会反噬。
### 1) 误报/漏报控制:别用“关键词包含”糊弄
- 中文建议做分词或用更严谨的匹配规则(例如关键短语、近义词表、正则边界)。
- 对“必须说”句子,建议允许同义改写:客服说法很难一字不差。
- 更进一步:可以用“相似度匹配”来判断是否表达了同一含义(例如 embedding + 阈值),再由规则兜底。
你要的不是“把人逼成机器人”,而是**确保关键合规信息被清晰传达**。
### 2) 时间与顺序:有些话说晚了也算违规
例如录音告知通常要求在通话早期出现。只看“有没有出现”不够,最好加上:
- **出现时间**:前 10 秒/前 30 秒内
- **出现位置**:第一个坐席发言段落
这需要 ASR 输出词级时间戳或片段时间戳(很多服务都支持)。把“合规”从二值判断升级成可审计的证据。
### 3) 个人信息与数据治理:法务最关心的不是模型,是留存
脚本合规监控常常会碰到手机号、身份证、地址、病史、财务信息。建议至少做到:
- 转写文本做 **PII 脱敏/掩码**(如 `138****1234`)
- 设定 **最小留存期限** 与访问权限(谁能看全文 transcript?)
- 保存 **审计日志**:谁看过、谁导出过
这部分是「人工智能在法律科技与合规」系列的主线:AI 带来效率,也必须带来可控性。
### 4) 评分标准要能解释:让客服愿意接受、主管愿意执行
一个好用的记分卡,至少包含:
- 命中规则(哪条)
- 证据片段(原话/时间点)
- 严重等级(P0/P1/P2)
- 建议动作(复听/复训/提醒话术)
如果评分只是“你不合格”,一线会天然抵触;如果评分能指出“你漏了哪句、应该怎么说”,执行成本会低很多。
## 常见问题:小企业做脚本合规,需要多大投入?
答案很现实:**第一版可以非常轻量,但要预留迭代空间。**
- **技术投入**:一个懂 Python 的工程师通常就能在 1–2 周内做出可用 MVP(转写 + 规则 + 输出表)。
- **业务投入**:合规/法务/运营要提供规则清单与优先级,这往往比写代码更关键。
- **成本结构**:主要是 ASR 调用成本 + 存储 + 运行任务。对小企业来说,先从“高风险流程/高价值电话”做抽样自动化,ROI 最清晰。
我更推荐的路线是:先把“必须说的三句话 + 禁止说的十个词”跑起来,先把明显风险降下去,再逐步精细化。
## 你下一步可以怎么做
脚本合规不该是“大公司才配做”的事。把语音识别接进你的客服流程,最直接的收益是两条:**减少合规事故**,以及**把质检从听录音变成看报表**。
如果你已经在用 CRM 或工单系统,现在就可以定一条简单的试点规则:比如“录音告知必须在前 15 秒出现”。跑两周,你就会得到一组非常诚实的数据:到底是谁在漏、漏在哪个班次、漏的原因是忙乱还是话术太长。
下一篇我想继续写「人工智能在法律科技与合规」系列里更进阶的一步:当规则越来越多、话术越来越灵活时,怎么用“相似度 + 证据链”的方式,把脚本合规做得既严格又不僵硬。你更想先看**实时通话提醒**,还是**与工单/培训系统的自动联动**?