# Higgs Audio V2 Tokenizer

## Genel Bakış

- Düşük Kare Hızı: 25 fps'de, tokenizörümüz yüksek ses kalitesini korurken birçok baz çizginin kare hızını yarıya indirir.
- 24 kHz'de Birleşik Eğitim: Ses, müzik ve ses olayı kliplerini tek bir modelde birleştirerek hem semantik hem de akustik ayrıntıları yakalıyoruz; bu da ses dil modellerinin eğitimini büyük ölçüde kolaylaştırıyor.
- Hızlı Çıkarım: Difüzyon adımlarından kaçınarak, kodlayıcı/çözücü (encoder/decoder) partileri (batch) hızlı işler; bu da onu gerçek zamanlı veya büyük ölçekli görevler için pratik kılar.

**Model Mimarisi:**

    

## Kullanım

```python
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[[transformers.HiggsAudioV2TokenizerConfig]]

#### transformers.HiggsAudioV2TokenizerConfig[[transformers.HiggsAudioV2TokenizerConfig]]

```python
transformers.HiggsAudioV2TokenizerConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, target_bandwidths: list[int | float] | tuple[int | float, ...] = (0.5, 1, 1.5, 2, 4), sample_rate: int = 24000, kernel_size: int = 3, channel_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 = 3, codebook_size: int = 1024, codebook_dim: int = 64, initializer_range: float = 0.02, acoustic_model_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, semantic_model_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, semantic_sample_rate: int = 16000, downsample_factor: int = 320)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/higgs_audio_v2_tokenizer/configuration_higgs_audio_v2_tokenizer.py#L34)

**Parametreler:**

target_bandwidths (`List[float]`, *isteğe bağlı*, varsayılan `[0.5, 1, 1.5, 2]`) : Modelin ses kodlayabileceği farklı bant genişliklerinin (kbps cinsinden) aralığı.

sample_rate (`int`, *isteğe bağlı*, varsayılan `24000`) : Ses dosyalarının dijitalleştirileceği örneklem hızı, hertz (Hz) cinsinden ifade edilir.

kernel_size (`int`, *isteğe bağlı*, varsayılan 3) : Başlangıç semantik konvolüsyonu için çekirdek boyutu.

channel_ratios (`List[float]`, *isteğe bağlı*, varsayılan `[1, 1]`) : Her anlamsal blokta çıktı kanal sayısının genişleme çarpanları.

strides (`List[int]`, *isteğe bağlı*, varsayılan `[1, 1]`) : Her anlamsal kodlayıcı bloğu için kaydırma değerleri.

block_dilations (`List[int]`, *opsiyonel*, varsayılan `[1, 1]`) : Semantik bloklardaki artımsal birimler için genişleme katsayıları.

unit_kernel_size (`int`, *opsiyonel*, varsayılan 3) : Semantik bloklardaki her ResidualUnit içindeki çekirdek boyutu.

codebook_size (`int`, *isteğe bağlı*, varsayılan `1024`) : Modelin kullandığı paralel kod kitaplarının sayısı.

codebook_dim (`int`, *isteğe bağlı*, varsayılan `64`) : Her kod kitabı gömme vektörünün boyutluluğu.

initializer_range (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

acoustic_model_config (`Union[Dict, AutoConfig]`, *isteğe bağlı*) : Akustik (DAC) modeli için yapılandırma örneği.

semantic_model_config (`Union[Dict, AutoConfig]`, *isteğe bağlı*) : Semantik (HuBERT) modeli için yapılandırma nesnesinin bir örneği.

semantic_sample_rate (`int`, *opsiyonel*, varsayılan 16000) : Semantik modelin ses girdisini beklediği örneklem hızı, hertz (Hz) cinsinden.

downsample_factor (`int`, *isteğe bağlı*, varsayılan 320) : Semantik özellikler için indirgeme faktörü.

Bu, bir HiggsAudioV2TokenizerModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Higgs Audio V2 Tokenizer modelinin örneklenmesi için kullanılır ve model mimarisini tanımlar. Varsayılanlarla bir yapılandırma örneği oluşturmak, [bosonai/higgs-audio-v2-tokenizer](https://huggingface.co/bosonai/higgs-audio-v2-tokenizer) modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

Yapılandırma nesneleri [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) sınıfından türetilir ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) belgesini okuyun.

Örnek:

```python
>>> 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[[transformers.HiggsAudioV2TokenizerModel]]

#### transformers.HiggsAudioV2TokenizerModel[[transformers.HiggsAudioV2TokenizerModel]]

```python
transformers.HiggsAudioV2TokenizerModel(config: HiggsAudioV2TokenizerConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/higgs_audio_v2_tokenizer/modeling_higgs_audio_v2_tokenizer.py#L456)

**Parametreler:**

config ([HiggsAudioV2TokenizerConfig](/docs/transformers/main/tr/model_doc/higgs_audio_v2_tokenizer#transformers.HiggsAudioV2TokenizerConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine göz atın.

HiggsAudioV2Tokenizer sinirsel ses kodlayıcı modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### decode[[transformers.HiggsAudioV2TokenizerModel.decode]]

```python
decode(audio_codes: Tensor, return_dict: bool | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/higgs_audio_v2_tokenizer/modeling_higgs_audio_v2_tokenizer.py#L564)

**Parametreler:**

audio_codes (`torch.LongTensor`, şekli `(batch_size, num_quantizers, codes_length)`) : `model.encode` kullanılarak hesaplanan ayrık kod dizinleri.

return_dict (`bool`, *isteğe bağlı*) : Bir [ModelOutput](/docs/transformers/main/tr/main_classes/output#transformers.utils.ModelOutput) döndürülecek mi

**Dönüş:**

HiggsAudioV2Tokenizer'ın decoder kısmı kullanılarak elde edilen, `(batch_size, channels, num_samples)` biçiminde çözülmüş ses değerleri.

#### encode[[transformers.HiggsAudioV2TokenizerModel.encode]]

```python
encode(input_values: Tensor, bandwidth: float | None = None, return_dict: bool | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/higgs_audio_v2_tokenizer/modeling_higgs_audio_v2_tokenizer.py#L512)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, channels, num_samples)`) : Girdi ses dalgasının ondalık değerleri.

bandwidth (`float`, *isteğe bağlı*) : Hedef bant genişliği (kbps), yalnızca `config.target_bandwidths` içindeki değerleri destekler. Varsayılan olarak en yüksek kullanılabilir bant genişliği olan `4.0` kbps'dir.

return_dict (`bool`, *isteğe bağlı*) : [ModelOutput](/docs/transformers/main/tr/main_classes/output#transformers.utils.ModelOutput) döndürülecek mi?

**Dönüş:**

`torch.LongTensor`, şekli `(batch_size, num_quantizers, codes_length)` olan ve ayrık kodlanmış ses kodlarını içeren.

#### forward[[transformers.HiggsAudioV2TokenizerModel.forward]]

```python
forward(input_values: Tensor, audio_codes: typing.Optional[torch.Tensor] = None, bandwidth: float | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/higgs_audio_v2_tokenizer/modeling_higgs_audio_v2_tokenizer.py#L592)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, channels, num_samples)`) : Girdi ses dalgasının ham ondalık değerleri.

audio_codes (`torch.LongTensor` , şekli `(batch_size, num_quantizers, codes_length)` : `model.encode` kullanılarak hesaplanan ayrık kod dizinleri.

bandwidth (`float`, *isteğe bağlı*) : kbps cinsinden hedef bant genişliği. `config.target_bandwidths` değerlerinden biri olmalıdır. Varsayılan olarak kullanılabilir en yüksek bant genişliği kullanılır.

bandwidth (`float`, *isteğe bağlı*) : kbps cinsinden hedef bant genişliği. `config.target_bandwidths` değerlerinden biri olmalıdır. Varsayılan olarak kullanılabilir en yüksek bant genişliği kullanılır.

**Dönüş:** `HiggsAudioV2TokenizerOutput` veya `(audio_codes, audio_values)` demeti

- `audio_codes`, şekli `(batch_size, num_quantizers, codes_length)`: kuantize edilmiş ayrık kodlar.
- `audio_values`, şekli `(batch_size, channels, num_samples)`: kodlara göre yeniden oluşturulan ses dalgası.

[HiggsAudioV2TokenizerModel](/docs/transformers/main/tr/model_doc/higgs_audio_v2_tokenizer#transformers.HiggsAudioV2TokenizerModel) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

Örnek:

```python
>>> 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
```

