# Trình mã hóa âm thanh Pocket TTS

## Tổng quan

Audio tokenizer của [Pocket TTS](https://huggingface.co/kyutai/pocket-tts): một codec có kiến trúc của [Mimi](./mimi) (cuộn SEANet và một transformer nhân quả nhỏ ở mỗi bên) mà bộ lượng tử hóa vector dư của nó được thay thế bằng một cổ chai liên tục 32 chiều, VAE-GAN của [Continuous Audio Language Models](https://huggingface.co/papers/2509.06926). Nó chuyển đổi âm thanh 24 kHz thành các ẩn (latents) ở 12.5 Hz và ngược lại. Bộ mã hóa và bộ giải mã của nó có thể được tải riêng lẻ ([PocketTTSAudioTokenizerEncoderModel](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerEncoderModel), [PocketTTSAudioTokenizerDecoderModel](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerDecoderModel)). Đây là `audio_tokenizer` của [PocketTTSProcessor](/docs/transformers/main/vi/model_doc/pocket_tts#transformers.PocketTTSProcessor), được chia sẻ bởi mọi checkpoint của Pocket TTS: bộ xử lý mã hóa các lời nhắc giọng nói bằng nó và giải mã các ẩn đã tạo ra.

Mô hình này được đóng góp bởi [Eustache Le Bihan](https://huggingface.co/eustlb). Mã gốc là [kyutai-labs/pocket-tts](https://github.com/kyutai-labs/pocket-tts).

## Cách sử dụng

```python
from datasets import Audio, load_dataset
from transformers import AutoFeatureExtractor, AutoModel

model = AutoModel.from_pretrained("eustlb/pocket-tts-audio-tokenizer", device_map="auto")
feature_extractor = AutoFeatureExtractor.from_pretrained("eustlb/pocket-tts-audio-tokenizer")

dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
dataset = dataset.cast_column("audio", Audio(sampling_rate=24000))
inputs = feature_extractor(dataset[0]["audio"]["array"], sampling_rate=24000, return_tensors="pt").to(model.device)

latents = model.encode(**inputs).latents
audio_values = model.decode(latents).audio_values
```

## PocketTTSAudioTokenizerConfig[[transformers.PocketTTSAudioTokenizerConfig]]

#### transformers.PocketTTSAudioTokenizerConfig[[transformers.PocketTTSAudioTokenizerConfig]]

```python
transformers.PocketTTSAudioTokenizerConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, sampling_rate: int = 24000, audio_channels: int = 1, hidden_size: int = 512, num_filters: int = 64, num_residual_layers: int = 1, upsampling_ratios: list[int] | None = None, kernel_size: int = 7, last_kernel_size: int = 3, residual_kernel_size: int = 3, dilation_growth_rate: int = 2, use_causal_conv: bool = True, pad_mode: str = 'constant', compress: int = 2, trim_right_ratio: float = 1.0, use_conv_shortcut: bool = False, upsample_groups: int = 512, num_hidden_layers: int = 2, intermediate_size: int = 2048, num_attention_heads: int = 8, num_key_value_heads: int = 8, head_dim: int | None = None, hidden_act: str = 'gelu_pytorch_tanh', max_position_embeddings: int = 8000, initializer_range: float = 0.02, norm_eps: float = 1e-05, use_cache: bool = False, use_streaming: bool = False, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, sliding_window: int = 250, attention_dropout: float | int = 0.0, layer_scale_initial_scale: float = 0.01, attention_bias: bool = False, latent_stride: int = 16, latent_dim: int = 32)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/configuration_pocket_tts_audio_tokenizer.py#L38)

**Tham số:**

sampling_rate (`int`, *optional*, mặc định là `24000`) : Tần số lấy mẫu (sampling rate) mà các tệp âm thanh nên được số hóa, được biểu diễn bằng hertz (Hz).

audio_channels (`int`, *optional*, mặc định là 1) : Số kênh trong dữ liệu âm thanh; các checkpoint đã phát hành và bản triển khai này đều là mono.

hidden_size (`int`, *tuỳ chọn*, mặc định là `512`) : Kích thước của các biểu diễn ẩn.

num_filters (`int`, *tuỳ chọn*, mặc định là 64) : Số lượng nhân convolution của lớp `PocketTTSAudioTokenizerConv1d` đầu tiên của encoder.

num_residual_layers (`int`, *tuỳ chọn*, mặc định là 1) : Số lượng lớp residual.

upsampling_ratios (`list[int]`, *optional*) : Tỉ lệ kích thước kernel và stride của các phép tích chập chuyển vị trong bộ giải mã; bộ mã hóa sử dụng chúng theo thứ tự ngược lại. Nếu không được chỉ định, mặc định là `[6, 5, 4]`.

kernel_size (`int`, *tuỳ chọn*, mặc định là `7`) : Kích thước của nhân tích chập.

last_kernel_size (`int`, *tuỳ chọn*, mặc định là 3) : Kích thước kernel cho lớp convolution cuối cùng.

residual_kernel_size (`int`, *tuỳ chọn*, mặc định là 3) : Kích thước kernel cho các lớp residual.

dilation_growth_rate (`int`, *tuỳ chọn*, mặc định là 2) : Mức độ tăng dilation ở mỗi lớp.

use_causal_conv (`bool`, *tùy chọn*, mặc định là `True`) : Có sử dụng tích chập nhân quả hoàn toàn hay không.

pad_mode (`str`, *tùy chọn*, mặc định là `"constant"`) : Chế độ đệm cho các phép tích chập.

compress (`int`, *optional*, mặc định là 2) : Kích thước chiều giảm trong các nhánh residual.

trim_right_ratio (`float`, *optional*, mặc định là 1.0) : Tỷ lệ để cắt bỏ ở phía bên phải của phép tích chập chuyển vị trong cấu hình `use_causal_conv = True`. Nếu bằng 1.0, điều này có nghĩa là toàn bộ việc cắt bỏ được thực hiện ở phía bên phải.

use_conv_shortcut (`bool`, *tùy chọn*, mặc định là `False`) : Có sử dụng một lớp tích chập (convolution) làm kết nối bỏ qua (skip connection) của các khối dư (residual blocks) SEANet hay không; các checkpoint đã phát hành không sử dụng.

upsample_groups (`int`, *optional*, mặc định là 512) : Số nhóm của phép convolution chuyển vị dùng để tăng mẫu latents lên tốc độ SEANet.

num_hidden_layers (`int`, *tuỳ chọn*, mặc định là `2`) : Số lượng lớp ẩn trong bộ giải mã Transformer.

intermediate_size (`int`, *tuỳ chọn*, mặc định là `2048`) : Kích thước của các biểu diễn MLP.

num_attention_heads (`int`, *tuỳ chọn*, mặc định là `8`) : Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer.

num_key_value_heads (`int`, *optional*, mặc định là `8`) : Đây là số lượng key_value heads cần được sử dụng để triển khai Grouped Query Attention. Nếu `num_key_value_heads=num_attention_heads`, mô hình sẽ sử dụng Multi Head Attention (MHA), nếu `num_key_value_heads=1` mô hình sẽ sử dụng Multi Query Attention (MQA), ngược lại GQA sẽ được sử dụng. Khi chuyển đổi một checkpoint multi-head sang checkpoint GQA, mỗi nhóm key và value head nên được xây dựng bằng cách meanpooling tất cả các head gốc trong nhóm đó. Để biết thêm chi tiết, hãy xem [bài báo này](https://huggingface.co/papers/2305.13245). Nếu không được chỉ định, giá trị mặc định sẽ là `num_attention_heads`.

head_dim (`int`, *optional*) : Kích thước chiều của đầu chú ý. Nếu là None, giá trị mặc định sẽ là hidden_size // num_attention_heads

hidden_act (`str`, *tùy chọn*, mặc định là `gelu_pytorch_tanh`) : Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, `"gelu"`, `"relu"`, `"silu"`, v.v.

max_position_embeddings (`int`, *tuỳ chọn*, mặc định là `8000`) : Độ dài chuỗi tối đa mà mô hình này có thể được sử dụng.

initializer_range (`float`, *optional*, mặc định là `0.02`) : Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.

norm_eps (`float`, *tuỳ chọn*, mặc định là `1e-05`) : Epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization).

use_cache (`bool`, *tùy chọn*, mặc định là `False`) : Xác định xem mô hình có nên trả về các chú ý key/values cuối cùng hay không (không được sử dụng bởi tất cả các mô hình). Chỉ liên quan nếu `config.is_decoder=True` hoặc khi mô hình là mô hình sinh chỉ có decoder.

use_streaming (`bool`, *tùy chọn*, mặc định là `False`) : Xác định xem bộ mã hóa có truyền trực tiếp (stream) theo mặc định hay không: nếu có, nó sẽ trả về bộ đệm padding và bộ đệm key-value để truyền cho lần gọi tiếp theo.

rope_parameters (`Union[~modeling_rope_utils.RopeParameters, dict]`, *optional*) : Từ điển chứa các tham số cấu hình cho các embedding RoPE. Từ điển phải chứa một giá trị cho `rope_theta` và tùy chọn các tham số được sử dụng để mở rộng trong trường hợp bạn muốn sử dụng RoPE với `max_position_embeddings` dài hơn.

sliding_window (`int`, *tuỳ chọn*, mặc định là `250`) : Kích thước cửa sổ của chú ý cửa sổ trượt. Nếu là `None`, sẽ không áp dụng cửa sổ trượt.

attention_dropout (`Union[float, int]`, *tùy chọn*, mặc định là `0.0`) : Tỷ lệ dropout cho các xác suất chú ý.

layer_scale_initial_scale (`float`, *optional*, mặc định là `0.01`) : Thang đo sử dụng trong các lớp self-attention. 0.1 cho base, 1e-6 cho large. Đặt 0 để vô hiệu hóa layer scale.

attention_bias (`bool`, *tùy chọn*, mặc định là `False`) : Có sử dụng bias trong các lớp chiếu query, key, value và output trong quá trình tự chú ý hay không.

latent_stride (`int`, *optional*, mặc định là 16) : Số khung SEANet trên mỗi khung ẩn: bước nhảy của phép tích chập trong bộ mã hóa để hạ mẫu đầu ra SEANet xuống các ẩn, và của phép tích chập chuyển vị trong bộ giải mã để nâng mẫu chúng trở lại. Một khung ẩn bao phủ `prod(upsampling_ratios) * latent_stride` mẫu âm thanh (`frame_size`, 1920 đối với các checkpoint đã phát hành).

latent_dim (`int`, *optional*, mặc định là 32) : Kích thước của các latent liên tục. Bộ lượng tử hóa vector dư của Mimi được thay thế bằng nút cổ chai này: phép tích chập hạ mẫu của bộ mã hóa xuất ra `latent_dim` kênh, và bộ giải mã chiếu chúng trở lại `hidden_size` trước khi tăng mẫu.

Đây là lớp cấu hình để lưu trữ cấu hình của một PocketTTSAudioTokenizerModel. Nó được sử dụng để khởi tạo một mô hình Pocket Tts Audio Tokenizer theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của [eustlb/pocket-tts-audio-tokenizer](https://huggingface.co/eustlb/pocket-tts-audio-tokenizer)

Các đối tượng cấu hình kế thừa từ [PreTrainedConfig](/docs/transformers/main/vi/main_classes/configuration#transformers.PreTrainedConfig) và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ [PreTrainedConfig](/docs/transformers/main/vi/main_classes/configuration#transformers.PreTrainedConfig) để biết thêm thông tin.

Ví dụ:

```python
>>> from transformers import PocketTTSAudioTokenizerConfig, PocketTTSAudioTokenizerModel

>>> # a full codec, and its decoder alone
>>> model = PocketTTSAudioTokenizerModel(PocketTTSAudioTokenizerConfig())
>>> decoder_only = PocketTTSAudioTokenizerModel(PocketTTSAudioTokenizerConfig(encoder_config=None))
```

## PocketTTSAudioTokenizerEncoderConfig[[transformers.PocketTTSAudioTokenizerEncoderConfig]]

#### transformers.PocketTTSAudioTokenizerEncoderConfig[[transformers.PocketTTSAudioTokenizerEncoderConfig]]

```python
transformers.PocketTTSAudioTokenizerEncoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, sampling_rate: int = 24000, audio_channels: int = 1, hidden_size: int = 512, num_filters: int = 64, num_residual_layers: int = 1, upsampling_ratios: list[int] | None = None, kernel_size: int = 7, last_kernel_size: int = 3, residual_kernel_size: int = 3, dilation_growth_rate: int = 2, use_causal_conv: bool = True, pad_mode: str = 'constant', compress: int = 2, trim_right_ratio: float = 1.0, use_conv_shortcut: bool = False, upsample_groups: int = 512, num_hidden_layers: int = 2, intermediate_size: int = 2048, num_attention_heads: int = 8, num_key_value_heads: int = 8, head_dim: int | None = None, hidden_act: str = 'gelu_pytorch_tanh', max_position_embeddings: int = 8000, initializer_range: float = 0.02, norm_eps: float = 1e-05, use_cache: bool = False, use_streaming: bool = False, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, sliding_window: int = 250, attention_dropout: float | int = 0.0, layer_scale_initial_scale: float = 0.01, attention_bias: bool = False, latent_stride: int = 16, latent_dim: int = 32)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/configuration_pocket_tts_audio_tokenizer.py#L214)

Cấu hình của nửa encoder của PocketTTSAudioTokenizer (encoder SEANet, encoder transformer và downsampling). Nó chia sẻ mọi trường với [PocketTTSAudioTokenizerConfig](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerConfig) (xem tài liệu của nó để biết các đối số), do đó có thể được tải trực tiếp từ checkpoint PocketTTSAudioTokenizer đầy đủ.

## PocketTTSAudioTokenizerDecoderConfig[[transformers.PocketTTSAudioTokenizerDecoderConfig]]

#### transformers.PocketTTSAudioTokenizerDecoderConfig[[transformers.PocketTTSAudioTokenizerDecoderConfig]]

```python
transformers.PocketTTSAudioTokenizerDecoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, sampling_rate: int = 24000, audio_channels: int = 1, hidden_size: int = 512, num_filters: int = 64, num_residual_layers: int = 1, upsampling_ratios: list[int] | None = None, kernel_size: int = 7, last_kernel_size: int = 3, residual_kernel_size: int = 3, dilation_growth_rate: int = 2, use_causal_conv: bool = True, pad_mode: str = 'constant', compress: int = 2, trim_right_ratio: float = 1.0, use_conv_shortcut: bool = False, upsample_groups: int = 512, num_hidden_layers: int = 2, intermediate_size: int = 2048, num_attention_heads: int = 8, num_key_value_heads: int = 8, head_dim: int | None = None, hidden_act: str = 'gelu_pytorch_tanh', max_position_embeddings: int = 8000, initializer_range: float = 0.02, norm_eps: float = 1e-05, use_cache: bool = False, use_streaming: bool = False, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, sliding_window: int = 250, attention_dropout: float | int = 0.0, layer_scale_initial_scale: float = 0.01, attention_bias: bool = False, latent_stride: int = 16, latent_dim: int = 32)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/configuration_pocket_tts_audio_tokenizer.py#L242)

Cấu hình của nửa decoder của PocketTTSAudioTokenizer (upsampling, decoder transformer và SEANet decoder). Nó chia sẻ mọi trường với [PocketTTSAudioTokenizerConfig](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerConfig) (xem tài liệu của nó để biết các đối số), do đó có thể được tải trực tiếp từ một checkpoint PocketTTSAudioTokenizer đầy đủ.

## PocketTTSAudioTokenizerModel[[transformers.PocketTTSAudioTokenizerModel]]

#### transformers.PocketTTSAudioTokenizerModel[[transformers.PocketTTSAudioTokenizerModel]]

```python
transformers.PocketTTSAudioTokenizerModel(config: PocketTTSAudioTokenizerConfig)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/modeling_pocket_tts_audio_tokenizer.py#L1179)

**Tham số:**

config ([PocketTTSAudioTokenizerConfig](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerConfig)) : Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức [from_pretrained()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.from_pretrained) để tải trọng số mô hình.

Audio tokenizer Pocket TTS: một codec có kiến trúc Mimi với latent liên tục 32 chiều ở 12.5 Hz (VAE-GAN của Continuous Audio Language Models), chuyển đổi audio 24 kHz thành latent và ngược lại.

Mô hình này kế thừa từ [PreTrainedModel](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel). Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu ra, v.v.)

Mô hình này cũng là một lớp con của [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

#### encode[[transformers.PocketTTSAudioTokenizerModel.encode]]

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

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/modeling_pocket_tts_audio_tokenizer.py#L1189)

**Tham số:**

input_values (`torch.Tensor` có shape `(batch_size, audio_channels, num_samples)`) : Dạng sóng âm thanh, như được trả về bởi [EncodecFeatureExtractor](/docs/transformers/main/vi/model_doc/encodec#transformers.EncodecFeatureExtractor), trong đó nó được zero-pad đến bội số của `config.frame_size` mẫu, giống như bản gốc.

padding_mask (`torch.Tensor` có hình dạng `(batch_size, num_samples)`, *tùy chọn*) : Mặt nạ của các mẫu âm thanh (`1`) so với phần đệm (`0`), từ đó tính toán `latents_mask`.

encoder_past_key_values (`Cache`, *optional*) : Bộ nhớ đệm key-value của transformer encoder, được trả về từ lần gọi trước khi streaming.

padding_cache (`PocketTTSAudioTokenizerConv1dPaddingCache`, *tùy chọn*) : Bộ đệm padding cho các phép tích chập nhân quả của bộ mã hóa, được trả về từ lần gọi trước khi streaming.

use_streaming (`bool`, *tùy chọn*) : Có mã hóa ở chế độ streaming hay không, trả về các cache để truyền cho lần gọi tiếp theo.

Mã hóa âm thanh thành các latent liên tục có hình dạng `(batch_size, num_frames, latent_dim)`: các latent của [PocketTTSAudioTokenizerEncoderModel.forward()](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerEncoderModel.forward), sắp xếp theo từng frame trước.

#### decode[[transformers.PocketTTSAudioTokenizerModel.decode]]

```python
decode(latents: Tensor, decoder_past_key_values: transformers.cache_utils.Cache | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/modeling_pocket_tts_audio_tokenizer.py#L1244)

**Tham số:**

latents (`torch.Tensor` có shape `(batch_size, num_frames, latent_dim)`) : Các latent liên tục cần giải mã, mỗi khung tương ứng với `config.frame_size` mẫu âm thanh.

decoder_past_key_values (`Cache`, *tuỳ chọn*) : Bộ nhớ đệm key-value của transformer giải mã, được trả về từ lần gọi trước khi giải mã theo từng khối.

Giải mã các latent liên tục thành âm thanh: các latent được chiếu lên `hidden_size`, sau đó được giải mã bởi [PocketTTSAudioTokenizerDecoderModel.forward()](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerDecoderModel.forward).

#### forward[[transformers.PocketTTSAudioTokenizerModel.forward]]

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

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/modeling_pocket_tts_audio_tokenizer.py#L1272)

**Tham số:**

input_values (`torch.Tensor` có shape `(batch_size, audio_channels, num_samples)`) : Dạng sóng âm thanh, như được trả về bởi [EncodecFeatureExtractor](/docs/transformers/main/vi/model_doc/encodec#transformers.EncodecFeatureExtractor).

padding_mask (`torch.Tensor` có hình dạng `(batch_size, num_samples)`, *tùy chọn*) : Mặt nạ của các mẫu âm thanh (`1`) so với phần đệm (`0`).

**Trả về:** `PocketTTSAudioTokenizerOutput` hoặc `tuple(torch.Tensor)`

Một `PocketTTSAudioTokenizerOutput` hoặc một tuple của `torch.Tensor` (nếu `return_dict=False` được truyền hoặc khi `config.return_dict=False`) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình ([PocketTTSAudioTokenizerConfig](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerConfig)) và đầu vào.

Phương thức forward của [PocketTTSAudioTokenizerModel](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerModel) ghi đè phương thức đặc biệt `__call__`.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, bạn nên gọi instance của `Module` sau đó thay vì gọi hàm này, vì instance `Module` sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ bỏ qua chúng một cách im lặng.

- **latents** (`torch.Tensor` có hình dạng `(batch_size, num_frames, latent_dim)`) -- Các latents liên tục của âm thanh.
- **latents_mask** (`torch.LongTensor` có hình dạng `(batch_size, num_frames)`, *tùy chọn*) -- Mặt nạ của các khung latent được tính từ các mẫu âm thanh (`1`) thay vì padding (`0`).
- **audio_values** (`torch.Tensor` có hình dạng `(batch_size, audio_channels, num_samples)`) -- Dạng sóng âm thanh được tái tạo từ các latents.
- **hidden_states** (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_hidden_states=True`) -- Trạng thái ẩn của transformer bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu vào của nó.
- **attentions** (`tuple(torch.Tensor)`, *tuỳ chọn*, được trả về khi `output_attentions=True`) -- Trọng số chú ý của từng lớp transformer trong encoder.

## PocketTTSAudioTokenizerEncoderModel[[transformers.PocketTTSAudioTokenizerEncoderModel]]

#### transformers.PocketTTSAudioTokenizerEncoderModel[[transformers.PocketTTSAudioTokenizerEncoderModel]]

```python
transformers.PocketTTSAudioTokenizerEncoderModel(config: PocketTTSAudioTokenizerEncoderConfig)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/modeling_pocket_tts_audio_tokenizer.py#L879)

**Tham số:**

config ([PocketTTSAudioTokenizerEncoderConfig](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerEncoderConfig)) : Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức [from_pretrained()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.from_pretrained) để tải trọng số mô hình.

Nửa encoder của PocketTTSAudioTokenizer: encoder SEANet, transformer encoder và hạ mẫu, từ âm thanh sang các latent liên tục.

Mô hình này kế thừa từ [PreTrainedModel](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel). Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu ra, v.v.)

Mô hình này cũng là một lớp con của [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

#### forward[[transformers.PocketTTSAudioTokenizerEncoderModel.forward]]

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

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/modeling_pocket_tts_audio_tokenizer.py#L940)

**Tham số:**

input_values (`torch.Tensor` có hình dạng `(batch_size, channels, sequence_length)`) : Các giá trị float của dạng sóng âm thanh đầu vào.

padding_mask (`torch.Tensor` có hình dạng `(batch_size, channels, sequence_length)`, *tùy chọn*) : Chỉ ra các phần tử đầu vào cần được bỏ qua do padding, trong đó các phần tử có giá trị 1 cho *không bị che* hoặc 0 cho *bị che*.

past_key_values (`Cache`, *tuỳ chọn*) : Các hidden-states (key và values trong các khối self-attention) đã được tính trước của encoder transformer, được sử dụng để tăng tốc độ mã hóa streaming.

padding_cache (`PocketTTSAudioTokenizerConv1dPaddingCache`, *tùy chọn*) : Bộ đệm padding của các phép tích chập nhân quả, được sử dụng cho mã hóa dạng luồng.

use_streaming (`bool`, *tùy chọn*) : Có mã hóa ở chế độ streaming hay không, trả về các cache để truyền cho lần gọi tiếp theo.

Mã hóa dạng sóng âm thanh đầu vào thành các ẩn liên tục có hình dạng `(batch_size, latent_dim, frames)`. --

**Trả về:** `PocketTTSAudioTokenizerEncoderModelOutput` hoặc `tuple(torch.Tensor)`

Một `PocketTTSAudioTokenizerEncoderModelOutput` hoặc một tuple của `torch.Tensor` (nếu `return_dict=False` được truyền hoặc khi `config.return_dict=False`) bao gồm các phần tử khác nhau tùy thuộc vào cấu hình ([PocketTTSAudioTokenizerConfig](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerConfig)) và đầu vào.

Phương thức forward của [PocketTTSAudioTokenizerEncoderModel](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerEncoderModel) ghi đè phương thức đặc biệt `__call__`.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, bạn nên gọi instance của `Module` sau đó thay vì gọi hàm này, vì instance `Module` sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ bỏ qua chúng một cách im lặng.

- **latents** (`torch.Tensor` có shape `(batch_size, latent_dim, frames)`) -- Latents liên tục của audio, mỗi frame tương ứng với `config.frame_size` mẫu audio.
- **past_key_values** (`Cache`, *tùy chọn*) -- Các hidden-states đã tính trước (key và values trong các khối self-attention) của encoder transformer, được trả về khi streaming.
- **padding_cache** (`PocketTTSAudioTokenizerConv1dPaddingCache`, *tuỳ chọn*) -- Bộ đệm padding cho các phép tích chập nhân quả của PocketTTSAudioTokenizerConv1d nhằm hỗ trợ streaming thông qua đệm cache.
- **hidden_states** (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_hidden_states=True`) -- Trạng thái ẩn của transformer bộ mã hóa tại đầu ra của mỗi lớp cùng với đầu vào của nó.
- **attentions** (`tuple(torch.Tensor)`, *tuỳ chọn*, được trả về khi `output_attentions=True`) -- Trọng số chú ý của từng lớp transformer trong encoder.

## PocketTTSAudioTokenizerDecoderModel[[transformers.PocketTTSAudioTokenizerDecoderModel]]

#### transformers.PocketTTSAudioTokenizerDecoderModel[[transformers.PocketTTSAudioTokenizerDecoderModel]]

```python
transformers.PocketTTSAudioTokenizerDecoderModel(config: PocketTTSAudioTokenizerDecoderConfig)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/modeling_pocket_tts_audio_tokenizer.py#L1109)

**Tham số:**

config ([PocketTTSAudioTokenizerDecoderConfig](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerDecoderConfig)) : Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức [from_pretrained()](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel.from_pretrained) để tải trọng số mô hình.

Nửa decoder của PocketTTSAudioTokenizer: upsampling, transformer decoder và SEANet decoder, từ latents liên tục sang audio.

Mô hình này kế thừa từ [PreTrainedModel](/docs/transformers/main/vi/main_classes/model#transformers.PreTrainedModel). Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu ra, v.v.)

Mô hình này cũng là một lớp con của [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

#### forward[[transformers.PocketTTSAudioTokenizerDecoderModel.forward]]

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

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pocket_tts_audio_tokenizer/modeling_pocket_tts_audio_tokenizer.py#L1136)

**Tham số:**

latents (`torch.Tensor` có shape `(batch_size, hidden_size, frames)`) : Các latents liên tục cần giải mã, được tính toán bởi [PocketTTSAudioTokenizerModel.decode()](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerModel.decode).

padding_mask (`torch.Tensor` có hình dạng `(batch_size, channels, sequence_length)`, *tùy chọn*) : Chỉ ra các phần tử đầu vào cần được bỏ qua do padding, trong đó các phần tử có giá trị 1 cho *không bị che* hoặc 0 cho *bị che*.

past_key_values (`Cache`, *tùy chọn*) : Các hidden-states (key và values trong các khối self-attention) đã được tính trước của transformer decoder, được sử dụng để tăng tốc độ giải mã dạng streaming.

Giải mã các khung đã cho thành dạng sóng âm thanh đầu ra. Lưu ý rằng đầu ra có thể lớn hơn một chút so với --

input. Trong trường hợp đó, bất kỳ bước bổ sung nào ở cuối đều có thể được cắt bỏ. --

**Trả về:** `PocketTTSAudioTokenizerDecoderOutput` hoặc `tuple(torch.Tensor)`

Một `PocketTTSAudioTokenizerDecoderOutput` hoặc một tuple của `torch.Tensor` (nếu `return_dict=False` được truyền hoặc khi `config.return_dict=False`) bao gồm các phần tử khác nhau tùy thuộc vào cấu hình ([PocketTTSAudioTokenizerConfig](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerConfig)) và đầu vào.

Phương thức forward của [PocketTTSAudioTokenizerDecoderModel](/docs/transformers/main/vi/model_doc/pocket_tts_audio_tokenizer#transformers.PocketTTSAudioTokenizerDecoderModel) ghi đè phương thức đặc biệt `__call__`.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, bạn nên gọi instance của `Module` sau đó thay vì gọi hàm này, vì instance `Module` sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ bỏ qua chúng một cách im lặng.

- **audio_values** (`torch.Tensor` có hình dạng `(batch_size, audio_channels, num_samples)`, *tùy chọn*) -- Các giá trị âm thanh đã giải mã, được lấy từ phần decoder của PocketTTSAudioTokenizer.
- **decoder_past_key_values** (`Cache`, *tuỳ chọn*) -- Các hidden-states đã được tính trước (key và values trong các khối self-attention) có thể được sử dụng để tăng tốc độ giải mã tuần tự của decoder transformer. Thành phần này thường bao gồm `past_key_values` do model trả về ở một giai đoạn giải mã trước đó, khi `use_cache=True` hoặc `config.use_cache=True`.

  Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

  Nếu `past_key_values` được sử dụng, người dùng có thể tùy chọn chỉ nhập `audio_values` hoặc `audio_codes cuối cùng (những giá trị chưa có trạng thái past key value được cung cấp cho mô hình này).
- **hidden_states** (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_hidden_states=True`) -- Trạng thái ẩn của transformer bộ giải mã tại đầu ra của mỗi lớp cùng với đầu vào của nó.
- **attentions** (`tuple(torch.Tensor)`, *tùy chọn*, được trả về khi `output_attentions=True`) -- Trọng số chú ý của mỗi lớp transformer trong bộ giải mã.

