Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /vi /api /models /autoencoder_same.md
mishig's picture
|
download
raw
10.5 kB
# AutoencoderSAME
Autoencoder **SAME** (Semantically-Aligned Music Encoder) được [Stable Audio 3](https://stability.ai/news-updates/meet-stable-audio-3-the-model-family-built-for-artistic-experimentation-with-open-weight-models) sử dụng để nén các dạng sóng âm thanh stereo thành một chuỗi latent gọn gàng và tái tạo chúng.
Bộ mã hóa xếp chồng các module `SAMETransformerResamplingBlock`, mỗi module nhóm một số lượng cố định các khung audio patch và tạo ra một token đầu ra có thể học được thông qua một transformer sai phân. Bộ giải mã đảo ngược quá trình này, mở rộng mỗi token ẩn trở lại thành một patch các khung audio.
Một nút thắt cổ chai soft-norm (`SoftNormBottleneck`) chuẩn hóa các biến ẩn trước và sau mô hình khuếch tán, cung cấp động lực huấn luyện ổn định.
## AutoencoderSAME[[diffusers.AutoencoderSAME]]
#### diffusers.AutoencoderSAME[[diffusers.AutoencoderSAME]]
```python
diffusers.AutoencoderSAME(audio_channels: int = 2, patch_size: int = 256, encoder_channels: int = 128, encoder_c_mults: typing.List[int] = (6,), encoder_strides: typing.List[int] = (16,), encoder_transformer_depths: typing.List[int] = (6,), latent_dim: int = 256, use_differential_attention: bool = True, dim_heads: int = 64, ff_mult: int = 3, sliding_window: int = 1, encoder_sinusoidal_blocks: typing.List[int] = (0,), decoder_sinusoidal_blocks: typing.List[int] = (0,), sampling_rate: int = 44100)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L608)
**Tham số:**
audio_channels : Số kênh âm thanh (2 cho âm thanh nổi).
patch_size : Kích thước patch không chồng chéo được áp dụng trước bộ mã hóa TRB (và đảo ngược sau bộ giải mã TRB). Đóng góp `patch_size ×` vào tỷ lệ giảm mẫu tổng. Giá trị sản xuất: 256.
encoder_channels : Số lượng kênh cơ bản cho TRB. 128 cho SAME-S, 256 cho SAME-L.
encoder_c_mults : Hệ số nhân kênh cho mỗi cấp TRB (một mục cho mỗi TRB). Cả SAME-S và SAME-L đều sử dụng `(6,)` — một TRB duy nhất có chiều ẩn là `encoder_channels × 6`.
encoder_strides : Bước (stride) hạ mẫu/tăng mẫu cho mỗi cấp TRB. Cả SAME-S và SAME-L đều sử dụng `(16,)` — một TRB với bước 16.
encoder_transformer_depths : Số lớp Transformer cho mỗi cấp TRB. 6 cho SAME-S, 12 cho SAME-L.
latent_dim : Kích thước của không gian ẩn. 256 cho cả hai biến thể.
use_differential_attention : Nếu `True`, sử dụng differential attention bên trong mỗi khối transformer TRB (mặc định bật cho SAME-S/L).
dim_heads : Kích thước đầu chú ý. 64 cho SAME-S/L trong môi trường sản xuất.
ff_mult : Hệ số mở rộng mạng truyền thẳng SwiGLU.
sliding_window : Nửa chiều rộng cửa sổ trượt (theo số latent) cho chú ý mặt nạ dải. SAME-S/L trong môi trường sản xuất sử dụng 1.
encoder_sinusoidal_blocks : Số lượng lớp transformer cuối cùng trong mỗi TRB sử dụng `sin` FFN gating trong encoder (SAME-L: `(0,)`).
decoder_sinusoidal_blocks : Số lượng lớp transformer cuối cùng trong mỗi TRB sử dụng `sin` FFN gating trong bộ giải mã (SAME-L: `(8,)`).
sampling_rate : Tần số lấy mẫu âm thanh tính bằng Hz (ví dụ: 44100).
Autoencoder Semantically-Aligned Music Encoder (SAME) từ *Stable Audio 3* ([arXiv 2605.17991](https://arxiv.org/abs/2605.17991)).
Mô hình bao gồm:
- **Nhúng patch** — định hình lại âm thanh stereo thành các patch không chồng lấn, đánh đổi thời gian lấy kênh (`patch_size ×` hạ mẫu, không có tham số học được).
- **Stack TRB của Encoder** — các khối `SAMETransformerResamplingBlock` tiếp tục giảm mẫu với hệ số `∏(encoder_strides)`.
- **Soft-norm bottleneck** — chuẩn hóa affine có thể học với std chạy.
- **Stack TRB của bộ giải mã** — phản chiếu bộ mã hóa theo chiều ngược lại.
- **Unpatch** — định hình lại các kênh về chiều thời gian.
Tỷ lệ giảm mẫu tổng: `patch_size × ∏(encoder_strides)`.
Các siêu tham số mặc định khớp với checkpoint **SAME-S** (`stabilityai/SAME-S`). Để nạp **SAME-L** (`stabilityai/SAME-L`, được sử dụng bởi SA3 Medium), hãy truyền `encoder_channels=256, encoder_transformer_depths=(12,)`.
```python
# SAME-S (108 M params, used by SA3 small models) model = AutoencoderSAME() # default values
# SAME-L (852 M params, used by SA3 Medium) model = AutoencoderSAME(encoder_channels=256,
encoder_transformer_depths=(12,))
```
#### encode[[diffusers.AutoencoderSAME.encode]]
```python
encode(sample: Tensor, return_dict: bool = True)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L733)
**Tham số:**
sample : tensor dạng sóng `(B, audio_channels, T)`.
return_dict : Nếu `True` thì trả về một `AutoencoderSAMEOutput`.
**Trả về:**
Tensor tiềm ẩn có hình dạng `(B, latent_dim, T // downsampling_ratio)` (được bọc trong `AutoencoderSAMEOutput` khi *return_dict* là `True`).
Mã hóa âm thanh stereo thành các biến ẩn.
#### decode[[diffusers.AutoencoderSAME.decode]]
```python
decode(latents: Tensor, return_dict: bool = True)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L758)
**Tham số:**
latents : tensor tiềm ẩn `(B, latent_dim, T_latent)`.
return_dict : Nếu `True` thì trả về một `AutoencoderSAMEDecoderOutput`.
**Trả về:**
Tensor dạng sóng có hình dạng `(B, audio_channels, T_latent × downsampling_ratio)` (được bọc trong `AutoencoderSAMEDecoderOutput` khi *return_dict* là `True`).
Giải mã các biến ẩn (latents) trở lại âm thanh stereo.
#### forward[[diffusers.AutoencoderSAME.forward]]
```python
forward(sample: Tensor, return_dict: bool = True)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L783)
**Tham số:**
sample : tensor dạng sóng `(B, audio_channels, T)`.
return_dict : Nếu `True` thì trả về một `AutoencoderSAMEDecoderOutput`.
**Trả về:**
Biên độ sóng tái tạo (cùng hình dạng với *sample*, có thể dài hơn do đệm), được bọc trong `AutoencoderSAMEDecoderOutput` khi *return_dict* là `True`.
Mã hóa và giải mã ngay lập tức *sample* (tái tạo).
## SAMETransformerResamplingBlock[[diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock]]
#### diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock[[diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock]]
```python
diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock(in_channels: int, out_channels: int, stride: int, mode: str = 'encoder', transformer_depth: int = 3, dim_heads: int = 128, use_differential: bool = True, ff_mult: int = 3, sliding_window: int = 1, sinusoidal_blocks: int = 0)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L294)
**Tham số:**
in_channels : Số lượng kênh đầu vào.
out_channels : Số lượng kênh đầu ra.
stride : Hệ số hạ/mở rộng mẫu.
mode : `"encoder"` hoặc `"decoder"`.
transformer_depth : Số lượng lớp `TransformerBlock`.
dim_heads : Kích thước đầu chú ý.
use_differential : Có sử dụng differential attention hay không.
ff_mult : Hệ số mở rộng mạng truyền thẳng.
sliding_window : Nửa chiều rộng cửa sổ trượt trong latents (nửa chiều rộng dải là `sliding_window * (stride + 1)`).
sinusoidal_blocks : Số lượng lớp transformer cuối cùng sử dụng `sin` FFN gating thay vì SiLU.
Khối xây dựng cốt lõi của SAME.
**Chế độ Encoder** (bước S): Gom S khung đầu vào liên tiếp thành một phân đoạn, thêm một embedding đầu ra có thể học được duy nhất, sau đó chạy D lớp transformer trên toàn bộ chuỗi phân đoạn đã được làm phẳng và chỉ giữ lại embedding đầu ra → giảm mẫu theo hệ số S.
**Chế độ giải mã** (bước S): Gom 1 khung đầu vào với S embedding đầu vào có thể học, chạy D lớp transformer trên toàn bộ chuỗi đã làm phẳng, sau đó giữ lại S embedding đầu ra → tăng mẫu theo hệ số S.
Attention sử dụng mặt nạ dải *cửa sổ trượt* chồng lấn trên chuỗi phân đoạn đã được làm phẳng: mỗi token chú ý đến `sliding_window * (stride + 1)` hàng xóm ở mỗi phía. RoPE được tính trên toàn bộ độ dài chuỗi. Điều này khớp chính xác với bản triển khai tham chiếu (một khối không chồng lấn duy nhất chỉ khớp với một phân đoạn).
## AutoencoderSAMEOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput]]
#### diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput]]
```python
diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput(latents: Tensor)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L52)
Đầu ra của [AutoencoderSAME.encode()](/docs/diffusers/v0.43.0/vi/api/models/autoencoder_same#diffusers.AutoencoderSAME.encode).
## AutoencoderSAMEDecoderOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput]]
#### diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput]]
```python
diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput(sample: Tensor)
```
[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L59)
Đầu ra của [AutoencoderSAME.decode()](/docs/diffusers/v0.43.0/vi/api/models/autoencoder_same#diffusers.AutoencoderSAME.decode).

Xet Storage Details

Size:
10.5 kB
·
Xet hash:
bae4836aac01f40ac6aba86bbd2ad21741ee5a62d4c2fed041fd123c27dd81b7

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.