跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

本地离线部署 Whisper 模型实现语音转写指南

本地离线部署 Whisper 模型进行语音转写,涵盖 Python 环境配置、FFmpeg 依赖安装、模型选择策略及命令行与 Python 脚本调用方法。重点解决中文识别准确性问题,并提供内存优化与格式转换的常见故障排查方案,适合需要私有化语音处理能力的开发者参考。

追风少年发布于 2026/4/9更新于 2026/7/2338 浏览

在本地搭建 Whisper 语音转写环境其实并不复杂,只要按部就班配置好依赖即可。整个过程适用于 Windows、macOS 和 Linux 系统,其中 Windows 亲测可用。

一、基础环境准备

  1. 安装 Python 确保安装 Python 3.8+ 版本:
  • 下载地址:python.org/downloads
  • 安装时务必勾选 "Add Python to PATH"(关键步骤)
  1. 验证 Python 安装 打开命令行(CMD/PowerShell/终端),输入 python --version 或 python3 --version(macOS/Linux),显示版本号即表示安装成功。

二、安装 Whisper

国内用户建议配置镜像加速以提升下载速度:

pip install openai-whisper -i https://pypi.tuna.tsinghua.edu.cn/simple
  1. 安装核心库 命令行输入以下命令(基础安装默认包含轻量模型支持):
pip install openai-whisper
  1. 安装音频处理依赖 Whisper 需要额外工具处理音频格式转换:Windows 需下载并安装 FFmpeg,将 ffmpeg.exe 所在目录添加到系统环境变量 PATH。

三、下载 Whisper 模型

Whisper 会自动下载所需模型,但推荐提前手动指定大型模型 large-v3 以获得最佳效果:

pip install "openai-whisper[large-v3]"

模型会保存在以下路径(可手动替换或管理):

  • Windows:C:\Users\你的用户名\.cache\whisper\
  • macOS/Linux:~/.cache/whisper/

四、基本使用方法

1. 命令行直接转写

# 转写音频文件(支持 WAV/MP3/MP4 等格式)
whisper 你的音频文件路径.wav --model large-v3 --language Chinese

# 示例(替换为你的文件路径)
whisper D:\Net_Program\test\whisper-test.wav --model large-v3 --language Chinese

2. 关键参数说明

  • --model:指定模型(tiny/base/small/medium/large-v3,越大精度越高,需求资源越多)
  • --language Chinese:指定语言为中文(避免自动检测错误)
  • --output_dir 输出目录:指定结果保存路径
  • --format txt:输出格式(支持 txt/srt/vtt 等)
  • 五、Python 脚本调用

    为了更灵活地集成到业务中,我们可以封装一个 Python 脚本。这里我特意加了繁简转换逻辑,防止识别结果出现繁体字混入的情况。

    import whisper
    import os
    import pathlib
    import subprocess
    from zhconv import convert  # 用于繁转简
    
    def check_ffmpeg():
        """检查 FFmpeg 是否安装并配置正确"""
        try:
            subprocess.run(
                ["ffmpeg", "-version"],
                check=True,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
                text=True
            )
            return True
        except FileNotFoundError:
            print("错误:未找到 FFmpeg 工具,请先安装并配置环境变量")
            return False
        except Exception as e:
            print(f"FFmpeg 检查失败:{str(e)}")
            return False
    
    def transcribe_audio(audio_path, model_name="large-v3", language="Chinese"):
        # 检查 FFmpeg
        if not check_ffmpeg():
            return None
    
        # 验证音频文件路径
        audio_path = str(pathlib.Path(audio_path).resolve())
        
        if not os.path.exists(audio_path):
            print(f"错误:音频文件不存在 '{audio_path}'")
            return None
        
        if not os.path.isfile(audio_path):
            print(f"错误:'{audio_path}' 不是有效的文件")
            return None
    
        # 加载模型并转写
        try:
            print(f"开始加载模型 {model_name}...")
            model = whisper.load_model(model_name, device="cpu")
            
            print(f"开始转写文件:{audio_path}")
            # 关键设置:明确指定中文,并关闭自动语言检测
            result = model.transcribe(
                audio=audio_path,
                language="Chinese",  # 强制指定中文
                verbose=True,
                fp16=False,
                initial_prompt="请用简体中文转写,不要使用繁体中文。"  # 提示模型使用简体
            )
            
            # 强制将结果转换为简体中文(双重保险)
            simplified_text = convert(result["text"], 'zh-cn')
            
            # 保存结果
            output_dir = "whisper_results"
            os.makedirs(output_dir, exist_ok=True)
            audio_name = os.path.splitext(os.path.basename(audio_path))[0]
            output_path = os.path.join(output_dir, f"{audio_name}_transcript.txt")
            
            with open(output_path, "w", encoding="utf-8") as f:
                f.write(simplified_text)
            
            print(f"\n✅ 转写完成(已转换为简体中文),结果保存至:{output_path}")
            return simplified_text
            
        except Exception as e:
            print(f"转写过程出错:{str(e)}")
            return None
    
    if __name__ == "__main__":
        # 安装繁转简依赖(首次运行需要)
        try:
            import zhconv
        except ImportError:
            print("正在安装繁转简依赖...")
            subprocess.run(["pip", "install", "zhconv"], check=True)
            import zhconv
    
        # 替换为你的音频文件路径
        audio_file = r"D:\Net_Program\test\whisper-test.wav"
        transcribe_audio(audio_file)
    

    注意代码中的 check_ffmpeg 函数非常关键,很多报错其实是环境变量没配好导致的。另外 initial_prompt 能引导模型更好地遵循指令,比如强制要求简体中文。

    六、常见问题解决

    1. 内存不足

      • 若提示 OutOfMemoryError,换用更小的模型(如 medium 或 small)
      • 关闭其他占用内存的程序(large-v3 建议至少 16GB 内存)
    2. 音频格式错误

      • 用 FFmpeg 转换格式:ffmpeg -i 输入文件.mp3 -ar 16000 -ac 1 输出文件.wav(转为 16kHz 单声道 WAV)
    3. 模型下载慢

      • 手动下载模型文件(可在 Hugging Face 找到),放入 .cache/whisper/ 目录

    通过以上步骤,你可以在本地搭建一个稳定的 Whisper 转写环境,无需依赖 Ollama,直接调用模型进行语音转写。如果追求更高精度,优先使用 large-v3 模型;若注重速度或资源有限,可选择 small 或 base 模型。

    目录

    1. 一、基础环境准备
    2. 二、安装 Whisper
    3. 三、下载 Whisper 模型
    4. 四、基本使用方法
    5. 1. 命令行直接转写
    6. 转写音频文件(支持 WAV/MP3/MP4 等格式)
    7. 示例(替换为你的文件路径)
    8. 2. 关键参数说明
    9. 五、Python 脚本调用
    10. 六、常见问题解决
    • 免费图片AI生成工具免费生成了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
    • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
    • 100+免费在线小游戏爽一把
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • AI 产品经理核心职责、技能体系与进阶学习路径指南
    • 基于 Rokid 眼镜的 AI 天气与旅游规划应用实战
    • C++ 实现 JSON 与 HTTP 协议:从零构建 Web 计算器服务器
    • Vue3 方法调用报错?检查 script setup 暴露配置
    • 腾讯云服务器部署 OpenClaw 对接飞书实战指南
    • CCF-GESP 2025 年 9 月 C++ 一级真题解析
    • 33 岁前端开发者失业后的转行方向与建议
    • 上手 YOLO12 WebUI:浏览器里跑目标检测,不用装环境
    • N46Whisper:基于 Whisper 的日语视频字幕生成工具
    • Pi0 机器人 VLA 大模型在昇腾 A2 平台上的测评
    • 使用 CSS 实现毛玻璃模糊背景效果
    • Java 项目中的 .idea 与 target 文件夹
    • Python中的PyArrow:Apache Arrow的Python绑定,用于高效内存中数据交换
    • AI Agent 记忆系统技术综述:架构、范式与评估
    • OpenClaw Skills 原理与实战:机器人行为模块化开发
    • XDMA 与 FPGA DMA 控制器协同设计详解
    • 腾讯云轻量应用服务器部署 OpenClaw 并接入 QQ 飞书机器人
    • 手持激光雷达 TG30 基于 Cartographer 的建图实操记录
    • OpenClaw 接入飞书机器人配置指南
    • HarmonyOS 开发:从零实现加载和使用自定义字体

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online