当前位置: 首页 > news >正文

Whisper通用语音识别模型:多任务处理能力强,多语言支持优势大!

Whisper:通用语音识别模型

Whisper 是一个通用的语音识别模型。它基于大规模、多样化的音频数据集进行训练,是一个具备多任务处理能力的模型,可实现多语言语音识别、语音翻译和语言识别等功能。

实现方法

Transformer 序列到序列模型在多种语音处理任务上进行训练,这些任务包括多语言语音识别、语音翻译、口语语言识别和语音活动检测。这些任务被统一表示为解码器需要预测的一系列标记,这样单个模型就能取代传统语音处理流程中的多个阶段。多任务训练格式使用了一组特殊标记,这些标记可作为任务说明符或分类目标。

环境设置

使用 Python 3.9.9 和 PyTorch 1.10.1 来训练和测试模型,但代码库预计与 Python 3.8 - 3.11 以及近期的 PyTorch 版本兼容。代码库还依赖于一些 Python 包,其中最主要的是 OpenAI 的 tiktoken,用于实现快速标记化。

可以使用以下命令下载并安装(或更新到)Whisper 的最新版本:

pip install -U openai-whisper

或者,使用以下命令从仓库拉取并安装最新提交的版本及其 Python 依赖项:

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

若要将包更新到仓库的最新版本,请运行:

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

此外,系统还需要安装命令行工具 ffmpeg,大多数包管理器都可提供:

在 Ubuntu 或 Debian 系统上:

sudo apt update && sudo apt install ffmpeg

在 Arch Linux 系统上:

sudo pacman -S ffmpeg

在 macOS 系统上使用 Homebrew(https://brew.sh/):

brew install ffmpeg

在 Windows 系统上使用 Chocolatey(https://chocolatey.org/):

choco install ffmpeg

在 Windows 系统上使用 Scoop(https://scoop.sh/):

scoop install ffmpeg

如果 tiktoken 没有为平台提供预构建的 wheel 文件,可能还需要安装 Rust。如果在上述 `pip install` 命令执行过程中出现安装错误,请按照入门指南安装 Rust 开发环境。另外,可能需要配置 `PATH` 环境变量,例如:

export PATH="$HOME/.cargo/bin:$PATH"

如果安装失败并提示 `No module named 'setuptools_rust'`,需要安装 `setuptools_rust`,例如运行:

pip install setuptools-rust

可用模型和支持语言

Whisper 有六种模型大小,其中四种有仅支持英语的版本,在速度和准确性之间提供了不同的权衡。以下是可用模型的名称、大致内存需求以及相对于大模型的推理速度。下面的相对速度是在 A100 上转录英语语音时测量的,实际速度会因语言、说话速度和可用硬件等多种因素而有很大差异。

| 大小 | 参数 | 仅英语模型 | 多语言模型 | 所需显存 | 相对速度 |

| --- | --- | --- | --- | --- | --- |

| tiny | 39 M | tiny.en | tiny | ~1 GB | ~10x |

| base | 74 M | base.en | base | ~1 GB | ~7x |

| small | 244 M | small.en | small | ~2 GB | ~4x |

| medium | 769 M | medium.en | medium | ~5 GB | ~2x |

| large | 1550 M | N/A | large | ~10 GB | 1x |

| turbo | 809 M | N/A | turbo | ~6 GB | ~8x |

仅用于英语应用的 `.en` 模型通常表现更好,特别是 `tiny.en` 和 `base.en` 模型。不过,对于 `small.en` 和 `medium.en` 模型,这种差异不太明显。此外,`turbo` 模型是 `large-v3` 的优化版本,在转录速度上更快,同时准确性仅有轻微下降。

Whisper 的性能因语言而异。下图展示了 `large-v3` 和 `large-v2` 模型按语言划分的性能,使用在 Common Voice 15 和 Fleurs 数据集上评估的 WER(单词错误率)或 CER(字符错误率,斜体显示)。其他模型和数据集对应的额外 WER/CER 指标可在论文的附录 D.1、D.2 和 D.4 中找到,翻译的 BLEU(双语评估替补)分数可在附录 D.3 中找到。

命令行使用方法

以下命令将使用 `turbo` 模型转录音频文件中的语音:

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

默认设置(选择 `turbo` 模型)在转录英语时效果很好。但 `turbo` 模型未针对翻译任务进行训练。如果需要将非英语语音翻译成英语,请使用多语言模型(tiny、base、small、medium、large)代替 `turbo`。例如,要转录包含非英语语音的音频文件,可以指定语言:

whisper japanese.wav --language Japanese

要将语音翻译成英语,使用:

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

注意:即使指定了 `--task translate`,`turbo` 模型仍会返回原文语言。使用 `medium` 或 `large` 模型可获得最佳翻译效果。

运行以下命令查看所有可用选项:

whisper --help

所有可用语言列表请参考 `tokenizer.py`。

Python 使用方法

也可以在 Python 中进行转录:

import whisper

model = whisper.load_model("turbo")

result = model.transcribe("audio.mp3")

print(result["text"])

在内部,`transcribe()` 方法会读取整个文件,并使用 30 秒的滑动窗口处理音频,对每个窗口进行自回归序列到序列预测。

以下是使用 `whisper.detect_language()` 和 `whisper.decode()` 的示例,它们提供了对模型的底层访问:

import whisper

model = whisper.load_model("turbo")

# 加载音频并填充/裁剪以适应 30 秒

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"检测到的语言: {max(probs, key=probs.get)}")

# 解码音频

options = whisper.DecodingOptions()

result = whisper.decode(model, mel, options)

# 打印识别的文本

print(result.text)

更多示例

请在讨论区的“🙌 展示与分享”类别中分享 Whisper 的更多使用示例以及第三方扩展,如 Web 演示、与其他工具的集成、不同平台的移植等。

许可证

Whisper 的代码和模型权重遵循 MIT 许可证发布。更多详细信息请参阅 `LICENSE` 文件。 那么,Whisper 在实际应用中还会有怎样的表现呢?

http://www.jsqmd.com/news/967096/

相关文章:

  • 平顶山市2026贵金属回收精选排名榜单 黄金铂金白银彩金回收靠谱正规门店推荐及联系电话汇总 - 前途无量YY
  • 惠州市2026贵金属回收精选排名榜单 黄金铂金白银彩金回收靠谱正规门店推荐及联系电话汇总 - 前途无量YY
  • 别再只用Audacity了!用Python的soundcard库打造你的专属音频分析工具(附完整代码)
  • 2026年最新龙岩市黄金回收白银回收铂金回收彩金回收权威TOP5口碑门店推荐+正规可靠机构联系方式 - 亦辰小黄鸭
  • 从提交到收录,CSDN AI优化文章在百度的完整生命周期拆解(含蜘蛛访问频次、TDK响应延迟、索引权重跃迁曲线)
  • 广州市2026贵金属回收精选排名榜单 黄金铂金白银彩金回收靠谱正规门店推荐及联系电话汇总 - 前途无量YY
  • 高通QCM6490平台DDR测试避坑实录:从QDUTT 2.0.2安装到眼图分析完整指南
  • 2026年最新白城市黄金回收白银回收铂金回收彩金回收权威TOP5口碑门店推荐+正规可靠机构联系方式 - 亦辰小黄鸭
  • Qt初学者可用的QTableWidget功能演示工程:含增删行列、编辑单元格、响应选中
  • 别再只调软件了!RGMII接口吞吐率上不去?可能是PCB走线和stmmac驱动时序没配好
  • 2026年最新陇南市黄金回收白银回收铂金回收彩金回收权威TOP5口碑门店推荐+正规可靠机构联系方式 - 亦辰小黄鸭
  • 告别选型纠结:如何利用CN3905的宽压输入和3.5A大电流搞定无线/DSL猫的电源设计
  • 苹果 Siri 再升级:基于 Gemini 构建,隐私优势能否逆袭?
  • AgenticSeek:零网络调用的本地AI代理操作系统
  • 多维聚合本质:从SQL GROUP BY到张量代数的数据变形
  • 2026年最新白山市黄金回收白银回收铂金回收彩金回收权威TOP5口碑门店推荐+正规可靠机构联系方式 - 亦辰小黄鸭
  • 营销AB测试总不显著?统计功效才是关键门槛
  • 终极指南:Blender3mfFormat插件实现3MF文件高效导入导出
  • 2026毕业季避坑指南:5款合规AI写作网站实测,谁能真正帮你压住AIGC率?
  • 贵港市2026贵金属回收精选排名榜单 黄金铂金白银彩金回收靠谱正规门店推荐及联系电话汇总 - 前途无量YY
  • jeecgboot TS + Vue 模板化 03
  • NVIDIA Profile Inspector性能优化指南:释放显卡隐藏性能的终极秘籍
  • RK平台千兆以太网稳如老狗的秘密:深度解析RTL8211F-CG外部时钟与RGMII-ID配置
  • 苹果开发者大会开幕:Siri 改版、健康套件升级,能否追上人工智能竞赛?
  • 华为OD转正上岸后,为什么我们成了‘人才堤坝’的第一批?聊聊一线交付与研发的认知差
  • SQL中CASE WHEN的实战心法:从数据分层到业务规则固化
  • 2026年最新白银市黄金回收白银回收铂金回收彩金回收权威TOP5口碑门店推荐+正规可靠机构联系方式 - 亦辰小黄鸭
  • STM32F407ZGT6标准库工程:VL53L5CX 4×4区域ToF测距完整实现(含I2C驱动、校准与bin固件)
  • keybench:可脚本化排序键值存储性能工具,多维度测试与分析全揭秘
  • 国内合规AI写作网站盘点:降AIGC查重,这六款工具谁更靠谱?