一、前言
开源的智能会议纪要系统,支持实时录音、AI 转录、智能摘要生成和音字联动功能,基本上我能想到的一些功能都已经支持了。
而且也支持全私有化部署,确保所有数据都只能您自己的电脑上,保护您的隐私。
虽然豆包的音频纪要功能仍然免费可用,但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 格式导出
- 🔍 全文搜索 – 支持转录内容搜索
- ⏱️ 录音暂停/恢复 – 支持录音过程中暂停和恢复
四、快速安装
# 基础安装
pip install OddMinutes
# Windows 用户(包含系统托盘和快捷键支持)
pip install OddMinutes[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:11434(Ollama) - 支持提供商:Ollama(本地)、OpenAI、Claude、Groq
- 通过
pydantic-ai库统一调用
3. FFmpeg
必需 – pydub 依赖 FFmpeg 进行音频格式转换。
六、安装与运行
环境要求
- Python 3.12+
- FFmpeg(需添加到系统 PATH)
- OddASR 服务(运行中)
- 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_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# OddASR 配置(必需)
ODDASR_HOST=127.0.0.1
ODDASR_PORT=9002
# Ollama 配置(可选,用于本地 LLM)
OLLAMA_HOST=http://localhost:11434
# 音频配置
AUDIO_SAMPLE_RATE=16000
AUDIO_CHANNELS=1
AUDIO_CHUNK_DURATION=5
# 会议设置
AUTO_CLEANUP_DAYS=7
MAX_AUDIO_FILE_SIZE=500
初始化数据库
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\OddMinutes - Linux:
~/.local/share/OddMeta/OddMinutes - macOS:
~/Library/Application Support/OddMeta/OddMinutes
该目录包含:
.env– 环境变量配置文件db.sqlite3– SQLite 数据库文件media/– 音频文件存储目录logs/– 日志文件目录
七、配置说明
| 环境变量 | 默认值 | 使用模块 | 说明 |
|---|---|---|---|
DJANGO_SECRET_KEY | django-insecure-change-me | 全局 | Django 安全密钥 |
DEBUG | True | 全局 | 调试模式 |
ALLOWED_HOSTS | localhost,127.0.0.1 | 全局 | 允许的主机 |
ODDASR_HOST | 127.0.0.1 | transcription | OddASR 服务主机 |
ODDASR_PORT | 9002 | transcription | OddASR 服务端口 |
OLLAMA_HOST | http://localhost:11434 | summary | Ollama 服务地址 |
AUDIO_SAMPLE_RATE | 16000 | recording | 音频采样率 |
AUDIO_CHANNELS | 1 | recording | 音频通道数 |
AUDIO_CHUNK_DURATION | 5 | recording | 音频块持续时间(秒) |
AUTO_CLEANUP_DAYS | 7 | meetings | 自动清理天数 |
MAX_AUDIO_FILE_SIZE | 500 | 全局 | 最大音频文件大小(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 Shell
python manage.py shell
# 运行测试
python manage.py test
十、注意事项
- OddASR 服务:使用前请确保 OddASR 服务已启动并正常运行
- FFmpeg:安装 pydub 前需确保 FFmpeg 已安装并添加到系统 PATH
- Ollama:使用本地 LLM 生成摘要时,需先
ollama pull qwen3:8b下载模型 - 音频设备权限:首次使用录音功能时需授予麦克风权限
- 系统音频录制:Windows 下录制系统音频需要启用立体声混音设备或使用虚拟音频线缆
License
MIT License