OddMinutes:开源的全能会议纪要助手,所有你想要的功能都支持

OddMinutes:开源的全能会议纪要助手,所有你想要的功能都支持
一、前言开源的智能会议纪要系统支持实时录音、AI 转录、智能摘要生成和音字联动功能基本上我能想到的一些功能都已经支持了。而且也支持全私有化部署确保所有数据都只能您自己的电脑上保护您的隐私。项目地址https://github.com/oddmeta/oddminutes虽然豆包的音频纪要功能仍然免费可用但OddMinutes 小奥会议纪要是专门做会议纪要的可以做到比豆包更专业可用性、安全性、隐私等方面更强。当然如果您有一些其他的功能需求、功能建议的话也欢迎给我提出来我看看是不是可以加进去。二、使用步骤配置你自己的ASR和LLM服务器只要支持OpenAI接口的都行。ASR推荐用我的 OddAsr 私有部署LLM推荐用Ollama私有部署或者是任意公有云的。导入已有的会议音频进行转写并生成会议纪要、会议总结、会议待办Windows系统上支持系统托盘方便快速管理和操作小奥会议纪要主要有三个外部依赖ffmpeg: 用于将录制下来的音频、或者是导入的音频转换成mp3格式ASR服务用于将音频转换成文字LLM服务用于将会议纪录生成会议纪要、会议总结和会议待办其中ASR服务和LLM服务对应到小奥会议纪要 Web 界面左下角的配置里的两个配置项。全都支持私有化本地部署。三、功能特性️麦克风 系统音频双轨录制- 支持同时录制麦克风和系统音频带自动增益控制(AGC)AI 实时转录- 对接 OddASR 服务支持字级时间戳输出智能摘要生成- 支持 Ollama/OpenAI/Claude/Groq 多种 LLM 提供商音字联动- 点击文字跳转到音频对应位置播放时高亮当前文字多格式导出- 支持 TXT、Markdown、JSON 格式导出全文搜索- 支持转录内容搜索⏱️录音暂停/恢复- 支持录音过程中暂停和恢复四、快速安装# 基础安装pipinstallOddMinutes# Windows 用户包含系统托盘和快捷键支持pipinstallOddMinutes[windows]# 启动程序OddMinutes首次运行时程序会自动初始化数据库并创建用户数据目录。Windows下会在桌面自动创建两个快捷方式具体如下图所示五、外部服务依赖主要是两个依赖一个是ASR服务另一个是LLM服务。对应到小奥会议纪要 Web 界面左下角的配置里的两个配置项。全都支持私有化本地部署。1. OddASR 语音识别服务必需- 用于音频转录提供 OpenAI 兼容的/v1/audio/transcriptions接口。安装 OddASR 服务pip install oddasr运行 OddASR 服务oddasr-server在小奥会议纪要的Web界面左下角配置 OddAsr的地址默认地址http://127.0.0.1:9002配置文件.env中的ODDASR_HOST和ODDASR_PORT支持verbose_json响应格式返回段级和字级时间戳2. Ollama / LLM 服务可选- 用于 AI 摘要生成。默认地址http://localhost:11434Ollama支持提供商Ollama本地、OpenAI、Claude、Groq通过pydantic-ai库统一调用3. FFmpeg必需-pydub依赖 FFmpeg 进行音频格式转换。六、安装与运行环境要求Python 3.12FFmpeg需添加到系统 PATHOddASR 服务运行中Ollama可选用于本地 LLM 摘要PyPI 安装推荐# 基础安装pip install OddMinutes# Windows 用户包含系统托盘和快捷键支持pip install OddMinutes[windows]启动程序OddMinutes首次运行时程序会自动完成以下操作初始化数据库自动执行 migrate创建用户数据目录位于%APPDATA%\Local\OddMeta\OddMinutes或~/.local/share/OddMeta/OddMinutes复制必要的配置文件开发安装从源码git clone https://github.com/oddmeta/OddMinutes.git cd OddMinutes# 安装开发依赖pip install-r requirements.txt# 安装 Windows 额外依赖Windows 用户pip install pywin32 keyboard pynput# 配置环境变量copy.env.example.env编辑.env文件设置关键配置# Django 配置 DJANGO_SECRET_KEYyour-secret-key-here DEBUGTrue ALLOWED_HOSTSlocalhost,127.0.0.1 # OddASR 配置必需 ODDASR_HOST127.0.0.1 ODDASR_PORT9002 # Ollama 配置可选用于本地 LLM OLLAMA_HOSThttp://localhost:11434 # 音频配置 AUDIO_SAMPLE_RATE16000 AUDIO_CHANNELS1 AUDIO_CHUNK_DURATION5 # 会议设置 AUTO_CLEANUP_DAYS7 MAX_AUDIO_FILE_SIZE500初始化数据库python manage.py migrate python manage.py init_defaults启动服务# 使用启动脚本start.bat# 或直接运行python manage.py runserver 127.0.0.1:9011# 或使用命令行入口python launcher.py服务启动后访问http://127.0.0.1:9011用户数据目录通过 PyPI 安装后用户数据和配置文件存储在以下位置Windows:%APPDATA%\Local\OddMeta\OddMinutes或C:\Users\用户名\AppData\Local\OddMeta\OddMinutesLinux:~/.local/share/OddMeta/OddMinutesmacOS:~/Library/Application Support/OddMeta/OddMinutes该目录包含.env- 环境变量配置文件db.sqlite3- SQLite 数据库文件media/- 音频文件存储目录logs/- 日志文件目录七、配置说明环境变量默认值使用模块说明DJANGO_SECRET_KEYdjango-insecure-change-me全局Django 安全密钥DEBUGTrue全局调试模式ALLOWED_HOSTSlocalhost,127.0.0.1全局允许的主机ODDASR_HOST127.0.0.1transcriptionOddASR 服务主机ODDASR_PORT9002transcriptionOddASR 服务端口OLLAMA_HOSThttp://localhost:11434summaryOllama 服务地址AUDIO_SAMPLE_RATE16000recording音频采样率AUDIO_CHANNELS1recording音频通道数AUDIO_CHUNK_DURATION5recording音频块持续时间秒AUTO_CLEANUP_DAYS7meetings自动清理天数MAX_AUDIO_FILE_SIZE500全局最大音频文件大小MB八、前端功能音字联动前端实现了音频播放与文字的双向联动播放时高亮音频播放到某个时间点自动高亮对应的 word 和 segment点击跳转点击某个 word音频跳转到对应时间点并开始播放拖动同步拖动音频进度条自动滚动到对应的文字位置转录编辑模式支持对转录内容进行编辑编辑转录文本修改发言人名称批量保存修改实时电平监测通过 WebSocket 实时显示麦克风和系统音频的电平实时电平条显示AGC 增益信息提示峰值监测搜索功能支持在所有会议的转录内容中进行全文搜索返回匹配的会议列表和上下文。九、开发命令# 启动开发服务器python manage.py runserver 127.0.0.1:9011# 创建数据库迁移python manage.py makemigrations# 执行数据库迁移python manage.py migrate# 初始化默认数据python manage.py init_defaults# 创建超级用户python manage.py createsuperuser# 进入 Django Shellpython manage.py shell# 运行测试python manage.py test十、注意事项OddASR 服务使用前请确保 OddASR 服务已启动并正常运行FFmpeg安装 pydub 前需确保 FFmpeg 已安装并添加到系统 PATHOllama使用本地 LLM 生成摘要时需先ollama pull qwen3:8b下载模型音频设备权限首次使用录音功能时需授予麦克风权限系统音频录制Windows 下录制系统音频需要启用立体声混音设备或使用虚拟音频线缆LicenseMIT License