【安装日记】Whisper-OpenAI 开源语音识别工具

文章目录

关于 Whisper(OpenAI 开源语音识别工具)的详细安装与使用指南,涵盖技术细节、参数解释、优化技巧和常见问题解决方案。


1. 安装 Whisper

1.1 系统依赖
  • 必须安装 FFmpeg:处理音频/视频编解码。
    • Windows:
      • 安装后需将 ffmpeg 添加到系统环境变量 PATH

推荐通过 官方二进制包 安装,或使用 Chocolatey:

choco install ffmpeg 

macOS:

# 使用 Homebrew brew install ffmpeg 

Linux:

# Debian/Ubuntusudoapt update &&sudoaptinstall ffmpeg # CentOS/RHELsudo yum install ffmpeg ffmpeg-devel 
1.2 安装 Whisper
    • Python 版本要求:建议 Python 3.9 或更高版本。
    • 依赖项:自动安装 torch, numpy, tqdm, more_itertools 等。

验证安装

whisper --version# 输出 Whisper 版本

通过 pip 安装

pip install-U openai-whisper 
1.3 GPU 加速(可选)
  • NVIDIA GPU 用户
    1. 安装 CUDA Toolkit 11.7+ 和 cuDNN。
  • Apple Silicon (M1/M2) 用户

运行命令时添加 --device mps

whisper audio.mp3 --device mps 

使用 Metal Performance Shaders (MPS) 加速:

pip install torch torchaudio -U--pre --extra-index-url https://download.pytorch.org/whl/nightly/cpu 

验证 GPU 是否启用:

import torch print(torch.cuda.is_available())# 输出应为 True

安装 PyTorch 的 CUDA 版本:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 

2. 模型详解

2.1 模型类型

Whisper 提供 5 种预训练模型,按精度和速度排序(从低到高):

模型名称参数量内存占用适合场景
tiny39M~1 GB快速转录,低精度
base74M~1.5 GB平衡速度与精度
small244M~2.5 GB中等精度,多语言支持
medium769M~5 GB高精度,复杂音频
large1550M~10 GB最高精度,专业场景
  • 多语言支持large 模型支持 99 种语言,其他模型支持主要语言(如中、英、日、西等)。
2.2 模型下载
  • 自动下载:首次运行时会自动下载模型到 ~/.cache/whisper/
  • 手动下载(解决网络问题):
    1. 从 Hugging Face 仓库下载模型文件(如 medium.pt)。
    2. 将文件放入 ~/.cache/whisper/(Linux/macOS)或 C:\Users\<用户名>\.cache\whisper\(Windows)。

3. 命令行使用

3.1 基础命令
whisper [音频文件路径]--model[模型名]--language[语言代码]

示例

# 使用中等模型转录英文音频,生成 TXT 和 SRT 文件 whisper lecture.mp3 --model medium --language en --output_format txt,srt 
3.2 核心参数
参数说明
--model指定模型(默认 small
--language指定语言(如 zh, en, ja),若未指定会自动检测
--tasktranscribe(转录)或 translate(翻译为英文)
--output_format输出格式:txt, srt, vtt, tsv, json(默认全部生成)
--output_dir指定输出目录(默认当前目录)
--fp16使用 FP16 精度加速推理(需 GPU 支持)
--device指定计算设备:cpu, cuda, mps(Apple Silicon)
--temperature控制生成随机性(0-1,0 表示确定性输出)
--best_of束搜索候选数(影响精度与速度)
--beam_size束搜索宽度(与 best_of 配合使用)
--word_timestamps为每个单词生成时间戳(适用于 jsonsrt 格式)
3.3 高级用法

自定义提示词(提升准确性):

whisper audio.mp3 --initial_prompt"以下是关于量子力学的讲座。"# 提供上下文提示

仅生成字幕文件

whisper audio.mp4 --task translate --output_format srt # 翻译为英文字幕

处理长音频(自动分割):

whisper long_audio.wav --model large --language en --split_duration300# 每 300 秒分割一次

4. Python API 使用

通过 Python 脚本灵活调用 Whisper:

import whisper # 加载模型 model = whisper.load_model("medium")# 转录音频 result = model.transcribe("audio.mp3", language="zh", fp16=False)# 输出结果print(result["text"])# 完整文本for segment in result["segments"]:print(f"[{segment['start']}-{segment['end']}s] {segment['text']}")
API 参数

transcribe() 方法支持所有命令行参数:

result = model.transcribe("audio.wav", language="en", temperature=0.2, beam_size=5, word_timestamps=True, initial_prompt="This is a podcast about climate change.")

5. 性能优化

5.1 加速技巧
  • GPU 加速:确保安装 CUDA 版本的 PyTorch。

批处理(同时处理多个文件):

whisper audio1.mp3 audio2.wav --model small --output_dir ./outputs/ 

量化模型(降低内存占用):

model = whisper.load_model("medium", device="cuda", in_memory=True)
5.2 内存不足处理
  • 使用更小的模型(如 basetiny)。
  • 添加 --split_duration 参数分割长音频。

6. 常见问题解决

6.1 错误:FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'
  • 原因:FFmpeg 未正确安装或未添加到 PATH
  • 解决
    • 重新安装 FFmpeg 并确认命令行中 ffmpeg -version 可执行。
    • Windows 用户需手动添加 FFmpeg 到环境变量。
6.2 错误:ERROR: Could not find model file
  • 原因:模型下载失败或路径错误。
  • 解决
    • 手动下载模型并放入 ~/.cache/whisper/

指定模型路径:

whisper audio.mp3 --model /path/to/custom_model.pt 
6.3 识别结果不准确
  • 优化方法
    • 使用更大的模型(如 mediumlarge)。
    • 添加 --initial_prompt 提供上下文关键词。
    • 清理音频背景噪音(使用 Audacity 等工具预处理)。

7. 扩展应用

7.1 实时语音识别

结合麦克风输入库(如 pyaudio)实现实时转录:

import whisper import pyaudio import wave # 录制音频并保存为文件 CHUNK =1024 FORMAT = pyaudio.paInt16 CHANNELS =1 RATE =16000 RECORD_SECONDS =5 p = pyaudio.PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE,input=True, frames_per_buffer=CHUNK) frames =[]print("Recording...")for _ inrange(0,int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) stream.stop_stream() stream.close() p.terminate()# 保存为 WAV 文件with wave.open("temp.wav",'wb')as wf: wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames))# 使用 Whisper 转录 model = whisper.load_model("base") result = model.transcribe("temp.wav")print(result["text"])
7.2 集成到其他工具
  • 生成字幕文件:将 SRT 文件导入视频剪辑软件(如 Premiere、DaVinci Resolve)。

批量处理脚本

# 遍历目录下所有 MP3 文件forfilein *.mp3;do whisper "$file"--model small --output_dir ./transcripts/ done

8. 注意事项

  • 音频格式:支持 MP3、WAV、OGG、FLAC 等格式,建议使用 16kHz 单声道音频。
  • 硬件要求
    • large 模型需至少 10GB 内存(GPU 推荐 16GB+ VRAM)。
    • 长音频处理可能需要更多内存。
  • 隐私保护:离线运行,无需联网(模型下载后数据不上传)。

通过上述指南,你可以充分利用 Whisper 实现高精度语音识别。如需进一步定制(如微调模型),可参考 官方 GitHub 仓库 和开发者文档。

Read more

用ToClaw打造AI自动助手:重复任务一键托管,告别加班(附实操场景)

用ToClaw打造AI自动助手:重复任务一键托管,告别加班(附实操场景)

前言 每天打开电脑,其实都会做很多重复性的事情:清理桌面、查看信息、整理文件、检查任务状态……这些事情单独看都不复杂,但它们每天都在发生,而且一套流程下来就要花掉不少时间。 更关键的是,这些工作大多不需要动脑,属于典型的机械重复,但你又必须亲自去完成。时间久了,就会陷入一种很典型的状态——事情不难,但很耗时间;可以不做,但又不能不做。 这就是很多人都会遇到的“重复任务困境”。 而这类问题, ToClaw 能帮你完美解决。ToClaw 是 ToDesk 推出的桌面AI助手,不只是一个聊天工具,而是一个可以真正帮你“执行任务”的助手。通过自然语言,你可以直接让它帮你处理文件、分析信息、执行操作,甚至自动完成一整套流程。 在这篇文章里,我会用几个实际场景,来展示我是如何用 ToClaw 搭建一个“自动干活助手”的,把那些每天都要做的重复任务交给 AI,而我只需要关注最终结果。 一、ToClaw

清华团队首发OpenClaw研究报告:AI智能体生态闭环全解析

清华团队首发OpenClaw研究报告:AI智能体生态闭环全解析

🍃 予枫:个人主页 📚 个人专栏: 《Java 从入门到起飞》《读研码农的干货日常》《Java 面试刷题指南》 💻 Debug 这个世界,Return 更好的自己! 引言 近期“龙虾”OpenClaw持续爆火,GitHub星标数一路飙升,成为AI智能体领域的现象级开源项目。就在这时,清华沈阳教授团队重磅首发两份OpenClaw专项研究报告,从理论到实践、从自我研究到生态布局,给出了最全面的解读,堪称OpenClaw学习的“官方指南”,程序员和AI从业者必看! 文章目录 * 引言 * 一、OPENCLAW双报告核心概况 * 1.1 《OpenClaw发展研究报告1.0》:严谨迭代的生态指南 * 1.2 《OpenClaw自我研究报告1.0》:AI研究AI的标杆实验 * 二、OPENCLAW领域阶段性进展 * 2.1 理论研究:筑牢生态基础,扩大科普影响力 * 2.2 模型研发:

2026必备10个降AIGC工具,本科生速看!

2026必备10个降AIGC工具,本科生速看!

2026必备10个降AIGC工具,本科生速看! AI降重工具:让论文更“自然”的秘密武器 随着人工智能技术的广泛应用,越来越多的本科生在撰写论文时会借助AI工具来提升效率。然而,AI生成的内容往往带有明显的“AI痕迹”,这不仅容易被查重系统识别,还可能影响论文的整体质量。因此,如何有效降低AIGC率、去除AI痕迹、同时保持文章的语义通顺和逻辑性,成为了许多学生关注的焦点。 AI降重工具正是为了解决这一难题而生。它们不仅能帮助用户快速识别并修改AI生成内容中的重复或不自然部分,还能在不影响原意的前提下进行语义优化。这些工具通常具备多模式降重功能,能够根据不同的使用场景灵活调整处理方式,比如初稿快速处理、片段修改、定稿自查等。无论是需要大幅度修改还是小幅度调整,都能找到合适的解决方案。 工具名称主要功能适用场景千笔强力去除AI痕迹、保语义降重AI率过高急需降重云笔AI多模式降重初稿快速处理锐智 AI综合查重与降重定稿前自查文途AI操作简单片段修改降重鸟同义词替换小幅度修改笔杆在线写作辅助辅助润色维普官方查重最终检测万方数据库查重数据对比Turnitin国际通用检测留学生降重C

LLaMA Factory全解析:让大模型“改装”像组装电脑一样简单

引言:当每个人都能定制自己的专属AI 朋友们,想象一下这样的场景:你拿到了一台性能强大的通用电脑(好比ChatGPT、LLaMA这样的通用大模型),但它运行的是标准操作系统,装的是通用软件。现在,你需要它变成一台专业的视频剪辑工作站,或者一台金融数据分析服务器——该怎么办? 传统方法是“重装系统”(全量微调):耗时耗力,需要专业团队,而且可能把原来好用的功能搞坏。 现代方法是“加装专业配件”(参数高效微调):不改变核心系统,只增加特定的硬件模块或软件插件。 今天我要介绍的LLaMA Factory,就是大模型领域的“专业改装工具箱”。它让微调百亿参数的大模型,变得像给电脑加内存、装显卡一样简单可控。无论你是只有一张消费级显卡的个人开发者,还是需要定制企业级AI的团队,这个工具都可能改变你的工作方式。 技术原理:理解LLaMA Factory的“增效不增负”哲学 核心理念:为什么我们不需要“重装整个系统”? 要理解LLaMA Factory的价值,首先要明白大模型微调的一个关键发现:当大模型适应新任务时,只需要调整很小一部分参数就够了。 一个生动的类比: 假设你是一位精