关于 Whisper(OpenAI 开源语音识别工具)的详细安装与使用指南,涵盖技术细节、参数解释、优化技巧和常见问题解决方案。
1. 安装 Whisper
1.1 系统依赖
- 必须安装 FFmpeg:处理音频/视频编解码。
- Windows: 安装后需将 添加到系统环境变量 。
档详细介绍了 OpenAI 开源语音识别工具 Whisper 的安装与使用方法。内容涵盖系统依赖配置(如 FFmpeg)、不同平台下的安装步骤及 GPU 加速方案。提供了五种模型类型的对比选择、命令行操作指令及核心参数说明。此外,还包含 Python API 调用示例、性能优化技巧(如批处理、量化)、实时语音识别集成方案以及常见错误排查指南。该工具支持多语言转录与翻译,适用于离线场景,具备较高的识别精度与灵活性。
关于 Whisper(OpenAI 开源语音识别工具)的详细安装与使用指南,涵盖技术细节、参数解释、优化技巧和常见问题解决方案。
ffmpegPATH推荐通过 官方二进制包 安装,或使用 Chocolatey:
choco install ffmpeg
macOS:
brew install ffmpeg
Linux:
# Debian/Ubuntu
sudo apt update && sudo apt install ffmpeg
# CentOS/RHEL
sudo yum install ffmpeg ffmpeg-devel
torch, numpy, tqdm, more_itertools 等。验证安装:
whisper --version
# 输出 Whisper 版本
通过 pip 安装:
pip install -U openai-whisper
运行命令时添加 --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
Whisper 提供 5 种预训练模型,按精度和速度排序(从低到高):
| 模型名称 | 参数量 | 内存占用 | 适合场景 |
|---|---|---|---|
tiny | 39M | ~1 GB | 快速转录,低精度 |
base | 74M | ~1.5 GB | 平衡速度与精度 |
small | 244M | ~2.5 GB | 中等精度,多语言支持 |
medium | 769M | ~5 GB | 高精度,复杂音频 |
large | 1550M | ~10 GB | 最高精度,专业场景 |
large 模型支持 99 种语言,其他模型支持主要语言(如中、英、日、西等)。~/.cache/whisper/。medium.pt)。~/.cache/whisper/(Linux/macOS)或 C:\Users\<用户名>\.cache\whisper\(Windows)。whisper [音频文件路径] --model[模型名] --language[语言代码]
示例:
# 使用中等模型转录英文音频,生成 TXT 和 SRT 文件
whisper lecture.mp3 --model medium --language en --output_format txt,srt
| 参数 | 说明 |
|---|---|
--model | 指定模型(默认 small) |
--language | 指定语言(如 zh, en, ja),若未指定会自动检测 |
--task | transcribe(转录)或 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 | 为每个单词生成时间戳(适用于 json 和 srt 格式) |
自定义提示词(提升准确性):
whisper audio.mp3 --initial_prompt "以下是关于量子力学的讲座。"
# 提供上下文提示
仅生成字幕文件:
whisper audio.mp4 --task translate --output_format srt
# 翻译为英文字幕
处理长音频(自动分割):
whisper long_audio.wav --model large --language en --split_duration 300
# 每 300 秒分割一次
通过 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']}")
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.")
批处理(同时处理多个文件):
whisper audio1.mp3 audio2.wav --model small --output_dir ./outputs/
量化模型(降低内存占用):
model = whisper.load_model("medium", device="cuda", in_memory=True)
base 或 tiny)。--split_duration 参数分割长音频。FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'PATH。ffmpeg -version 可执行。ERROR: Could not find model file~/.cache/whisper/。指定模型路径:
whisper audio.mp3 --model /path/to/custom_model.pt
medium 或 large)。--initial_prompt 提供上下文关键词。结合麦克风输入库(如 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 _ in range(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"])
批量处理脚本:
# 遍历目录下所有 MP3 文件
for file in *.mp3; do
whisper "$file" --model small --output_dir ./transcripts/
done
large 模型需至少 10GB 内存(GPU 推荐 16GB+ VRAM)。通过上述指南,你可以充分利用 Whisper 实现高精度语音识别。如需进一步定制(如微调模型),可参考 官方 GitHub 仓库 和开发者文档。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online