# Mimi

[Mimi](https://huggingface.co/papers/2410.00037) adalah model codec audio neural dengan varian pretrained dan kuantisasi, yang dirancang untuk representasi dan kompresi ucapan yang efisien. Model ini beroperasi pada 1,1 kbps dengan laju frame 12 Hz dan menggunakan arsitektur encoder-decoder konvolusional yang dikombinasikan dengan residual vector quantizer dengan 16 codebook. Mimi menghasilkan dua aliran token, yaitu semantik dan akustik, untuk menyeimbangkan kekayaan linguistik dengan rekonstruksi berkeandalan tinggi. Fitur-fitur utamanya meliputi encoder streaming kausal untuk penggunaan berlatensi rendah, tokenisasi jalur ganda untuk generasi downstream yang fleksibel, serta kesiapan integrasi dengan model ucapan besar seperti Moshi.

Anda dapat menemukan checkpoint Mimi asli di bawah organisasi [Kyutai](https://huggingface.co/kyutai/models?search=mimi).

>[!TIP]
> Model ini disumbangkan oleh [ylacombe](https://huggingface.co/ylacombe).
>
> Klik model Mimi di bilah sisi kanan untuk melihat lebih banyak contoh cara menerapkan Mimi.

Contoh di bawah ini menunjukkan cara mengkodekan dan mendekodekan audio dengan kelas [AutoModel](/docs/transformers/main/id/model_doc/auto#transformers.AutoModel).

```python
from datasets import Audio, load_dataset

from transformers import AutoFeatureExtractor, MimiModel

librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")

# load model and feature extractor
model = MimiModel.from_pretrained("kyutai/mimi", device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained("kyutai/mimi")

# load audio sample
librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=feature_extractor.sampling_rate))
audio_sample = librispeech_dummy[-1]["audio"]["array"]
inputs = feature_extractor(raw_audio=audio_sample, sampling_rate=feature_extractor.sampling_rate, return_tensors="pt").to(model.device)

encoder_outputs = model.encode(inputs["input_values"], inputs["padding_mask"])
audio_values = model.decode(encoder_outputs.audio_codes, inputs["padding_mask"])[0]
# or the equivalent with a forward pass
audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values
```

## MimiConfig[[transformers.MimiConfig]]

#### transformers.MimiConfig[[transformers.MimiConfig]]

```python
transformers.MimiConfig(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, sampling_rate: int = 24000, audio_channels: int = 1, hidden_size: int = 512, num_filters: int = 64, num_residual_layers: int = 1, upsampling_ratios: list[int] | None = None, kernel_size: int = 7, last_kernel_size: int = 3, residual_kernel_size: int = 3, dilation_growth_rate: int = 2, use_causal_conv: bool = True, pad_mode: str = 'constant', compress: int = 2, trim_right_ratio: float = 1.0, codebook_size: int = 2048, codebook_dim: int = 256, num_quantizers: int = 32, use_conv_shortcut: bool = False, vector_quantization_hidden_dimension: int = 256, num_semantic_quantizers: int = 1, upsample_groups: int = 512, num_hidden_layers: int = 8, intermediate_size: int = 2048, num_attention_heads: int = 8, num_key_value_heads: int = 8, head_dim: int | None = None, hidden_act: str = 'gelu', max_position_embeddings: int = 8000, initializer_range: float = 0.02, norm_eps: float = 1e-05, use_cache: bool = False, use_streaming: bool = False, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, sliding_window: int = 250, attention_dropout: float | int = 0.0, layer_scale_initial_scale: float = 0.01, attention_bias: bool = False, tie_word_embeddings: bool = True)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/configuration_mimi.py#L28)

**Parameter:**

sampling_rate (`int`, *opsional*, defaultnya `24000`) : Laju sampling di mana file audio harus didigitalisasi, dinyatakan dalam hertz (Hz).

audio_channels (`int`, *opsional*, default 1) : Jumlah channel dalam data audio. Bisa 1 untuk mono atau 2 untuk stereo.

hidden_size (`int`, *opsional*, defaultnya `512`) : Dimensi dari representasi tersembunyi.

num_filters (`int`, *opsional*, defaultnya 64) : Jumlah kernel konvolusi dari lapisan down sampling `MimiConv1d` pertama.

num_residual_layers (`int`,  *opsional*, defaultnya 1) : Jumlah lapisan residual.

upsampling_ratios (`Sequence[int]`, *opsional*) : Rasio ukuran kernel dan stride. Encoder menggunakan rasio downsampling alih-alih rasio upsampling, sehingga akan menggunakan rasio dalam urutan terbalik dari yang ditentukan di sini, yang harus sesuai dengan urutan decoder. Jika tidak ditentukan, akan default ke `[8, 6, 5, 4]`

kernel_size (`int`, *opsional*, defaultnya `7`) : Ukuran kernel konvolusional.

last_kernel_size (`int`, *opsional*, defaultnya 3) : Ukuran kernel untuk lapisan konvolusi terakhir.

residual_kernel_size (`int`, *opsional*, defaultnya 3) : Ukuran kernel untuk lapisan residual.

dilation_growth_rate (`int`, *opsional*, defaultnya 2) : Seberapa besar peningkatan dilasi pada setiap lapisan.

use_causal_conv (`bool`, *opsional*, defaultnya `True`) : Apakah akan menggunakan konvolusi kausal penuh.

pad_mode (`str`, *opsional*, defaultnya `"constant"`) : Mode padding untuk konvolusi.

compress (`int`, *opsional*, defaultnya 2) : Dimensi yang dikurangi di cabang residual.

trim_right_ratio (`float`, *opsional*, default 1.0) : Rasio untuk pemotongan di sisi kanan dari transposed convolution di bawah setup `use_causal_conv = True`. Jika nilainya 1.0, artinya semua pemotongan dilakukan di sisi kanan.

codebook_size (`int`, *opsional*, defaultnya `2048`) : Jumlah codebook paralel yang digunakan oleh model.

codebook_dim (`int`, *opsional*, defaultnya `256`) : Dimensi dari setiap vektor embedding codebook.

num_quantizers (`int`, *opsional*, default 32) : Jumlah kanal kuantizer, atau codebook, dalam kuantizer.

use_conv_shortcut (`bool`, *opsional*, defaultnya `False`) : Apakah akan menggunakan lapisan konvolusional sebagai koneksi 'skip' dalam blok `MimiResnetBlock`. Jika False, fungsi identitas akan digunakan, menghasilkan koneksi residual generik.

vector_quantization_hidden_dimension (`int`, *opsional*, default 256) : Dimensi representasi perantara dalam ruang residual vector quantization.

num_semantic_quantizers (`int`, *opsional*, default 1) : Jumlah kanal kuantizer semantik, atau codebook, dalam kuantizer semantik. Harus lebih kecil dari `num_quantizers`.

upsample_groups (`int`, *opsional*, default 512) : Jika `frame_rate!=encodec_frame_rate`, menunjukkan jumlah grup yang digunakan dalam operasi upsampling untuk beralih dari satu laju ke laju lainnya.

num_hidden_layers (`int`, *opsional*, defaultnya `8`) : Jumlah lapisan tersembunyi dalam decoder Transformer.

intermediate_size (`int`, *opsional*, defaultnya `2048`) : Dimensi dari representasi MLP.

num_attention_heads (`int`, *opsional*, defaultnya `8`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.

num_key_value_heads (`int`, *opsional*, defaultnya `8`) : Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jika `num_key_value_heads=num_attention_heads`, model akan menggunakan Multi Head Attention (MHA), jika `num_key_value_heads=1` model akan menggunakan Multi Query Attention (MQA), selain itu GQA yang digunakan. Saat mengonversi checkpoint multi-head menjadi checkpoint GQA, setiap group key dan value head harus dibangun dengan meanpooling semua head asli di dalam grup tersebut. Untuk detail lebih lanjut, lihat [paper ini](https://huggingface.co/papers/2305.13245). Jika tidak ditentukan, akan default ke `num_attention_heads`.

head_dim (`int`, *opsional*) : Dimensi kepala perhatian. Jika None, nilainya akan secara default menjadi hidden_size // num_attention_heads

hidden_act (`str`, *opsional*, defaultnya `gelu`) : Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, `"gelu"`, `"relu"`, `"silu"`, dan sebagainya.

max_position_embeddings (`int`, *opsional*, defaultnya `8000`) : Panjang maksimum urutan yang mungkin akan digunakan dengan model ini.

initializer_range (`float`, *opsional*, defaultnya `0.02`) : Deviasi standar dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

norm_eps (`float`, *opsional*, defaultnya `1e-05`) : Epsilon yang digunakan oleh lapisan normalisasi lapisan.

use_cache (`bool`, *opsional*, defaultnya `False`) : Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jika `config.is_decoder=True` atau ketika model adalah model generatif yang hanya decoder.

use_streaming (`bool`, *opsional*, defaultnya `False`) : Apakah akan menggunakan mode streaming. Jika `True`, metode encode model akan mengembalikan padding cache yang dapat digunakan dalam panggilan berikutnya ke metode encode.

rope_parameters (`Union[~modeling_rope_utils.RopeParameters, dict]`, *opsional*) : Dictionary yang berisi parameter konfigurasi untuk embedding RoPE. Dictionary harus berisi nilai untuk `rope_theta` dan secara opsional parameter yang digunakan untuk scaling jika Anda ingin menggunakan RoPE dengan `max_position_embeddings` yang lebih panjang.

sliding_window (`int`, *opsional*, defaultnya `250`) : Ukuran jendela untuk sliding window attention. Jika `None`, sliding window tidak diterapkan.

attention_dropout (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Rasio dropout untuk probabilitas perhatian.

layer_scale_initial_scale (`float`, *opsional*, default `0.01`) : Skala yang digunakan pada lapisan self-attention. 0.1 untuk base, 1e-6 untuk large. Setel 0 untuk menonaktifkan layer scale.

attention_bias (`bool`, *opsional*, defaultnya `False`) : Apakah akan menggunakan bias pada lapisan proyeksi query, key, value, dan output selama self-attention.

tie_word_embeddings (`bool`, *opsional*, defaultnya `True`) : Apakah mengikat embedding bobot sesuai dengan pemetaan `tied_weights_keys` model.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MimiModel. Kelas ini digunakan untuk membuat instans model Mimi sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [kyutai/mimi](https://huggingface.co/kyutai/mimi)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

Contoh:

```python
>>> from transformers import MimiModel, MimiConfig

>>> # Initializing a "kyutai/mimi" style configuration
>>> configuration = MimiConfig()

>>> # Initializing a model (with random weights) from the "kyutai/mimi" style configuration
>>> model = MimiModel(configuration)

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

## MimiEncoderConfig[[transformers.MimiEncoderConfig]]

#### transformers.MimiEncoderConfig[[transformers.MimiEncoderConfig]]

```python
transformers.MimiEncoderConfig(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, sampling_rate: int = 24000, audio_channels: int = 1, hidden_size: int = 512, num_filters: int = 64, num_residual_layers: int = 1, upsampling_ratios: list[int] | None = None, kernel_size: int = 7, last_kernel_size: int = 3, residual_kernel_size: int = 3, dilation_growth_rate: int = 2, use_causal_conv: bool = True, pad_mode: str = 'constant', compress: int = 2, trim_right_ratio: float = 1.0, codebook_size: int = 2048, codebook_dim: int = 256, num_quantizers: int = 32, use_conv_shortcut: bool = False, vector_quantization_hidden_dimension: int = 256, num_semantic_quantizers: int = 1, upsample_groups: int = 512, num_hidden_layers: int = 8, intermediate_size: int = 2048, num_attention_heads: int = 8, num_key_value_heads: int = 8, head_dim: int | None = None, hidden_act: str = 'gelu', max_position_embeddings: int = 8000, initializer_range: float = 0.02, norm_eps: float = 1e-05, use_cache: bool = False, use_streaming: bool = False, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, sliding_window: int = 250, attention_dropout: float | int = 0.0, layer_scale_initial_scale: float = 0.01, attention_bias: bool = False, tie_word_embeddings: bool = True)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/configuration_mimi.py#L249)

Konfigurasi bagian encoder dari Mimi (encoder SEANet, transformer encoder, dan downsampling). Ini berbagi setiap field dengan [MimiConfig](/docs/transformers/main/id/model_doc/mimi#transformers.MimiConfig) (lihat dokumentasinya untuk argumennya), sehingga dapat dimuat langsung dari checkpoint Mimi lengkap.

## MimiDecoderConfig[[transformers.MimiDecoderConfig]]

#### transformers.MimiDecoderConfig[[transformers.MimiDecoderConfig]]

```python
transformers.MimiDecoderConfig(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, sampling_rate: int = 24000, audio_channels: int = 1, hidden_size: int = 512, num_filters: int = 64, num_residual_layers: int = 1, upsampling_ratios: list[int] | None = None, kernel_size: int = 7, last_kernel_size: int = 3, residual_kernel_size: int = 3, dilation_growth_rate: int = 2, use_causal_conv: bool = True, pad_mode: str = 'constant', compress: int = 2, trim_right_ratio: float = 1.0, codebook_size: int = 2048, codebook_dim: int = 256, num_quantizers: int = 32, use_conv_shortcut: bool = False, vector_quantization_hidden_dimension: int = 256, num_semantic_quantizers: int = 1, upsample_groups: int = 512, num_hidden_layers: int = 8, intermediate_size: int = 2048, num_attention_heads: int = 8, num_key_value_heads: int = 8, head_dim: int | None = None, hidden_act: str = 'gelu', max_position_embeddings: int = 8000, initializer_range: float = 0.02, norm_eps: float = 1e-05, use_cache: bool = False, use_streaming: bool = False, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, sliding_window: int = 250, attention_dropout: float | int = 0.0, layer_scale_initial_scale: float = 0.01, attention_bias: bool = False, tie_word_embeddings: bool = True)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/configuration_mimi.py#L277)

Konfigurasi bagian decoder dari Mimi (upsampling, decoder transformer, dan decoder SEANet). Bagian ini berbagi setiap field dengan [MimiConfig](/docs/transformers/main/id/model_doc/mimi#transformers.MimiConfig) (lihat dokumentasinya untuk argumennya), sehingga dapat dimuat langsung dari checkpoint Mimi lengkap.

## MimiModel[[transformers.MimiModel]]

#### transformers.MimiModel[[transformers.MimiModel]]

```python
transformers.MimiModel(config: MimiConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1346)

**Parameter:**

config ([MimiConfig](/docs/transformers/main/id/model_doc/mimi#transformers.MimiConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model codec audio neural Mimi.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### decode[[transformers.MimiModel.decode]]

```python
decode(audio_codes: Tensor, padding_mask: typing.Optional[torch.Tensor] = None, decoder_past_key_values: transformers.cache_utils.Cache | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1430)

Mendekodekan frame yang diberikan menjadi waveform audio keluaran: kode-kode tersebut didekuantisasi menjadi latents dari [MimiDecoderModel.forward()](/docs/transformers/main/id/model_doc/mimi#transformers.MimiDecoderModel.forward).

#### encode[[transformers.MimiModel.encode]]

```python
encode(input_values: Tensor, padding_mask: typing.Optional[torch.Tensor] = None, num_quantizers: float | None = None, encoder_past_key_values: transformers.cache_utils.Cache | None = None, padding_cache: transformers.models.mimi.modeling_mimi.MimiConv1dPaddingCache | None = None, use_streaming: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1394)

Mengkodekan gelombang audio input menjadi kode diskrit dengan bentuk `(batch_size, num_quantizers, frames)`: latents dari [MimiEncoderModel.forward()](/docs/transformers/main/id/model_doc/mimi#transformers.MimiEncoderModel.forward), yang dikuantisasi.

#### forward[[transformers.MimiModel.forward]]

```python
forward(input_values: Tensor, padding_mask: typing.Optional[torch.Tensor] = None, num_quantizers: int | None = None, audio_codes: typing.Optional[torch.Tensor] = None, encoder_past_key_values: transformers.cache_utils.Cache | None = None, decoder_past_key_values: transformers.cache_utils.Cache | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1453)

**Parameter:**

input_values (`torch.Tensor` dengan bentuk `(batch_size, channels, sequence_length)`, *opsional*) : Input audio mentah yang dikonversi ke Float.

padding_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Menunjukkan input mana yang harus diabaikan karena padding, di mana elemennya adalah 1 untuk *tidak dimasker* atau 0 untuk *dimasker*.

num_quantizers (`int`, *opsional*) : Jumlah kuantizer (yaitu codebook) yang akan digunakan. Secara default, semua kuantizer digunakan.

audio_codes (`torch.LongTensor` dengan bentuk `(batch_size, num_quantizers, codes_length)`, *opsional*) : Embedding kode diskrit yang dihitung menggunakan `model.encode`.

encoder_past_key_values (`Cache`, *opsional*) : hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari encoder transformer. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`. Model akan mengoutput format cache yang sama dengan yang diberikan sebagai input. Jika `past_key_values` digunakan, pengguna dapat secara opsional hanya memasukkan `audio_values` terakhir atau `audio_codes (yang tidak memiliki state past key value mereka diberikan ke model ini).

decoder_past_key_values (`Cache`, *opsional*) : hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari decoder transformer. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`. Model akan mengoutput format cache yang sama dengan yang diberikan sebagai input. Jika `past_key_values` digunakan, pengguna dapat secara opsional hanya memasukkan `audio_values` atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).

**Mengembalikan:** `MimiOutput` atau `tuple(torch.Tensor)`

`MimiOutput` atau tuple dari `torch.Tensor` (jika `return_dict=False` dilewatkan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([MimiConfig](/docs/transformers/main/id/model_doc/mimi#transformers.MimiConfig)) dan input.

Metode forward dari [MimiModel](/docs/transformers/main/id/model_doc/mimi#transformers.MimiModel) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **audio_codes** (`torch.LongTensor` dengan bentuk `(batch_size, num_quantizers, codes_length)`, *opsional*) -- Embedding kode diskrit yang dihitung menggunakan `model.encode`.
- **audio_values** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) -- Nilai audio yang telah didekode, diperoleh menggunakan bagian decoder dari Mimi.
- **encoder_past_key_values** (`Cache`, *opsional*) -- Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari encoder transformer. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`.

  Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

  Jika `past_key_values` digunakan, pengguna dapat secara opsional hanya memasukkan `audio_values` atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).
- **decoder_past_key_values** (`Cache`, *opsional*) -- Hidden-states yang telah dihitung sebelumnya (key dan values dalam blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari decoder transformer. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`.

  Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

  Jika `past_key_values` digunakan, pengguna dapat secara opsional hanya memasukkan `audio_values` atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).

Contoh:

```python
>>> from datasets import load_dataset
>>> from transformers import AutoFeatureExtractor, MimiModel

>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]

>>> model_id = "kyutai/mimi"
>>> model = MimiModel.from_pretrained(model_id)
>>> feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)

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

>>> outputs = model(**inputs)
>>> audio_codes = outputs.audio_codes
>>> audio_values = outputs.audio_values
```

## MimiEncoderModel[[transformers.MimiEncoderModel]]

#### transformers.MimiEncoderModel[[transformers.MimiEncoderModel]]

```python
transformers.MimiEncoderModel(config: MimiEncoderConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1147)

**Parameter:**

config ([MimiEncoderConfig](/docs/transformers/main/id/model_doc/mimi#transformers.MimiEncoderConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Setengah encoder dari Mimi: encoder SEANet, transformer encoder, dan downsampling, dari audio ke latens kontinu.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.MimiEncoderModel.forward]]

```python
forward(input_values: Tensor, padding_mask: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, padding_cache: transformers.models.mimi.modeling_mimi.MimiConv1dPaddingCache | None = None, use_streaming: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1208)

**Parameter:**

input_values (`torch.Tensor` dengan bentuk `(batch_size, channels, sequence_length)`) : Nilai float dari waveform audio input.

padding_mask (`torch.Tensor` dengan bentuk `(batch_size, channels, sequence_length)`, *opsional*) : Menunjukkan input mana yang harus diabaikan karena padding, di mana elemennya adalah 1 untuk *tidak dimasker* atau 0 untuk *dimasker*.

past_key_values (`Cache`, *opsional*) : hidden-states (key dan values di blok self-attention) yang sudah dihitung sebelumnya dari transformer encoder, digunakan untuk mempercepat streaming encoding.

padding_cache (`MimiConv1dPaddingCache`, *opsional*) : Padding cache dari konvolusi kausal, digunakan untuk pengkodean streaming.

use_streaming (`bool`, *opsional*) : Apakah akan mengodekan dalam mode streaming, mengembalikan cache untuk diteruskan ke panggilan berikutnya.

Mengkodekan gelombang audio input menjadi latens kontinu dengan bentuk `(batch_size, latent_dim, frames)`. --

**Mengembalikan:** `MimiEncoderModelOutput` atau `tuple(torch.Tensor)`

Sebuah `MimiEncoderModelOutput` atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([MimiConfig](/docs/transformers/main/id/model_doc/mimi#transformers.MimiConfig)) dan input.

Metode forward dari [MimiEncoderModel](/docs/transformers/main/id/model_doc/mimi#transformers.MimiEncoderModel) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **latents** (`torch.Tensor` dengan bentuk `(batch_size, latent_dim, frames)`) -- Laten kontinu dari audio, satu frame per `config.frame_size` sampel audio.
- **past_key_values** (`Cache`, *opsional*) -- Hidden-states (key dan values di blok self-attention) yang telah dihitung sebelumnya dari encoder transformer, dikembalikan saat streaming.
- **padding_cache** (`MimiConv1dPaddingCache`, *opsional*) -- Cache padding untuk konvolusi kausal MimiConv1d guna mendukung streaming melalui padding cache.
- **hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True`) -- Hidden states dari encoder transformer pada output setiap layer beserta input-nya.
- **attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_attentions=True`) -- Bobot perhatian dari setiap lapisan transformer encoder.

## MimiDecoderModel[[transformers.MimiDecoderModel]]

#### transformers.MimiDecoderModel[[transformers.MimiDecoderModel]]

```python
transformers.MimiDecoderModel(config: MimiDecoderConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1279)

**Parameter:**

config ([MimiDecoderConfig](/docs/transformers/main/id/model_doc/mimi#transformers.MimiDecoderConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Setengah bagian decoder dari Mimi: upsampling, transformer decoder, dan decoder SEANet, dari latens kontinu ke audio.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.MimiDecoderModel.forward]]

```python
forward(latents: Tensor, padding_mask: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mimi/modeling_mimi.py#L1306)

**Parameter:**

latents (`torch.Tensor` dengan bentuk `(batch_size, hidden_size, frames)`) : Laten kontinu untuk didekode, sebagaimana dihitung oleh [MimiModel.decode()](/docs/transformers/main/id/model_doc/mimi#transformers.MimiModel.decode).

padding_mask (`torch.Tensor` dengan bentuk `(batch_size, channels, sequence_length)`, *opsional*) : Menunjukkan input mana yang harus diabaikan karena padding, di mana elemennya adalah 1 untuk *tidak dimasker* atau 0 untuk *dimasker*.

past_key_values (`Cache`, *opsional*) : hidden-states (key dan values di blok self-attention) yang sudah dihitung sebelumnya dari transformer decoder, digunakan untuk mempercepat decoding streaming.

Mendekodekan frame yang diberikan menjadi waveform audio keluaran. Perhatikan bahwa keluaran mungkin sedikit lebih besar dari --

input. Dalam hal itu, langkah-langkah tambahan di akhir dapat dipangkas. --

**Mengembalikan:** `MimiDecoderOutput` atau `tuple(torch.Tensor)`

A `MimiDecoderOutput` atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([MimiConfig](/docs/transformers/main/id/model_doc/mimi#transformers.MimiConfig)) dan input.

Metode forward dari [MimiDecoderModel](/docs/transformers/main/id/model_doc/mimi#transformers.MimiDecoderModel) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **audio_values** (`torch.Tensor` dengan bentuk `(batch_size, audio_channels, num_samples)`, *opsional*) -- Nilai audio yang telah didekode, diperoleh menggunakan bagian decoder dari Mimi.
- **decoder_past_key_values** (`Cache`, *opsional*) -- Hidden-states yang telah dihitung sebelumnya (key dan values dalam blok self-attention) yang dapat digunakan untuk mempercepat decoding berurutan dari decoder transformer. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`.

  Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

  Jika `past_key_values` digunakan, pengguna dapat secara opsional hanya memasukkan `audio_values` atau `audio_codes terakhir (yang tidak memiliki state past key value yang diberikan ke model ini).
- **hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True`) -- Hidden states dari decoder transformer pada output setiap layer beserta input-nya.
- **attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_attentions=True`) -- Bobot perhatian dari setiap lapisan transformer decoder.

