【业务背景】供电企业组织部门每年要对各二级单位领导班子和领导人员进行履职谈话,传统做法是「手机录音 + 手写速记 + Excel 汇总」,存在记录碎片化、整理耗时长、事例易丢失、统计口径不统一等问题。
【产品定位】「谈话工作台」是面向组工业务场景的免安装 Windows 桌面工具,把「现场谈话 → 记录整理 → 结果汇总 → 材料归档」打通为一条闭环流程,全程本机运行,音频不出电脑。
【核心功能】
① 单位与人员管理:按单位建库,人员区分正职 / 副职 / 一般员工并对应用人身份配色与统计口径,支持 Excel 名单模板批量导入(一个工作表即一个单位)。
② 谈话现场:本机离线实时语音转写,自动断句并区分「说话人1/2/3」;左栏「手动速记」可一键插入被评价对象标记与后备推荐层级,速记与转写并列保存,互为补充。
③ AI 整理:一键生成规范《谈话记录》(问答体)、班子整体评价、个人评价要点、问题与建议、后备推荐线索五类成果,并自动与原文逐条核对、提示可疑之处,防止大模型编造或张冠李戴;支持导出规范排版 Word。
④ 汇总与导出:自动生成谈话矩阵表、后备推荐结果汇总(严格对齐现行模板的层级排序与跨单位口径)、全公司总汇总,一键批量导出 Excel。
⑤ 协同与安全:两台电脑分组谈话可导出 / 导入谈话包自动合并,不重不漏;支持事后补谈;语音识别全程离线,仅在使用 AI 整理时按需上传文字,可单独关闭。
【业务流程】建单位与人员名单 → 现场录音转写 + 手动速记 → 一键 AI 整理并人工复核 → 汇总导出矩阵表与推荐结果 → 归档上交。
【整体架构】单进程 Python 桌面应用,PySide6(Qt6) 构建界面,core / ui 两层解耦:core 负责配置、数据模型、录音、离线识别、大模型接入、导出与打包;ui 负责单位与人员、谈话现场、AI 整理结果、汇总与导出、设置五个工作页面。
【技术链路】sounddevice 采集 16kHz/16bit 单声道 PCM → 队列送入独立识别线程 → sherpa-onnx 流式模型(int8 量化、CPU、贪心解码)实时出字,端点检测自动断句 → 可选 eres2net 声纹模型做在线质心聚类,自动区分说话人 → Qt 信号槽回传界面刷新。数据以 JSON 本地存储(临时文件原子替换 + 自动 .bak 备份),导出用 openpyxl 生成 Excel、python-docx 生成公文式 Word。
【我的职责】独立完成需求梳理与原型设计、全部前后端开发(约 5,700 行 Python)、离线模型选型与集成、提示词工程与防幻觉核对机制、PyInstaller 免安装打包与绿色分发包方案。
【难点与解决】
① 离线实时转写与分发体积的矛盾:选用 int8 量化 zipformer 模型(约 25MB),在本机 CPU 上达到约 15 倍实时速度;模型与程序分离,主程序用 PyInstaller 打包成单文件 exe,模型走国内镜像断点续传下载,也可从文件夹直接导入。
② 多人谈话分不清谁在说:接入声纹 embedding 提取器做增量质心聚类,给出可调灵敏度阈值,不足 1 秒的片段沿用上一句,避免把一句话判成两个人。
③ 大模型整理易丢事例、易张冠李戴:把「现场手动速记」明确为权威来源、与转写冲突时以速记为准;强制结构化 JSON 输出并明确要求保留时间、事件、数据等具体事例;整理后再自动与原文逐条比对,列出「人名前后不一致」「把班子问题写到个人名下」等可疑条目供人工复核。
④ 免安装与多机协同:exe 与数据目录自适应,支持多级路径查找语音模型;跨机谈话以 JSON 谈话包按「被谈话人 + 日期」合并,重复时取内容更全的一份,做到不重不漏。