KerasHub: 预训练模型 / API 文档 / 模型架构 / Whisper / Whisper音频转换器

Whisper音频转换器

[源代码]

WhisperAudioConverter

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

Whisper 音频转换器层。

该层接收一批音频张量,并为每个音频张量计算 log-mel 频谱图特征。

输入音频张量的形状可以是 (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. mel 频率滤波器的数量。默认为 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 Models 句柄,例如 '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 Models 句柄、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 的改进版本。