news 2026/10/14 17:31:40

本地语音转文字入门:用开源 Whisper 把录音转成文本和字幕文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
本地语音转文字入门:用开源 Whisper 把录音转成文本和字幕文件

适合人群:经常需要整理会议录音、课程音频、视频字幕,或者习惯用语音给 AI 下指令,但不希望把音频上传到云端的同学。

一、背景

X 上有中文用户发帖调侃:“听说现代人都用口喷指挥 AI 干活了?”这反映了一个越来越普遍的习惯:说话比打字快,越来越多的人先用语音记录想法,再交给 AI 整理。

语音转文字是这个流程的第一步。OpenAI 开源的Whisper是目前广泛使用的语音识别模型之一,支持包括中文在内的多种语言,可以在自己的电脑上离线运行。本文介绍如何安装 Whisper,把录音转成文本和字幕,并给出后续交给 AI 整理的思路。

二、准备工作

1. Python 环境
需要 Python 3.8 或更新版本(建议使用较新的版本)。

2. 安装 ffmpeg
Whisper 依赖 ffmpeg 读取音频文件:

# Ubuntu / Debiansudoaptupdate&&sudoaptinstallffmpeg# macOS(使用 Homebrew)brewinstallffmpeg# Windows(使用 Chocolatey 或 Scoop)chocoinstallffmpeg

3. 硬件
有 NVIDIA 显卡时速度会快很多;只有 CPU 也能运行,但建议使用较小的模型。

三、操作步骤

步骤 1:安装 Whisper

pipinstall-Uopenai-whisper

安装完成后,命令行中就可以使用whisper命令。

步骤 2:了解模型大小

Whisper 提供多个尺寸的模型,官方说明中包括 tiny、base、small、medium、large 以及 turbo 等。规律是:

  • 模型越大,识别越准确,但速度越慢、占用显存越多;
  • tiny、base 适合快速测试;
  • small、medium 在准确率和速度之间较为平衡;
  • turbo 是对大模型的优化版本,速度更快。

首次使用某个模型时,程序会自动下载模型文件,需要一些时间和硬盘空间。

步骤 3:转写第一段音频

whisper meeting.mp3--modelsmall--languageChinese
  • --model:指定模型;
  • --language:指定语言。不指定时会自动检测,但明确指定通常更稳定。

运行完成后,当前目录下会生成多个同名文件,包括 txt(纯文本)、srt 和 vtt(字幕)、tsv、json 等格式。

步骤 4:只输出需要的格式

whisper meeting.mp3--modelsmall--languageChinese--output_formatsrt--output_dir./subs

--output_format可以选择 txt、srt、vtt、tsv、json 或 all。做视频字幕选 srt,整理文字稿选 txt。

步骤 5:在 Python 中调用

批量处理时,用 Python 更方便:

importwhisper model=whisper.load_model("small")result=model.transcribe("meeting.mp3",language="zh")print(result["text"])forseginresult["segments"]:print(f'{seg["start"]:.1f}s -{seg["end"]:.1f}s:{seg["text"]}')

segments包含每一句的开始和结束时间,可以用来生成自定义格式的时间轴。

步骤 6:交给 AI 整理

原始转写稿通常没有标点或段落,口语重复也较多。可以把文本交给 AI 整理,提示词示例:

下面是一段会议录音的转写稿,可能存在同音字错误。请: 1. 修正明显的错别字,不确定的地方用【?】标出; 2. 按议题分段,加上小标题; 3. 最后列出会议中提到的待办事项和负责人。 不要添加原文没有的内容。

如果内容涉及隐私,可以使用本地运行的大模型完成这一步,让整个流程都不离开电脑。

四、提升识别效果的方法

  1. 录音质量优先:靠近麦克风、减少背景噪音,比换大模型更有效;
  2. 提供提示文本:Python 调用时可以通过initial_prompt参数提供包含专有名词的提示文本,有助于识别人名、术语;
  3. 选择合适的模型:专业内容、口音较重时,尝试更大的模型;
  4. 长音频分段处理:特别长的录音可以先用 ffmpeg 切分,便于检查和重试;
  5. 人工校对关键内容:数字、人名、专业术语一定要人工核对。

五、常见问题 FAQ

Q1:报错找不到 ffmpeg?
确认 ffmpeg 已安装并加入系统 PATH,在终端运行ffmpeg -version能看到版本信息即可。

Q2:中文输出成了繁体字?
这是 Whisper 中文识别中较常见的现象。可以在initial_prompt中提供一段简体中文文本作为引导,或者识别后使用繁简转换工具处理。

Q3:转写速度太慢?
换更小的模型,或使用显卡运行。社区还有基于 Whisper 的优化实现(例如 faster-whisper),在速度和显存占用上做了改进,可以按需了解。

Q4:会出现原文中没有的句子吗?
在静音或噪声较多的片段,Whisper 偶尔会生成重复或无关的文字。重要场合务必人工校对。

Q5:可以识别多人对话并区分说话人吗?
Whisper 本身不区分说话人。需要区分时,可以了解“说话人分离”(speaker diarization)相关的开源工具,与 Whisper 配合使用。

六、实用技巧

  1. 建立术语表:把常用人名、产品名写成提示文本,每次转写时复用;
  2. 字幕先校对再使用:生成 srt 后用字幕编辑软件检查时间轴和错字;
  3. 批处理脚本:用 Python 遍历文件夹批量转写,并按日期整理输出;
  4. 保留原始音频:转写稿有疑问时可以回听核对;
  5. 注意录音合规:录制他人讲话前,先征得对方同意。

七、总结

用 Whisper 本地转写的流程很简单:安装 ffmpeg → pip 安装 Whisper → 选择模型 → 命令行或 Python 转写 → 交给 AI 整理。它让“先说出来,再让 AI 整理”这种工作方式变得可行,而且音频始终留在自己的电脑上。

参考资料

  • OpenAI Whisper 开源项目说明文档(https://github.com/openai/whisper)
  • 论文:Robust Speech Recognition via Large-Scale Weak Supervision
  • X 用户 @HytidelLegend 关于用语音指挥 AI 的分享
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 17:31:30

软件交付系统移交清单模版:四类交付物对账与避坑指南

简介:这份《软件交付系统移交清单模版》面向软件项目经理、实施交付人员与验收负责人,用于解决系统移交环节内容遗漏、责任不清、文档散乱的问题。模版以表格形式梳理项目基本信息、移交类目、软件与硬件交付清单、项目文档交付清单及其他说明事项&#…

作者头像 李华
网站建设 2026/10/14 17:30:05

Python+Django实现轻量化教师管理系统毕业设计

1. 项目背景与核心价值教师管理系统是教育信息化建设中的基础性工具,这个Python实现的毕业设计项目瞄准了中小型教育机构的实际管理需求。我在开发过程中发现,市面上许多商业系统要么功能冗余,要么价格昂贵,而学校真正需要的往往只…

作者头像 李华
网站建设 2026/10/14 17:29:06

Aspose.Diagram for Java 实战:Visio 批量处理与自动化生成

简介:这份资源是 Aspose.Diagram 官方 Java 示例代码包,面向需要在 Java 项目中处理 Visio 图表的开发者,无论入门学习还是进阶集成都能用得上。它解决的核心问题是:无需安装 Visio 软件,即可通过 API 创建、读取、修改…

作者头像 李华
网站建设 2026/10/14 17:28:42

SSM+Vue装饰公司管理系统全解析:从需求拆解到毕设答辩

做毕业设计最怕的不是代码写不出来,而是题目拿到手里不知道怎么拆。前两天有个学弟问我“鲲龙装饰公司在线管理系统”这个题目怎么做,又是SSM又是Vue,还要做手机端适配,最后还要交一篇论文,光听题目就觉得头大。这种心…

作者头像 李华
网站建设 2026/10/14 17:28:34

RocketMQ通信层源码解析:从协议编解码到线程模型

很多人看源码喜欢从某个独立模块开始啃,但分布式系统里真正串起所有组件的那根线,往往是通信层。RocketMQ 的源码分析如果绕开 RPC 通信,后面看主从同步、看消息拉取、看 NameServer 心跳,都会觉得隔着一层纱。这篇是系列第二篇&a…

作者头像 李华