使用AI一步生成音视频文件的会议纪要或者课后笔记

使用AI一步生成音视频文件的会议纪要或者课后笔记

一、流程

ffmpeg 将 输入的音视频抽取wav文件,输出格式16KHz的单声道16位音频。

采用实时ASR将wav文件实时识别输出文本。

采用大语言模型分段提取摘要,再最后生成Markdown格式的会议纪要。

二、环境准备:

本程序需要用到大语言模型,可以采用阿里的千问3-14B模型,也可以采用大模型的OpenAI 兼容的API接口,比如deepseek,

设置--base-url 和 --api-key 及 --model 即可,比如:--base-url https://api.deepseek.com --api-key your-deepseek-api-key --model deepseek-chat

复制代码
# 下载源码
git clone https://github.com/chendanyu/Audio2Minutes.git

# Linux安装:
sudo apt update && sudo apt install ffmpeg

conda create -n meeting python=3.10
conda activate meeting

pip install torch torchaudio
pip install -U funasr
pip install openai tiktoken

#可选安装,如果要输出pdf,安装markdown weasyprint库:
pip install markdown weasyprint
# 若果报错,则切换镜像源
# pip install markdown weasyprint -i https://pypi.org/simple

# 如果采用本地部署LLM,则需要安装vllm并下载模型Qwen3-14B-AWQ:
pip install vllm -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

下载模型:
git lfs install
cd /data/model/iic/
git clone https://www.modelscope.cn/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online.git
git clone https://www.modelscope.cn/iic/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx.git

cd /data3/
git clone https://www.modelscope.cn/Qwen/Qwen3-14B-AWQ.git

三、使用:

3.1.启动本地大模型

如果使用本地大模型进行推理,则启动服务:

bash 复制代码
cd /data4/meeting
conda activate meeting

# Qwen3-14B-AWQ 占用 46G左右显存
CUDA_VISIBLE_DEVICES=0,1 vllm serve /data3/Qwen3-14B-AWQ --served-model-name Qwen3-14B-AWQ --chat-template ./qwen3_nonthinking.jinja  --tensor-parallel-size 2 --api-key AI-QWEN3-A5b7E3g9 --port 8603

# 此时程序的参数为:--base-url http://127.0.0.1:8603/v1 --api-key AI-QWEN3-A5b7E3g9 --model Qwen3-14B-AWQ

3.2. 参数说明

3.2.1. 输入输出参数

参数 短参数 必需 默认值 描述
input 无 是 无 输入文件或目录路径(音频/视频文件)
--template -t 是 无 主模板文件路径(JSON格式)
--output -o 否 自动生成 输出文件路径(单个文件模式)或输出目录(批量模式)
--batch -b 否 False 启用批量处理模式,当输入为目录时使用

3.2.2. 音频处理参数

参数 短参数 必需 默认值 描述
--ffmpeg-path 无 否 ffmpeg ffmpeg可执行文件路径
--asr-model 无 否 无 ASR(自动语音识别)模型路径
--punc-model 无 否 无 标点恢复模型路径
--chunk-ms 无 否 600 ASR处理块大小(毫秒),较小的值可以提高实时性但可能降低准确性
--keep-wav 无 否 False 保留中间生成的WAV文件
--keep-transcript 无 否 False 保留转录的文本文件

3.2.3. API配置参数

参数 短参数 必需 默认值 描述
--base-url 无 否 http://10.234.1.105:8603/v1 LLM API基础URL
--api-key 无 否 AI-QWEN3-A5b7E3g9 LLM API密钥
--model 无 否 Qwen3-14B-AWQ 使用的LLM模型名称

3.2.4. 文本处理参数(覆盖模板设置)

这些参数会覆盖模板文件中的相应配置:

参数 短参数 必需 默认值 描述
--chunk-size 无 否 模板设置 文本分割块大小(token数)
--overlap 无 否 模板设置 文本块重叠大小(token数)
--batch-size 无 否 模板设置 批量处理大小(段落数)
--batch-delay 无 否 模板设置 批次之间的延迟时间(秒)

3.2.5. 自定义变量参数

参数 短参数 必需 默认值 描述
--variables 无 否 无 自定义变量,JSON格式字符串,如 '{"meeting_title":"周会","host":"张三"}'

3.2.6. 其他参数

参数 短参数 必需 默认值 描述
--verbose -v 否 False 启用详细输出模式,显示更多调试信息
--max-workers 无 否 2 批量处理时的最大工作线程数

3.3.生成Markdown文件或者pdf文件:

方案一、分布生成

之所以分步生成,是因为Qwen3-14B-AWQ模型差不多需要46G GPU,而ASR和加标点模型也需要显存,此时超过我目前的总显存。如果是调用外部的openai兼容的API接口,则可以采用 "3.2.直接生成"这样更简单。

复制代码
cd /data4/meeting
conda activate meeting

# 步骤1.音视频文件转文本
python audio_to_text.py meeting.mp4 -o meeting.txt

# 2.生成课后笔记
# 参数:
# --input 输入的文本文件
# --output 输出的markdown文件
# --template 输出文件的模板文件
python meeting_minutes_generator.py --input meeting.txt --output meeting.md --template ./templates/note_template.json

python meeting_minutes_generator.py --input meeting.txt --output meeting.pdf --template ./templates/note_template.json

# 或者,改用别的模板
python meeting_minutes_generator.py --input meeting.txt --output meeting.md --template ./templates/stock_template.json
方案二.直接生成

直接由音视频文件生成课后笔记或者会议纪要

复制代码
cd /data4/meeting
conda activate meeting

# 指定输出和自定义变量
python audio_to_minutes.py meeting.mp4 -t ./templates/note_template.json -o ./output/minutes.md --variables '{"meeting_title":"周例会","host":"张三"}'

# 采用deepseek-chat的API接口
python audio_to_minutes.py meeting.mp4 -t ./templates/note_template.json -o ./output/meeting.md --variables '{"meeting_title":"周例会","host":"张三"}' --base-url https://api.deepseek.com --api-key your-deepseek-api-key --model deepseek-chat

当已有的模板不满足自己所需时,可以按照templates目录下面已有的模板新建自己的模板,然后修改--template和--summary-template这2个参数后面的参数值即可。

四、完整代码

参见:https://github.com/chendanyu/Audio2Minutes

相关推荐
AI日报派送佬2 小时前
2026年10月14日AI行业日报|Gemini 4 Argon正式发布;小模型跨设备传播风险引发安全热议
网络·人工智能·openai·谷歌·deepseek·anthropic·ai日报
VidDown2 小时前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
镜象科技3 小时前
职业院校AI心理健康解决方案怎么选?三个特殊场景与三类路线
人工智能
Leo.yuan3 小时前
企业Data Agent架构选型:帆软Dora基于NL2BI的现有BI体系复用方案
大数据·人工智能
朱涛的自习室3 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
米小虾3 小时前
上下文:Agent 的眼睛里到底装着什么
人工智能·agent
米小虾4 小时前
Agent = 大脑 + 眼睛 + 手脚:一篇看懂现代 AI Agent 的骨架
人工智能
小小测试开发4 小时前
安全评测得分 0.9556 掉到 0.3257,只改了 top_k 和 prompt_style 之外的题面比例
人工智能·安全·prompt
slacker-kian4 小时前
[实践]-用LLM对文本结构化:把多段文本描述变成规范的 JSON 知识库
人工智能·llm·prompt·结构化·pydantic·one-shot 提示