# SeamlessM4T

## Ikhtisar

Model SeamlessM4T diusulkan dalam [SeamlessM4T — Massively Multilingual & Multimodal Machine Translation](https://huggingface.co/papers/2308.11596) oleh tim Seamless Communication dari Meta AI.

Ini adalah rilis **versi 1** dari model. Untuk rilis **versi 2** yang diperbarui, silakan lihat [dokumentasi Seamless M4T v2](./seamless_m4t_v2).

SeamlessM4T adalah kumpulan model yang dirancang untuk menyediakan terjemahan berkualitas tinggi, memungkinkan orang dari berbagai komunitas bahasa untuk berkomunikasi dengan mudah melalui ucapan dan teks.

SeamlessM4T memungkinkan berbagai tugas tanpa bergantung pada model terpisah:

- Terjemahan ucapan ke ucapan (S2ST)
- Terjemahan ucapan-ke-teks (S2TT)
- Terjemahan teks-ke-bicara (T2ST)
- Terjemahan teks-ke-teks (T2TT)
- Pengakuan ucapan otomatis (ASR)

[SeamlessM4TModel](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TModel) dapat melakukan semua tugas di atas, tetapi setiap tugas juga memiliki sub-model khusus masing-masing.

Abstrak dari makalah tersebut adalah sebagai berikut:

*Apa yang dibutuhkan untuk menciptakan Babel Fish, sebuah alat yang dapat membantu individu menerjemahkan ucapan antara dua bahasa mana pun? Meskipun terobosan terbaru dalam model berbasis teks telah mendorong cakupan penerjemahan mesin melampaui 200 bahasa, model penerjemahan ucapan-ke-ucapan yang terpadu belum mencapai kemajuan serupa. Secara lebih spesifik, sistem penerjemahan ucapan-ke-ucapan konvensional bergantung pada sistem berjenjang (cascaded) yang melakukan penerjemahan secara bertahap, sehingga sistem terpadu berkinerja tinggi sulit dijangkau. Untuk mengatasi celah ini, kami memperkenalkan SeamlessM4T, sebuah model tunggal yang mendukung penerjemahan ucapan-ke-ucapan, penerjemahan ucapan-ke-teks, penerjemahan teks-ke-ucapan, penerjemahan teks-ke-teks, dan pengenalan ucapan otomatis untuk hingga 100 bahasa. Untuk membangun ini, kami menggunakan 1 juta jam data audio ucapan terbuka untuk mempelajari representasi ucapan self-supervised dengan w2v-BERT 2.0. Selanjutnya, kami membuat korpus multimodal dari penerjemahan ucapan yang diselaraskan secara otomatis. Setelah difilter dan digabungkan dengan data berlabel manusia dan berlabel pseudo, kami mengembangkan sistem multibahasa pertama yang mampu menerjemahkan dari dan ke bahasa Inggris untuk kedua modus ucapan dan teks. Pada FLEURS, SeamlessM4T menetapkan standar baru untuk penerjemahan ke berbagai bahasa target, mencapai peningkatan 20% BLEU dibandingkan SOTA sebelumnya dalam penerjemahan langsung ucapan-ke-teks. Dibandingkan dengan model berjenjang yang kuat, SeamlessM4T meningkatkan kualitas penerjemahan ke bahasa Inggris sebesar 1,3 poin BLEU dalam ucapan-ke-teks dan sebesar 2,6 poin ASR-BLEU dalam ucapan-ke-ucapan. Diuji untuk ketangguhan, sistem kami berkinerja lebih baik terhadap kebisingan latar belakang dan variasi pembicara dalam tugas ucapan-ke-teks dibandingkan model SOTA saat ini. Yang penting, kami mengevaluasi SeamlessM4T pada bias gender dan menambahkan toksisitas untuk menilai keamanan penerjemahan. Akhirnya, semua kontribusi dalam karya ini diopen-source dan dapat diakses di https://github.com/facebookresearch/seamless_communication*

## Penggunaan

Pertama, muat processor dan checkpoint model:

```python
from transformers import AutoProcessor, SeamlessM4TModel

processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
model = SeamlessM4TModel.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")
```

Anda dapat menggunakan model ini secara mulus pada teks atau audio, untuk menghasilkan teks terjemahan atau audio terjemahan.

Berikut adalah cara menggunakan processor untuk memproses teks dan audio:

```python
# let's load an audio sample from an Arabic speech corpus
from datasets import load_dataset

dataset = load_dataset("halabi2016/arabic_speech_corpus", split="test", streaming=True)
audio_sample = next(iter(dataset))["audio"]

# now, process it
audio_inputs = processor(audio=audio_sample["array"], return_tensors="pt").to(model.device)

# now, process some English test as well
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt").to(model.device)
```

### Bicara

[SeamlessM4TModel](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TModel) dapat menghasilkan teks atau suara secara *seamless* dengan sedikit atau tanpa perubahan. Mari kita targetkan terjemahan suara ke bahasa Rusia:

```python
audio_array_from_text = model.generate(**text_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
```

Dengan kode yang pada dasarnya sama, saya telah menerjemahkan teks bahasa Inggris dan ucapan bahasa Arab menjadi sampel ucapan bahasa Rusia.

### Teks

Demikian pula, Anda dapat menghasilkan teks terjemahan dari file audio atau dari teks dengan model yang sama. Anda hanya perlu meneruskan `generate_speech=False` ke [SeamlessM4TModel.generate()](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TModel.generate). Kali ini, mari kita terjemahkan ke bahasa Prancis.

```python
# from audio
output_tokens = model.generate(**audio_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_audio = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

# from text
output_tokens = model.generate(**text_inputs, tgt_lang="fra", generate_speech=False)
translated_text_from_text = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)
```

### Tips

#### 1. Gunakan model khusus

[SeamlessM4TModel](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TModel) adalah model tingkat atas dari transformers untuk menghasilkan ucapan dan teks, tetapi Anda juga dapat menggunakan model khusus yang menjalankan tugas tersebut tanpa komponen tambahan, sehingga mengurangi jejak memori. Misalnya, Anda dapat mengganti cuplikan kode generasi audio-ke-audio dengan model yang khusus untuk tugas S2ST, sisanya adalah kode yang persis sama:

```python
from transformers import SeamlessM4TForSpeechToSpeech

model = SeamlessM4TForSpeechToSpeech.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")
```

Atau Anda dapat mengganti cuplikan kode generasi teks-ke-teks dengan model yang khusus untuk tugas T2TT, Anda hanya perlu menghapus `generate_speech=False`.

```python
from transformers import SeamlessM4TForTextToText

model = SeamlessM4TForTextToText.from_pretrained("facebook/hf-seamless-m4t-medium", device_map="auto")
```

Silakan coba juga [SeamlessM4TForSpeechToText](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TForSpeechToText) dan [SeamlessM4TForTextToSpeech](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TForTextToSpeech).

#### 2. Ubah identitas pembicara

Anda dapat mengubah pembicara yang digunakan untuk sintesis ucapan dengan argumen `spkr_id`. Beberapa `spkr_id` bekerja lebih baik daripada yang lain untuk beberapa bahasa!

#### 3. Ubah strategi generasi

Anda dapat menggunakan berbagai [strategi generasi](../generation_strategies) untuk generasi ucapan dan teks, misalnya `.generate(input_ids=input_ids, text_num_beams=4, speech_do_sample=True)` yang akan secara berurutan melakukan dekoding beam-search pada model teks, dan pengambilan sampel multinomial pada model ucapan.

#### 4. Generate ucapan dan teks secara bersamaan

Gunakan `return_intermediate_token_ids=True` dengan [SeamlessM4TModel](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TModel) untuk mengembalikan baik ucapan maupun teks!

## Arsitektur model

SeamlessM4T memiliki arsitektur serbaguna yang menangani generasi teks dan ucapan secara berurutan dengan mulus. Konfigurasi ini terdiri dari dua model sequence-to-sequence (seq2seq). Model pertama menerjemahkan modalitas input menjadi teks terjemahan, sementara model kedua menghasilkan token ucapan, yang dikenal sebagai "unit tokens," dari teks terjemahan tersebut.

Setiap modalitas memiliki encoder khusus dengan arsitektur yang unik. Selain itu, untuk output ucapan, sebuah vocoder yang terinspirasi dari arsitektur [HiFi-GAN](https://huggingface.co/papers/2010.05646) ditempatkan di atas model seq2seq kedua.

Berikut cara kerja proses generasi:

- Teks atau ucapan yang diinput diproses melalui encoder spesifiknya.
- Decoder membuat token teks dalam bahasa yang diinginkan.
- Jika diperlukan, model seq2seq kedua, yang mengikuti struktur encoder-decoder standar, menghasilkan unit token.
- Token unit ini kemudian diteruskan melalui vocoder akhir untuk menghasilkan ucapan yang sebenarnya.

Model ini disumbangkan oleh [ylacombe](https://huggingface.co/ylacombe). Kode aslinya dapat ditemukan [di sini](https://github.com/facebookresearch/seamless_communication).

## SeamlessM4TModel[[transformers.SeamlessM4TModel]]

#### transformers.SeamlessM4TModel[[transformers.SeamlessM4TModel]]

```python
transformers.SeamlessM4TModel(config: SeamlessM4TConfig, current_modality = 'text')
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L3360)

**Parameter:**

config ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) : 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.

current_modality (`str`, *opsional*, defaultnya `"text"`) : Modalitas default. Digunakan untuk menginisialisasi model.

Model transformer asli SeamlessM4T yang dapat digunakan untuk semua tugas yang tersedia (S2ST, S2TT, T2TT, T2ST).

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.

#### generate[[transformers.SeamlessM4TModel.generate]]

```python
generate(input_ids: typing.Optional[torch.Tensor] = None, input_features: typing.Optional[torch.Tensor] = None, return_intermediate_token_ids: bool | None = None, tgt_lang: str | None = None, spkr_id: int | None = 0, generate_speech: bool | None = True, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L3548)

**Parameter:**

input_ids (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Indeks token urutan input dalam kosakata. Indeks dapat diperoleh menggunakan [SeamlessM4TTokenizer](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TTokenizer) atau [SeamlessM4TProcessor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TProcessor). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detail. [Apa itu input IDs?](../glossary#input-ids)

input_features (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, num_banks)`, *opsional*) : Fitur audio input. Ini seharusnya dikembalikan oleh kelas [SeamlessM4TFeatureExtractor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor) atau kelas [SeamlessM4TProcessor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TProcessor). Lihat [SeamlessM4TFeatureExtractor.__call__()](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor.__call__) untuk detailnya.

return_intermediate_token_ids (`bool`, *opsional*) : Jika `True`, juga mengembalikan teks dan unit token yang dihasilkan secara intermediat. Atur ke `True` jika Anda juga ingin mendapatkan teks terjemahan bersama dengan audio. Perhatikan bahwa jika `generate_speech=False`, parameter ini akan diabaikan dan token teks yang dikembalikan.

tgt_lang (`str`, *opsional*) : Bahasa yang akan digunakan sebagai bahasa target untuk terjemahan.

spkr_id (`int`, *opsional*, default 0) : id pembicara yang digunakan untuk sintesis ucapan. Harus lebih kecil dari `config.vocoder_num_spkrs`.

generate_speech (`bool`, *opsional*, defaultnya `True`) : Jika `False`, hanya akan mengembalikan token teks dan tidak akan menghasilkan ucapan.

kwargs (*opsional*) : Sisa kamus argumen kata kunci yang akan diteruskan ke [GenerationMixin.generate()](/docs/transformers/main/id/main_classes/text_generation#transformers.GenerationMixin.generate). Argumen kata kunci memiliki dua jenis: - Tanpa awalan, mereka akan dimasukkan sebagai `**kwargs` untuk metode `generate` dari setiap sub-model, kecuali `decoder_input_ids` yang hanya akan diteruskan melalui komponen teks. - Dengan awalan *text_* atau *speech_*, mereka akan menjadi input untuk metode `generate` dari model teks dan model ucapan masing-masing. Ini memiliki prioritas di atas kata kunci tanpa awalan. Artinya, Anda dapat, misalnya, menentukan strategi generasi untuk satu generasi tetapi tidak untuk yang lain.

**Mengembalikan:** `Union[SeamlessM4TGenerationOutput, tuple[Tensor], ModelOutput]`

- Jika `generate_speech` dan `return_intermediate_token_ids`, mengembalikan `SeamlessM4TGenerationOutput`.
- Jika `generate_speech` dan tidak `return_intermediate_token_ids`, mengembalikan tuple yang terdiri dari waveform dengan bentuk `(batch_size, sequence_length)` dan `waveform_lengths` yang memberikan panjang setiap sampel.
- Jika `generate_speech=False`, akan mengembalikan `ModelOutput`.

Membuat id token terjemahan dan/atau waveform audio terjemahan.

Metode ini secara berurutan memanggil fungsi `.generate` dari dua sub-model yang berbeda. Anda dapat menentukan argumen kata kunci pada dua tingkat yang berbeda: argumen umum yang akan diteruskan ke kedua model, atau argumen berawalan yang akan diteruskan ke salah satunya.

Sebagai contoh, memanggil `.generate(input_ids=input_ids, num_beams=4, speech_do_sample=True)` akan secara berurutan melakukan dekoding beam-search pada model teks, dan sampling beam-search multinomial pada model ucapan.

Untuk ringkasan strategi generasi dan contoh kode, lihat [panduan berikut](./generation_strategies).

## SeamlessM4TForTextToSpeech[[transformers.SeamlessM4TForTextToSpeech]]

#### transformers.SeamlessM4TForTextToSpeech[[transformers.SeamlessM4TForTextToSpeech]]

```python
transformers.SeamlessM4TForTextToSpeech(config: SeamlessM4TConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2752)

**Parameter:**

config ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) : 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 transformer SeamlessM4T untuk text-to-speech yang dapat digunakan untuk T2ST.

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.

#### generate[[transformers.SeamlessM4TForTextToSpeech.generate]]

```python
generate(input_ids: typing.Optional[torch.Tensor] = None, return_intermediate_token_ids: bool | None = None, tgt_lang: str | None = None, spkr_id: int | None = 0, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2880)

**Parameter:**

input_ids (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`) : Indeks token dari urutan input dalam kosakata. Indeks dapat diperoleh menggunakan [SeamlessM4TTokenizer](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TTokenizer) atau [SeamlessM4TProcessor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TProcessor). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu input IDs?](../glossary#input-ids)

return_intermediate_token_ids (`bool`, *opsional*) : Jika `True`, juga mengembalikan teks dan token unit yang dihasilkan secara intermediat. Atur ke `True` jika Anda juga ingin mendapatkan teks terjemahan bersama dengan audio.

tgt_lang (`str`, *opsional*) : Bahasa yang akan digunakan sebagai bahasa target untuk terjemahan.

spkr_id (`int`, *opsional*, default 0) : id pembicara yang digunakan untuk sintesis ucapan. Harus lebih kecil dari `config.vocoder_num_spkrs`.

kwargs (*opsional*) : Sisa kamus argumen kata kunci yang akan diteruskan ke [GenerationMixin.generate()](/docs/transformers/main/id/main_classes/text_generation#transformers.GenerationMixin.generate). Argumen kata kunci memiliki dua jenis: - Tanpa awalan, mereka akan dimasukkan sebagai `**kwargs` untuk metode `generate` dari setiap sub-model, kecuali `decoder_input_ids` yang hanya akan diteruskan melalui komponen teks. - Dengan awalan *text_* atau *speech_*, mereka akan menjadi input untuk metode `generate` dari model teks dan model ucapan masing-masing. Ini memiliki prioritas di atas kata kunci tanpa awalan. Artinya, Anda dapat, misalnya, menentukan strategi generasi untuk satu generasi tetapi tidak untuk yang lain.

**Mengembalikan:** `Union[SeamlessM4TGenerationOutput, tuple[Tensor]]`

- Jika `return_intermediate_token_ids`, mengembalikan `SeamlessM4TGenerationOutput`.
- Jika bukan `return_intermediate_token_ids`, mengembalikan tuple yang terdiri dari waveform dengan bentuk `(batch_size, sequence_length)` dan `waveform_lengths` yang memberikan panjang setiap sampel.

Membuat gelombang audio hasil terjemahan.

Metode ini secara berurutan memanggil fungsi `.generate` dari dua sub-model yang berbeda. Anda dapat menentukan argumen kata kunci pada dua tingkat yang berbeda: argumen umum yang akan diteruskan ke kedua model, atau argumen berawalan yang akan diteruskan ke salah satunya.

Sebagai contoh, memanggil `.generate(input_ids, num_beams=4, speech_do_sample=True)` akan secara berurutan melakukan dekoding beam-search pada model teks, dan sampling beam-search multinomial pada model ucapan.

Untuk ringkasan strategi generasi dan contoh kode, lihat [panduan berikut](./generation_strategies).

## SeamlessM4TForSpeechToSpeech[[transformers.SeamlessM4TForSpeechToSpeech]]

#### transformers.SeamlessM4TForSpeechToSpeech[[transformers.SeamlessM4TForSpeechToSpeech]]

```python
transformers.SeamlessM4TForSpeechToSpeech(config: SeamlessM4TConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L3053)

**Parameter:**

config ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) : 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 transformer SeamlessM4T untuk speech-to-speech yang dapat digunakan untuk S2ST.

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.

#### generate[[transformers.SeamlessM4TForSpeechToSpeech.generate]]

```python
generate(input_features: typing.Optional[torch.Tensor] = None, return_intermediate_token_ids: bool | None = None, tgt_lang: str | None = None, spkr_id: int | None = 0, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L3180)

**Parameter:**

input_features (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, num_banks)`) : Fitur audio input. Ini seharusnya dikembalikan oleh kelas [SeamlessM4TFeatureExtractor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor) atau kelas [SeamlessM4TProcessor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TProcessor). Lihat [SeamlessM4TFeatureExtractor.__call__()](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor.__call__) untuk detailnya.

return_intermediate_token_ids (`bool`, *opsional*) : Jika `True`, juga mengembalikan teks dan token unit yang dihasilkan secara intermediat. Atur ke `True` jika Anda juga ingin mendapatkan teks terjemahan bersama dengan audio.

tgt_lang (`str`, *opsional*) : Bahasa yang akan digunakan sebagai bahasa target untuk terjemahan.

spkr_id (`int`, *opsional*, default 0) : id pembicara yang digunakan untuk sintesis ucapan. Harus lebih kecil dari `config.vocoder_num_spkrs`.

kwargs (*opsional*) : Sisa kamus argumen kata kunci yang akan diteruskan ke [GenerationMixin.generate()](/docs/transformers/main/id/main_classes/text_generation#transformers.GenerationMixin.generate). Argumen kata kunci memiliki dua jenis: - Tanpa awalan, mereka akan dimasukkan sebagai `**kwargs` untuk metode `generate` dari setiap sub-model, kecuali `decoder_input_ids` yang hanya akan diteruskan melalui komponen teks. - Dengan awalan *text_* atau *speech_*, mereka akan menjadi input untuk metode `generate` dari model teks dan model ucapan masing-masing. Ini memiliki prioritas di atas kata kunci tanpa awalan. Artinya, Anda dapat, misalnya, menentukan strategi generasi untuk satu generasi tetapi tidak untuk yang lain.

**Mengembalikan:** `Union[SeamlessM4TGenerationOutput, tuple[Tensor]]`

- Jika `return_intermediate_token_ids`, mengembalikan `SeamlessM4TGenerationOutput`.
- Jika bukan `return_intermediate_token_ids`, mengembalikan tuple yang terdiri dari waveform dengan bentuk `(batch_size, sequence_length)` dan `waveform_lengths` yang memberikan panjang setiap sampel.

Membuat gelombang audio hasil terjemahan.

Metode ini secara berurutan memanggil fungsi `.generate` dari dua sub-model yang berbeda. Anda dapat menentukan argumen kata kunci pada dua tingkat yang berbeda: argumen umum yang akan diteruskan ke kedua model, atau argumen berawalan yang akan diteruskan ke salah satunya.

Sebagai contoh, memanggil `.generate(input_features, num_beams=4, speech_do_sample=True)` akan secara berurutan melakukan decoding beam-search pada model teks, dan sampling beam-search multinomial pada model ucapan.

Untuk ringkasan strategi generasi dan contoh kode, lihat [panduan berikut](./generation_strategies).

## SeamlessM4TForTextToText[[transformers.SeamlessM4TForTextToText]]

#### transformers.SeamlessM4TForTextToText[[transformers.SeamlessM4TForTextToText]]

```python
transformers.SeamlessM4TForTextToText(config: SeamlessM4TConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2276)

**Parameter:**

config ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) : 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 transformer SeamlessM4T untuk teks-ke-teks yang dapat digunakan untuk T2TT.

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.SeamlessM4TForTextToText.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2312)

**Parameter:**

input_ids (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu input IDs?](../glossary#input-ids)

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` dengan bentuk `(batch_size, target_sequence_length)`, *opsional*) : Indeks token dari urutan input decoder dalam kosakata. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu decoder input IDs?](../glossary#decoder-input-ids) Bart menggunakan `eos_token_id` sebagai token awal untuk generasi `decoder_input_ids`. Jika `past_key_values` digunakan, secara opsional hanya `decoder_input_ids` terakhir yang perlu diinput (lihat `past_key_values`). Untuk pelatihan terjemahan dan ringkasan, `decoder_input_ids` harus disediakan. Jika tidak ada `decoder_input_ids` yang disediakan, model akan membuat tensor ini dengan menggeser `input_ids` ke kanan untuk pra-pelatihan denoising sesuai dengan makalahnya.

decoder_attention_mask (`torch.LongTensor` dengan bentuk `(batch_size, target_sequence_length)`, *opsional*) : Perilaku bawaan: menghasilkan tensor yang mengabaikan token pad di `decoder_input_ids`. Mask kausal juga akan digunakan secara bawaan. Jika Anda ingin mengubah perilaku padding, Anda harus membaca `modeling_bart._prepare_decoder_attention_mask` dan memodifikasinya sesuai kebutuhan Anda. Lihat diagram 1 di [makalah](https://huggingface.co/papers/1910.13461) untuk informasi lebih lanjut tentang strategi bawaan.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *opsional*) : Tuple terdiri dari (`last_hidden_state`, *opsional*: `hidden_states`, *opsional*: `attentions`) `last_hidden_state` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) adalah urutan hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder.

past_key_values (`~cache_utils.Cache`, *opsional*) : Hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`. Hanya instance [Cache](/docs/transformers/main/id/internal/generation_utils#transformers.Cache) yang diizinkan sebagai input, lihat [panduan kv cache](https://huggingface.co/docs/transformers/en/kv_cache) kami. Jika tidak ada `past_key_values` yang diteruskan, [DynamicCache](/docs/transformers/main/id/internal/generation_utils#transformers.DynamicCache) akan diinisialisasi secara default. Model akan mengoutput format cache yang sama dengan yang diberikan sebagai input. Jika `past_key_values` digunakan, pengguna diharapkan untuk hanya menginput `input_ids` yang belum diproses (yang tidak memiliki state past key value mereka diberikan ke model ini) dengan bentuk `(batch_size, unprocessed_length)` alih-alih semua `input_ids` dengan bentuk `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` dengan bentuk`(batch_size, sequence_length, hidden_size)`, *opsional*) : Secara opsional, alih-alih meneruskan `input_ids`, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi indeks `input_ids` menjadi vektor terkait daripada matriks pencarian embedding internal model.  labels (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*): Label untuk menghitung kerugian pemodelan bahasa tersembunyi. Indeks harus berada dalam `[-100, 0, ..., config.vocab_size]` (lihat docstring `input_ids`) Token dengan indeks yang disetel ke `-100` diabaikan (tersembunyi), kerugian hanya dihitung untuk token dengan label dalam `[0, ..., config.vocab_size]`

decoder_inputs_embeds (`torch.Tensor` dengan bentuk `(batch_size, target_sequence_length, hidden_size)`, *opsional*) : Secara opsional, alih-alih meneruskan `decoder_input_ids`, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Jika `past_key_values` digunakan, secara opsional hanya `decoder_inputs_embeds` terakhir yang perlu diinput (lihat `past_key_values`). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi indeks `decoder_input_ids` menjadi vektor terkait daripada matriks pencarian penanaman internal model. Jika `decoder_input_ids` dan `decoder_inputs_embeds` keduanya tidak disetel, `decoder_inputs_embeds` mengambil nilai dari `inputs_embeds`.

labels (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Label untuk menghitung kerugian pemodelan bahasa yang disamarkan. Indeks harus berada di `[0, ..., config.vocab_size]` atau -100 (lihat docstring `input_ids`). Token dengan indeks yang disetel ke `-100` diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label di `[0, ..., config.vocab_size]`.

use_cache (`bool`, *opsional*) : Jika diatur ke `True`, state kunci-nilai `past_key_values` akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat `past_key_values`).

**Mengembalikan:** [Seq2SeqLMOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.Seq2SeqLMOutput) atau `tuple(torch.Tensor)`

A [Seq2SeqLMOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.Seq2SeqLMOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) dan input.

Metode forward dari [SeamlessM4TForTextToText](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TForTextToText) 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.

- **loss** (`torch.Tensor` dengan bentuk `(1,)`, *opsional*, dikembalikan ketika `labels` disediakan) -- Loss pemodelan bahasa.
- **logits** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.vocab_size)`) -- Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).
- **past_key_values** (`EncoderDecoderCache`, *opsional*, dikembalikan ketika `use_cache=True` diteruskan atau ketika `config.use_cache=True`) -- Ini adalah instance [EncoderDecoderCache](/docs/transformers/main/id/internal/generation_utils#transformers.EncoderDecoderCache). Untuk detail lebih lanjut, lihat [panduan kv cache](https://huggingface.co/docs/transformers/en/kv_cache) kami.

  Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan (lihat input `past_key_values`) untuk mempercepat decoding berurutan.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
- **decoder_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` diteruskan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- **cross_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
- **encoder_last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) -- Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_hidden_states=True` diteruskan atau ketika `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
- **encoder_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

#### generate[[transformers.SeamlessM4TForTextToText.generate]]

```python
generate(input_ids = None, tgt_lang = None, generation_config = None, logits_processor = None, stopping_criteria = None, prefix_allowed_tokens_fn = None, synced_gpus = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2394)

**Parameter:**

input_ids (`torch.Tensor` dengan bentuk yang bervariasi tergantung pada modalitas, *opsional*) : Indeks token urutan input dalam kosakata. Indeks dapat diperoleh menggunakan [SeamlessM4TTokenizer](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TTokenizer) atau [SeamlessM4TProcessor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TProcessor). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detail. [Apa itu input ID?](../glossary#input-ids)

tgt_lang (`str`, *opsional*) : Bahasa yang akan digunakan sebagai bahasa target untuk terjemahan.

generation_config (`~generation.GenerationConfig`, *opsional*) : Konfigurasi generasi yang akan digunakan sebagai parametrisasi dasar untuk panggilan generasi. `**kwargs` yang diteruskan ke generate dan cocok dengan atribut dari `generation_config` akan menimpa nilai tersebut. Jika `generation_config` tidak disediakan, nilai default akan digunakan, yang memiliki prioritas pemuatan sebagai berikut: 1) dari file model `generation_config.json`, jika ada; 2) dari konfigurasi model. Harap diperhatikan bahwa parameter yang tidak ditentukan akan mewarisi nilai default dari [GenerationConfig](/docs/transformers/main/id/main_classes/text_generation#transformers.GenerationConfig), dan dokumentasinya harus diperiksa untuk memparametrisasi generasi.

logits_processor (`LogitsProcessorList`, *opsional*) : Prosesor logits kustom yang melengkapi prosesor logits bawaan yang dibangun dari argumen dan konfigurasi generasi. Jika prosesor logits yang sudah dibuat dengan argumen atau konfigurasi generasi diteruskan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut.

stopping_criteria (`StoppingCriteriaList`, *opsional*) : Kriteria penghentian kustom yang melengkapi kriteria penghentian default yang dibangun dari argumen dan konfigurasi generasi. Jika kriteria penghentian yang sudah dibuat dengan argumen atau konfigurasi generasi diteruskan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut.

prefix_allowed_tokens_fn (`Callable[[int, torch.Tensor], list[int]]`, *opsional*) : Jika disediakan, fungsi ini membatasi beam search hanya pada token yang diizinkan di setiap langkah. Jika tidak disediakan, tidak ada batasan yang diterapkan. Fungsi ini mengambil 2 argumen: ID batch `batch_id` dan `input_ids`. Fungsi ini harus mengembalikan daftar token yang diizinkan untuk langkah generasi berikutnya yang dikondisikan pada ID batch `batch_id` dan token yang sebelumnya dihasilkan `inputs_ids`. Argumen ini berguna untuk generasi yang dibatasi berdasarkan prefiks, seperti yang dijelaskan dalam [Autoregressive Entity Retrieval](https://huggingface.co/papers/2010.00904).

synced_gpus (`bool`, *opsional*, defaultnya `False`) : Apakah akan terus menjalankan loop while hingga max_length (diperlukan untuk menghindari deadlocking dengan `FullyShardedDataParallel` dan DeepSpeed ZeRO Stage 3).

kwargs (`dict[str, Any]`, *opsional*) : Parametrisasi ad hoc untuk `generate_config` dan/atau kwargs spesifik model tambahan yang akan diteruskan ke fungsi `forward` dari model.

**Mengembalikan:** [ModelOutput](/docs/transformers/main/id/main_classes/output#transformers.utils.ModelOutput) atau `torch.LongTensor`

[ModelOutput](/docs/transformers/main/id/main_classes/output#transformers.utils.ModelOutput) (jika `return_dict_in_generate=True` atau ketika `config.return_dict_in_generate=True`) atau `torch.Tensor`. Jenis [ModelOutput](/docs/transformers/main/id/main_classes/output#transformers.utils.ModelOutput) yang mungkin adalah:
- [GenerateEncoderDecoderOutput](/docs/transformers/main/id/internal/generation_utils#transformers.generation.GenerateEncoderDecoderOutput),
- [GenerateBeamEncoderDecoderOutput](/docs/transformers/main/id/internal/generation_utils#transformers.generation.GenerateBeamEncoderDecoderOutput)

Membuat rangkaian id token.

Sebagian besar parameter pengendali generasi diatur di `generation_config` yang, jika tidak diteruskan, akan disetel ke konfigurasi generasi default model. Anda dapat menimpa `generation_config` mana pun dengan meneruskan parameter yang sesuai ke generate(), misalnya `.generate(inputs, num_beams=4, do_sample=True)`.

Untuk ringkasan strategi generasi dan contoh kode, lihat [panduan berikut](./generation_strategies).

## SeamlessM4TForSpeechToText[[transformers.SeamlessM4TForSpeechToText]]

#### transformers.SeamlessM4TForSpeechToText[[transformers.SeamlessM4TForSpeechToText]]

```python
transformers.SeamlessM4TForSpeechToText(config: SeamlessM4TConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2511)

**Parameter:**

config ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) : 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 transformer SeamlessM4T untuk speech-to-text yang dapat digunakan untuk S2TT.

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.SeamlessM4TForSpeechToText.forward]]

```python
forward(input_features: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2544)

**Parameter:**

input_features (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, num_banks)`) : Fitur audio input. Ini seharusnya dikembalikan oleh kelas [SeamlessM4TFeatureExtractor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor) atau kelas [SeamlessM4TProcessor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TProcessor). Lihat [SeamlessM4TFeatureExtractor.__call__()](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor.__call__) untuk detailnya.

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` dengan bentuk `(batch_size, target_sequence_length)`, *opsional*) : Indeks token dari urutan input decoder dalam kosakata. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu decoder input IDs?](../glossary#decoder-input-ids) Bart menggunakan `eos_token_id` sebagai token awal untuk generasi `decoder_input_ids`. Jika `past_key_values` digunakan, secara opsional hanya `decoder_input_ids` terakhir yang perlu diinput (lihat `past_key_values`). Untuk pelatihan terjemahan dan ringkasan, `decoder_input_ids` harus disediakan. Jika tidak ada `decoder_input_ids` yang disediakan, model akan membuat tensor ini dengan menggeser `input_ids` ke kanan untuk pra-pelatihan denoising sesuai dengan makalahnya.

decoder_attention_mask (`torch.LongTensor` dengan bentuk `(batch_size, target_sequence_length)`, *opsional*) : Perilaku bawaan: menghasilkan tensor yang mengabaikan token pad di `decoder_input_ids`. Mask kausal juga akan digunakan secara bawaan. Jika Anda ingin mengubah perilaku padding, Anda harus membaca `modeling_bart._prepare_decoder_attention_mask` dan memodifikasinya sesuai kebutuhan Anda. Lihat diagram 1 di [makalah](https://huggingface.co/papers/1910.13461) untuk informasi lebih lanjut tentang strategi bawaan.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *opsional*) : Tuple terdiri dari (`last_hidden_state`, *opsional*: `hidden_states`, *opsional*: `attentions`) `last_hidden_state` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) adalah urutan hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder.

past_key_values (`~cache_utils.Cache`, *opsional*) : Hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`. Hanya instance [Cache](/docs/transformers/main/id/internal/generation_utils#transformers.Cache) yang diizinkan sebagai input, lihat [panduan kv cache](https://huggingface.co/docs/transformers/en/kv_cache) kami. Jika tidak ada `past_key_values` yang diteruskan, [DynamicCache](/docs/transformers/main/id/internal/generation_utils#transformers.DynamicCache) akan diinisialisasi secara default. Model akan mengoutput format cache yang sama dengan yang diberikan sebagai input. Jika `past_key_values` digunakan, pengguna diharapkan untuk hanya menginput `input_ids` yang belum diproses (yang tidak memiliki state past key value mereka diberikan ke model ini) dengan bentuk `(batch_size, unprocessed_length)` alih-alih semua `input_ids` dengan bentuk `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` dengan bentuk`(batch_size, sequence_length, hidden_size)`, *opsional*) : Secara opsional, alih-alih meneruskan `input_ids`, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi indeks `input_ids` menjadi vektor terkait daripada matriks pencarian embedding internal model.  labels (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*): Label untuk menghitung kerugian pemodelan bahasa tersembunyi. Indeks harus berada dalam `[-100, 0, ..., config.vocab_size]` (lihat docstring `input_ids`) Token dengan indeks yang disetel ke `-100` diabaikan (tersembunyi), kerugian hanya dihitung untuk token dengan label dalam `[0, ..., config.vocab_size]`

decoder_inputs_embeds (`torch.Tensor` dengan bentuk `(batch_size, target_sequence_length, hidden_size)`, *opsional*) : Secara opsional, alih-alih meneruskan `decoder_input_ids`, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Jika `past_key_values` digunakan, secara opsional hanya `decoder_inputs_embeds` terakhir yang perlu diinput (lihat `past_key_values`). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi indeks `decoder_input_ids` menjadi vektor terkait daripada matriks pencarian penanaman internal model. Jika `decoder_input_ids` dan `decoder_inputs_embeds` keduanya tidak disetel, `decoder_inputs_embeds` mengambil nilai dari `inputs_embeds`.

labels (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Label untuk menghitung kerugian pemodelan bahasa yang disamarkan. Indeks harus berada di `[0, ..., config.vocab_size]` atau -100 (lihat docstring `input_ids`). Token dengan indeks yang disetel ke `-100` diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label di `[0, ..., config.vocab_size]`.

use_cache (`bool`, *opsional*) : Jika diatur ke `True`, state kunci-nilai `past_key_values` akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat `past_key_values`).

**Mengembalikan:** [Seq2SeqLMOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.Seq2SeqLMOutput) atau `tuple(torch.Tensor)`

A [Seq2SeqLMOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.Seq2SeqLMOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) dan input.

Metode forward dari [SeamlessM4TForSpeechToText](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TForSpeechToText) 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.

- **loss** (`torch.Tensor` dengan bentuk `(1,)`, *opsional*, dikembalikan ketika `labels` disediakan) -- Loss pemodelan bahasa.
- **logits** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.vocab_size)`) -- Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).
- **past_key_values** (`EncoderDecoderCache`, *opsional*, dikembalikan ketika `use_cache=True` diteruskan atau ketika `config.use_cache=True`) -- Ini adalah instance [EncoderDecoderCache](/docs/transformers/main/id/internal/generation_utils#transformers.EncoderDecoderCache). Untuk detail lebih lanjut, lihat [panduan kv cache](https://huggingface.co/docs/transformers/en/kv_cache) kami.

  Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan (lihat input `past_key_values`) untuk mempercepat decoding berurutan.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
- **decoder_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` diteruskan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- **cross_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
- **encoder_last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) -- Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_hidden_states=True` diteruskan atau ketika `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
- **encoder_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

Contoh:

```python
>>> from transformers import AutoProcessor, SeamlessM4TForSpeechToText
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("facebook/hf-seamless-m4t-medium")
>>> model = SeamlessM4TForSpeechToText.from_pretrained("facebook/hf-seamless-m4t-medium")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...
```

#### generate[[transformers.SeamlessM4TForSpeechToText.generate]]

```python
generate(input_features = None, tgt_lang = None, generation_config = None, logits_processor = None, stopping_criteria = None, prefix_allowed_tokens_fn = None, synced_gpus = False, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2633)

**Parameter:**

input_features (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, num_banks)`) : Fitur audio input. Ini seharusnya dikembalikan oleh kelas [SeamlessM4TFeatureExtractor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor) atau kelas [SeamlessM4TProcessor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TProcessor). Lihat [SeamlessM4TFeatureExtractor.__call__()](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor.__call__) untuk detailnya.

tgt_lang (`str`, *opsional*) : Bahasa yang akan digunakan sebagai bahasa target untuk terjemahan.

generation_config (`~generation.GenerationConfig`, *opsional*) : Konfigurasi generasi yang akan digunakan sebagai parametrisasi dasar untuk panggilan generasi. `**kwargs` yang diteruskan ke generate dan cocok dengan atribut dari `generation_config` akan menimpa nilai tersebut. Jika `generation_config` tidak disediakan, nilai default akan digunakan, yang memiliki prioritas pemuatan sebagai berikut: 1) dari file model `generation_config.json`, jika ada; 2) dari konfigurasi model. Harap diperhatikan bahwa parameter yang tidak ditentukan akan mewarisi nilai default dari [GenerationConfig](/docs/transformers/main/id/main_classes/text_generation#transformers.GenerationConfig), dan dokumentasinya harus diperiksa untuk memparametrisasi generasi.

logits_processor (`LogitsProcessorList`, *opsional*) : Prosesor logits kustom yang melengkapi prosesor logits bawaan yang dibangun dari argumen dan konfigurasi generasi. Jika prosesor logits yang sudah dibuat dengan argumen atau konfigurasi generasi diteruskan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut.

stopping_criteria (`StoppingCriteriaList`, *opsional*) : Kriteria penghentian kustom yang melengkapi kriteria penghentian default yang dibangun dari argumen dan konfigurasi generasi. Jika kriteria penghentian yang sudah dibuat dengan argumen atau konfigurasi generasi diteruskan, sebuah error akan dilempar. Fitur ini ditujukan untuk pengguna tingkat lanjut.

prefix_allowed_tokens_fn (`Callable[[int, torch.Tensor], list[int]]`, *opsional*) : Jika disediakan, fungsi ini membatasi beam search hanya pada token yang diizinkan di setiap langkah. Jika tidak disediakan, tidak ada batasan yang diterapkan. Fungsi ini mengambil 2 argumen: ID batch `batch_id` dan `input_ids`. Fungsi ini harus mengembalikan daftar token yang diizinkan untuk langkah generasi berikutnya yang dikondisikan pada ID batch `batch_id` dan token yang sebelumnya dihasilkan `inputs_ids`. Argumen ini berguna untuk generasi yang dibatasi berdasarkan prefiks, seperti yang dijelaskan dalam [Autoregressive Entity Retrieval](https://huggingface.co/papers/2010.00904).

synced_gpus (`bool`, *opsional*, defaultnya `False`) : Apakah akan terus menjalankan loop while hingga max_length (diperlukan untuk menghindari deadlocking dengan `FullyShardedDataParallel` dan DeepSpeed ZeRO Stage 3).

kwargs (`dict[str, Any]`, *opsional*) : Parametrisasi ad hoc untuk `generate_config` dan/atau kwargs spesifik model tambahan yang akan diteruskan ke fungsi `forward` dari model.

**Mengembalikan:** [ModelOutput](/docs/transformers/main/id/main_classes/output#transformers.utils.ModelOutput) atau `torch.LongTensor`

[ModelOutput](/docs/transformers/main/id/main_classes/output#transformers.utils.ModelOutput) (jika `return_dict_in_generate=True` atau ketika `config.return_dict_in_generate=True`) atau `torch.Tensor`. Jenis [ModelOutput](/docs/transformers/main/id/main_classes/output#transformers.utils.ModelOutput) yang mungkin adalah:
- [GenerateEncoderDecoderOutput](/docs/transformers/main/id/internal/generation_utils#transformers.generation.GenerateEncoderDecoderOutput),
- [GenerateBeamEncoderDecoderOutput](/docs/transformers/main/id/internal/generation_utils#transformers.generation.GenerateBeamEncoderDecoderOutput)

Membuat rangkaian id token.

Sebagian besar parameter pengendali generasi diatur di `generation_config` yang, jika tidak diteruskan, akan disetel ke konfigurasi generasi default model. Anda dapat menimpa `generation_config` mana pun dengan meneruskan parameter yang sesuai ke generate(), misalnya `.generate(inputs, num_beams=4, do_sample=True)`.

Untuk ringkasan strategi generasi dan contoh kode, lihat [panduan berikut](./generation_strategies).

## SeamlessM4TConfig[[transformers.SeamlessM4TConfig]]

#### transformers.SeamlessM4TConfig[[transformers.SeamlessM4TConfig]]

```python
transformers.SeamlessM4TConfig(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, 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, is_encoder_decoder: bool = True, vocab_size: int = 256102, t2u_vocab_size: int = 10082, hidden_size: int = 1024, initializer_range: float = 0.02, layer_norm_eps: float = 1e-05, use_cache: bool = True, max_position_embeddings: int = 1024, encoder_layerdrop: float | int = 0.05, decoder_layerdrop: float | int = 0.05, activation_function: str = 'relu', dropout: float | int = 0.1, attention_dropout: float | int = 0.1, activation_dropout: float | int = 0.0, scale_embedding: bool = True, encoder_layers: int = 24, encoder_ffn_dim: int = 8192, encoder_attention_heads: int = 16, decoder_layers: int = 24, decoder_ffn_dim: int = 8192, decoder_attention_heads: int = 16, decoder_start_token_id: int = 3, max_new_tokens: int | None = 256, pad_token_id: int | None = 0, bos_token_id: int | None = 2, eos_token_id: int | list[int] | None = 3, speech_encoder_layers: int = 24, speech_encoder_attention_heads: int = 16, speech_encoder_intermediate_size: int = 4096, speech_encoder_hidden_act: str = 'swish', speech_encoder_dropout: float | int = 0.0, add_adapter: bool = True, speech_encoder_layerdrop: float | int = 0.1, feature_projection_input_dim: int = 160, num_conv_pos_embeddings: int = 128, num_conv_pos_embedding_groups: int = 16, adaptor_kernel_size: int = 8, adaptor_stride: int = 8, adaptor_dropout: float | int = 0.1, num_adapter_layers: int = 1, position_embeddings_type: str = 'relative', rotary_embedding_base: int = 10000, max_source_positions: int = 4096, conv_depthwise_kernel_size: int = 31, t2u_bos_token_id: int | None = 0, t2u_pad_token_id: int | None = 1, t2u_eos_token_id: int | list[int] | None = 2, t2u_decoder_start_token_id: int = 2, t2u_max_new_tokens: int = 1024, t2u_encoder_layers: int = 6, t2u_encoder_ffn_dim: int = 8192, t2u_encoder_attention_heads: int = 16, t2u_decoder_layers: int = 6, t2u_decoder_ffn_dim: int = 8192, t2u_decoder_attention_heads: int = 16, t2u_max_position_embeddings: int = 2048, sampling_rate: int = 16000, upsample_initial_channel: int = 512, upsample_rates: list[int] | tuple[int, ...] = (5, 4, 4, 2, 2), upsample_kernel_sizes: list[int] | tuple[int, ...] = (11, 8, 8, 4, 4), resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11), resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5)), leaky_relu_slope: float = 0.1, unit_hifi_gan_vocab_size: int = 10000, unit_embed_dim: int = 1280, lang_embed_dim: int = 256, spkr_embed_dim: int = 256, vocoder_num_langs: int = 36, vocoder_num_spkrs: int = 200, variance_predictor_kernel_size: int = 3, var_pred_dropout: float | int = 0.5, vocoder_offset: int = 4, tie_word_embeddings: bool = True)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/configuration_seamless_m4t.py#L24)

**Parameter:**

is_encoder_decoder (`bool`, *opsional*, defaultnya `True`) : Apakah model digunakan sebagai encoder/decoder atau tidak.

vocab_size (`int`, *opsional*, defaultnya `256102`) : Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh `input_ids`.

t2u_vocab_size (`int`, *opsional*, default 10082) : Ukuran kosakata unit dari model SeamlessM4T. Menentukan jumlah token unit berbeda yang dapat direpresentasikan oleh `inputs_ids` yang diteruskan saat memanggil sub-model Text-To-Units dari [~SeamlessM4TModel](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TModel), [~SeamlessM4TForSpeechToSpeech](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TForSpeechToSpeech) atau [~SeamlessM4TForTextToSpeech](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TForTextToSpeech).

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

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

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

use_cache (`bool`, *opsional*, defaultnya `True`) : 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.

max_position_embeddings (`int`, *opsional*, defaultnya `1024`) : Panjang urutan maksimum yang mungkin digunakan oleh model ini.

encoder_layerdrop (`Union[float, int]`, *opsional*, defaultnya `0.05`) : Probabilitas LayerDrop untuk encoder. Lihat [makalah LayerDrop](see https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.

decoder_layerdrop (`Union[float, int]`, *opsional*, defaultnya `0.05`) : Probabilitas LayerDrop untuk decoder. Lihat [makalah LayerDrop](see https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.

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

dropout (`Union[float, int]`, *opsional*, defaultnya `0.1`) : Rasio untuk semua lapisan dropout.

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

activation_dropout (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Rasio dropout untuk aktivasi di dalam lapisan fully connected.

scale_embedding (`bool`, *opsional*, defaultnya `True`) : Apakah akan menskalakan embedding dengan membaginya oleh sqrt(d_model).

encoder_layers (`int`, *opsional*, defaultnya `24`) : Jumlah lapisan tersembunyi dalam encoder Transformer. Akan menggunakan nilai yang sama dengan `num_layers` jika tidak diatur.

encoder_ffn_dim (`int`, *opsional*, defaultnya `8192`) : Dimensi dari lapisan "intermediate" (sering disebut feed-forward) di encoder.

encoder_attention_heads (`int`, *opsional*, defaultnya `16`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder Transformer.

decoder_layers (`int`, *opsional*, defaultnya `24`) : Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengan `num_layers` jika tidak diatur.

decoder_ffn_dim (`int`, *opsional*, defaultnya `8192`) : Dimensi dari lapisan "intermediate" (sering disebut feed-forward) dalam decoder.

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

decoder_start_token_id (`int`, *opsional*, defaultnya `3`) : Jika model encoder-decoder memulai decoding dengan token yang berbeda dari `bos`, id dari token tersebut.

max_new_tokens (`int`, *opsional*, defaultnya 256) : Jumlah maksimum token teks yang akan dihasilkan, mengabaikan jumlah token dalam prompt.

pad_token_id (`int`, *opsional*, defaultnya `0`) : ID token yang digunakan untuk padding dalam kosakata.

bos_token_id (`int`, *opsional*, defaultnya `2`) : Token id yang digunakan untuk awal-stream dalam kosakata.

eos_token_id (`Union[int, list[int]]`, *opsional*, defaultnya `3`) : Token id yang digunakan untuk end-of-stream dalam kosakata.

speech_encoder_layers (`int`, *opsional*, defaultnya 24) : Jumlah lapisan tersembunyi dalam encoder ucapan Transformer.

speech_encoder_attention_heads (`int`, *opsional*, default 16) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder ucapan Transformer.

speech_encoder_intermediate_size (`int`, *opsional*, default 4096) : Dimensi lapisan "intermediate" (yaitu, feed-forward) pada encoder ucapan Transformer.

speech_encoder_hidden_act (`str` atau `function`, *opsional*, defaultnya `"swish"`) : Fungsi aktivasi non-linear (fungsi atau string) dalam encoder ucapan. Jika string, `"gelu"`, `"relu"`, `"selu"`, `"swish"` dan `"gelu_new"` didukung.

speech_encoder_dropout (`float`, *opsional*, default 0.0) : Probabilitas dropout untuk semua lapisan dalam encoder ucapan.

add_adapter (`bool`, *opsional*, defaultnya `True`) : Menambahkan lapisan adapter di atas encoder ucapan.

speech_encoder_layerdrop (`float`, *opsional*, default 0.1) : Probabilitas LayerDrop untuk encoder ucapan. Lihat [makalah LayerDrop](see https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.

feature_projection_input_dim (`int`, *opsional*, default 160) : Dimensi input dari proyeksi fitur input dari encoder ucapan, yaitu dimensi setelah memproses audio input dengan [SeamlessM4TFeatureExtractor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor).

num_conv_pos_embeddings (`int`, *opsional*, default 128) : Jumlah embedding posisi konvolusional. Menentukan ukuran kernel dari lapisan embedding posisi konvolusional 1D dari encoder ucapan.

num_conv_pos_embedding_groups (`int`, *opsional*, default 16) : Jumlah grup dari lapisan embedding posisional konvolusi 1D dari encoder ucapan.

adaptor_kernel_size (`int`, *opsional*, default 8) : Ukuran kernel dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jika `add_adapter is True`.

adaptor_stride (`int`, *opsional*, default 8) : Stride dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jika `add_adapter is True`.

adaptor_dropout (`float`, *opsional*, default 0.1) : Probabilitas dropout untuk semua lapisan dalam speech adapter.

num_adapter_layers (`int`, *opsional*, default 1) : Jumlah lapisan konvolusional yang harus digunakan dalam jaringan adapter. Hanya relevan jika `add_adapter is True`.

position_embeddings_type (`str`, *opsional*, defaultnya `"relative"`) : Dapat ditentukan sebagai `relative` atau `rotary` untuk posisi embedding relatif atau rotari, masing-masing. Jika dibiarkan `None`, tidak ada posisi embedding relatif yang diterapkan. Hanya diterapkan pada encoder ucapan.

rotary_embedding_base (`int`, *opsional*, default 10000) : Jika `"rotary"` position embeddings digunakan, mendefinisikan ukuran basis embedding. Hanya diterapkan pada speech encoder.

max_source_positions (`int`, *opsional*, default 4096) : jika `"relative"` position embeddings digunakan, mendefinisikan posisi input sumber maksimum. Hanya diterapkan pada speech encoder.

conv_depthwise_kernel_size (`int`, *opsional*, default 31) : Ukuran kernel dari lapisan convolutional depthwise 1D dalam blok Conformer. Hanya diterapkan pada encoder ucapan.

t2u_bos_token_id (`int`, *opsional*, default 0) : id dari token unit _awal-stream_. Hanya diterapkan pada model seq2seq teks-ke-unit.

t2u_pad_token_id (`int`, *opsional*, default 1) : id dari token unit _padding_. Hanya diterapkan pada model seq2seq teks-ke-unit.

t2u_eos_token_id (`int`, *opsional*, defaultnya 2) : id dari token unit _end-of-stream_. Hanya diterapkan pada model seq2seq text-to-unit.

t2u_decoder_start_token_id (`int`, *opsional*, defaultnya 2) : Jika model encoder-decoder memulai decoding dengan token yang berbeda dari _bos_, id dari token tersebut. Hanya diterapkan pada model seq2seq text-to-unit.

t2u_max_new_tokens (`int`, *opsional*, default 1024) : Jumlah maksimum token unit yang akan dihasilkan, mengabaikan jumlah token dalam prompt. Hanya diterapkan pada model seq2seq text-to-unit.

t2u_encoder_layers (`int`, *opsional*, defaultnya 6) : Jumlah lapisan tersembunyi dalam encoder teks-ke-unit Transformer.

t2u_encoder_ffn_dim (`int`, *opsional*, default 8192) : Dimensi lapisan "intermediate" (yaitu, feed-forward) pada encoder teks-ke-unit Transformer.

t2u_encoder_attention_heads (`int`, *opsional*, default 16) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam encoder teks-ke-unit Transformer.

t2u_decoder_layers (`int`, *opsional*, defaultnya 6) : Jumlah lapisan tersembunyi dalam decoder teks-ke-unit Transformer.

t2u_decoder_ffn_dim (`int`, *opsional*, defaultnya 8192) : Dimensi lapisan "intermediate" (yaitu, feed-forward) pada decoder text-to-unit Transformer.

t2u_decoder_attention_heads (`int`, *opsional*, default 16) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder teks-ke-unit Transformer.

t2u_max_position_embeddings (`int`, *opsional*, defaultnya 2048) : Panjang maksimum urutan yang mungkin digunakan oleh komponen teks-ke-unit model ini. Biasanya, atur ini ke nilai yang cukup besar sebagai antisipasi (misalnya, 512 atau 1024 atau 2048).

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

upsample_initial_channel (`int`, *opsional*, default 512) : Jumlah saluran input ke jaringan upsampling hifi-gan. Berlaku hanya untuk vokoder.

upsample_rates (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `[5, 4, 4, 2, 2]`) : Tuple bilangan bulat yang mendefinisikan stride dari setiap lapisan konvolusional 1D dalam jaringan upsampling voder. Panjang *upsample_rates* mendefinisikan jumlah lapisan konvolusional dan harus sesuai dengan panjang *upsample_kernel_sizes*. Berlaku hanya untuk voder.

upsample_kernel_sizes (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `[11, 8, 8, 4, 4]`) : Tuple dari bilangan bulat yang mendefinisikan ukuran kernel dari setiap lapisan konvolusional 1D dalam jaringan upsampling vokoder. Panjang dari *upsample_kernel_sizes* mendefinisikan jumlah lapisan konvolusional dan harus sesuai dengan panjang dari *upsample_rates*. Berlaku hanya untuk vokoder.

resblock_kernel_sizes (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `[3, 7, 11]`) : Tuple bilangan bulat yang mendefinisikan ukuran kernel dari lapisan konvolusi 1D vocoder dalam modul multi-receptive field fusion (MRF). Hanya berlaku untuk vocoder.

resblock_dilation_sizes (`tuple[tuple[int]]` atau `list[list[int]]`, *opsional*, defaultnya `[[1, 3, 5], [1, 3, 5], [1, 3, 5]]`) : Tuple bersarang dari bilangan bulat yang mendefinisikan laju dilatasi dari lapisan konvolusi 1D yang di-dilasi pada vocoder di dalam modul multi-receptive field fusion (MRF). Hanya berlaku untuk vocoder.

leaky_relu_slope (`float`, *opsional*, default 0.1) : Sudut kemiringan negatif yang digunakan oleh aktivasi leaky ReLU dalam vokoder. Hanya berlaku untuk vokoder.

unit_hifi_gan_vocab_size (`int`, *opsional*, default 10000) : Ukuran kosakata dari voder SeamlessM4T. Menentukan jumlah token unit berbeda yang dapat direpresentasikan oleh `inputs_ids` yang diteruskan saat memanggil voder dari [~SeamlessM4TModel](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TModel), [~SeamlessM4TForSpeechToSpeech](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TForSpeechToSpeech) atau [~SeamlessM4TForTextToSpeech](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TForTextToSpeech).

unit_embed_dim (`int`, *opsional*, default 1280) : Dimensi proyeksi dari input id yang diberikan ke voder hifi-gan. Hanya berlaku untuk voder.

lang_embed_dim (`int`, *opsional*, default 256) : Dimensi proyeksi dari bahasa target yang diberikan ke vokoder hifi-gan. Hanya berlaku untuk vokoder.

spkr_embed_dim (`int`, *opsional*, default 256) : Dimensi proyeksi dari speaker id yang diberikan ke vocoder hifi-gan. Hanya berlaku untuk vocoder.

vocoder_num_langs (`int`, *opsional*, default 36) : Jumlah bahasa yang didukung oleh vokoder. Mungkin berbeda dari `t2u_num_langs`.

vocoder_num_spkrs (`int`, *opsional*, default 200) : Jumlah pembicara yang didukung oleh vokoder.

variance_predictor_kernel_size (`int`, *opsional*, default 3) : Ukuran kernel dari duration predictor. Hanya berlaku untuk vocoder.

var_pred_dropout (`float`, *opsional*, default 0.5) : Probabilitas dropout dari duration predictor. Hanya berlaku untuk vocoder.

vocoder_offset (`int`, *opsional*, default 4) : Geser unit token ids sebesar angka ini untuk memperhitungkan simbol token. Berlaku hanya untuk vokoder.

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

This is the configuration class to store the configuration of a SeamlessM4TModel. It is used to instantiate a Seamless M4T model according to the specified arguments, defining the model architecture. Instantiating a configuration with the defaults will yield a similar configuration to that of the [facebook/hf-seamless-m4t-medium](https://huggingface.co/facebook/hf-seamless-m4t-medium)

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.

```python
>>> from transformers import SeamlessM4TModel, SeamlessM4TConfig

>>> # Initializing a SeamlessM4T "facebook/hf-seamless-m4t-medium" style configuration
>>> configuration = SeamlessM4TConfig()

>>> # Initializing a model from the "facebook/hf-seamless-m4t-medium" style configuration
>>> model = SeamlessM4TModel(configuration)

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

## SeamlessM4TTokenizer[[transformers.SeamlessM4TTokenizer]]

#### transformers.SeamlessM4TTokenizer[[transformers.SeamlessM4TTokenizer]]

```python
transformers.SeamlessM4TTokenizer(vocab: str | dict[str, int] | None = None, merges: str | list[str] | None = None, bos_token = '<s>', eos_token = '</s>', sep_token = '</s>', cls_token = '<s>', unk_token = '<unk>', pad_token = '<pad>', src_lang = 'eng', tgt_lang = 'fra', additional_special_tokens = None, keep_accents = None, vocab_file = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/tokenization_seamless_m4t.py#L33)

**Parameter:**

vocab (`list` atau `dict`, *opsional*) : Daftar tuple (token, skor) atau dict yang memetakan token ke indeks. Jika tidak disediakan, menggunakan vocab default.

merges (`str` atau `list`, *opsional*) : Daftar aturan penggabungan untuk model BPE. Jika tidak disediakan, menggunakan daftar kosong.

bos_token (`str`, *opsional*, defaultnya `"<s>"`) : Token awal urutan yang digunakan selama pra-pelatihan. Dapat digunakan sebagai token klasifikator urutan. Saat membangun urutan menggunakan token khusus, ini bukan token yang digunakan untuk awal urutan. Token yang digunakan adalah `cls_token`.

eos_token (`str`, *opsional*, defaultnya `"</s>"`) : Token akhir urutan. Saat membangun urutan menggunakan token khusus, ini bukan token yang digunakan untuk akhir urutan. Token yang digunakan adalah `sep_token`.

sep_token (`str`, *opsional*, defaultnya `"</s>"`) : Token pemisah, yang digunakan saat membangun urutan dari beberapa urutan, misalnya dua urutan untuk klasifikasi urutan atau untuk teks dan pertanyaan untuk penjawaban pertanyaan. Token ini juga digunakan sebagai token terakhir dari urutan yang dibangun dengan token khusus.

cls_token (`str`, *opsional*, defaultnya `"<s>"`) : Token klasifikator yang digunakan saat melakukan klasifikasi urutan (klasifikasi seluruh urutan, bukan klasifikasi per-token). Ini adalah token pertama dari urutan saat dibangun dengan token khusus.

unk_token (`str`, *opsional*, defaultnya `"<unk>"`) : Token yang tidak diketahui. Token yang tidak ada dalam kosakata tidak dapat dikonversi menjadi ID dan akan diset sebagai token ini.

pad_token (`str`, *opsional*, defaultnya `"<pad>"`) : Token yang digunakan untuk padding, misalnya saat membatching urutan dengan panjang yang berbeda.

src_lang (`str`, *opsional*, defaultnya `"eng"`) : Bahasa yang akan digunakan sebagai bahasa sumber untuk penerjemahan.

tgt_lang (`str`, *opsional*, defaultnya `"fra"`) : Bahasa yang akan digunakan sebagai bahasa target untuk penerjemahan.

additional_special_tokens (tuple atau list dari `str` atau `tokenizers.AddedToken`, *opsional*) : Tuple atau list dari token khusus tambahan.

Konstruksi tokenizer SeamlessM4T (didukung oleh pustaka *tokenizers* dari HuggingFace). Berbasis [BPE](https://huggingface.co/docs/tokenizers/python/latest/components.html?highlight=bpe#models).

Tokenizer ini mewarisi dari [TokenizersBackend](/docs/transformers/main/id/main_classes/tokenizer#transformers.TokenizersBackend) yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.

Metode tokenisasi adalah `<language code> <tokens> <eos>` untuk dokumen bahasa sumber, dan ` <language code>  ` untuk dokumen bahasa target.

Contoh:

```python
>>> from transformers import SeamlessM4TTokenizer

>>> tokenizer = SeamlessM4TTokenizer.from_pretrained(
...     "facebook/hf-seamless-m4t-medium", src_lang="eng", tgt_lang="fra"
... )
>>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria"
>>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie."
>>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")
```

#### __call__[[transformers.SeamlessM4TTokenizer.__call__]]

```python
__call__(text: str | list[str] | list[list[str]] | None = None, text_pair: str | list[str] | list[list[str]] | None = None, text_target: str | list[str] | list[list[str]] | None = None, text_pair_target: str | list[str] | list[list[str]] | None = None, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, pad_to_multiple_of: int | None = None, src_lang: str | None = None, tgt_lang: str | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/tokenization_seamless_m4t.py#L355)

**Parameter:**

text (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_pair (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_target (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

text_pair_target (`str`, `list[str]`, `list[list[str]]`, *opsional*) : Urutan atau batch dari urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur `is_split_into_words=True` (untuk menghilangkan ambiguitas dengan batch dari urutan).

padding (`bool`, `str` atau [PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy), *opsional*, default `False`) : Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara: - `True` atau `'longest'`: Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan). - `'max_length'`: Pad hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. - `False` atau `'do_not_pad'` (default): Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda).

pad_to_multiple_of (`int`, *opsional*, defaultnya `None`) : Jika diatur, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan. Hal ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi `>= 7.5` (Volta).

src_lang (`str`, *opsional*) : String yang mewakili bahasa sumber. Jika tidak ditentukan, `src_lang` terakhir yang ditentukan (baik saat inisialisasi maupun saat memanggil tokenizer ini) akan digunakan.

tgt_lang (`str`, *opsional*) : String yang mewakili bahasa target. Jika tidak ditentukan, `tgt_lang` terakhir yang ditentukan (baik saat inisialisasi maupun saat memanggil tokenizer ini) akan digunakan.

kwargs (*opsional*) : Sisa kamus argumen kata kunci yang akan diteruskan ke [TokenizersBackend.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__).

#### get_special_tokens_mask[[transformers.SeamlessM4TTokenizer.get_special_tokens_mask]]

```python
get_special_tokens_mask(token_ids_0: list[int], token_ids_1: list[int] | None = None, already_has_special_tokens: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_base.py#L1338)

**Parameter:**

token_ids_0 : Daftar ID untuk sekuens (yang mungkin sudah diformat).

token_ids_1 : Tidak digunakan ketika `already_has_special_tokens=True`. Harus None dalam kasus tersebut.

already_has_special_tokens : Apakah urutan sudah diformat dengan token khusus.

**Mengembalikan:** Daftar bilangan bulat dalam rentang [0, 1]

1 untuk token khusus, 0 untuk token urutan.

Ambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan.

Untuk tokenizer yang cepat, data collator memanggil ini dengan `already_has_special_tokens=True` untuk membangun mask di atas urutan yang sudah diformat. Dalam kasus tersebut, kami menghitung mask dengan memeriksa keanggotaan dalam `all_special_ids`.

#### save_vocabulary[[transformers.SeamlessM4TTokenizer.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_tokenizers.py#L546)

## SeamlessM4TFeatureExtractor[[transformers.SeamlessM4TFeatureExtractor]]

#### transformers.SeamlessM4TFeatureExtractor[[transformers.SeamlessM4TFeatureExtractor]]

```python
transformers.SeamlessM4TFeatureExtractor(feature_size = 80, sampling_rate = 16000, num_mel_bins = 80, padding_value = 0.0, stride = 2, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/feature_extraction_seamless_m4t.py#L35)

**Parameter:**

feature_size (`int`, *opsional*, defaultnya 80) : Dimensi fitur dari fitur yang diekstrak.

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

num_mel_bins (`int`, *opsional*, defaultnya 80) : Jumlah bin frekuensi Mel.

padding_value (`float`, *opsional*, default 0.0) : Nilai yang digunakan untuk mengisi vektor padding.

stride (`int`, *opsional*, default 2) : Stride yang digunakan untuk mengubah bentuk audio dari (batch_size,num_frames,num_mel_bins) menjadi (batch_size,num_frames//stride,num_mel_bins*stride).

Membangun feature extractor SeamlessM4T.

Feature extractor ini mewarisi dari [SequenceFeatureExtractor](/docs/transformers/main/id/main_classes/feature_extractor#transformers.SequenceFeatureExtractor) yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.

Kelas ini mengekstrak fitur mel-filter bank dari ucapan mentah.

#### __call__[[transformers.SeamlessM4TFeatureExtractor.__call__]]

```python
__call__(raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]], padding: bool | str | transformers.utils.generic.PaddingStrategy = True, pad_to_multiple_of: int | None = 2, max_length: int | None = None, truncation: bool = False, return_tensors: str | transformers.utils.generic.TensorType | None = None, sampling_rate: int | None = None, return_attention_mask: bool | None = None, do_normalize_per_mel_bins: bool | None = True, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/feature_extraction_seamless_m4t.py#L140)

**Parameter:**

raw_speech (`np.ndarray`, `torch.Tensor`, `list[float]`, `list[np.ndarray]`, `list[torch.Tensor]`, --

`list[list[float]]`, `list[list[list[float]]]`) : Urutan atau batch dari urutan-urutan yang akan di-pad. Setiap urutan dapat berupa array numpy, tensor torch, daftar nilai float, daftar array numpy, daftar tensor torch, daftar dari daftar nilai float, atau daftar dari daftar dari daftar nilai float. Jika `raw_speech` adalah `np.ndarray`, `torch.Tensor`, atau `list[float]` satu dimensi, `raw_speech` dianggap sebagai suara single-channel, single-sample. Dalam semua kasus lainnya, dimensi pertama dari `raw_speech`, baik berasal dari `np.ndarray`, `torch.Tensor`, atau `list[...]`, sesuai dengan jumlah sampel dalam batch, dan jumlah channel (yaitu karakter mono atau stereo) diturunkan dari dimensi lainnya (1D -> batch waveform single-channel; 2D-> batch waveform stereo-channel).

padding (`bool`, `str` atau [PaddingStrategy](/docs/transformers/main/id/internal/file_utils#transformers.utils.PaddingStrategy), *opsional*, default `True`) : Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara: - `True` atau `'longest'`: Lakukan padding hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan). - `'max_length'`: Lakukan padding hingga panjang maksimum yang ditentukan dengan argumen `max_length` atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. - `False` atau `'do_not_pad'` (default): Tanpa padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda-beda).

pad_to_multiple_of (`int`, *opsional*, defaultnya 2) : Jika diatur, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan. Hal ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi `>= 7.5` (Volta), atau pada TPU yang diuntungkan dari panjang urutan yang merupakan kelipatan 128.

max_length (`int`, *opsional*) : Panjang maksimum dari daftar yang dikembalikan dan secara opsional panjang padding (lihat di atas).

truncation (`bool`) : Mengaktifkan pemotongan untuk memotong urutan input yang lebih panjang dari *max_length* menjadi *max_length*.

return_attention_mask (`bool`, *opsional*) : Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, attention mask akan dikembalikan sesuai dengan default dari feature_extractor tertentu.  [Apa itu attention mask?](../glossary#attention-mask)    Untuk model SeamlessM4T, `attention_mask` harus selalu diteruskan untuk inferensi batched, untuk menghindari bug yang halus.

return_tensors (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jika diatur, akan mengembalikan tensor alih-alih daftar bilangan bulat python. Nilai yang dapat diterima adalah:  - `'pt'`: Mengembalikan objek `torch.Tensor` PyTorch. - `'np'`: Mengembalikan objek `np.ndarray` Numpy.

sampling_rate (`int`, *opsional*) : Laju pengambilan sampel di mana input `raw_speech` diambil. Sangat disarankan untuk meneruskan `sampling_rate` pada panggilan forward untuk mencegah kesalahan yang tidak terdeteksi.

do_normalize_per_mel_bins (`bool`, *opsional*, defaultnya `True`) : Apakah akan menormalisasi input per kanal mel dengan nol-rata-rata dan varians-satuan atau tidak.

kwargs (*opsional*) : Sisa kamus argumen kata kunci yang akan diteruskan ke tokenizer atau feature extractor.

Metode utama untuk melakukan featurisasi dan persiapan satu atau beberapa sekuens untuk model.

## SeamlessM4TProcessor[[transformers.SeamlessM4TProcessor]]

#### transformers.SeamlessM4TProcessor[[transformers.SeamlessM4TProcessor]]

```python
transformers.SeamlessM4TProcessor(feature_extractor, tokenizer)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/processing_seamless_m4t.py#L48)

**Parameter:**

feature_extractor (`SeamlessM4TFeatureExtractor`) : Ekstraktor fitur adalah input yang wajib.

tokenizer (`SeamlessM4TTokenizer`) : Tokenizer adalah input yang wajib.

Membangun SeamlessM4TProcessor yang membungkus feature extractor dan tokenizer menjadi satu processor.

[SeamlessM4TProcessor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TProcessor) menyediakan semua fungsionalitas dari [SeamlessM4TFeatureExtractor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor) dan [SeamlessM4TTokenizer](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TTokenizer). Lihat [~SeamlessM4TFeatureExtractor](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TFeatureExtractor) dan [~SeamlessM4TTokenizer](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TTokenizer) untuk informasi lebih lanjut.

#### __call__[[transformers.SeamlessM4TProcessor.__call__]]

```python
__call__(text: str | list[str] | list[list[str]] | None = None, audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None, **kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/processing_seamless_m4t.py#L54)

**Parameter:**

text (`Union[str, list[str], list[list[str]]]`, *opsional*) : Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika Anda memasukkan input yang sudah dipretokenisasi, setel `is_split_into_words=True` untuk menghindari ambiguitas dengan input yang di-batch.

audio (`Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]`, *opsional*) : Audio atau batch audio yang akan disiapkan. Setiap audio dapat berupa array NumPy atau tensor PyTorch. Jika berupa array NumPy/tensor PyTorch, setiap audio harus memiliki bentuk (C, T), di mana C adalah jumlah channel, dan T adalah panjang sampel audio.

return_tensors (`str` atau [TensorType](/docs/transformers/main/id/internal/file_utils#transformers.TensorType), *opsional*) : Jika diatur, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:  - `'pt'`: Mengembalikan objek `torch.Tensor` PyTorch. - `'np'`: Mengembalikan objek `np.ndarray` NumPy.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/main/id/main_classes/processors#transformers.ProcessingKwargs), *opsional*) : Opsi pemrosesan tambahan untuk setiap modalitas (teks, gambar, video, audio). Parameter spesifik model tercantum di atas; lihat kelas TypedDict untuk daftar lengkap argumen yang didukung.

**Mengembalikan:** [BatchEncoding](/docs/transformers/main/id/main_classes/tokenizer#transformers.BatchEncoding)

[BatchEncoding](/docs/transformers/main/id/main_classes/tokenizer#transformers.BatchEncoding) dengan bidang berikut:

- **input_ids** -- Daftar id token yang akan diberikan ke model. Dikembalikan ketika `text` bukan `None`.
- **attention_mask** -- Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika `return_attention_mask=True` atau jika *"attention_mask"* ada di `self.model_input_names` dan jika `text` bukan `None`).
- **input_features** -- Fitur input audio yang akan diberikan ke model. Dikembalikan ketika `audios` bukan `None`.

## SeamlessM4TCodeHifiGan[[transformers.SeamlessM4TCodeHifiGan]]

#### transformers.SeamlessM4TCodeHifiGan[[transformers.SeamlessM4TCodeHifiGan]]

```python
transformers.SeamlessM4TCodeHifiGan(config: SeamlessM4TConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2122)

**Parameter:**

config ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) : 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.

Code HiFi-GAN vocoder seperti yang dijelaskan dalam [repository](https://github.com/facebookresearch/speech-resynthesis) ini.

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.SeamlessM4TCodeHifiGan.forward]]

```python
forward(input_ids: LongTensor, spkr_id: Tensor, lang_id: Tensor, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2198)

**Parameter:**

input_ids (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`) : Indeks token dari urutan input dalam kosakata. Indeks dapat diperoleh menggunakan [SeamlessM4TTextToUnitForConditionalGeneration](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TTextToUnitForConditionalGeneration). [Apa itu input ID?](../glossary#input-ids)

spkr_id (`int`, *opsional*) : id pembicara yang digunakan untuk sintesis ucapan. Harus lebih kecil dari `config.vocoder_num_spkrs`.

tgt_lang (`str`, *opsional*) : id bahasa yang akan digunakan sebagai bahasa target untuk terjemahan.

## SeamlessM4THifiGan[[transformers.SeamlessM4THifiGan]]

#### transformers.SeamlessM4THifiGan[[transformers.SeamlessM4THifiGan]]

```python
transformers.SeamlessM4THifiGan(config: SeamlessM4TConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2045)

#### forward[[transformers.SeamlessM4THifiGan.forward]]

```python
forward(inputs_embeds: Tensor)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L2080)

**Parameter:**

spectrogram (`torch.Tensor`) : Tensor yang berisi log-mel spectrograms. Dapat di-batch dengan bentuk `(batch_size, sequence_length, model_in_dim)`, atau tanpa batch dengan bentuk `(sequence_length, model_in_dim)`. Perhatikan bahwa `model_in_dim` adalah jumlah dari `config.unit_embed_dim`, `config.lang_embed_dim`, dan `config.spkr_embed_dim`.

**Mengembalikan:** `torch.Tensor`

Tensor yang berisi waveform ucapan. Jika spektrogram input di-batch, bentuknya akan menjadi `(batch_size, num_frames,)`. Jika tidak di-batch, bentuknya akan menjadi `(num_frames,)`.

Mengonversi log-mel spectrogram menjadi waveform ucapan. Mengirimkan batch log-mel spectrogram mengembalikan batch waveform ucapan. Mengirimkan log-mel spectrogram tunggal, tanpa batch, mengembalikan waveform ucapan tunggal, tanpa batch.

## SeamlessM4TTextToUnitModel[[transformers.SeamlessM4TTextToUnitModel]]

#### transformers.SeamlessM4TTextToUnitModel[[transformers.SeamlessM4TTextToUnitModel]]

```python
transformers.SeamlessM4TTextToUnitModel(config: SeamlessM4TConfig, embed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L1752)

**Parameter:**

config ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) : 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.

embed_tokens_decoder (`nn.Embedding`, *opsional*) : input embedding dari decoder.

Encoder-decoder teks ke unit tanpa Transformer. Encoder-nya adalah `SeamlessM4TEncoder` tanpa embeddings dan decoder-nya adalah `SeamlessM4TDecoder`.

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.SeamlessM4TTextToUnitModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L1770)

**Parameter:**

input_ids (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu input IDs?](../glossary#input-ids)

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` dengan bentuk `(batch_size, target_sequence_length)`, *opsional*) : Indeks token dari urutan input decoder dalam kosakata. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu ID input decoder?](../glossary#decoder-input-ids)

decoder_attention_mask (`torch.LongTensor` dengan bentuk `(batch_size, target_sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan perhatian pada indeks token tertentu. Secara default, mask kausal akan digunakan, untuk memastikan model hanya dapat melihat input sebelumnya guna memprediksi masa depan.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *opsional*) : Tuple terdiri dari (`last_hidden_state`, *opsional*: `hidden_states`, *opsional*: `attentions`) `last_hidden_state` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) adalah urutan hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder.

past_key_values (`~cache_utils.Cache`, *opsional*) : Hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`. Hanya instance [Cache](/docs/transformers/main/id/internal/generation_utils#transformers.Cache) yang diizinkan sebagai input, lihat [panduan kv cache](https://huggingface.co/docs/transformers/en/kv_cache) kami. Jika tidak ada `past_key_values` yang diteruskan, [DynamicCache](/docs/transformers/main/id/internal/generation_utils#transformers.DynamicCache) akan diinisialisasi secara default. Model akan mengoutput format cache yang sama dengan yang diberikan sebagai input. Jika `past_key_values` digunakan, pengguna diharapkan untuk hanya menginput `input_ids` yang belum diproses (yang tidak memiliki state past key value mereka diberikan ke model ini) dengan bentuk `(batch_size, unprocessed_length)` alih-alih semua `input_ids` dengan bentuk `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) : Secara opsional, alih-alih meneruskan `input_ids`, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi indeks `input_ids` menjadi vektor terkait daripada matriks pencarian penanaman internal model.

decoder_inputs_embeds (`torch.Tensor` dengan bentuk `(batch_size, target_sequence_length, hidden_size)`, *opsional*) : Secara opsional, alih-alih meneruskan `decoder_input_ids`, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Jika `past_key_values` digunakan, secara opsional hanya `decoder_inputs_embeds` terakhir yang perlu diinput (lihat `past_key_values`). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi indeks `decoder_input_ids` menjadi vektor terkait daripada matriks pencarian penanaman internal model. Jika `decoder_input_ids` dan `decoder_inputs_embeds` keduanya tidak disetel, `decoder_inputs_embeds` mengambil nilai dari `inputs_embeds`.

use_cache (`bool`, *opsional*) : Jika diatur ke `True`, state kunci-nilai `past_key_values` akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat `past_key_values`).

**Mengembalikan:** [Seq2SeqModelOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.Seq2SeqModelOutput) atau `tuple(torch.Tensor)`

A [Seq2SeqModelOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.Seq2SeqModelOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` dilewatkan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) dan input.

Metode forward dari [SeamlessM4TTextToUnitModel](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TTextToUnitModel) 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.

- **last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`) -- Urutan hidden-state pada keluaran lapisan terakhir dari decoder model.

  Jika `past_key_values` digunakan, hanya hidden-state terakhir dari sekuens dengan bentuk `(batch_size, 1, hidden_size)` yang dioutput.
- **past_key_values** (`EncoderDecoderCache`, *opsional*, dikembalikan ketika `use_cache=True` diteruskan atau ketika `config.use_cache=True`) -- Ini adalah instance [EncoderDecoderCache](/docs/transformers/main/id/internal/generation_utils#transformers.EncoderDecoderCache). Untuk detail lebih lanjut, lihat [panduan kv cache](https://huggingface.co/docs/transformers/en/kv_cache) kami.

  Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan (lihat input `past_key_values`) untuk mempercepat decoding berurutan.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states dari decoder pada output setiap layer ditambah output embedding awal yang opsional.
- **decoder_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` diteruskan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- **cross_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
- **encoder_last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) -- Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_hidden_states=True` diteruskan atau ketika `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states dari encoder pada output setiap layer ditambah output embedding awal yang opsional.
- **encoder_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

## SeamlessM4TTextToUnitForConditionalGeneration[[transformers.SeamlessM4TTextToUnitForConditionalGeneration]]

#### transformers.SeamlessM4TTextToUnitForConditionalGeneration[[transformers.SeamlessM4TTextToUnitForConditionalGeneration]]

```python
transformers.SeamlessM4TTextToUnitForConditionalGeneration(config: SeamlessM4TConfig, embed_tokens_decoder: typing.Optional[torch.nn.Embedding] = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L1831)

**Parameter:**

config ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) : 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.

embed_tokens_decoder (`nn.Embedding`, *opsional*) : input embedding dari decoder.

Encoder-decoder teks-ke-unit Transformer dengan kepala model bahasa. Model encoder-decoder dasarnya adalah `SeamlessM4TTextToUnit`.

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.SeamlessM4TTextToUnitForConditionalGeneration.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, decoder_input_ids: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: tuple[tuple[torch.Tensor]] | None = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/seamless_m4t/modeling_seamless_m4t.py#L1875)

**Parameter:**

input_ids (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu input IDs?](../glossary#input-ids)

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

decoder_input_ids (`torch.LongTensor` dengan bentuk `(batch_size, target_sequence_length)`, *opsional*) : Indeks token dari urutan input decoder dalam kosakata. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu decoder input IDs?](../glossary#decoder-input-ids) Bart menggunakan `eos_token_id` sebagai token awal untuk generasi `decoder_input_ids`. Jika `past_key_values` digunakan, secara opsional hanya `decoder_input_ids` terakhir yang perlu diinput (lihat `past_key_values`). Untuk pelatihan terjemahan dan ringkasan, `decoder_input_ids` harus disediakan. Jika tidak ada `decoder_input_ids` yang disediakan, model akan membuat tensor ini dengan menggeser `input_ids` ke kanan untuk pra-pelatihan denoising sesuai dengan makalahnya.

decoder_attention_mask (`torch.LongTensor` dengan bentuk `(batch_size, target_sequence_length)`, *opsional*) : Perilaku bawaan: menghasilkan tensor yang mengabaikan token pad di `decoder_input_ids`. Mask kausal juga akan digunakan secara bawaan. Jika Anda ingin mengubah perilaku padding, Anda harus membaca `modeling_bart._prepare_decoder_attention_mask` dan memodifikasinya sesuai kebutuhan Anda. Lihat diagram 1 di [makalah](https://huggingface.co/papers/1910.13461) untuk informasi lebih lanjut tentang strategi bawaan.

encoder_outputs (`tuple[tuple[torch.Tensor]]`, *opsional*) : Tuple terdiri dari (`last_hidden_state`, *opsional*: `hidden_states`, *opsional*: `attentions`) `last_hidden_state` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) adalah urutan hidden-states pada keluaran lapisan terakhir encoder. Digunakan dalam cross-attention decoder.

past_key_values (`~cache_utils.Cache`, *opsional*) : Hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari `past_key_values` yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika `use_cache=True` atau `config.use_cache=True`. Hanya instance [Cache](/docs/transformers/main/id/internal/generation_utils#transformers.Cache) yang diizinkan sebagai input, lihat [panduan kv cache](https://huggingface.co/docs/transformers/en/kv_cache) kami. Jika tidak ada `past_key_values` yang diteruskan, [DynamicCache](/docs/transformers/main/id/internal/generation_utils#transformers.DynamicCache) akan diinisialisasi secara default. Model akan mengoutput format cache yang sama dengan yang diberikan sebagai input. Jika `past_key_values` digunakan, pengguna diharapkan untuk hanya menginput `input_ids` yang belum diproses (yang tidak memiliki state past key value mereka diberikan ke model ini) dengan bentuk `(batch_size, unprocessed_length)` alih-alih semua `input_ids` dengan bentuk `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` dengan bentuk`(batch_size, sequence_length, hidden_size)`, *opsional*) : Secara opsional, alih-alih meneruskan `input_ids`, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi indeks `input_ids` menjadi vektor terkait daripada matriks pencarian embedding internal model.  labels (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*): Label untuk menghitung kerugian pemodelan bahasa tersembunyi. Indeks harus berada dalam `[-100, 0, ..., config.vocab_size]` (lihat docstring `input_ids`) Token dengan indeks yang disetel ke `-100` diabaikan (tersembunyi), kerugian hanya dihitung untuk token dengan label dalam `[0, ..., config.vocab_size]`

decoder_inputs_embeds (`torch.Tensor` dengan bentuk `(batch_size, target_sequence_length, hidden_size)`, *opsional*) : Secara opsional, alih-alih meneruskan `decoder_input_ids`, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Jika `past_key_values` digunakan, secara opsional hanya `decoder_inputs_embeds` terakhir yang perlu diinput (lihat `past_key_values`). Ini berguna jika Anda ingin lebih banyak kendali atas cara mengonversi indeks `decoder_input_ids` menjadi vektor terkait daripada matriks pencarian penanaman internal model. Jika `decoder_input_ids` dan `decoder_inputs_embeds` keduanya tidak disetel, `decoder_inputs_embeds` mengambil nilai dari `inputs_embeds`.

labels (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Label untuk menghitung kerugian pemodelan bahasa yang disamarkan. Indeks harus berada di `[0, ..., config.vocab_size]` atau -100 (lihat docstring `input_ids`). Token dengan indeks yang disetel ke `-100` diabaikan (disamarkan), kerugian hanya dihitung untuk token dengan label di `[0, ..., config.vocab_size]`.

use_cache (`bool`, *opsional*) : Jika diatur ke `True`, state kunci-nilai `past_key_values` akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat `past_key_values`).

**Mengembalikan:** [Seq2SeqLMOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.Seq2SeqLMOutput) atau `tuple(torch.Tensor)`

A [Seq2SeqLMOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.Seq2SeqLMOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([SeamlessM4TConfig](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TConfig)) dan input.

Metode forward dari [SeamlessM4TTextToUnitForConditionalGeneration](/docs/transformers/main/id/model_doc/seamless_m4t#transformers.SeamlessM4TTextToUnitForConditionalGeneration) 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.

- **loss** (`torch.Tensor` dengan bentuk `(1,)`, *opsional*, dikembalikan ketika `labels` disediakan) -- Loss pemodelan bahasa.
- **logits** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.vocab_size)`) -- Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).
- **past_key_values** (`EncoderDecoderCache`, *opsional*, dikembalikan ketika `use_cache=True` diteruskan atau ketika `config.use_cache=True`) -- Ini adalah instance [EncoderDecoderCache](/docs/transformers/main/id/internal/generation_utils#transformers.EncoderDecoderCache). Untuk detail lebih lanjut, lihat [panduan kv cache](https://huggingface.co/docs/transformers/en/kv_cache) kami.

  Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan (lihat input `past_key_values`) untuk mempercepat decoding berurutan.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states dari decoder pada output setiap layer ditambah output embedding awal.
- **decoder_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` diteruskan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- **cross_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari lapisan cross-attention decoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala cross-attention.
- **encoder_last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) -- Urutan hidden-states pada keluaran lapisan terakhir dari encoder model.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_hidden_states=True` diteruskan atau ketika `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states dari encoder pada output setiap layer ditambah output embedding awal.
- **encoder_attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian dari encoder, setelah softmax perhatian, yang digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

