关于小奥录音 OddMinutes
小奥录音是一个开源的智能音频会议系统,支持实时录音、AI 转录、智能摘要生成和音字联动功能,也支持导入已有的音频进行转录、总结。跟 Meetily 一样,支持全链路私有化部署,完全离线运行。
Slogan:让会议的每一分钟,都被听见、被记录、被理解 —— OddMinutes 小奥录音
项目地址:https://github.com/oddmeta/oddminutes
安装:pip install oddminutes
运行:oddminutes
Web前端: http://localhost:9011
最近两个周末,一边改 OddASR,一边陆陆续续的用 OddASR 再来一点点完善小奥录音的各项功能,今天向pypi发布了个阶段性的版本 v0.1.10 。然后这里汇总一下与上个版本相比做的一些修改、调整与完善,简单讲的话主要就是:围绕实时字幕、导出功能、说话人识别、AI纪要等核心体验进行了一些升级。具体看下面。
一、新功能
1. 实时字幕上线(500ms 超低延迟)
结合最新版 OddASR,小奥录音加入了实时字幕功能,首字时延低至 500ms!
●字幕风格参照主流音乐播放器,支持拖动调整字幕显示位置
●默认不启用,可在系统设置中手动开启
●录音控制面板新增「显示字幕」按钮,一键控制字幕显隐
2. 导出功能全新重构
导出功能经过彻底重设计:
●点击导出按钮后弹出选择框,可自由勾选导出内容:音频文件、会议文本、AI摘要
●导出前自动检查数据库中是否已有对应的 PDF 文件,智能判断是否需要重新生成
●勾选的导出文件自动打包成 ZIP 提供下载,文件名用会议名称(中文文件名兼容)
●导出的 PDF 新增页眉 小奥录音 Logo + Slogan、页脚副标题与官网地址
●PDF 支持水印,包含产品标识与导出时的登录用户信息,防泄漏更安心
●导出接口必须登录后才能操作
3. 说话人能力增强
利用最新版本的 OddASR,对说话人分离功能进行了一些优化,可指定本会议中最多有多少人发言,包括自动检测说话人的最大数据和实际分离的数量,同时转写后生成的说话人0,说话人1,说话人2也可支持在界面上修改名字,并支持同一说话人修改后,在整个会议里批量改名更新。
●说话人名字编辑:转录文本界面双击说话人即可编辑名字;若某说话人修改了名字,会提示是否将本会议中所有相同说话人的名称一并替换,界面与数据库同步更新
●离线说话人分离人数配置:根据 OddASR 接口支持,可指定本会议中最多有多少人发言(offlinePresetSpkNum / offlineMaxNumSpks)
需要配合OddASR v2.5.5 才能支持,要体验此功能,需先升级一下 OddASR。
安装 OddASR:
●●●bashpip install -U oddasr
运行OddASR
●●●bashoddasr
4. AI 纪要全面升级
这些功能都是我自己这几天使用中一点点完善的,有的问题是受限于硬件配置(受限于大模型最大上下文,AI摘要的时候切片进行摘要,然后再合并成一个完整的摘要)。
●AI摘要滑动窗口可配置:块大小 5000、重叠 1000、步进 4000 三个参数可在系统设置中调整并持久化
●AI摘要面板全新改版:从卡片列表样式重设计为正式的报告/纪要文档样式,包含报告头部(会议名、生成时间、元信息)与精致排版,支持打印/PDF 导出
●启动自动初始化模板:启动时自动检测 AI 摘要模板是否存在,缺失时自动补全初始化数据
5. 用户体系接入
这个功能的主要目的是想保护一下数据,原先的时候没有用户、权限的管理,启动了OddMinutes后就直接可以看到所有会议,感觉这样不太安全,也没有什么隐私,所以就顺手给加了个简易的用户认证子系统。
●所有数据表加入 user 属性
●所有业务 API(会议、录音、转写、摘要等)现在均需要携带有效的 Token 才能访问
●正在评估中国电信 API 数据结构规划新版本适配(只是看到了一个中国电信的API文档,感觉有点意思,但是没实际需求,所以做不做什么时候做,要看心情)
二、体验优化
一些勉强可以称得上优化的调整。
●转录文本分段优化:按句号、问号、感叹号智能分段,避免同一人超长语音堆挤成超大段落
●编辑模式重构:编辑按钮移动到每个 segment,悬浮时显示,支持逐段编辑;编辑未保存的内容会在界面标出
●编辑后播放定位修复:编辑状态下点播放,文字位置重新计算,准确定位到当前片段
●音频收发日志优化:音频收发与流式转写 WebSocket 状态日志更清晰
●通知历史优化:标题中增加会议名称,方便快速定位
●Tailwind 本地化:将 CDN 引入的 Tailwind 改为本地资源,离线环境也可用
●静音裁剪开关:音频转 MP3 后是否去首尾静音改为配置项控制
三、Bug 修复
使用中发现的一堆杂七杂八的问题,一个个修复了一下。
●静音裁剪过度剪切:修复裁剪导致大量有效音频内容被误剪的问题(FFmpeg 7.x 兼容处理)
●音频进度条无法拖动:新增修复功能,重新编码 MP3 修复 VBR 头信息与 seek 表,解决浏览器播放进度条定位不准的问题
●AI 摘要无法重新生成:修复生成一半服务端退出后无法再次生成的问题
●Linux 版本号异常:修复 Linux 环境下检测到版本号为 0.0.0 的问题
●系统通知错误:修复修改系统配置时通知标题误显示为会议名称的问题
●会议标题更新:更新标题前先判断是否有变化,避免无效触发
四、工程与部署
●打包优化:构建 wheel 时排除编译临时文件(__pycache__/.pyc),避免 “is not a supported wheel on this platform” 等跨平台安装报错
●版本检查:新增自动检测新版本功能(从 PyPI 获取最新版本),方便及时更新
五、下期预告
●中国电信 API 版本适配(别期待,做不做看心情)
●持续打磨实时字幕与导出体验
感谢大家的关注与支持!有任何问题或建议,欢迎留言反馈 🙌
Slogan:让会议的每一分钟,都被听见、被记录、被理解 —— OddMinutes 小奥录音
项目地址:https://github.com/oddmeta/oddminutes