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.0.tar.gz (41.5 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.0-py3-none-any.whl (47.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meeting_rec-0.1.0.tar.gz
  • Upload date:
  • Size: 41.5 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.0.tar.gz
Algorithm Hash digest
SHA256 8cea536dbebace2a1c4fa9ccd338861a9ce13b281332a45edf2c8fb9b905cb58
MD5 40cd72095f96590d5688b44ca3802e54
BLAKE2b-256 fe1e0a067038b69a26604208253bc408e80a5dbb493b9b08112844c289591206

See more details on using hashes here.

File details

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

File metadata

  • Download URL: meeting_rec-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 47.4 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8a3b1ff27d94f539cbd0b02d518b99d47e4d673af71b9c78a14e6963eca9bbf
MD5 83327154b81228af2da42b53c4682290
BLAKE2b-256 6bfb04654cba6705fe4e9504a06fbf83d05ca7b38f3887e89299a856a549370b

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.1

2 files

This release

0.1.0 This release

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