Transformers 4.37 中文文档(七十八)(1)https://developer.aliyun.com/article/1564159
SpeechT5
原始文本:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/speecht5
概述
SpeechT5 模型是由 Junyi Ao、Rui Wang、Long Zhou、Chengyi Wang、Shuo Ren、Yu Wu、Shujie Liu、Tom Ko、Qing Li、Yu Zhang、Zhihua Wei、Yao Qian、Jinyu Li、Furu Wei 在 SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing 中提出的。
论文摘要如下:
受 T5(文本到文本转换变压器)在预训练自然语言处理模型中的成功启发,我们提出了一个统一的 SpeechT5 框架,探索编码器-解码器的预训练,用于自监督语音/文本表示学习。SpeechT5 框架由一个共享的编码器-解码器网络和六个模态特定的(语音/文本)预/后网络组成。通过预网络对输入的语音/文本进行预处理后,共享的编码器-解码器网络对序列到序列的转换进行建模,然后后网络根据解码器的输出在语音/文本模态中生成输出。利用大规模未标记的语音和文本数据,我们预训练 SpeechT5 来学习一个统一的模态表示,希望提高对语音和文本的建模能力。为了将文本和语音信息对齐到这个统一的语义空间中,我们提出了一种跨模态向量量化方法,随机混合语音/文本状态和潜在单元作为编码器和解码器之间的接口。广泛的评估显示了所提出的 SpeechT5 框架在各种口语处理任务上的优越性,包括自动语音识别、语音合成、语音翻译、语音转换、语音增强和说话人识别。
该模型由 Matthijs 贡献。原始代码可以在 这里 找到。
SpeechT5Config
class transformers.SpeechT5Config
( vocab_size = 81 hidden_size = 768 encoder_layers = 12 encoder_attention_heads = 12 encoder_ffn_dim = 3072 encoder_layerdrop = 0.1 decoder_layers = 6 decoder_ffn_dim = 3072 decoder_attention_heads = 12 decoder_layerdrop = 0.1 hidden_act = 'gelu' positional_dropout = 0.1 hidden_dropout = 0.1 attention_dropout = 0.1 activation_dropout = 0.1 initializer_range = 0.02 layer_norm_eps = 1e-05 scale_embedding = False feat_extract_norm = 'group' feat_proj_dropout = 0.0 feat_extract_activation = 'gelu' conv_dim = (512, 512, 512, 512, 512, 512, 512) conv_stride = (5, 2, 2, 2, 2, 2, 2) conv_kernel = (10, 3, 3, 3, 3, 2, 2) conv_bias = False num_conv_pos_embeddings = 128 num_conv_pos_embedding_groups = 16 apply_spec_augment = True mask_time_prob = 0.05 mask_time_length = 10 mask_time_min_masks = 2 mask_feature_prob = 0.0 mask_feature_length = 10 mask_feature_min_masks = 0 pad_token_id = 1 bos_token_id = 0 eos_token_id = 2 decoder_start_token_id = 2 num_mel_bins = 80 speech_decoder_prenet_layers = 2 speech_decoder_prenet_units = 256 speech_decoder_prenet_dropout = 0.5 speaker_embedding_dim = 512 speech_decoder_postnet_layers = 5 speech_decoder_postnet_units = 256 speech_decoder_postnet_kernel = 5 speech_decoder_postnet_dropout = 0.5 reduction_factor = 2 max_speech_positions = 4000 max_text_positions = 450 encoder_max_relative_position = 160 use_guided_attention_loss = True guided_attention_loss_num_heads = 2 guided_attention_loss_sigma = 0.4 guided_attention_loss_scale = 10.0 use_cache = True is_encoder_decoder = True **kwargs )
参数
vocab_size
(int
,可选,默认为 81)— SpeechT5 模型的词汇量。定义了可以由传递给 SpeechT5Model 的inputs_ids
表示的不同标记数量。hidden_size
(int
,可选,默认为 768)— 编码器层和池化层的维度。encoder_layers
(int
,可选,默认为 12)— Transformer 编码器中的隐藏层数。encoder_attention_heads
(int
,可选,默认为 12)— Transformer 编码器中每个注意力层的注意力头数。encoder_ffn_dim
(int
,可选,默认为 3072)— Transformer 编码器中“中间”(即前馈)层的维度。encoder_layerdrop
(float
,可选,默认为 0.1)— 编码器的 LayerDrop 概率。有关更多详细信息,请参阅 LayerDrop 论文。decoder_layers
(int
,可选,默认为 6)— Transformer 解码器中的隐藏层数。decoder_attention_heads
(int
,可选,默认为 12)— Transformer 解码器中每个注意力层的注意力头数。decoder_ffn_dim
(int
,可选,默认为 3072)— Transformer 解码器中“中间”(通常称为前馈)层的维度。decoder_layerdrop
(float
,可选,默认为 0.1)— 解码器的 LayerDrop 概率。有关更多详细信息,请参阅 LayerDrop 论文。hidden_act
(str
orfunction
, optional, defaults to"gelu"
) — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu"
、"relu"
、"selu"
和"gelu_new"
。positional_dropout
(float
, optional, defaults to 0.1) — 文本位置编码层的 dropout 概率。hidden_dropout
(float
, optional, defaults to 0.1) — 嵌入层、编码器和池化器中所有全连接层的 dropout 概率。attention_dropout
(float
, optional, defaults to 0.1) — 注意力概率的 dropout 比率。activation_dropout
(float
, optional, defaults to 0.1) — 全连接层内部激活的 dropout 比率。initializer_range
(float
, optional, defaults to 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。layer_norm_eps
(float
, optional, defaults to 1e-5) — 层归一化层使用的 epsilon。scale_embedding
(bool
, optional, defaults toFalse
) — 通过 sqrt(d_model)缩放嵌入。feat_extract_norm
(str
, optional, defaults to"group"
) — 应用于语音编码器预网络中 1D 卷积层的规范化方式。可以选择"group"
表示仅对第一个 1D 卷积层进行组归一化,或者选择"layer"
表示对所有 1D 卷积层进行层归一化。feat_proj_dropout
(float
, optional, defaults to 0.0) — 语音编码器预网络输出的 dropout 概率。feat_extract_activation
(str,
optional, defaults to
“gelu”) -- 特征提取器中 1D 卷积层的非线性激活函数(函数或字符串)。如果是字符串,支持
“gelu”、
“relu”、
“selu”和
“gelu_new”`。conv_dim
(Tuple[int]
orList[int]
, optional, defaults to(512, 512, 512, 512, 512, 512, 512)
) — 一个整数元组,定义语音编码器预网络中每个 1D 卷积层的输入和输出通道数。conv_dim的长度定义了 1D 卷积层的数量。conv_stride
(Tuple[int]
orList[int]
, optional, defaults to(5, 2, 2, 2, 2, 2, 2)
) — 一个整数元组,定义语音编码器预网络中每个 1D 卷积层的步幅。conv_stride的长度定义了卷积层的数量,并且必须与conv_dim的长度匹配。conv_kernel
(Tuple[int]
orList[int]
, optional, defaults to(10, 3, 3, 3, 3, 3, 3)
) — 一个整数元组,定义语音编码器预网络中每个 1D 卷积层的内核大小。conv_kernel的长度定义了卷积层的数量,并且必须与conv_dim的长度匹配。conv_bias
(bool
, optional, defaults toFalse
) — 1D 卷积层是否具有偏置。num_conv_pos_embeddings
(int
, optional, defaults to 128) — 卷积位置嵌入的数量。定义了 1D 卷积位置嵌入层的内核大小。num_conv_pos_embedding_groups
(int
, optional, defaults to 16) — 1D 卷积位置嵌入层的组数。apply_spec_augment
(bool
, optional, defaults toTrue
) — 是否对语音编码器预网络的输出应用SpecAugment数据增强。有关详细信息,请参阅SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition。mask_time_prob
(float
, optional, 默认为 0.05) — 沿时间轴的所有特征向量中将被掩盖的百分比(介于 0 和 1 之间)。掩盖过程在该轴上生成”mask_time_prob*len(time_axis)/mask_time_length”个独立的掩码。如果从每个特征向量被选择为掩盖的向量跨度的起始的概率推理,mask_time_prob应该是prob_vector_start*mask_time_length
。请注意,重叠可能会降低实际掩盖向量的百分比。只有在apply_spec_augment
为 True 时才相关。mask_time_length
(int
, optional, 默认为 10) — 沿时间轴的向量跨度长度。mask_time_min_masks
(int
, optional, 默认为 2) — 沿时间轴生成的长度为mask_feature_length
的掩码的最小数量,每个时间步,与mask_feature_prob
无关。只有在”mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks”时才相关。mask_feature_prob
(float
, optional, 默认为 0.0) — 沿特征轴的所有特征向量中将被掩盖的百分比(介于 0 和 1 之间)。掩盖过程在该轴上生成”mask_feature_prob*len(feature_axis)/mask_time_length”个独立的掩码。如果从每个特征向量被选择为掩盖的向量跨度的起始的概率推理,mask_feature_prob应该是prob_vector_start*mask_feature_length
。请注意,重叠可能会降低实际掩盖向量的百分比。只有在apply_spec_augment
为 True 时才相关。mask_feature_length
(int
, optional, 默认为 10) — 沿特征轴的向量跨度长度。mask_feature_min_masks
(int
, optional, 默认为 0) — 沿特征轴生成的长度为mask_feature_length
的掩码的最小数量,每个时间步,与mask_feature_prob
无关。只有在”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks”时才相关。num_mel_bins
(int
, optional, 默认为 80) — 每个输入特征中使用的梅尔特征数量。由语音解码器预网络使用。应与 SpeechT5Processor 类中使用的值对应。speech_decoder_prenet_layers
(int
, optional, 默认为 2) — 语音解码器预网络中的层数。speech_decoder_prenet_units
(int
, optional, 默认为 256) — 语音解码器预网络中层的维度。speech_decoder_prenet_dropout
(float
, optional, 默认为 0.5) — 语音解码器预网络层的丢失概率。speaker_embedding_dim
(int
, optional, 默认为 512) — XVector嵌入向量的维度。speech_decoder_postnet_layers
(int
, optional, 默认为 5) — 语音解码器后置网络中的层数。speech_decoder_postnet_units
(int
, optional, 默认为 256) — 语音解码器后置网络中层的维度。speech_decoder_postnet_kernel
(int
, optional, 默认为 5) — 语音解码器后置网络中的卷积滤波器通道数。speech_decoder_postnet_dropout
(float
, optional, 默认为 0.5) — 语音解码器后置网络层的丢失概率。reduction_factor
(int
, optional, 默认为 2) — 用于语音解码器输入的频谱长度缩减因子。max_speech_positions
(int
, optional, 默认为 4000) — 该模型可能用于的语音特征的最大序列长度。max_text_positions
(int
, optional, 默认为 450) — 该模型可能用于的文本特征的最大序列长度。encoder_max_relative_position
(int
, optional, 默认为 160) — 编码器中相对位置嵌入的最大距离。use_guided_attention_loss
(bool
, optional, 默认为True
) — 在训练 TTS 模型时是否应用引导注意力损失。guided_attention_loss_num_heads
(int
, optional, defaults to 2) — 引导注意力损失将应用的注意力头数。使用-1 将此损失应用于所有注意力头。guided_attention_loss_sigma
(float
, optional, defaults to 0.4) — 引导注意力损失的标准差。guided_attention_loss_scale
(float
, optional, defaults to 10.0) — 引导注意力损失的缩放系数(也称为 lambda)。use_cache
(bool
, optional, defaults toTrue
) — 模型是否应返回最后的键/值注意力(并非所有模型都使用)。
这是一个配置类,用于存储 SpeechT5Model 的配置。它用于根据指定的参数实例化一个 SpeechT5 模型,定义模型架构。使用默认值实例化配置将产生类似于 SpeechT5 microsoft/speecht5_asr架构的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import SpeechT5Model, SpeechT5Config >>> # Initializing a "microsoft/speecht5_asr" style configuration >>> configuration = SpeechT5Config() >>> # Initializing a model (with random weights) from the "microsoft/speecht5_asr" style configuration >>> model = SpeechT5Model(configuration) >>> # Accessing the model configuration >>> configuration = model.config
SpeechT5HifiGanConfig
class transformers.SpeechT5HifiGanConfig
( model_in_dim = 80 sampling_rate = 16000 upsample_initial_channel = 512 upsample_rates = [4, 4, 4, 4] upsample_kernel_sizes = [8, 8, 8, 8] resblock_kernel_sizes = [3, 7, 11] resblock_dilation_sizes = [[1, 3, 5], [1, 3, 5], [1, 3, 5]] initializer_range = 0.01 leaky_relu_slope = 0.1 normalize_before = True **kwargs )
参数
model_in_dim
(int
, optional, defaults to 80) — 输入对数梅尔频谱中的频率箱数。sampling_rate
(int
, optional, defaults to 16000) — 生成输出音频的采样率,以赫兹(Hz)表示。upsample_initial_channel
(int
, optional, defaults to 512) — 输入通道数到上采样网络。upsample_rates
(Tuple[int]
orList[int]
, optional, defaults to[4, 4, 4, 4]
) — 一个整数元组,定义了上采样网络中每个 1D 卷积层的步幅。upsample_rates的长度定义了卷积层的数量,并且必须与upsample_kernel_sizes的长度匹配。upsample_kernel_sizes
(Tuple[int]
orList[int]
, optional, defaults to[8, 8, 8, 8]
) — 一个整数元组,定义了上采样网络中每个 1D 卷积层的内核大小。upsample_kernel_sizes的长度定义了卷积层的数量,并且必须与upsample_rates的长度匹配。resblock_kernel_sizes
(Tuple[int]
orList[int]
, optional, defaults to[3, 7, 11]
) — 一个整数元组,定义了多接受域融合(MRF)模块中 1D 卷积层的内核大小。resblock_dilation_sizes
(Tuple[Tuple[int]]
orList[List[int]]
, optional, defaults to[[1, 3, 5], [1, 3, 5], [1, 3, 5]]
) — 一个嵌套的整数元组,定义了多接受域融合(MRF)模块中扩张的 1D 卷积层的扩张率。initializer_range
(float
, optional, defaults to 0.01) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。leaky_relu_slope
(float
, optional, defaults to 0.1) — 漏斗 ReLU 激活使用的负斜率的角度。normalize_before
(bool
, optional, defaults toTrue
) — 是否在使用声码器的学习均值和方差进行声码之前对频谱进行归一化。
这是用于存储SpeechT5HifiGanModel
配置的配置类。它用于根据指定的参数实例化一个 SpeechT5 HiFi-GAN 声码器模型,定义模型架构。使用默认值实例化配置将产生类似于 SpeechT5 microsoft/speecht5_hifigan架构的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import SpeechT5HifiGan, SpeechT5HifiGanConfig >>> # Initializing a "microsoft/speecht5_hifigan" style configuration >>> configuration = SpeechT5HifiGanConfig() >>> # Initializing a model (with random weights) from the "microsoft/speecht5_hifigan" style configuration >>> model = SpeechT5HifiGan(configuration) >>> # Accessing the model configuration >>> configuration = model.config
SpeechT5Tokenizer
class transformers.SpeechT5Tokenizer
( vocab_file bos_token = '<s>' eos_token = '</s>' unk_token = '<unk>' pad_token = '<pad>' normalize = False sp_model_kwargs: Optional = None **kwargs )
参数
vocab_file
(str
) — 包含实例化分词器所需词汇的SentencePiece文件(通常具有*.spm*扩展名)。bos_token
(str
, 可选, 默认为"
") — 序列开始标记。eos_token
(str
, 可选, 默认为"
"
) — 序列结束标记。unk_token
(str
, 可选, 默认为""
) — 未知标记。词汇表中没有的标记无法转换为 ID,而是设置为此标记。pad_token
(str
, 可选, 默认为""
) — 用于填充的标记,例如在批处理不同长度的序列时。normalize
(bool
, 可选, 默认为False
) — 是否将文本中的数字量转换为其拼写的英文对应项。sp_model_kwargs
(dict
, 可选) — 将传递给SentencePieceProcessor.__init__()
方法。SentencePiece 的 Python 包装器可用于设置:
enable_sampling
: 启用子词正则化。nbest_size
: 一元采样的参数。对于 BPE-Dropout 无效。
nbest_size = {0,1}
: 不执行采样。nbest_size > 1
: 从 nbest_size 结果中进行采样。nbest_size < 0
: 假设 nbest_size 为无限,并使用前向过滤和后向采样算法从所有假设(格)中进行采样。
alpha
: 一元采样的平滑参数,以及 BPE-dropout 的合并操作的丢弃概率。
sp_model
(SentencePieceProcessor
) — 用于每次转换(字符串、标记和 ID)的SentencePiece处理器。
构建一个 SpeechT5 分词器。基于SentencePiece。
此分词器继承自 PreTrainedTokenizer,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。
__call__
( text: Union = None text_pair: Union = None text_target: Union = None text_pair_target: Union = None add_special_tokens: bool = True padding: Union = False truncation: Union = None max_length: Optional = None stride: int = 0 is_split_into_words: bool = False pad_to_multiple_of: Optional = None return_tensors: Union = None return_token_type_ids: Optional = None return_attention_mask: Optional = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: bool = True **kwargs ) → export const metadata = 'undefined';BatchEncoding
参数
text
(str
,List[str]
,List[List[str]]
, 可选) — 要编码的序列或批量序列。每个序列可以是一个字符串或一个字符串列表(预分词字符串)。如果序列以字符串列表(预分词)的形式提供,则必须设置is_split_into_words=True
(以消除与批量序列的歧义)。text_pair
(str
,List[str]
,List[List[str]]
, 可选) — 要编码的序列或批量序列。每个序列可以是一个字符串或一个字符串列表(预分词字符串)。如果序列以字符串列表(预分词)的形式提供,则必须设置is_split_into_words=True
(以消除与批量序列的歧义)。text_target
(str
,List[str]
,List[List[str]]
, 可选) — 要编码为目标文本的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果将序列提供为字符串列表(预分词),则必须设置is_split_into_words=True
(以消除与序列批次的歧义)。text_pair_target
(str
,List[str]
,List[List[str]]
, 可选) — 要编码为目标文本的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果将序列提供为字符串列表(预分词),则必须设置is_split_into_words=True
(以消除与序列批次的歧义)。add_special_tokens
(bool
, 可选, 默认为True
) — 在编码序列时是否添加特殊标记。这将使用底层的PretrainedTokenizerBase.build_inputs_with_special_tokens
函数,该函数定义了自动添加到输入 id 的标记。如果要自动添加bos
或eos
标记,则这很有用。padding
(bool
,str
或 PaddingStrategy, 可选, 默认为False
) — 激活和控制填充。接受以下值:
True
或'longest'
: 填充到批次中最长的序列(如果只提供了单个序列,则不进行填充)。'max_length'
: 使用参数max_length
指定的最大长度进行填充,或者如果未提供该参数,则填充到模型的最大可接受输入长度。False
或'do_not_pad'
(默认): 无填充(即,可以输出具有不同长度序列的批次)。
truncation
(bool
,str
或 TruncationStrategy, 可选, 默认为False
) — 激活和控制截断。接受以下值:
True
或'longest_first'
: 使用参数max_length
指定的最大长度进行截断,或者如果未提供该参数,则截断到模型的最大可接受输入长度。如果提供了一对序列(或一批序列),则将逐标记截断,从一对序列中最长的序列中删除一个标记。'only_first'
: 使用参数max_length
指定的最大长度进行截断,或者如果未提供该参数,则截断到模型的最大可接受输入长度。如果提供了一对序列(或一批序列),则只会截断第一个序列。'only_second'
: 使用参数max_length
指定的最大长度进行截断,或者如果未提供该参数,则截断到模型的最大可接受输入长度。如果提供了一对序列(或一批序列),则只会截断第二个序列。False
或'do_not_truncate'
(默认): 无截断(即,可以输出具有大于模型最大可接受输入大小的序列长度的批次)。
max_length
(int
, 可选) — 控制截断/填充参数使用的最大长度。
如果未设置或设置为None
,则如果截断/填充参数中的一个需要最大长度,则将使用预定义的模型最大长度。如果模型没有特定的最大输入长度(如 XLNet),则将停用截断/填充到最大长度。stride
(int
, 可选, 默认为 0) — 如果与max_length
一起设置为一个数字,则当return_overflowing_tokens=True
时返回的溢出标记将包含截断序列末尾的一些标记,以提供截断和溢出序列之间的一些重叠。该参数的值定义了重叠标记的数量。is_split_into_words
(bool
,可选,默认为False
) — 输入是否已经预分词(例如,已经分成单词)。如果设置为True
,分词器会假定输入已经分成单词(例如,通过在空格上分割),然后进行分词。这对于 NER 或标记分类很有用。pad_to_multiple_of
(int
,可选) — 如果设置,将填充序列到提供的值的倍数。需要激活padding
。这对于在具有计算能力>= 7.5
(Volta)的 NVIDIA 硬件上启用 Tensor Cores 特别有用。return_tensors
(str
或 TensorType,可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
'tf'
:返回 TensorFlowtf.constant
对象。'pt'
:返回 PyTorchtorch.Tensor
对象。'np'
:返回 Numpynp.ndarray
对象。
return_token_type_ids
(bool
,可选) — 是否返回 token 类型 ID。如果保持默认值,将根据特定分词器的默认值返回 token 类型 ID,由return_outputs
属性定义。
什么是 token 类型 ID?return_attention_mask
(bool
,可选) — 是否返回注意力掩码。如果保持默认值,将根据特定分词器的默认值返回注意力掩码,由return_outputs
属性定义。
什么是注意力掩码?return_overflowing_tokens
(bool
,可选,默认为False
) — 是否返回溢出的标记序列。如果提供一对输入 ID 序列(或一批对)并且truncation_strategy = longest_first
或True
,则会引发错误,而不是返回溢出的标记。return_special_tokens_mask
(bool
,可选,默认为False
) — 是否返回特殊标记掩码信息。return_offsets_mapping
(bool
,可选,默认为False
) — 是否返回每个标记的(char_start, char_end)
。
这仅适用于继承自 PreTrainedTokenizerFast 的快速分词器,如果使用 Python 的分词器,此方法将引发NotImplementedError
。return_length
(bool
,可选,默认为False
) — 是否返回编码输入的长度。verbose
(bool
,可选,默认为True
) — 是否打印更多信息和警告。**kwargs — 传递给self.tokenize()
方法
返回
BatchEncoding
一个带有以下字段的 BatchEncoding:
input_ids
— 要提供给模型的标记 ID 列表。
什么是输入 ID?token_type_ids
— 要提供给模型的 token 类型 ID 列表(当return_token_type_ids=True
或*token_type_ids
*在self.model_input_names
中时)。
什么是 token 类型 ID?attention_mask
— 指定哪些标记应该被模型关注的索引列表(当return_attention_mask=True
或*attention_mask
*在self.model_input_names
中时)。
什么是注意力掩码?overflowing_tokens
— 溢出标记序列的列表(当指定max_length
并且return_overflowing_tokens=True
时)。num_truncated_tokens
— 截断的标记数量(当指定max_length
并且return_overflowing_tokens=True
时)。special_tokens_mask
— 由 0 和 1 组成的列表,其中 1 指定添加的特殊标记,0 指定常规序列标记(当add_special_tokens=True
和return_special_tokens_mask=True
时)。length
— 输入的长度(当return_length=True
时)
将一个或多个序列或一个或多个序列对标记化并准备好传递给模型的主要方法。
save_vocabulary
( save_directory: str filename_prefix: Optional = None )
decode
( token_ids: Union skip_special_tokens: bool = False clean_up_tokenization_spaces: bool = None **kwargs ) → export const metadata = 'undefined';str
参数
token_ids
(Union[int, List[int], np.ndarray, torch.Tensor, tf.Tensor]
) — 标记化输入 id 的列表。可以使用__call__
方法获得。skip_special_tokens
(bool
, optional, 默认为False
) — 是否在解码中删除特殊标记。clean_up_tokenization_spaces
(bool
, optional) — 是否清理标记化空格。如果为None
,将默认为self.clean_up_tokenization_spaces
。kwargs
(额外的关键字参数,optional) — 将传递给底层模型特定的解码方法。
返回
str
解码后的句子。
使用标记器和词汇表将 id 序列转换为字符串,具有删除特殊标记和清理标记化空格的选项。
类似于执行self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids))
。
batch_decode
( sequences: Union skip_special_tokens: bool = False clean_up_tokenization_spaces: bool = None **kwargs ) → export const metadata = 'undefined';List[str]
参数
sequences
(Union[List[int], List[List[int]], np.ndarray, torch.Tensor, tf.Tensor]
) — 标记化输入 id 的列表。可以使用__call__
方法获得。skip_special_tokens
(bool
, optional, 默认为False
) — 是否在解码中删除特殊标记。clean_up_tokenization_spaces
(bool
, optional) — 是否清理标记化空格。如果为None
,将默认为self.clean_up_tokenization_spaces
。kwargs
(额外的关键字参数,optional) — 将传递给底层模型特定的解码方法。
返回
List[str]
解码后的句子列表。
通过调用解码将标记 id 的列表转换为字符串列表。
SpeechT5FeatureExtractor
class transformers.SpeechT5FeatureExtractor
( feature_size: int = 1 sampling_rate: int = 16000 padding_value: float = 0.0 do_normalize: bool = False num_mel_bins: int = 80 hop_length: int = 16 win_length: int = 64 win_function: str = 'hann_window' frame_signal_scale: float = 1.0 fmin: float = 80 fmax: float = 7600 mel_floor: float = 1e-10 reduction_factor: int = 2 return_attention_mask: bool = True **kwargs )
参数
feature_size
(int
, optional, 默认为 1) — 提取特征的特征维度。sampling_rate
(int
, optional, 默认为 16000) — 音频文件应数字化的采样率,以赫兹(Hz)表示。padding_value
(float
, optional, 默认为 0.0) — 用于填充值的值。do_normalize
(bool
, optional, 默认为False
) — 是否对输入进行零均值单位方差归一化。归一化可以帮助显著提高某些模型的性能。num_mel_bins
(int
, optional, 默认为 80) — 提取的频谱图特征中的 mel 频率箱数。hop_length
(int
, optional, 默认为 16) — 窗口之间的毫秒数。在许多论文中也称为“shift”。win_length
(int
, optional, 默认为 64) — 每个窗口的毫秒数。win_function
(str
, optional, 默认为"hann_window"
) — 用于窗口化的窗口函数的名称,必须可以通过torch.{win_function}
访问。frame_signal_scale
(float
, optional, 默认为 1.0) — 在应用 DFT 之前创建帧时乘以的常数。此参数已弃用。fmin
(float
, optional, 默认为 80) — Hz 中的最小 mel 频率。fmax
(float
, optional, 默认为 7600) — Hz 中的最大 mel 频率。mel_floor
(float
, optional, 默认为 1e-10) — mel 频率银行的最小值。reduction_factor
(int
, optional, 默认为 2) — 频谱长度缩减因子。此参数已弃用。return_attention_mask
(bool
, 可选, 默认为True
) — 是否call
()应该返回attention_mask
。
构建一个 SpeechT5 特征提取器。
这个类可以通过(可选)将原始语音信号归一化为零均值单位方差,供 SpeechT5 语音编码器 prenet 使用。
这个类还可以从原始语音中提取 log-mel 滤波器组特征,供 SpeechT5 语音解码器 prenet 使用。
这个特征提取器继承自 SequenceFeatureExtractor,其中包含大部分主要方法。用户应参考这个超类以获取有关这些方法的更多信息。
__call__
( audio: Union = None audio_target: Union = None padding: Union = False max_length: Optional = None truncation: bool = False pad_to_multiple_of: Optional = None return_attention_mask: Optional = None return_tensors: Union = None sampling_rate: Optional = None **kwargs )
参数
audio
(np.ndarray
,List[float]
,List[np.ndarray]
,List[List[float]]
, 可选) — 要处理的序列或批次。每个序列可以是一个 numpy 数组,一个浮点值列表,一个 numpy 数组列表或一个浮点值列表的列表。这将输出波形特征。必须是单声道音频,不是立体声,即每个时间步长一个浮点数。audio_target
(np.ndarray
,List[float]
,List[np.ndarray]
,List[List[float]]
, 可选) — 要处理为目标的序列或批次。每个序列可以是一个 numpy 数组,一个浮点值列表,一个 numpy 数组列表或一个浮点值列表的列表。这将输出 log-mel 频谱特征。padding
(bool
,str
或 PaddingStrategy, 可选, 默认为False
) — 在以下选项中选择一种策略来填充返回的序列(根据模型的填充方向和填充索引):
True
或'longest'
: 填充到批次中最长的序列(如果只提供一个序列,则不填充)。'max_length'
: 使用参数max_length
指定的最大长度进行填充,或者如果未提供该参数,则使用模型可接受的最大输入长度进行填充。False
或'do_not_pad'
(默认): 不填充(即,可以输出具有不同长度序列的批次)。
max_length
(int
, 可选) — 返回列表的最大长度和可选填充长度(见上文)。truncation
(bool
) — 激活截断,将输入序列截断为max_length长。pad_to_multiple_of
(int
, 可选) — 如果设置,将序列填充到提供的值的倍数。
这对于启用 NVIDIA 硬件上的 Tensor Cores 特别有用,其计算能力为>= 7.5
(Volta),或者对于受益于序列长度为 128 的倍数的 TPUs。return_attention_mask
(bool
, 可选) — 是否返回注意力掩码。如果保持默认设置,将根据特定的 feature_extractor 的默认设置返回注意力掩码。
什么是注意力掩码?return_tensors
(str
或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
'tf'
: 返回 TensorFlowtf.constant
对象。'pt'
: 返回 PyTorchtorch.Tensor
对象。'np'
: 返回 Numpynp.ndarray
对象。
sampling_rate
(int
, 可选) —audio
或audio_target
输入的采样率。强烈建议在前向调用时传递sampling_rate
以防止潜在错误。
对一个或多个序列进行特征化和为模型准备的主要方法。
传入一个值给audio
以提取波形特征。传入一个值给audio_target
以提取 log-mel 频谱特征。
Transformers 4.37 中文文档(七十八)(3)https://developer.aliyun.com/article/1564161