介绍 Whisper 模型

介绍 Whisper 模型

Whisper 是一个通用的语音识别模型。它在大规模多样化的音频数据集上进行训练,并且能够执行多任务处理,包括多语言语音识别、语音翻译和语言识别。

核心方法

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

Approach

环境设置

我们使用 Python 3.9.9 和 PyTorch 1.10.1 来训练和测试我们的模型,但代码库预计兼容 Python 3.8-3.11 和最新的 PyTorch 版本。代码库还依赖于几个 Python 包,最显著的是 OpenAI’s 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

可能还需要安装 rust,以防 tiktoken 未提供适用于你平台的预构建轮子。如果在上述 pip install 命令期间看到安装错误,请按照 Getting started page 安装 Rust 开发环境。另外,可能需要配置 PATH 环境变量,例如 export PATH="$HOME/.cargo/bin:$PATH"。如果安装失败并提示 No module named 'setuptools_rust',需要安装 setuptools_rust,例如运行:

pip install setuptools-rust

可用模型和语言

Whisper 提供五种模型尺寸,四种具有仅英文版本,提供速度和准确性之间的权衡。以下是可用模型的名称及其近似内存需求和相对于大模型的推理速度;实际速度可能因多种因素(包括可用硬件)而有所不同。

SizeParametersEnglish-only modelMultilingual modelRequired VRAMRelative speed
tiny39 Mtiny.entiny~1 GB~32x
base74 Mbase.enbase~1 GB~16x
small244 Msmall.ensmall~2 GB~6x
medium769 Mmedium.enmedium~5 GB~2x
large1550 MN/Alarge~10 GB1x

针对仅英文应用的 .en 模型通常表现更好,特别是 tiny.enbase.en 模型。对于 small.enmedium.en 模型,这种差异变得不太显著。

Whisper 的性能因语言而异。下图展示了 large-v3large-v2 模型按语言划分的性能,使用 WERs(词错误率)或 CER(字符错误率,以 Italic 表示)在 Common Voice 15 和 Fleurs 数据集上进行评估。其他模型和数据集的 WER/CER 指标可以在 论文 的附录 D.1、D.2 和 D.4 中找到,翻译的 BLEU(Bilingual Evaluation Understudy)分数在附录 D.3 中。

在这里插入图片描述

命令行使用

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

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

默认设置(选择 small 模型)适用于转录英语。要转录包含非英语语音的音频文件,可以使用 --language 选项指定语言:

whisper japanese.wav --language Japanese

添加 --task translate 将语音翻译成英语:

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

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

whisper --help

查看 tokenizer.py 获取所有可用语言列表。

Python 使用

也可以在 Python 中执行转录:

import whisper

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

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

以下是 whisper.detect_language()whisper.decode() 的示例用法,它们提供了对模型的低级访问。

import whisper

model = whisper.load_model("base")

# 加载音频并填充/修剪至 30 秒
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)

# 制作 log-Mel 频谱图并移至与模型相同的设备
mel = whisper.log_mel_spectrogram(audio).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)

更多示例

请使用 🙌 Show and tell 讨论类别,分享 Whisper 的更多示例用法和第三方扩展,例如 Web 演示、与其他工具的集成、不同平台的移植等。

  • 30
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Colab Whisper模型是一种先进的语音转文字模型,它基于语音识别技术,利用深度学习算法将语音信号转换为文本。 Colab Whisper模型的实现步骤如下: 1. 准备数据:首先,需要准备用于训练模型的语音数据集。这些语音数据应该包含不同人的不同语音片段,涵盖不同的语言和口音。 2. 数据预处理:接下来,需要对语音数据进行预处理。这包括对语音信号进行采样和分割,去除噪音和不必要的部分,并将其转换为模型可处理的格式,例如MFCC特征。 3. 构建模型:使用深度学习框架,如TensorFlow或PyTorch,构建Colab Whisper模型。该模型通常由多个卷积神经网络和循环神经网络层组成,用于提取语音信号的特征并进行序列建模。 4. 训练模型:使用准备好的语音数据集,通过反向传播算法和训练集的迭代,对模型进行训练。在每个迭代步骤中,模型会根据预测输出与实际标签之间的差异调整自身的权重和参数,以提高预测准确性。 5. 模型评估和优化:在每个训练周期结束后,使用验证集和测试集对模型进行评估。评估指标可以包括词错误率(WER)和字符错误率(CER)。通过这些指标,可以确定模型的性能,并对其进行改进。 6. 部署和应用:一旦模型训练完成并通过评估,就可以将其部署到实际应用中。通过输入语音信号,模型将对其进行转换,并输出相应的文本结果。 总之,Colab Whisper模型通过深度学习算法实现了从语音到文本的转换。通过准备数据、进行数据预处理、构建模型、训练模型、评估和优化以及部署应用等步骤,可以实现一个高效准确的语音转文字系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值