Skip to main content

Meeting Record

跨 Linux 和 Windows 的会议录音会后处理服务。当前版本支持导入麦克风与会议回环音频、生成单一 16 kHz mixed 文件、创建幂等处理任务、保存审计记录、人工修订及 Markdown/JSON/文本导出。

当前边界

  • 两个平台都支持导入已有音频;这是默认、稳定的首期工作流。
  • 实时录音需要在 config.toml 中配置本机可用的麦克风和回环命令及设备名。
  • 规范化和混音需要 ffmpegPATH 中。
  • 腾讯客户端实现请求签名和录音/声纹 API 调用,但需要有效账号、凭据和真实音频完成联调。
  • 本地重叠音源分离默认不启用;Phase 0 的 CPU 延迟和 CER 门槛通过前,只标记重叠并要求人工复核。
  • 不包含腾讯会议/飞书自动入会、实时字幕或桌面自动化。

安装

需要 Python 3.11 或更高版本。

从 PyPI 安装(发布后):

python -m pip install meeting-rec
meeting-rec init
meeting-rec --config config.toml

安装后访问 http://127.0.0.1:8000/config.toml、ASR/说话人/标点模型、FFmpeg 和 .env 属于运行机器配置,不会打进 Python wheel。

发布者构建检查:

python -m pip install build twine
python -m build
python -m twine check dist/*

上传时建议使用 PyPI API Token:

python -m twine upload dist/*

不要把 PyPI 密码、Token、.envconfig.toml 提交到 Git。

Linux:

python3 -m venv .venv
.venv/bin/pip install -e '.[dev]'
cp config.example.toml config.toml
.venv/bin/python -m pytest -v

Windows PowerShell:

py -3.11 -m venv .venv
.venv\Scripts\pip.exe install -e ".[dev]"
Copy-Item config.example.toml config.toml
.venv\Scripts\python.exe -m pytest -v

启动

Linux:

MEETING_REC_CONFIG=config.toml .venv/bin/uvicorn meeting_rec.app:create_app --factory

Windows PowerShell:

$env:MEETING_REC_CONFIG = "config.toml"
.venv\Scripts\uvicorn.exe meeting_rec.app:create_app --factory

默认数据目录为 data/,SQLite 文件为 data/meeting-rec.sqlite3。API 文档位于 http://127.0.0.1:8000/docs

Web 控制台

启动服务后访问 http://127.0.0.1:8000/。控制台提供以下本机工作流:

  • 在火山引擎与腾讯云之间选择语音服务,将凭据保存到项目根目录的 .env;页面只显示是否已配置,不回显密钥。火山引擎默认使用单个豆包语音 API Key,腾讯云使用 SecretIdSecretKey,不要求额外填写 AppId。火山配置保存后可用公开示例音频提交一次新版语音任务,测试成功表示 Key、资源 volc.seedasr.auc 和提交接口均可用。
  • 创建或选择会议记录,并在新窗口打开 meeting.tencent.com 的 HTTPS 会议链接。
  • 使用浏览器麦克风录音、试听,或选择已有音频文件上传。
  • 服务端使用 FFmpeg 将上传内容转换为 16 kHz 单声道 mixed.wav
  • 创建处理任务、查看任务状态、刷新转写内容,并导出 TXT、Markdown 或 JSON。

浏览器录音只能采集麦克风,不能直接捕获腾讯会议的扬声器输出。采集会议双方声音仍需要在 config.toml 中配置 Windows 麦克风和回环设备。当前版本的 /process 只创建待处理任务,尚未包含自动执行腾讯 ASR 的后台 worker;控制台会将该状态明确显示为“等待处理”。

音频工作流

  1. POST /meetings 创建会议。
  2. 使用 POST /meetings/{id}/recordings/import 分别导入 micloopback 文件。
  3. 调用 meeting_rec.audio.processing 中的规范化和混音命令生成唯一 mixed 录音,再导入为 mixed
  4. POST /meetings/{id}/process 创建幂等处理任务。
  5. GET /jobs/{job_id} 查看任务,GET /meetings/{id}/transcript 查看记录。
  6. PATCH /transcripts/{id} 人工修订,GET /meetings/{id}/export?format=markdown 导出。

导入请求示例:

{
  "type": "mic",
  "source_path": "/absolute/path/to/mic.wav",
  "recording_start_at": "2026-07-30T09:00:00Z",
  "format": "wav"
}

实时采集配置

config.example.toml 给出 PipeWire 和 Windows DirectShow 命令格式。设备名必须按目标机器修改;没有配置时 API 应返回明确错误,不能假设固定设备名。

Linux 可先使用 wpctl status 查看 PipeWire 节点;Windows 可使用以下命令查看 ffmpeg 音频设备:

ffmpeg -list_devices true -f dshow -i dummy

凭据

配置文件只保存环境变量名。控制台将默认厂商写入 MEETING_REC_ASR_PROVIDER。火山引擎凭据使用 VOLCENGINE_API_KEY,腾讯凭据使用 TENCENT_SECRET_IDTENCENT_SECRET_KEY。这些值不写入配置快照、数据库、审计或导出文件。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meeting_rec-0.1.1.tar.gz (41.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meeting_rec-0.1.1-py3-none-any.whl (47.6 kB view details)

Uploaded Python 3

File details

Details for the file meeting_rec-0.1.1.tar.gz.

File metadata

  • Download URL: meeting_rec-0.1.1.tar.gz
  • Upload date:
  • Size: 41.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.3

File hashes

Hashes for meeting_rec-0.1.1.tar.gz
Algorithm Hash digest
SHA256 fde3c931e0ea10b77b7af32bea8916274faaa1daa21b22f8d1c9e0441784e5db
MD5 5274083d9950716a6bc6f8f1bf8fd606
BLAKE2b-256 7fca3c7f6215b392b37d855cd8a88b0e0ff0dbb8cbc7544f4f2aa4d452091799

See more details on using hashes here.

File details

Details for the file meeting_rec-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: meeting_rec-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 47.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.3

File hashes

Hashes for meeting_rec-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 11dbda8adfaf7a881b392ded36c6560e6044177d764c78d27322225c6576a2cc
MD5 d08a5af758db5c510d5f45c4e8baba25
BLAKE2b-256 ea55727910874efdbab20544f4232f95612af83040c7173ed821a3d4eebf8c02

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page