# Bộ xử lý

## Bộ xử lý đa phương thức[[transformers.ProcessorMixin]]

Bất kỳ mô hình đa phương thức nào cũng sẽ cần một đối tượng để mã hóa hoặc giải mã dữ liệu nhóm lại một số phương thức (trong số văn bản, thị giác và âm thanh). Điều này được xử lý bởi các đối tượng gọi là bộ xử lý (processors), nhóm lại hai hoặc nhiều đối tượng xử lý như bộ phân từ (tokenizers, cho phương thức văn bản), bộ xử lý ảnh (image processors, cho thị giác) và bộ trích xuất đặc trưng (feature extractors, cho âm thanh).

Các trình xử lý đó kế thừa từ lớp cơ sở sau đây, lớp này triển khai chức năng lưu trữ và tải:

#### transformers.ProcessorMixin[[transformers.ProcessorMixin]]

```python
transformers.ProcessorMixin(*args, **kwargs)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L605)

Đây là một mixin được sử dụng để cung cấp chức năng lưu trữ/tải cho tất cả các lớp processor.

#### __call__[[transformers.ProcessorMixin.__call__]]

```python
__call__(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, text: str | list[str] | list[list[str]] | None = None, videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = 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'>)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L659)

**Tham số:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`, *tùy chọn*) : Ảnh cần tiền xử lý. Kỳ vọng một ảnh đơn hoặc một lô ảnh với giá trị pixel dao động từ 0 đến 255. Nếu truyền vào các ảnh có giá trị pixel nằm trong khoảng từ 0 đến 1, hãy đặt `do_rescale=False`.

text (`Union[str, list[str], list[list[str]]]`, *tùy chọn*) : Chuỗi hoặc lô các chuỗi cần được mã hóa. Mỗi chuỗi có thể là một chuỗi ký tự hoặc một danh sách các chuỗi ký tự (chuỗi đã được tách token trước). Nếu bạn truyền vào đầu vào đã tách token trước, hãy đặt `is_split_into_words=True` để tránh nhầm lẫn với các đầu vào dạng lô.

videos (`Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]`, *optional*) : Video cần tiền xử lý. Kỳ vọng một video đơn hoặc một batch video với giá trị pixel từ 0 đến 255. Nếu truyền vào video có giá trị pixel từ 0 đến 1, hãy đặt `do_rescale=False`.

audio (`Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]`, *optional*) : Âm thanh hoặc lô âm thanh cần được chuẩn bị. Mỗi âm thanh có thể là mảng NumPy hoặc tensor PyTorch. Trong trường hợp là mảng NumPy/tensor PyTorch, mỗi âm thanh nên có hình dạng (C, T), trong đó C là số kênh và T là độ dài mẫu của âm thanh.

return_tensors (`str` hoặc [TensorType](/docs/transformers/main/vi/internal/file_utils#transformers.TensorType), *optional*) : Nếu được đặt, sẽ trả về các tensor của một framework cụ thể. Các giá trị chấp nhận được là:  - `'pt'`: Trả về các đối tượng `torch.Tensor` của PyTorch. - `'np'`: Trả về các đối tượng `np.ndarray` của NumPy.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/main/vi/main_classes/processors#transformers.ProcessingKwargs), *optional*) : Các tùy chọn xử lý bổ sung cho từng phương thức (text, images, videos, audio). Các tham số cụ thể của model được liệt kê ở trên; xem lớp TypedDict để biết danh sách đầy đủ các đối số được hỗ trợ.

#### prepare_inputs_layout[[transformers.ProcessorMixin.prepare_inputs_layout]]

```python
prepare_inputs_layout(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, text: str | list[str] | list[list[str]] | None = None, videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = 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'>)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L720)

Chuẩn hóa và lấy trước các đầu vào trước khi xử lý. Bọc văn bản trong một danh sách cho các bộ xử lý đa phương thức, tải ảnh và âm thanh từ xa nếu có URL được cung cấp, và đảm bảo âm thanh được nhóm (batch) đúng cách. Trả về bộ (tuple) `(images, text, videos, audio)` đã được chuẩn hóa.

#### validate_inputs[[transformers.ProcessorMixin.validate_inputs]]

```python
validate_inputs(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, text: str | list[str] | list[list[str]] | None = None, videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = 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'>)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L749)

Kiểm tra rằng ít nhất một đầu vào được cung cấp và không có tham số từ khóa nào đã bị ngừng hỗ trợ được sử dụng. Nếu không, sẽ gây ra `ValueError`.

Ghi đè khi bộ xử lý cần xác thực bổ sung trên các đối số đầu vào.

#### get_text_with_replacements[[transformers.ProcessorMixin.get_text_with_replacements]]

```python
get_text_with_replacements(text: list, images_replacements: list = [], videos_replacements: list = [], audio_replacements: list = [])
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L873)

**Tham số:**

text (*list[str]*) : Lô các chuỗi văn bản thô, mỗi chuỗi có thể chứa các token placeholder đa phương thức. Lưu ý rằng nó sẽ bị thay đổi tại chỗ và được trả về.

images_replacements (*list[str]*, *optional*, mặc định là *[]*) : Các chuỗi thay thế đã mở rộng cho từng hình ảnh, theo thứ tự chúng xuất hiện trong batch. Được tạo ra bởi *self._process_images*.

videos_replacements (*list[str]*, *optional*, mặc định là *[]*) : Các chuỗi thay thế đã mở rộng cho từng video. Được tạo bởi *self._process_videos*.

audio_replacements (*list[str]*, *optional*, mặc định là *[]*) : Các chuỗi thay thế đã mở rộng cho mỗi đầu vào âm thanh. Được tạo bởi *self._process_audio*.

**Trả về:** *tuple[list[str], list[dict[str, Any]]]*

Một bộ (tuple) gồm:
- Lô *text* đã được chỉnh sửa với tất cả các token placeholder được mở rộng.
- *batch_replacement_offsets*: một mục cho mỗi phần tử trong batch, mỗi mục là
danh sách các dict có các khóa:
- *"type"* (*str*): tên modality — *"image"*, *"video"* hoặc *"audio"*
- *"span"* (*tuple[int, int]*): vị trí ký tự *(start, end)* gốc của token placeholder
- *"new_span"* (*tuple[int, int]*): *(start, end)* là các vị trí offset của placeholder trong chuỗi đã mở rộng
- *"text"* (*str*): chuỗi token placeholder gốc đã được khớp
- *"replacement"* (*str*): chuỗi mà nó đã được thay thế

Thay thế các token placeholder đa phương thức trong một lô chuỗi văn bản bằng các biểu diễn mở rộng của chúng, và trả về các văn bản đã chỉnh sửa cùng với metadata offset.

Phương pháp này là bước tiền xử lý phía văn bản cốt lõi cho các đầu vào đa phương thức. Nó quét từng văn bản trong lô để tìm các token đặc biệt (ảnh, video, âm thanh) và thay thế chúng theo thứ tự bằng các chuỗi thay thế đã được tính toán trước do *self.replace_image_token* / *self.replace_video_token* / *self.replace_audio_token* tạo ra. Các chuỗi thay thế được sử dụng tuần tự từ danh sách của mỗi phương thức, do đó lần xuất hiện thứ i của, ví dụ, `self.image_token` sẽ được thay thế bằng `images_replacements[i]`.

Để thêm một bộ xử lý đa phương thức mới với các token thay thế, bạn cần định nghĩa *self.image_token* chính xác, đây là token được nhúng trong văn bản đầu vào và cũng được dùng làm token thay thế, lặp lại nhiều lần. Sau đó, bạn cần ghi đè *self.replace_image_token* để trả về chuỗi thay thế chính xác cho một hình ảnh cụ thể tại chỉ mục *i*. Tương tự cho tất cả các phương thức khác được hỗ trợ.

#### create_mm_token_type_ids[[transformers.ProcessorMixin.create_mm_token_type_ids]]

```python
create_mm_token_type_ids(input_ids: list)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L978)

**Tham số:**

input_ids (*list[list[int]]*) : Lô các chuỗi ID token. Có thể chưa được đệm (độ dài thay đổi), do đó kỳ vọng một danh sách Python thuần túy gồm các danh sách con, thay vì một tensor hoặc mảng có hình dạng đồng nhất.

**Trả về:** *list[list[int]]*

Một danh sách có cùng cấu trúc với `input_ids`, trong đó mỗi số nguyên là ID kiểu phương thức (modality type) cho token tương ứng.

Xây dựng các ID loại phương thức (modality) cho từng token cho một lô (batch) các chuỗi token_id.

Mỗi vị trí được gán một số nguyên chỉ ra chế độ (modality) mà nó thuộc về: `0` cho văn bản thông thường, `1` cho token hình ảnh, `2` cho token video và `3` cho token âm thanh. Việc xác định thành viên được thực hiện bằng cách so sánh với `self.image_token_ids`, `self.video_token_ids` và `self.audio_token_ids`.

#### apply_chat_template[[transformers.ProcessorMixin.apply_chat_template]]

```python
apply_chat_template(conversation: list[dict[str, str]] | list[list[dict[str, str]]], chat_template: str | None = None, tools: list[dict] | None = None, documents: list[dict[str, str]] | None = None, add_generation_prompt: bool = False, continue_final_message: bool | str = False, return_assistant_tokens_mask: bool = False, tokenize: bool = False, return_tensors: str | transformers.utils.generic.TensorType | None = 'auto', return_dict: bool = False, load_audio_from_video: bool = False, processor_kwargs: dict | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L2250)

**Tham số:**

conversation (`Union[list[Dict, [str, str]], list[list[dict[str, str]]]]`) : Cuộc trò chuyện cần định dạng.

chat_template (`Optional[str]`, *tùy chọn*) : Mẫu Jinja để định dạng cuộc trò chuyện. Nếu không được cung cấp, mẫu trò chuyện của tokenizer sẽ được sử dụng.

Tương tự như phương thức `apply_chat_template` trên các tokenizer, phương thức này áp dụng một mẫu Jinja lên các cuộc trò chuyện đầu vào để biến chúng thành một chuỗi duy nhất có thể token hóa.

Đầu vào được kỳ vọng ở định dạng sau, trong đó nội dung của mỗi tin nhắn là một danh sách gồm văn bản và tùy chọn đầu vào hình ảnh hoặc video. Người dùng cũng có thể cung cấp một hình ảnh, video, URL hoặc đường dẫn cục bộ, sẽ được sử dụng để tạo `pixel_values` khi `return_dict=True`. Nếu không được cung cấp, người dùng sẽ chỉ nhận được văn bản đã định dạng, tùy chọn là văn bản đã được token hóa.

conversation = [ { "role": "user", "content": [ {"type": "image", "url": "https://www.ilankelman.org/stopsigns/australia.jpg"}, {"type": "text", "text": "Hãy mô tả chi tiết hình ảnh này."}, ], }, ]

### Xử lý kwargs[[transformers.ProcessingKwargs]]

Phương thức `__call__` của Processor nhận các đối số dạng từ khóa được tổ chức theo từng chế độ (modality). Các lớp TypedDict sau đây định nghĩa các đối số từ khóa khả dụng cho từng chế độ. Các processor cụ thể cho từng model có thể kế thừa các lớp này để thêm hoặc ghi đè các trường.

#### transformers.ProcessingKwargs[[transformers.ProcessingKwargs]]

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L441)

Lớp cơ sở cho việc truyền kwargs đến các bộ xử lý. Trong trường hợp một mô hình có các kwargs cụ thể không có trong lớp cơ sở hoặc các giá trị mặc định cho các khóa hiện có, nó nên có lớp `ModelProcessorKwargs` riêng kế thừa từ `ProcessingKwargs` để cung cấp:
1) Các khóa có kiểu bổ sung và các khóa mà mô hình này yêu cầu để xử lý đầu vào.
2) Giá trị mặc định cho các khóa hiện có dưới thuộc tính `_defaults`.
Các khóa mới phải được định nghĩa như sau để đảm bảo việc gợi ý kiểu dữ liệu được thực hiện chính xác.

```python
# adding a new image kwarg for this model
class ModelImagesKwargs(ImagesKwargs, total=False):
    new_image_kwarg: Optional[bool]

class ModelProcessorKwargs(ProcessingKwargs, total=False):
    images_kwargs: ModelImagesKwargs
    _defaults = {
        "images_kwargs: {
            "new_image_kwarg": False,
        }
        "text_kwargs": {
            "padding": "max_length",
        },
    }

```

Để tương thích với Python 3.8, khi kế thừa từ lớp này và ghi đè một trong các kwargs,

bạn cần cập nhật thủ công từ điển __annotations__. Bạn có thể thực hiện như sau:

```python
class CustomProcessorKwargs(ProcessingKwargs, total=False):
    images_kwargs: CustomImagesKwargs

CustomProcessorKwargs.__annotations__["images_kwargs"] = CustomImagesKwargs  # python 3.8 compatibility
```

#### transformers.TextKwargs[[transformers.TextKwargs]]

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L169)

**Tham số:**

add_special_tokens (`bool`, *tùy chọn*) : Có thêm các token đặc biệt khi mã hóa các chuỗi hay không.

padding (`bool`, `str` hoặc [PaddingStrategy](/docs/transformers/main/vi/internal/file_utils#transformers.utils.PaddingStrategy), *tuỳ chọn*) : Kích hoạt và kiểm soát việc đệm (padding).

truncation (`bool`, `str` hoặc [TruncationStrategy](/docs/transformers/main/vi/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy), *tuỳ chọn*) : Kích hoạt và kiểm soát việc cắt ngắn.

max_length (`int`, *tuỳ chọn*) : Kiểm soát độ dài tối đa được sử dụng bởi một trong các tham số cắt ngắn/lấp đầy.

stride (`int`, *optional*) : Nếu được đặt, các token tràn sẽ chứa một số token từ cuối của chuỗi bị cắt.

is_split_into_words (`bool`, *tùy chọn*) : Cho biết đầu vào đã được tiền xử lý token hay chưa.

pad_to_multiple_of (`int`, *optional*) : Nếu được đặt, sẽ đệm chuỗi đến một bội số của giá trị được cung cấp.

return_token_type_ids (`bool`, *tùy chọn*) : Có trả về ID loại token hay không.

return_attention_mask (`bool`, *tùy chọn*) : Có trả về attention mask hay không.

return_overflowing_tokens (`bool`, *tùy chọn*) : Có trả về các chuỗi token bị tràn hay không.

return_special_tokens_mask (`bool`, *tùy chọn*) : Có trả về thông tin mặt nạ token đặc biệt hay không.

return_offsets_mapping (`bool`, *tùy chọn*) : Có trả về `(char_start, char_end)` cho từng token hay không.

return_length (`bool`, *tùy chọn*) : Có trả về độ dài của các đầu vào đã mã hóa hay không.

verbose (`bool`, *tùy chọn*) : Có in thêm thông tin và cảnh báo hay không.

padding_side (`str`, *tùy chọn*) : Bên mà padding sẽ được áp dụng.

return_mm_token_type_ids (`bool`, *tùy chọn*) : Có trả về các id loại token đa phương thức chỉ định vị trí của các token placeholder đa phương thức hay không.

return_text_replacement_offsets (`bool`, *tùy chọn*) : Có trả về vị trí ký tự cho mỗi mm placeholder và phần thay thế của nó hay không.

return_tensors (`str` hoặc [TensorType](/docs/transformers/main/vi/internal/file_utils#transformers.TensorType), *optional*) : Nếu được đặt, sẽ trả về các tensor của một framework cụ thể. Các giá trị chấp nhận được là: - `'pt'`: Trả về các đối tượng `torch.Tensor` của PyTorch. - `'np'`: Trả về các đối tượng `np.ndarray` của NumPy.

Các đối số từ khóa cho xử lý văn bản. Để xem tài liệu mở rộng, hãy kiểm tra các phương thức và docstring liên quan của tokenization_utils_base.

#### transformers.ImagesKwargs[[transformers.ImagesKwargs]]

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L238)

**Tham số:**

do_convert_rgb (`bool`) : Xác định có chuyển đổi ảnh sang định dạng RGB hay không.

do_resize (`bool`, *tùy chọn*) : Có nên thay đổi kích thước hình ảnh hay không.

size (`dict[str, int]`, *tùy chọn*) : Thay đổi kích thước bằng một trong các từ điển kích thước được hỗ trợ. Giới hạn diện tích pixel sử dụng `{"min_pixels": int, "max_pixels": int}`.

default_to_square (`bool`, *tùy chọn*, mặc định là `self.default_to_square`) : Có nên mặc định dùng hình vuông khi thay đổi kích thước không, nếu size là một số nguyên.

crop_size (`dict[str, int]`, *tùy chọn*) : Kích thước đầu ra mong muốn khi áp dụng cắt giữa.

resample (`PILImageResampling`, *tùy chọn*) : Bộ lọc lấy mẫu lại (resampling) được sử dụng khi thay đổi kích thước ảnh.

do_rescale (`bool`, *tùy chọn*) : Xác định có nên điều chỉnh kích thước ảnh theo hệ số `rescale_factor` được chỉ định hay không.

rescale_factor (`int` hoặc `float`, *tùy chọn*) : Hệ số tỷ lệ để sử dụng nếu cần thay đổi tỷ lệ ảnh.

do_normalize (`bool`, *tùy chọn*) : Có chuẩn hóa hình ảnh hay không.

image_mean (`float` hoặc `list[float] or tuple[float, float, float]`, *tùy chọn*) : Giá trị trung bình được sử dụng khi chuẩn hóa ảnh.

image_std (`float` hoặc `list[float] or tuple[float, float, float]`, *tùy chọn*) : Độ lệch chuẩn cần sử dụng khi chuẩn hóa ảnh.

do_pad (`bool`, *tùy chọn*) : Có nên đệm (pad) các hình ảnh trong lô (batch) hay không.

pad_size (`dict[str, int]`, *tùy chọn*) : Kích thước `{"height": int, "width" int}` để đệm các hình ảnh.

do_center_crop (`bool`, *tùy chọn*) : Có nên cắt ảnh ở giữa hay không.

data_format (`ChannelDimension` hoặc `str`, *tùy chọn*) : Định dạng chiều kênh cho hình ảnh đầu ra.

input_data_format (`ChannelDimension` hoặc `str`, *tùy chọn*) : Định dạng chiều kênh cho ảnh đầu vào.

device (`Union[str, torch.Tensor]`, *tùy chọn*) : Thiết bị được sử dụng để xử lý (ví dụ: "cpu", "cuda"), chỉ liên quan đến backend torchvision.

return_tensors (`str` hoặc [TensorType](/docs/transformers/main/vi/internal/file_utils#transformers.TensorType), *optional*) : Nếu được đặt, sẽ trả về các tensor của một framework cụ thể. Các giá trị chấp nhận được là: - `'pt'`: Trả về các đối tượng `torch.Tensor` của PyTorch. - `'np'`: Trả về các đối tượng `np.ndarray` của NumPy.

disable_grouping (`bool`, *tuỳ chọn*) : Có nhóm các hình ảnh theo hình dạng khi xử lý hay không, chỉ liên quan đến backend torchvision.

image_seq_length (`int`, *optional*) : Số lượng token hình ảnh sẽ được sử dụng cho mỗi hình ảnh trong đầu vào. Được thêm vào để đảm bảo tương thích ngược, nhưng trong các mô hình tương lai, giá trị này nên được đặt như một thuộc tính của bộ xử lý.

Các đối số từ khóa cho xử lý ảnh. Để xem tài liệu mở rộng, hãy kiểm tra các phương thức và docstring của lớp ImageProcessor tương ứng.

#### transformers.VideosKwargs[[transformers.VideosKwargs]]

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L312)

**Tham số:**

do_convert_rgb (`bool`) : Có chuyển đổi video sang định dạng RGB hay không.

do_resize (`bool`) : Có nên thay đổi kích thước video hay không.

size (`dict[str, int]`, *tùy chọn*) : Thay đổi kích thước cạnh ngắn hơn của đầu vào thành `size["shortest_edge"]`.

default_to_square (`bool`, *tùy chọn*, mặc định là `self.default_to_square`) : Có nên mặc định dùng hình vuông khi thay đổi kích thước không, nếu size là một số nguyên.

resample (`PILImageResampling`, *tùy chọn*) : Bộ lọc lấy mẫu lại (resampling) được sử dụng khi thay đổi kích thước video.

do_rescale (`bool`, *tùy chọn*) : Xác định có nên điều chỉnh lại kích thước video theo hệ số `rescale_factor` được chỉ định hay không.

rescale_factor (`int` hoặc `float`, *tùy chọn*) : Hệ số tỷ lệ để sử dụng nếu cần thay đổi tỷ lệ video.

do_normalize (`bool`, *tùy chọn*) : Có chuẩn hóa video hay không.

image_mean (`float` hoặc `list[float] or tuple[float, float, float]`, *tùy chọn*) : Giá trị trung bình được sử dụng khi chuẩn hóa video.

image_std (`float` hoặc `list[float] or tuple[float, float, float]`, *tùy chọn*) : Độ lệch chuẩn cần sử dụng khi chuẩn hóa video.

do_center_crop (`bool`, *tùy chọn*) : Có căn giữa khi cắt video hay không.

do_pad (`bool`, *tùy chọn*) : Có nên đệm (pad) các hình ảnh trong lô (batch) hay không.

do_sample_frames (`bool`, *tùy chọn*) : Có lấy mẫu các khung hình từ video trước khi xử lý hay xử lý toàn bộ video.

video_metadata (`Union[VideoMetadata, dict]`, *tùy chọn*) : Metadata của video, chứa thông tin về tổng thời lượng, fps và tổng số khung hình.

num_frames (`int`, *tuỳ chọn*) : Số khung hình tối đa cần lấy mẫu khi `do_sample_frames=True`.

fps (`int` hoặc `float`, *tùy chọn*) : Số khung hình cần lấy mẫu mỗi giây khi `do_sample_frames=True`.

crop_size (`dict[str, int]`, *tùy chọn*) : Kích thước đầu ra mong muốn khi áp dụng cắt giữa.

data_format (`ChannelDimension` hoặc `str`, *tùy chọn*) : Định dạng chiều kênh cho video đầu ra.

input_data_format (`ChannelDimension` hoặc `str`, *tùy chọn*) : Định dạng chiều kênh cho video đầu vào.

device (`Union[str, torch.Tensor]`, *tùy chọn*) : Thiết bị được sử dụng để xử lý (ví dụ: "cpu", "cuda"), chỉ liên quan đến xử lý ảnh nhanh.

return_metadata (`bool`, *tùy chọn*) : Có trả về metadata của video hay không.

return_tensors (`str` hoặc [TensorType](/docs/transformers/main/vi/internal/file_utils#transformers.TensorType), *optional*) : Nếu được đặt, sẽ trả về các tensor của một framework cụ thể. Các giá trị chấp nhận được là: - `'pt'`: Trả về các đối tượng `torch.Tensor` của PyTorch. - `'np'`: Trả về các đối tượng `np.ndarray` của NumPy.

Các đối số từ khóa cho xử lý video.

#### transformers.AudioKwargs[[transformers.AudioKwargs]]

[Nguồn](https://github.com/huggingface/transformers/blob/main/src/transformers/processing_utils.py#L389)

**Tham số:**

sampling_rate (`int`, *tuỳ chọn*) : Tần số lấy mẫu mà đầu vào `raw_speech` được lấy mẫu.

raw_speech (`np.ndarray`, `list[float]`, `list[np.ndarray]`, `list[list[float]]`) : Chuỗi hoặc lô các chuỗi cần được đệm. Mỗi chuỗi có thể là một mảng numpy, một danh sách các giá trị float, một danh sách các mảng numpy hoặc một danh sách các danh sách giá trị float. Phải là âm thanh đơn kênh, không phải stereo, tức là một float duy nhất cho mỗi bước thời gian.

padding (`bool`, `str` hoặc [PaddingStrategy](/docs/transformers/main/vi/internal/file_utils#transformers.utils.PaddingStrategy), *tuỳ chọn*) : Chọn một chiến lược để đệm các chuỗi được trả về (theo phía đệm và chỉ số đệm của mô hình) trong số:  - `True` hoặc `'longest'`: Đệm đến chuỗi dài nhất trong lô (hoặc không đệm nếu chỉ có một chuỗi được cung cấp). - `'max_length'`: Đệm đến độ dài tối đa được chỉ định bằng tham số `max_length` hoặc đến độ dài đầu vào tối đa chấp nhận được cho mô hình nếu tham số đó không được cung cấp. - `False` hoặc `'do_not_pad'`

max_length (`int`, *optional*) : Độ dài tối đa của danh sách được trả về và tùy chọn độ dài padding (xem bên trên).

truncation (`bool`, *tùy chọn*) : Kích hoạt việc cắt ngắn để cắt các chuỗi đầu vào dài hơn *max_length* xuống còn *max_length*.

pad_to_multiple_of (`int`, *optional*) : Nếu được đặt, sẽ đệm chuỗi đến một bội số của giá trị được cung cấp.

return_attention_mask (`bool`, *tùy chọn*) : Xác định xem [__call__()](/docs/transformers/main/vi/model_doc/audio-spectrogram-transformer#transformers.ASTFeatureExtractor.__call__) có nên trả về `attention_mask` hay không.

device (`str` hoặc `torch.device`, *tuỳ chọn*) : Thiết bị để tính toán các đặc trưng âm thanh (ví dụ: "cpu", "cuda"), chỉ liên quan đến các bộ trích xuất đặc trưng tính toán chúng bằng torch.

return_tensors (`str` hoặc [TensorType](/docs/transformers/main/vi/internal/file_utils#transformers.TensorType), *optional*) : Nếu được đặt, sẽ trả về các tensor của một framework cụ thể. Các giá trị chấp nhận được là: - `'pt'`: Trả về các đối tượng `torch.Tensor` của PyTorch. - `'np'`: Trả về các đối tượng `np.ndarray` của NumPy.

load_audio_backend (`str`, *tùy chọn*) : Backend được `load_audio()` sử dụng để giải mã/đổi mẫu âm thanh được tham chiếu bằng URL/đường dẫn trong `apply_chat_template`. Một trong số `"auto"`, `"torchcodec"`, `"librosa"`, `"torchaudio"`.

Các đối số từ khóa cho xử lý âm thanh.

