KerasHub: 预训练模型 / API 文档 / 模型架构 / Whisper / WhisperAudioConverter

WhisperAudioConverter

[源代码]

WhisperAudioConverter

keras_hub.layers.WhisperAudioConverter(
    num_mels=80,
    num_fft_bins=400,
    stride=160,
    sampling_rate=16000,
    max_audio_length=30,
    **kwargs
)

Whisper 音频转换器层。

该层接收一批音频张量,并计算每个音频张量的对数梅尔谱图特征。

输入音频张量的形状可以是 (length_of_audio,)(batch_size, length_of_audio)。输出是形状为 (batch_size, num_frames, num_mels) 的张量,其中 num_frames(max_audio_length * sampling_rate) / stride

参数

  • num_mels: int。梅尔频率滤波器的数量。默认为 80
  • num_fft_bins: int。短时傅里叶变换 (STFT) 中的傅里叶变换大小。默认为 400
  • stride: int。计算短时傅里叶变换 (STFT) 时相邻滑动窗口帧之间的距离。默认为 160
  • sampling_rate: int。音频的采样率。默认为 16000
  • max_audio_length: int。每个音频块的长度(秒)。输入音频张量将被填充/截断到 max_audio_length * sampling_rate。默认为 30

示例

audio_tensor = tf.ones((8000,), dtype="float32")

# Compute the log-mel spectrogram.
audio_converter = keras_hub.layers.WhisperAudioConverter.from_preset(
    "whisper_base_en",
)
audio_converter(audio_tensor)

# Compute the log-mel spectrogram for a batch of audio tensors.
audio_tensor_1 = tf.ones((8000,), dtype="float32")
audio_tensor_2 = tf.ones((10000,), dtype="float32")
audio_tensor = tf.ragged.stack([audio_tensor_1, audio_tensor_2], axis=0)
audio_converter(audio_tensor)

[源代码]

from_preset 方法

WhisperAudioConverter.from_preset(preset, **kwargs)

从模型预设实例化一个 keras_hub.layers.AudioConverter

预设是一个包含配置、权重和其他文件资产的目录,用于保存和加载预训练模型。preset 可以是以下之一:

  1. 一个内置预设标识符,例如 'whisper_base_en'
  2. 一个 Kaggle 模型句柄,例如 'kaggle://user/whisper/keras/whisper_base_en'
  3. 一个 Hugging Face 句柄,例如 'hf://user/whisper_base_en'
  4. 本地预设目录的路径,例如 './whisper_base_en'

您可以运行 cls.presets.keys() 来列出该类上所有可用的内置预设。

此构造函数可以通过两种方式调用。可以从基类调用,例如 keras_hub.models.AudioConverter.from_preset();也可以从模型类调用,例如 keras_hub.models.WhisperAudioConverter.from_preset()。如果从基类调用,返回对象的子类将从预设目录中的配置推断。

参数

  • preset: string。一个内置预设标识符、一个 Kaggle 模型句柄、一个 Hugging Face 句柄或本地目录的路径。
  • load_weights: bool。如果为 True,则将权重加载到模型架构中。如果为 False,则权重将随机初始化。

示例

# Load an audio converter from a preset.
converter = keras_hub.layers.AudioConverter.from_preset(
    "whisper_base_en"
)
# Convert some raw mono channel audio input.
converter(np.ones(2, 1_000))
预设 参数 描述
whisper_tiny_en 37.18M 4 层 Whisper 模型。在 438,000 小时带标注的英语语音数据上训练。
whisper_tiny_multi 37.76M 4 层 Whisper 模型。在 680,000 小时带标注的多语言语音数据上训练。
whisper_base_multi 72.59M 6 层 Whisper 模型。在 680,000 小时带标注的多语言语音数据上训练。
whisper_base_en 124.44M 6 层 Whisper 模型。在 438,000 小时带标注的英语语音数据上训练。
whisper_small_en 241.73M 12 层 Whisper 模型。在 438,000 小时带标注的英语语音数据上训练。
whisper_small_multi 241.73M 12 层 Whisper 模型。在 680,000 小时带标注的多语言语音数据上训练。
whisper_medium_en 763.86M 24 层 Whisper 模型。在 438,000 小时带标注的英语语音数据上训练。
whisper_medium_multi 763.86M 24 层 Whisper 模型。在 680,000 小时带标注的多语言语音数据上训练。
whisper_large_multi 1.54B 32 层 Whisper 模型。在 680,000 小时带标注的多语言语音数据上训练。
whisper_large_multi_v2 1.54B 32 层 Whisper 模型。在 680,000 小时带标注的多语言语音数据上训练了 2.5 个 epoch。是 whisper_large_multi 的改进版本。