Files
nexus/Project/synthmind/项目需求.md
2026-08-30 20:34:33 +08:00

54 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
请根据以下项目需求编写 音频提取和转录文字的脚本
项目目的:
- 解析提供的视频文件,提取音频,转录成文字,利用AI分析文字及视频内容,总结归纳视频内容。生成脑图或其他格式文档。
主要功能
## 提取音频
1. 扫描指定视频文件或者遍历指定目录里的视频文件
- 同时列出已存在的 .mp3 文件,用于判断哪些已经处理过
2. 进度追踪
- 生成manifest文件,并标记哪些视频文件是否已经提取音频状态
- 在视频同一目录或指定目录下维护一个JSON格式本地进度文件,记录已完成的文件
- 执行相应命令时自动跳过已处理的文件,支持中断后重新运行继续,如 a.mp4已经标记提取了音频生成了a.mp3, 则提取音频操作不再执行此文件。
3. 在分析阶段如果视频文件过大,可先切分成更小尺寸的视频进行后续处理,manifest文件需要记录切分后的视频文件名
4. FFmpeg 音频提取
- 将本地 .mp4 送入 FFmpeg,执行相应的命令提取音频轨道,默认在当前ubuntu机器上已经安装了ffmpeg 命令集
- 转码参数:MP3 格式,64k 比特率,22050Hz 采样率,单声道(主要针对语音课程优化,体积小)
- 不落地中间文件,pipe 直写输出
5. 保存mp3文件,和原文件名保持一致如原始视频文件为 test1.mp4, 则提取音频后的音频文件名为test1.mp3
- 支持路径中含空格的文件名
- 支持包含中文的文件名
6. 提取音频,转录文字,内容归纳整理分别用不同的脚本进行处理
## 转录文字
1. 扫描指定视频文件或者遍历指定目录里的视频文件
- 同时列出已存在的 .mp3 文件,用于判断哪些已经处理过
2. 进度追踪
- 生成manifest文件,并标记哪些视频文件是否已经转录文字的状态
- 在视频同一目录或指定目录下维护一个JSON格式本地进度文件,记录已完成的文件
- 执行相应命令时自动跳过已处理的文件,支持中断后重新运行继续,如 a.mp3已经标记已经转录了文字 生成了a.txt, 则转录文字操作不再执行此文件。
3. 在分析阶段如果预估通过mp3生成的txt文件过大,可先切分成更小尺寸的MP3进行后续处理,manifest文件需要记录切分后的音频文件名
- 显示文件大小、进度计数(当前/总数)、最终成功/失败统计,可重新执行未成功的音频转录
- 转录音频用openai-whisper命令,默认在当前系统已经安装了whisper命令行
## 内容归纳整理
- 待定
请分析extract_audio.py 和transcribe_audio.py 这两个脚本,并用这两个脚本进行全面的测试。
我已经准备了一个测试视频文件: /Users/weishen/MyFiles/03-SU软件的优化设置.mp4
/mnt/d/temp/03-SU软件的优化设置.mp4
请用这个视频文件进行测试 提取音频, 转录文字。
所有测试通过之后,请写一份详细的文档README.md来说明这两个脚本的使用方法。
我想修改openai-whisper的输入参数,可以让我自定义:
1. 语言: zh/en 这样可以提高转录文字的精度
2. 模型选择 ,现在默认时tiny, 速度快但精度低, 我希望可以提供 tiny/base/small/medium这几种,请预先下载好模型。在必要时可以根据参数来调取。
3. 请分别测试用不同的模型提取文字生成不同的txt,我来进行比较看哪个精度高
4. 脚本修改完成后,根据修改同时更新README.md