Transformers documentation
Trình mã hóa âm thanh Pocket TTS
Mô hình này đã được đóng góp cho Hugging Face Transformers vào ngày 2026-10-20.
Trình mã hóa âm thanh Pocket TTS
Tổng quan
Audio tokenizer của Pocket TTS: một codec có kiến trúc của 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 thay thế bằng một cổ chai liên tục 32 chiều, VAE-GAN của Continuous Audio Language Models. 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, PocketTTSAudioTokenizerDecoderModel). Đây là audio_tokenizer của 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. Mã gốc là kyutai-labs/pocket-tts.
Cách sử dụng
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_valuesPocketTTSAudioTokenizerConfig
lớp transformers.PocketTTSAudioTokenizerConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0use_conv_shortcut: bool = Falseupsample_groups: int = 512num_hidden_layers: int = 2intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falselatent_stride: int = 16latent_dim: int = 32 )
Tham số
- sampling_rate (
int, tùy chọn, mặc định là24000) — Tần số lấy mẫu (tính bằng hertz (Hz)) mà các tệp âm thanh cần được số hóa. - audio_channels (
int, tùy chọn, 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à âm thanh đơn kênh (mono). - hidden_size (
int, tùy chọn, mặc định là512) — Kích thước của các biểu diễn ẩn. - num_filters (
int, tùy chọn, mặc định là 64) — Số lượng nhân convolution của lớpPocketTTSAudioTokenizerConv1dđầu tiên của encoder. - num_residual_layers (
int, tùy chọn, mặc định là 1) — Số lượng lớp residual. - upsampling_ratios (
list[int], tùy chọn) — 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, tùy chọn, mặc định là7) — Kích thước của nhân tích chập. - last_kernel_size (
int, tùy chọn, mặc định là 3) — Kích thước kernel cho lớp convolution cuối cùng. - residual_kernel_size (
int, tùy chọn, mặc định là 3) — Kích thước kernel cho các lớp residual. - dilation_growth_rate (
int, tùy 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 convolution hoàn toàn causal 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, tuỳ chọn, mặc định là 2) — Chiều giảm trong các nhánh residual. - trim_right_ratio (
float, tùy chọn, 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ìnhuse_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 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, tùy chọn, mặc định là 512) — Số nhóm của phép tích chập chuyển vị (transposed convolution) dùng để tăng mẫu (upsample) các biến tiềm ẩn (latents) lên tốc độ SEANet. - num_hidden_layers (
int, tùy chọn, mặc định là2) — Số lượng lớp ẩn trong bộ giải mã Transformer. - intermediate_size (
int, tùy chọn, mặc định là2048) — Kích thước của các biểu diễn MLP. - num_attention_heads (
int, tùy chọn, mặc định là8) — Số lượng đầu attention cho mỗi lớp attention trong bộ giải mã Transformer. - num_key_value_heads (
int, tùy chọn, 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ếunum_key_value_heads=num_attention_heads, mô hình sẽ sử dụng Multi Head Attention (MHA), nếunum_key_value_heads=1mô hình sẽ sử dụng Multi Query Attention (MQA), ngược lại sẽ sử dụng GQA. Khi chuyển đổi 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. Nếu không được chỉ định, giá trị mặc định sẽ lànum_attention_heads. - head_dim (
int, tùy chọn) — 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, tùy chọn, mặc định là8000) — Chiều dài chuỗi tối đa mà mô hình này có thể được sử dụng. - initializer_range (
float, tùy chọn, 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, tùy chọn, mặc định là1e-05) — Giá trị 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ếuconfig.is_decoder=Truehoặ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 trình 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], tùy chọn) — 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ị chorope_thetavà 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ớimax_position_embeddingsdài hơn. - sliding_window (
int, tùy chọn, mặc định là250) — Kích thước cửa sổ của cơ chế 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, tùy chọn, mặc định là0.01) — Hệ số tỷ lệ 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, tuỳ chọn, mặc định là 16) — Số lượng khung SEANet trên mỗi khung latent: độ dịch (stride) của phép tích chập trong bộ mã hóa dùng để hạ mẫu (downsample) đầu ra SEANet xuống các latent, và của phép tích chập chuyển vị trong bộ giải mã dùng để nâng mẫu (upsample) chúng trở lại. Một khung latent bao phủprod(upsampling_ratios) * latent_stridemẫu âm thanh (frame_size, 1920 đối với các checkpoint đã phát hành). - latent_dim (
int, tuỳ chọn, 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 thắt cổ chai này: lớp tích chập hạ mẫu của bộ mã hóa xuất ralatent_dimkênh, và bộ giải mã chiếu chúng trở lạihidden_sizetrướ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
Các đối tượng cấu hình kế thừa từ 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 để biết thêm thông tin.
Ví dụ:
>>> from transformers import PocketTTSAudioTokenizerConfig, PocketTTSAudioTokenizerModel
>>> # a full codec, and its decoder alone
>>> model = PocketTTSAudioTokenizerModel(PocketTTSAudioTokenizerConfig())
>>> decoder_only = PocketTTSAudioTokenizerModel(PocketTTSAudioTokenizerConfig(encoder_config=None))PocketTTSAudioTokenizerEncoderConfig
lớp transformers.PocketTTSAudioTokenizerEncoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0use_conv_shortcut: bool = Falseupsample_groups: int = 512num_hidden_layers: int = 2intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falselatent_stride: int = 16latent_dim: int = 32 )
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 (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
lớp transformers.PocketTTSAudioTokenizerDecoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonesampling_rate: int = 24000audio_channels: int = 1hidden_size: int = 512num_filters: int = 64num_residual_layers: int = 1upsampling_ratios: list[int] | None = Nonekernel_size: int = 7last_kernel_size: int = 3residual_kernel_size: int = 3dilation_growth_rate: int = 2use_causal_conv: bool = Truepad_mode: str = 'constant'compress: int = 2trim_right_ratio: float = 1.0use_conv_shortcut: bool = Falseupsample_groups: int = 512num_hidden_layers: int = 2intermediate_size: int = 2048num_attention_heads: int = 8num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'gelu_pytorch_tanh'max_position_embeddings: int = 8000initializer_range: float = 0.02norm_eps: float = 1e-05use_cache: bool = Falseuse_streaming: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int = 250attention_dropout: float | int = 0.0layer_scale_initial_scale: float = 0.01attention_bias: bool = Falselatent_stride: int = 16latent_dim: int = 32 )
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 (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 đầy đủ của PocketTTSAudioTokenizer.
PocketTTSAudioTokenizerModel
lớp transformers.PocketTTSAudioTokenizerModel
< source >( config: PocketTTSAudioTokenizerConfig )
Tham số
- config (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() để tải trọng số của 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. 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, v.v.)
Mô hình này cũng là một lớp con của 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
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Noneencoder_past_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.pocket_tts_audio_tokenizer.modeling_pocket_tts_audio_tokenizer.PocketTTSAudioTokenizerConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Tham số
- input_values (
torch.Tensorcó hình dạng(batch_size, audio_channels, num_samples)) — Đường sóng âm thanh, như được trả về bởi EncodecFeatureExtractor, trong đó nó được đệm bằng số 0 để đạt bội số củaconfig.frame_sizemẫu, giống như bản gốc. - padding_mask (
torch.Tensorcó 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ánlatents_mask. - encoder_past_key_values (
Cache, tùy chọn) — Bộ nhớ đệm key-value của encoder transformer, được trả về từ lần gọi trước 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 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(), sắp xếp theo từng frame trước.
decode
< source >( latents: Tensordecoder_past_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Tham số
- latents (
torch.Tensorcó shape(batch_size, num_frames, latent_dim)) — Các latents liên tục cần giải mã, mỗi khung tương ứng vớiconfig.frame_sizemẫu âm thanh. - decoder_past_key_values (
Cache, tùy chọn) — Bộ nhớ đệm key-value của transformer decoder, đượ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().
forward
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PocketTTSAudioTokenizerOutput or tuple(torch.Tensor)
Tham số
- input_values (
torch.Tensorcó hình dạng(batch_size, audio_channels, num_samples)) — Dạng sóng âm thanh, như được trả về bởi EncodecFeatureExtractor. - padding_mask (
torch.Tensorcó 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) và đầu vào.
Phương thức forward của 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, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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ẽ lặng lẽ bỏ qua chúng.
- latents (
torch.Tensorcó hình dạng(batch_size, num_frames, latent_dim)) — Các latent liên tục của âm thanh. - latents_mask (
torch.LongTensorcó 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.Tensorcó hình dạng(batch_size, audio_channels, num_samples)) — Dạng sóng âm thanh được tái tạo từ các biến ẩn (latents). - hidden_states (
tuple(torch.Tensor), tùy chọn, được trả về khioutput_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ề khioutput_attentions=True) — Trọng số chú ý của từng lớp transformer trong bộ mã hóa.
PocketTTSAudioTokenizerEncoderModel
lớp transformers.PocketTTSAudioTokenizerEncoderModel
< source >( config: PocketTTSAudioTokenizerEncoderConfig )
Tham số
- config (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() để 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. 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, v.v.)
Mô hình này cũng là một lớp con của 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
< source >( input_values: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Nonepadding_cache: transformers.models.pocket_tts_audio_tokenizer.modeling_pocket_tts_audio_tokenizer.PocketTTSAudioTokenizerConv1dPaddingCache | None = Noneuse_streaming: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PocketTTSAudioTokenizerEncoderModelOutput or tuple(torch.Tensor)
Tham số
- input_values (
torch.Tensorcó 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.Tensorcó hình dạng(batch_size, channels, sequence_length), tùy chọn) — Chỉ ra các phần đầ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) — Trạng thái ẩn đã tính trước (key và values trong các khối self-attention) của transformer encoder, được sử dụng để tăng tốc độ mã hóa dạng streaming. - padding_cache (
PocketTTSAudioTokenizerConv1dPaddingCache, optional) — Bộ đệm (cache) cho các phép tích chập nhân quả (causal convolutions), được sử dụng cho mã hóa dạng luồng (streaming encoding). - 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. - Encodes âm thanh đầu vào thành các latent 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
thành phần khác nhau tùy thuộc vào cấu hình (PocketTTSAudioTokenizerConfig) và đầu vào.
Phương thức forward của 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, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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ẽ lặng lẽ bỏ qua chúng.
- latents (
torch.Tensorcó shape(batch_size, latent_dim, frames)) — Các latents liên tục của âm thanh, mỗi khung tương ứng vớiconfig.frame_sizemẫu âm thanh. - past_key_values (
Cache, tùy chọn) — Các trạng thái ẩn (hidden-states) đã được tính trước (key và values trong các khối self-attention) của transformer encoder, đượ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ề khioutput_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ề khioutput_attentions=True) — Trọng số chú ý của từng lớp transformer trong bộ mã hóa.
PocketTTSAudioTokenizerDecoderModel
lớp transformers.PocketTTSAudioTokenizerDecoderModel
< source >( config: PocketTTSAudioTokenizerDecoderConfig )
Tham số
- config (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() để tải trọng số của 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. 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, v.v.)
Mô hình này cũng là một lớp con của 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
< source >( latents: Tensorpadding_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PocketTTSAudioTokenizerDecoderOutput or tuple(torch.Tensor)
Tham số
- latents (
torch.Tensorcó hình dạng(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(). - padding_mask (
torch.Tensorcó hình dạng(batch_size, channels, sequence_length), tùy chọn) — Chỉ ra các phần đầ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) — Trạng thái ẩn đã tính trước (key và values trong các khối self-attention) của transformer decoder, được sử dụng để tăng tốc độ giải mã dạng streaming. - Decodes 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ể bị 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
thành phần khác nhau tùy thuộc vào cấu hình (PocketTTSAudioTokenizerConfig) và đầu vào.
Phương thức forward của 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, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đả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ẽ lặng lẽ bỏ qua chúng.
audio_values (
torch.Tensorcó hình dạng(batch_size, audio_channels, num_samples), tùy chọn) — Các giá trị âm thanh đã giải mã, thu được bằng cách sử dụng 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. Điều này thường bao gồmpast_key_valuesdo mô hình trả về ở một giai đoạn giải mã trước đó, khiuse_cache=Truehoặcconfig.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ậpaudio_valueshoặ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ề khioutput_hidden_states=True) — Trạng thái ẩn của transformer 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), tuỳ chọn, được trả về khioutput_attentions=True) — Trọng số chú ý của từng lớp transformer bộ giải mã.