openai whisper安装及使用

  • whisper是一个将音频转文字的模型(中文语音可转英文字幕)
  • 该模型依赖ffmpeg

官方使用介绍https://github.com/openai/whisper

一、安装方法

1. 安装 Whisper

推荐直接使用 pip 安装最新版:

pip install -U openai-whisper

如果需要安装 GitHub 源码最新版:

pip install git+https://github.com/openai/whisper.git

升级到最新版本可以用:

pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

2. 安装依赖工具

Whisper 依赖 ffmpeg(音视频解码处理),需提前安装:

  • Ubuntu/Debian:

    sudo apt update && sudo apt install ffmpeg
  • MacOS (Homebrew):

    brew install ffmpeg
  • Windows (Chocolatey):

    choco install ffmpeg
  • Windows (Scoop):

    scoop install ffmpeg

其他依赖

如遇到安装 tiktoken 出错,可能需要安装 Rust 工具链:

# Rust 安装文档:https://www.rust-lang.org/learn/get-started
# 若提示缺少 setuptools_rust:
pip install setuptools-rust

二、Whisper 模型选择

Whisper 提供多种模型,体积和速度/准确率各有区别:

Size名称显存要求速度(越大越慢)
tinytiny(.en)~1GB很快
basebase(.en)~1GB
smallsmall(.en)~2GB中等
mediummedium(.en)~5GB
largelarge~10GB最慢,最准确
turboturbo~6GB快,准确略低于 large-v3

.en 结尾的是仅支持英语的模型,速度快、准确度高。turbo 是优化版,速度极快,准确率略低于 large-v3。多语言、翻译建议用 large/medium/small/tiny。


三、命令行用法

1. 基本语音转文本

whisper audio.flac audio.mp3 audio.wav --model turbo

默认模型为 turbo,适合英文转录。

2. 指定语言或翻译

  • 翻译非英语语音为英文(使用 large模型):

    whisper japanese.wav --model large --language Japanese --task translate

Whisper 可以将大多数主流语言的语音翻译成英文,但是不能将英文语音翻译成其他语言,即:

  • “任意语言语音 → 英文文本”(支持,包括中文转英文、日文转英文、法文转英文等等)
  • “英文语音 → 其他语言文本”(不支持!)

详细说明

Whisper 的 --task translate 功能只支持“翻译为英文”。
如果执行如下命令:

whisper input.mp4 --model large --language Chinese --task translate

会把中文语音转成英文文本

3. 查看更多参数

whisper --help

支持格式、输出、语言、设备等多项参数设置。


四、Python 用法

1. 简单转录

python复制编辑import whisper

model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
print(result["text"])

2. 进阶用法:检测语言、底层推理

python复制编辑import whisper

model = whisper.load_model("turbo")

# 载入并裁剪音频
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)

# 计算特征
mel = whisper.log_mel_spectrogram(audio, n_mels=model.dims.n_mels).to(model.device)

# 检测语言
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")

# 解码
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)
print(result.text)

五、开源协议

Whisper 使用 MIT 协议,代码和模型权重均可自由使用。


总结与建议

  • 如果是 Windows 用户,建议用 pip 安装 Whisper,并通过 Chocolatey/Scoop 安装 ffmpeg。
  • 使用命令行或 Python 脚本均可快速实现音频转文字,支持多语言和翻译。
  • 模型文件较大,推荐根据硬件选择合适的模型(比如 tiny/medium/large)。
如果觉得我的文章对你有用,请随意赞赏