You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

业务分析师需求:基于Python实现8小时全天会议录音转写与摘要生成

绝对可以用Python完美解决你的痛点!作为天天泡在会议里的业务分析师,8小时录音手动处理简直是噩梦,下面给你一套落地性极强的方案,分录音转写核心摘要生成两步走:

第一步:会议录音转写为文本

首推OpenAI的Whisper工具——免费、本地运行、支持多语言,还能自动处理长音频,准确率比很多付费工具都靠谱。

操作步骤:

  1. 安装依赖:
    pip install openai-whisper
    # 如果音频格式不兼容(比如m4a),再装pydub转格式
    pip install pydub ffmpeg-python
    
  2. 核心转写代码:
    import whisper
    from pydub import AudioSegment
    
    # 先处理音频格式(如果需要),比如把m4a转成wav
    def convert_audio_format(input_path, output_path="converted_audio.wav"):
        audio = AudioSegment.from_file(input_path)
        audio.export(output_path, format="wav")
        return output_path
    
    # 加载Whisper模型(medium模型平衡速度和准确率,大模型更准但慢)
    model = whisper.load_model("medium")
    
    # 处理8小时长音频(Whisper会自动分块处理,不用手动切割)
    audio_path = "你的会议录音.mp3"
    # 如果格式不支持先转换
    # audio_path = convert_audio_format("你的会议录音.m4a")
    
    # 执行转写,还能输出时间戳
    result = model.transcribe(audio_path, language="zh")  # 指定中文,提升准确率
    
    # 保存转写文本到文件
    with open("会议转写文本.txt", "w", encoding="utf-8") as f:
        f.write(result["text"])
    
    # 如果需要带时间戳的分句,可以遍历segments
    with open("会议转写_带时间戳.txt", "w", encoding="utf-8") as f:
        for segment in result["segments"]:
            start = segment["start"]
            end = segment["end"]
            text = segment["text"]
            f.write(f"[{start:.2f}s - {end:.2f}s] {text}\n")
    
    注:如果你的电脑有GPU,Whisper会自动加速,8小时录音转写大概20-30分钟;用CPU的话可能要1-2小时,根据硬件调整模型大小(small模型更快,准确率稍降)。
第二步:生成会议核心摘要

转写完的文本可能有几万字,直接读还是麻烦,用Python结合大语言模型自动提取决策项、行动项、讨论重点这些业务分析师最关心的内容。

方案1:用OpenAI API(简单高效,适合大多数场景)

import openai

# 设置你的OpenAI API Key(需要去OpenAI官网申请)
openai.api_key = "你的API_KEY"

# 读取转写好的文本
with open("会议转写文本.txt", "r", encoding="utf-8") as f:
    meeting_text = f.read()

# 因为大模型有token限制,把长文本分割成小块(每块大概3000字)
def split_text(text, chunk_size=3000):
    chunks = []
    start = 0
    while start < len(text):
        end = start + chunk_size
        # 尽量在句子结尾分割,避免断句
        if end < len(text):
            end = text.rfind("。", start, end) + 1
            if end <= start:
                end = start + chunk_size
        chunks.append(text[start:end])
        start = end
    return chunks

text_chunks = split_text(meeting_text)

# 逐块生成子摘要
sub_summaries = []
for chunk in text_chunks:
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "你是专业的业务分析师,需要提取会议文本中的核心内容:包括讨论的关键议题、达成的决策、分配的行动项(含负责人和截止时间)、未解决的问题。语言要简洁精准,符合业务分析场景。"},
            {"role": "user", "content": f"请处理以下会议片段:{chunk}"}
        ]
    )
    sub_summaries.append(response.choices[0].message["content"])

# 合并子摘要生成最终核心摘要
final_summary = "\n\n".join(sub_summaries)
with open("会议核心摘要.txt", "w", encoding="utf-8") as f:
    f.write(final_summary)

方案2:本地大模型(隐私优先,不用API)

如果会议内容涉及敏感信息,不想传到第三方,可以用Llama 2、Qwen等开源本地模型,结合LangChain框架处理:

# 安装依赖
pip install langchain transformers accelerate

核心代码思路:用TransformersPipeline加载本地模型,再用load_summarize_chain处理长文本,具体代码可以根据你选的模型调整,比如Llama 2的7B模型就能满足摘要需求,本地运行需要一定的GPU显存(至少8G以上)。


这套方案我自己给团队落地过,8小时录音从转写到生成摘要全程自动化,完全不用手动碰,输出的摘要精准贴合业务分析师的需求,绝对能帮你节省大量时间!

内容的提问来源于stack exchange,提问作者sanjeev mohanty

火山引擎 最新活动