Transformers documentation

Higgs Audio V2 分词器

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

该模型于 2026-02-19 贡献至 Hugging Face Transformers。

Higgs Audio V2 分词器

概述

  • 低帧率:在 25 fps 下,我们的分词器在保持高音频质量的同时,将帧率降低到许多基线方法的一半。
  • 统一的 24 kHz 训练:我们将语音、音乐和声音事件片段混合在一个模型中进行训练,同时捕捉语义和声学细节,极大地促进了音频语言模型的训练。
  • 快速推理:通过避免扩散步骤,我们的编码器/解码器能够快速处理批次,使其适用于实时或大规模任务。

模型架构:

用法

from datasets import Audio, load_dataset

from transformers import AutoFeatureExtractor, HiggsAudioV2TokenizerModel


# load model and feature extractor
model_id = "eustlb/higgs-audio-v2-tokenizer"
feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
model = HiggsAudioV2TokenizerModel.from_pretrained(model_id, device_map="auto")

# load audio sample
dummy_dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
dummy_dataset = dummy_dataset.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audio_sample = dummy_dataset[-1]["audio"]["array"]
inputs = feature_extractor(raw_audio=audio_sample, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(model.device)

# encode and decode
encoder_outputs = model.encode(inputs["input_values"])
decoder_outputs = model.decode(encoder_outputs.audio_codes)
audio_values = decoder_outputs.audio_values

# or the equivalent with a forward pass
audio_values = model(inputs["input_values"]).audio_values

HiggsAudioV2TokenizerConfig

class transformers.HiggsAudioV2TokenizerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonetarget_bandwidths: list[int | float] | tuple[int | float, ...] = (0.5, 1, 1.5, 2, 4)sample_rate: int = 24000kernel_size: int = 3channel_ratios: list[int] | tuple[int, ...] = (1, 1)strides: list[int] | tuple[int, ...] = (1, 1)block_dilations: list[int] | tuple[int, ...] = (1, 1)unit_kernel_size: int = 3codebook_size: int = 1024codebook_dim: int = 64initializer_range: float = 0.02acoustic_model_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonesemantic_model_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonesemantic_sample_rate: int = 16000downsample_factor: int = 320 )

参数

  • target_bandwidths (List[float],可选,默认为 [0.5, 1, 1.5, 2]) — 模型可用于编码音频的不同带宽范围(单位:kbps)。
  • sample_rate (int,可选,默认为 24000) — 音频文件应被数字化时的采样率,以赫兹(Hz)为单位。
  • kernel_size (int,可选,默认为 3) — 初始语义卷积的卷积核大小。
  • channel_ratios (List[float],可选,默认为 [1, 1]) — 每个语义块中输出通道数的扩展因子。
  • strides (List[int],可选,默认为 [1, 1]) — 每个语义编码器块的步长。
  • block_dilations (List[int],可选,默认为 [1, 1]) — 语义块中残差单元的膨胀因子。
  • unit_kernel_size (int,可选,默认为 3) — 语义块中每个 ResidualUnit 的卷积核大小。
  • codebook_size (int,可选,默认为 1024) — 模型使用的并行码本数量。
  • codebook_dim (int,可选,默认为 64) — 每个码本嵌入向量的维度。
  • initializer_range (float,可选,默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。
  • acoustic_model_config (Union[Dict, AutoConfig], 可选) — 声学(DAC)模型的配置实例。
  • semantic_model_config (Union[Dict, AutoConfig], 可选) — 语义(HuBERT)模型的配置对象实例。
  • semantic_sample_rate (int,可选,默认为 16000) — 语义模型期望的音频输入采样率,单位为赫兹(Hz)。
  • downsample_factor (int,可选,默认为 320) — 语义特征的降采样因子。

这是用于存储 HiggsAudioV2TokenizerModel 配置的类。它根据指定的参数实例化 Higgs Audio V2 Tokenizer 模型,并定义模型架构。使用默认值实例化配置将得到与 bosonai/higgs-audio-v2-tokenizer 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。

示例:

>>> from transformers import HiggsAudioV2TokenizerModel, HiggsAudioV2TokenizerConfig

>>> # Initializing configuration
>>> configuration = HiggsAudioV2TokenizerConfig()

>>> # Initializing a model (with random weights) from the configuration
>>> model = HiggsAudioV2TokenizerModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

HiggsAudioV2TokenizerModel

class transformers.HiggsAudioV2TokenizerModel

< >

( config: HiggsAudioV2TokenizerConfig )

参数

  • config (HiggsAudioV2TokenizerConfig) — 模型的配置类,包含模型的所有参数。使用配置文件进行初始化时,不会加载与模型关联的权重,仅加载配置。请查看 from_pretrained() 方法以加载模型权重。

HiggsAudioV2Tokenizer 神经音频编解码器模型。

该模型继承自 PreTrainedModel。请查阅父类文档,了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头等)。

该模型也是 PyTorch torch.nn.Module 的子类。 请将其作为常规的 PyTorch Module 使用,有关通用用法和行为的所有事项,请参阅 PyTorch 文档。

decode

< >

( audio_codes: Tensorreturn_dict: bool | None = None )

参数

  • audio_codes(形状为 (batch_size, num_quantizers, codes_length) 的 torch.LongTensor)— 使用 model.encode 计算得出的离散编码索引。
  • return_dict (bool, 可选) — 是否返回 ModelOutput

encode

< >

( input_values: Tensorbandwidth: float | None = Nonereturn_dict: bool | None = None )

参数

  • input_values(形状为 (batch_size, channels, num_samples) 的 torch.Tensor)— 输入音频波形的浮点值。
  • bandwidth (float, 可选) — 目标带宽(kbps),仅支持 config.target_bandwidths 中的值。 默认为可用的最高带宽 4.0 kbps。
  • return_dict (bool, 可选) — 是否返回 ModelOutput。

forward

< >

( input_values: Tensoraudio_codes: typing.Optional[torch.Tensor] = Nonebandwidth: float | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → HiggsAudioV2TokenizerOutput or tuple (audio_codes, audio_values)

参数

  • input_values(形状为 (batch_size, channels, num_samples) 的 torch.Tensor)— 输入音频波形的原始浮点值。
  • audio_codes (torch.LongTensor,形状为 (batch_size, num_quantizers, codes_length) — 使用 model.encode 计算得出的离散编码索引。
  • bandwidth (float, 可选) — 目标带宽,单位为 kbps。必须是 config.target_bandwidths 中的一个值。默认使用可用的最高带宽。
  • bandwidth (float, 可选) — 目标带宽,单位为 kbps。必须是 config.target_bandwidths 中的一个值。默认使用可用的最高带宽。

返回值

HiggsAudioV2TokenizerOutput 或元组 (audio_codes, audio_values)

  • 形状为 (batch_size, num_quantizers, codes_length) 的 audio_codes:量化后的离散编码。
  • 形状为 (batch_size, channels, num_samples) 的 audio_values:根据编码重建的音频波形。

HiggsAudioV2TokenizerModel 的 forward 方法重写了 __call__ 特殊方法。

尽管前向传播的实现需要在此函数中定义,但之后应调用 Module 实例,而不是直接调用此函数,因为前者会负责执行预处理和后处理步骤,而后者则会静默地忽略这些步骤。

示例:

>>> from datasets import load_dataset
>>> from transformers import AutoFeatureExtractor, HiggsAudioV2TokenizerModel

>>> model_id = "hf-audio/higgs_audio_v2_tokenizer-hubert-librispeech"
>>> model = HiggsAudioV2TokenizerModel.from_pretrained(model_id)
>>> feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> dataset = dataset.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
>>> audio_sample = dataset[0]['audio']['array']

>>> inputs = feature_extractor(raw_audio=audio_sample, return_tensors="pt")

>>> outputs = model(**inputs)
>>> audio_codes = outputs.audio_codes
>>> audio_values = outputs.audio_values
Update on GitHub