本文档为 Whisper 自动语音识别 (ASR) 系统的主要编程接口提供了全面的参考。它涵盖了用于模型加载、音频转录和自定义解码过程的核心函数和类。有关基本用法示例,请参阅基本用法;有关实现细节,请参阅转录流程。
Whisper API 提供了几个高级函数,构成了用户的主要接口。
来源: whisper/__init__.py103-160 whisper/transcribe.py38-514 whisper/decoding.py793-826 whisper/decoding.py19-77
加载 Whisper ASR 模型进行推理。
参数
"tiny", "tiny.en", "base", "base.en", "small", "small.en""medium", "medium.en", "large", "large-v1", "large-v2", "large-v3", "turbo" (别名 "large-v3-turbo")"cuda", "cpu", 等)。如果 CUDA 可用,则默认为 CUDA,否则为 CPU。~/.cache/whisper。返回值
Whisper 模型实例。示例
来源: whisper/__init__.py103-160
使用 Whisper 模型转录音频,处理音频预处理、语言检测和带错误恢复的解码。
参数
DecodingOptions。返回值
text: 转录文本。segments: 包含时间戳及其他元数据的片段字典列表。language: 检测到或指定的语言。来源: whisper/transcribe.py38-514
执行梅尔频谱图到文本的低级解码。
参数
返回值
DecodingResult 或包含转录文本及元数据的结果列表。来源: whisper/decoding.py793-826
检测音频中所说的语言。
参数
返回值
来源: whisper/decoding.py80-128 whisper/decoding.py508-789
用于控制解码过程的配置类。
关键参数
"transcribe" 或用于 X→英语翻译的 "translate"。<|notimestamps|> 生成不带时间戳的文本。解码结果的容器。
关键属性
来源: whisper/decoding.py117-128
解码系统通过各种策略将模型输出转换为文本。
来源: whisper/decoding.py130-506
解码过程的中心协调器。
DecodingTask 类负责协调:
PyTorchInference 进行模型推理GreedyDecoder 或 BeamSearchDecoder 生成tokenMaximumLikelihoodRanker 进行序列排序LogitFilter 实现进行 Logit 过滤来源: whisper/decoding.py508-789
推理处理模型的正向传递,而token解码器实现生成策略。
| 类 | 目的 |
|---|---|
PyTorchInference | 通过 KV 缓存对模型进行正向传递 |
GreedyDecoder | 在每一步选择概率最高的token(当 temperature=0 时) |
BeamSearchDecoder | 维护多个候选序列,选择最佳整体路径 |
来源: whisper/decoding.py130-404
该 API 包含将音频文件处理为模型输入的函数。
关键音频常量
SAMPLE_RATE: 16000 赫兹N_FFT: 400HOP_LENGTH: 160CHUNK_LENGTH: 30 秒N_FRAMES: 每块 3000 帧来源: whisper/__init__.py11 whisper/transcribe.py11-19
该库提供了一个用于转录的命令行界面。
whisper audio.mp3 --model base --language en
常用 CLI 参数
| 参数 | 描述 |
|---|---|
--model | 模型名称("tiny", "base", "small", "medium", "large", "turbo") |
--language | 语言代码或“auto”用于自动检测 |
--task | “transcribe”或“translate” |
--output_dir | 输出保存目录 |
--output_format | 保存格式(txt, vtt, srt, tsv, json) |
--verbose | 显示进度和中间结果 |
--word_timestamps | 生成词级别时间戳 |
来源: whisper/transcribe.py517-623
来源: whisper/transcribe.py38-514 whisper/decoding.py793-826
来源: whisper/__init__.py103-160 whisper/transcribe.py38-514 whisper/decoding.py19-77