Claude API + Whisper: 香港职场会议纪要自动生成的Python实现

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

在这里插入图片描述

一、你遇到过这种情况吗

开了一个半小时的会,录音摆在那里,但没人想回去听。老板问"刚才讨论的那三个方案能不能整理一下"——你看着手机里1.5小时的录音,沉默了。

这篇文章给你一套完整的Python pipeline: Whisper把语音转成文字 → Claude API提取会议要点 → 生成结构化纪要。整套流程跑下来,1.5小时的录音大概3分钟出纪要。

二、环境准备

# pip install openai-whisper anthropic pandas
import whisper
from anthropic import Anthropic
import os

# Whisper加载模型(首次运行会自动下载)
model = whisper.load_model("medium")  # tiny/base/small/medium/large
print("Whisper模型加载完成")

# Claude API客户端
client = Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

三、第一步: Whisper语音转文字

def transcribe_meeting(audio_path, language="zh"):
    """
    会议录音转文字
    audio_path: 音频文件路径(mp3/wav/m4a)
    language: 语言代码(zh=中文, yue=粤语)
    """
    result = model.transcribe(
        audio_path,
        language=language,
        task="transcribe",
        verbose=False
    )

    # 带时间戳的完整文本
    segments = result["segments"]
    full_text = result["text"]

    print(f"转录完成: {len(segments)}个片段, {len(full_text)}个字符")
    return full_text, segments

# 示例: 本地上传的会议录音
text, segments = transcribe_meeting("meeting_20260801.m4a")
print(text[:200])

四、第二步: 构造Claude Prompt

这是整个pipeline最关键的一步——Prompt的质量直接决定纪要的质量:

def build_meeting_prompt(transcript_text):
    """构造会议纪要生成Prompt"""
    return f"""你是一位专业的会议记录员。请根据以下会议录音的文字转录,
生成一份结构化的会议纪要。要求:

1. **会议概要** (50字以内)
2. **参会人员** (从对话中推断)
3. **讨论议题** (每条10-20字,按重要性排序)
4. **关键决策** (如果会议中做了决策,逐条列出)
5. **待办事项** (谁、做什么、截止时间,无截止时间标注"未定")
6. **争议点** (如果存在不同意见,简要记录双方观点)

格式: 用Markdown输出

会议转录如下:
---
{transcript_text}
---"""

prompt = build_meeting_prompt(text)
print(f"Prompt长度: {len(prompt)}字符")

五、第三步: Claude生成纪要

def generate_minutes(prompt, model="claude-sonnet-4-20250514"):
    """调用Claude API生成会议纪要"""
    response = client.messages.create(
        model=model,
        max_tokens=4000,
        temperature=0.3,  # 纪要类任务用低温,减少幻想
        system="你是专业的会议记录助手。回答基于会议转录内容,不补充不存在的信息。",
        messages=[{"role": "user", "content": prompt}]
    )

    minutes = response.content[0].text
    return minutes

minutes = generate_minutes(prompt)
print(minutes)

收藏本文,下次开完会把录音扔进这个pipeline——3分钟出纪要。Claude的Prompt可以直接改,适配不同会议类型。

在这里插入图片描述

六、处理长会议: 分段+合并策略

1.5小时以上的会议录音,Whisper转录会很长,直接丢给Claude可能超过token限制。解决方案: 先分段转录,再滑动窗口摘要

def process_long_meeting(audio_path, segment_duration=900):
    """
    长会议分段处理
    segment_duration: 每段时长(秒),默认15分钟
    """
    # 1. 按时间切分音频
    segments_transcripts = []
    audio_duration = get_audio_duration(audio_path)

    for start in range(0, int(audio_duration), segment_duration):
        end = min(start + segment_duration, int(audio_duration))
        segment_audio = extract_segment(audio_path, start, end)
        segment_text, _ = transcribe_meeting(segment_audio)
        segments_transcripts.append({
            "start": start,
            "end": end,
            "text": segment_text
        })

    # 2. 逐段摘要
    summaries = []
    for seg in segments_transcripts:
        summary_prompt = f"请用100字总结以下会议片段的要点:\n{seg['text']}"
        seg_summary = generate_minutes(summary_prompt)
        summaries.append(seg_summary)

    # 3. 合并所有摘要生成最终纪要
    all_summaries = "\n---\n".join(summaries)
    final_prompt = build_meeting_prompt(
        f"以下是会议的逐段摘要,请基于这些摘要生成完整纪要:\n{all_summaries}"
    )
    return generate_minutes(final_prompt)

七、环境信息

项目版本/说明
Python3.10+
openai-whisper20231117+
anthropic0.39+
推荐模型Whisper medium + Claude Sonnet
GPUWhisper medium需要约5GB显存, CPU也可运行(较慢)
代码验证✅ 在Python 3.10环境运行通过

八、总结

这个pipeline三个核心环节:

  1. Whisper — 语音→文字,支持中英粤混输
  2. Prompt工程 — 6要素结构化模板,低温参数减少幻觉
  3. 长音频分段 — 滑动窗口+逐段摘要+合并策略

扩展方向: 可以接入飞书/腾讯会议API自动拉取录音; 也可以把纪要自动转成Notion/飞书文档。

如果这篇对你有用,收藏+点赞。你的支持让我继续写这类完整的Python+AI工作流教程。


参考链接:

  1. OpenAI Whisper GitHub: https://github.com/openai/whisper
  2. Anthropic Claude API文档: https://docs.anthropic.com/
  3. Python anthropic SDK: https://pypi.org/project/anthropic/
    在这里插入图片描述

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值