智能会议记录与分析工具Offmute

文摘   2024-11-10 10:53   湖南  

项目简介

智能会议记录与分析工具,能够将音视频内容转换为文本,同时识别不同发言人,生成结构化会议报告


特点

  • 🎯转录和分类:将音频/视频内容转换为文本,同时识别不同的说话者

  • 🎭智能说话人识别:尽可能通过姓名和角色识别说话人

  • 📊会议报告:生成包含要点、行动项目和参与者资料的结构化报告

  • 🎬视频分析:提取并分析视频会议中的视觉信息,了解演示何时开始播放

  • 多个处理层:从预算友好型到高级处理选项

  • 🔄稳健的处理:通过自动分块和适当的清理来处理长时间的会议

  • 📁灵活的输出:带有可选中间输出的 Markdown 格式的转录本和报告


🏃 快速入门

# Set your Gemini API keyexport GEMINI_API_KEY=your_key_here
# Run on a meeting recordingnpx offmute path/to/your/meeting.mp4

📦 安装

作为 CLI 工具

npx offmute <Meeting_Location> <options>

作为一个包

npm install offmute

如果有bunxbun ,效果会更快!


 💻 用法

命令行界面

npx offmute <input-file> [options]


选项:

  • -t, --tier <tier> :处理层(第一层、业务层、经济层、预算层)[默认值:“业务”]

  • -a, --all : 保存所有中间输出

  • -sc, --screenshot-count <number> :要提取的屏幕截图数量[默认值:4]

  • -ac, --audio-chunk-minutes <number> :音频块的长度(以分钟为单位)[默认值:10]

  • -r, --report : 生成结构化会议报告

  • -rd, --reports-dir <path> :报告输出的自定义目录


处理层

  • First Tier ( first ):适用于所有操作的 Pro 模型

  • 业务层( business ):Pro 用于描述,Flash 用于转录

  • Economy Tier ( economy ):适用于所有操作的 Flash 模型

  • 预算层budget用于描述的 Flash,用于转录的 8B


作为模块

import {  generateDescription,  generateTranscription,  generateReport,} from "offmute";
// Generate description and transcriptionconst description = await generateDescription(inputFile, { screenshotModel: "gemini-1.5-pro", audioModel: "gemini-1.5-pro", mergeModel: "gemini-1.5-pro", showProgress: true,});
const transcription = await generateTranscription(inputFile, description, { transcriptionModel: "gemini-1.5-pro", showProgress: true,});
// Generate a structured reportconst report = await generateReport( description.finalDescription, transcription.chunkTranscriptions.join("\n\n"), { model: "gemini-1.5-pro", reportName: "meeting_summary", showProgress: true, });


🔧 高级用法

中间输出

当使用-a标志运行时,offmute 会保存中间处理文件:

input_file_intermediates/├── screenshots/          # Video screenshots├── audio/               # Processed audio chunks├── transcription/       # Per-chunk transcriptions└── report/             # Report generation data


定制块尺寸

调整不同内容类型的处理:

# Longer chunks for presentationsoffmute presentation.mp4 -ac 20
# More screenshots for visual-heavy contentoffmute workshop.mp4 -sc 8


 ⚙️ 它是如何运作的

offmute 使用多级管道:

  1. 内容分析

  • 提取视频关键时刻截图

  • 将音频分成可处理的片段

  • 生成视觉和音频内容的初始描述

  • 转录和二值化

    • 通过上下文感知处理音频块

    • 识别并标记说话者

    • 保持跨块的对话流

  • 报告生成(Spreadfill)

    • 使用独特的“Spreadfill”技术:

    1. 生成带有章节标题的报告结构

    2. 使用完整上下文独立填充每个部分

    3. 确保叙述连贯,同时保持详细的覆盖范围


    Spreadfill 铺展填充技术

    Spreadfill 方法有助于保持一致性,同时允许详细分析:

    // 1. Generate structureconst structure = await generateHeadings(description, transcript);
    // 2. Fill sections independentlyconst sections = await Promise.all( structure.sections.map((section) => generateSection(section, fullContext)));
    // 3. Combine into coherent reportconst report = combineResults(sections);

    🛠️要求

    • Node.js 14 或更高版本

    • ffmpeg 安装在您的系统上

    • Google Gemini API 密钥

    项目链接

    https://github.com/SouthBridgeAI/offmute

    扫码加入技术交流群,备注开发语言-城市-昵称

    合作请注明


     

    关注「GitHubStore」公众号


    GitHubStore
    分享有意思的开源项目
     最新文章