Transformers 4.37 中文文档(七十七)(3)https://developer.aliyun.com/article/1564186
SEWDForCTC
class transformers.SEWDForCTC
( config target_lang: Optional = None )
参数
config
(SEWDConfig)- 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。
带有顶部语言建模
头部的 SEW-D 模型,用于连接主义时间分类(CTC)。SEW-D 是由 Felix Wu、Kwangyoun Kim、Jing Pan、Kyu Han、Kilian Q. Weinberger、Yoav Artzi 在无监督预训练在语音识别中的性能效率权衡中提出的。
这个模型继承自 PreTrainedModel。查看超类文档以获取库为所有模型实现的通用方法(如下载或保存等)。
这个模型是 PyTorch torch.nn.Module的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有信息。
前进
( input_values: Optional attention_mask: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None labels: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.CausalLMOutput or tuple(torch.FloatTensor)
参数
input_values
(形状为(batch_size, sequence_length)
的torch.FloatTensor
)- 输入原始语音波形的浮点值。值可以通过将.flac
或.wav
音频文件加载到List[float]
类型的数组或numpy.ndarray
中获得,例如通过 soundfile 库(pip install soundfile
)。要将数组准备成input_values
,应该使用 AutoProcessor 进行填充和转换为torch.FloatTensor
类型的张量。有关详细信息,请参阅 Wav2Vec2Processor.call
()。attention_mask
(形状为(batch_size, sequence_length)
的torch.LongTensor
,可选)- 用于避免在填充令牌索引上执行卷积和注意力的掩码。掩码值选择在[0, 1]
中:
- 对于未被
掩码
的标记为 1, - 对于被
掩码
的标记为 0。
- 什么是注意力掩码?
output_attentions
(bool
, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
, optional) — 是否返回 ModelOutput 而不是普通元组。labels
(torch.LongTensor
,形状为(batch_size, target_length)
,optional) — 连接主义时间分类的标签。注意target_length
必须小于或等于输出 logits 的序列长度。索引在[-100, 0, ..., config.vocab_size - 1]
中选择。所有设置为-100
的标签都被忽略(掩码),损失仅计算在[0, ..., config.vocab_size - 1]
中的标签。
返回
transformers.modeling_outputs.CausalLMOutput 或tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.CausalLMOutput 或一个torch.FloatTensor
元组(如果传递return_dict=False
或config.return_dict=False
)包含根据配置(SEWDConfig)和输入的各种元素。
loss
(torch.FloatTensor
,形状为(1,)
,optional,当提供labels
时返回) — 语言建模损失(用于下一个标记预测)。logits
(torch.FloatTensor
,形状为(batch_size, sequence_length, config.vocab_size)
) — 语言建模头的预测分数(SoftMax 之前每个词汇标记的分数)。hidden_states
(tuple(torch.FloatTensor)
,optional,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
元组(如果模型有嵌入层,则为嵌入的输出和每一层的输出)。
模型在每一层输出处的隐藏状态以及可选的初始嵌入输出。attentions
(tuple(torch.FloatTensor)
,optional,当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)
的torch.FloatTensor
元组(每层一个)。
注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。
SEWDForCTC 的前向方法,覆盖了__call__
特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module
实例,而不是在此处调用,因为前者会负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoProcessor, SEWDForCTC >>> from datasets import load_dataset >>> import torch >>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation") >>> dataset = dataset.sort("id") >>> sampling_rate = dataset.features["audio"].sampling_rate >>> processor = AutoProcessor.from_pretrained("asapp/sew-d-tiny-100k-ft-ls100h") >>> model = SEWDForCTC.from_pretrained("asapp/sew-d-tiny-100k-ft-ls100h") >>> # audio file is decoded on the fly >>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt") >>> with torch.no_grad(): ... logits = model(**inputs).logits >>> predicted_ids = torch.argmax(logits, dim=-1) >>> # transcribe speech >>> transcription = processor.batch_decode(predicted_ids) >>> transcription[0] 'MISTER QUILTER IS THE APOSTIL OF THE MIDDLE CLASSES AND WE ARE GLAD TO WELCOME HIS GOSPEL' >>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids >>> # compute loss >>> loss = model(**inputs).loss >>> round(loss.item(), 2) 0.21
SEWDForSequenceClassification
class transformers.SEWDForSequenceClassification
( config )
参数
config
(SEWDConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。
在顶部具有序列分类头(池化输出上的线性层)的 SEWD 模型,用于类似 SUPERB 关键词识别的任务。
SEW-D 是由 Felix Wu、Kwangyoun Kim、Jing Pan、Kyu Han、Kilian Q. Weinberger、Yoav Artzi 在Performance-Efficiency Trade-offs in Unsupervised Pre-training for Speech Recognition中提出的。
该模型继承自 PreTrainedModel。检查超类文档以获取库为其所有模型实现的通用方法(例如下载或保存等)。
该模型是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。
forward
( input_values: Optional attention_mask: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None labels: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.SequenceClassifierOutput or tuple(torch.FloatTensor)
参数
input_values
(torch.FloatTensor
,形状为(batch_size, sequence_length)
) — 输入原始语音波形的浮点值。值可以通过将.flac
或.wav
音频文件加载到List[float]
类型的数组或numpy.ndarray
中获得,例如通过 soundfile 库(pip install soundfile
)。要将数组准备成input_values
,应使用 AutoProcessor 进行填充和转换为torch.FloatTensor
类型的张量。有关详细信息,请参阅 Wav2Vec2Processor.call
()。attention_mask
(torch.LongTensor
,形状为(batch_size, sequence_length)
,optional) — 用于避免在填充标记索引上执行卷积和注意力的遮罩。遮罩值选择在[0, 1]
范围内:
- 1 表示未被遮蔽的标记,
- 0 表示被遮蔽的标记。
- 什么是注意力遮罩?
output_attentions
(bool
, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量中的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量中的hidden_states
。return_dict
(bool
, optional) — 是否返回 ModelOutput 而不是普通元组。labels
(torch.LongTensor
,形状为(batch_size,)
,optional) — 用于计算序列分类/回归损失的标签。索引应在[0, ..., config.num_labels - 1]
范围内。如果config.num_labels == 1
,则计算回归损失(均方损失),如果config.num_labels > 1
,则计算分类损失(交叉熵)。
返回
transformers.modeling_outputs.SequenceClassifierOutput 或tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.SequenceClassifierOutput 或一个torch.FloatTensor
元组(如果传递了return_dict=False
或当config.return_dict=False
时)包含各种元素,具体取决于配置(SEWDConfig)和输入。
loss
(torch.FloatTensor
,形状为(1,)
,optional,当提供labels
时返回) — 分类(或如果config.num_labels==1
则为回归)损失。logits
(torch.FloatTensor
,形状为(batch_size, config.num_labels)
) — 分类(或如果config.num_labels==1
则为回归)得分(SoftMax 之前)。hidden_states
(tuple(torch.FloatTensor)
,可选,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回)— 形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
元组(一个用于嵌入的输出,如果模型有一个嵌入层,+ 一个用于每个层的输出)。
模型在每个层的输出的隐藏状态加上可选的初始嵌入输出。attentions
(tuple(torch.FloatTensor)
,可选,当传递output_attentions=True
或config.output_attentions=True
时返回)— 形状为(batch_size, num_heads, sequence_length, sequence_length)
的torch.FloatTensor
元组(每个层一个)。
在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。
SEWDForSequenceClassification 的前向方法重写了__call__
特殊方法。
尽管前向传递的配方需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个函数,因为前者负责运行预处理和后处理步骤,而后者则默默地忽略它们。
示例:
>>> from transformers import AutoFeatureExtractor, SEWDForSequenceClassification >>> from datasets import load_dataset >>> import torch >>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation") >>> dataset = dataset.sort("id") >>> sampling_rate = dataset.features["audio"].sampling_rate >>> feature_extractor = AutoFeatureExtractor.from_pretrained("anton-l/sew-d-mid-400k-ft-keyword-spotting") >>> model = SEWDForSequenceClassification.from_pretrained("anton-l/sew-d-mid-400k-ft-keyword-spotting") >>> # audio file is decoded on the fly >>> inputs = feature_extractor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt") >>> with torch.no_grad(): ... logits = model(**inputs).logits >>> predicted_class_ids = torch.argmax(logits, dim=-1).item() >>> predicted_label = model.config.id2label[predicted_class_ids] >>> predicted_label '_unknown_' >>> # compute loss - target_label is e.g. "down" >>> target_label = model.config.id2label[0] >>> inputs["labels"] = torch.tensor([model.config.label2id[target_label]]) >>> loss = model(**inputs).loss >>> round(loss.item(), 2) 3.16
Speech2Text
原文链接:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/speech_to_text
概述
Speech2Text 模型是由 Changhan Wang、Yun Tang、Xutai Ma、Anne Wu、Dmytro Okhonko、Juan Pino 在fairseq S2T: Fast Speech-to-Text Modeling with fairseq中提出的。这是一个基于 transformer 的 seq2seq(编码器-解码器)模型,专为端到端的自动语音识别(ASR)和语音翻译(ST)而设计。它使用卷积下采样器将语音输入的长度减少 3/4,然后将其馈送到编码器中。该模型使用标准的自回归交叉熵损失进行训练,并自回归生成转录/翻译。Speech2Text 已经在多个数据集上进行了 ASR 和 ST 的微调:LibriSpeech、CoVoST 2、MuST-C。
这个模型是由valhalla贡献的。原始代码可以在这里找到。
推断
Speech2Text 是一个接受从语音信号中提取的对数梅尔滤波器组特征的浮点张量的语音模型。它是一个基于 transformer 的 seq2seq 模型,因此转录/翻译是自回归生成的。generate()
方法可用于推断。
Speech2TextFeatureExtractor 类负责提取对数梅尔滤波器组特征。Speech2TextProcessor 将 Speech2TextFeatureExtractor 和 Speech2TextTokenizer 封装成一个单一实例,用于提取输入特征和解码预测的标记 id。
特征提取器依赖于torchaudio
,分词器依赖于sentencepiece
,因此在运行示例之前,请确保安装这些软件包。您可以使用pip install transformers"[speech, sentencepiece]"
将它们作为额外的语音依赖项安装,或者使用pip install torchaudio sentencepiece
分别安装这些软件包。此外,torchaudio
需要libsndfile软件包的开发版本,可以通过系统软件包管理器安装。在 Ubuntu 上,可以按照以下方式安装:apt install libsndfile1-dev
- ASR 和语音翻译
>>> import torch >>> from transformers import Speech2TextProcessor, Speech2TextForConditionalGeneration >>> from datasets import load_dataset >>> model = Speech2TextForConditionalGeneration.from_pretrained("facebook/s2t-small-librispeech-asr") >>> processor = Speech2TextProcessor.from_pretrained("facebook/s2t-small-librispeech-asr") >>> ds = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation") >>> inputs = processor(ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["sampling_rate"], return_tensors="pt") >>> generated_ids = model.generate(inputs["input_features"], attention_mask=inputs["attention_mask"]) >>> transcription = processor.batch_decode(generated_ids, skip_special_tokens=True) >>> transcription ['mister quilter is the apostle of the middle classes and we are glad to welcome his gospel']
- 多语言语音翻译
对于多语言语音翻译模型,eos_token_id
被用作decoder_start_token_id
,目标语言 id 被强制作为第一个生成的标记。要将目标语言 id 强制作为第一个生成的标记,请将forced_bos_token_id
参数传递给generate()
方法。以下示例展示了如何使用facebook/s2t-medium-mustc-multilingual-st检查点将英语语音翻译为法语文本。
>>> import torch >>> from transformers import Speech2TextProcessor, Speech2TextForConditionalGeneration >>> from datasets import load_dataset >>> model = Speech2TextForConditionalGeneration.from_pretrained("facebook/s2t-medium-mustc-multilingual-st") >>> processor = Speech2TextProcessor.from_pretrained("facebook/s2t-medium-mustc-multilingual-st") >>> ds = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation") >>> inputs = processor(ds[0]["audio"]["array"], sampling_rate=ds[0]["audio"]["sampling_rate"], return_tensors="pt") >>> generated_ids = model.generate( ... inputs["input_features"], ... attention_mask=inputs["attention_mask"], ... forced_bos_token_id=processor.tokenizer.lang_code_to_id["fr"], ... ) >>> translation = processor.batch_decode(generated_ids, skip_special_tokens=True) >>> translation ["(Vidéo) Si M. Kilder est l'apossible des classes moyennes, et nous sommes heureux d'être accueillis dans son évangile."]
查看model hub以查找 Speech2Text 检查点。
Speech2TextConfig
class transformers.Speech2TextConfig
( vocab_size = 10000 encoder_layers = 12 encoder_ffn_dim = 2048 encoder_attention_heads = 4 decoder_layers = 6 decoder_ffn_dim = 2048 decoder_attention_heads = 4 encoder_layerdrop = 0.0 decoder_layerdrop = 0.0 use_cache = True is_encoder_decoder = True activation_function = 'relu' d_model = 256 dropout = 0.1 attention_dropout = 0.0 activation_dropout = 0.0 init_std = 0.02 decoder_start_token_id = 2 scale_embedding = True pad_token_id = 1 bos_token_id = 0 eos_token_id = 2 max_source_positions = 6000 max_target_positions = 1024 num_conv_layers = 2 conv_kernel_sizes = (5, 5) conv_channels = 1024 input_feat_per_channel = 80 input_channels = 1 **kwargs )
参数
vocab_size
(int
, 可选, 默认为 10000) — Speech2Text 模型的词汇量。定义了在调用 Speech2TextModel 时可以表示的不同标记数量。encoder_layers
(int
, 可选, 默认为 12) — 编码器层数。encoder_ffn_dim
(int
, optional, defaults to 2048) — 编码器中“中间”(通常称为前馈)层的维度。encoder_attention_heads
(int
, optional, defaults to 4) — Transformer 编码器中每个注意力层的注意力头数。decoder_layers
(int
, optional, defaults to 6) — 解码器层数。decoder_ffn_dim
(int
, optional, defaults to 2048) — 解码器中“中间”(通常称为前馈)层的维度。decoder_attention_heads
(int
, optional, defaults to 4) — Transformer 解码器中每个注意力层的注意力头数。encoder_layerdrop
(float
, optional, defaults to 0.0) — 编码器的 LayerDrop 概率。更多细节请参阅LayerDrop paper。decoder_layerdrop
(float
, optional, defaults to 0.0) — 解码器的 LayerDrop 概率。更多细节请参阅LayerDrop paper。use_cache
(bool
, optional, defaults toTrue
) — 模型是否应返回最后的键/值注意力(并非所有模型都使用)。is_encoder_decoder
(bool
, optional, defaults toTrue
) — 模型是否设置为编码器-解码器架构,用于序列到序列任务。activation_function
(str
orfunction
, optional, defaults to"relu"
) — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu"
、"relu"
、"silu"
和"gelu_new"
。d_model
(int
, optional, defaults to 256) — 层和池化层的维度。dropout
(float
, optional, defaults to 0.1) — 嵌入、编码器和池化器中所有全连接层的丢弃概率。attention_dropout
(float
, optional, defaults to 0.0) — 注意力概率的丢弃比率。activation_dropout
(float
, optional, defaults to 0.0) — 全连接层内激活的丢弃比率。init_std
(float
, optional, defaults to 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。decoder_start_token_id
(int
, optional, defaults to 2) — 解码器在解码序列时的初始标记 ID。scale_embedding
(bool
, optional, defaults toTrue
) — 是否通过d_model
的平方根对嵌入进行缩放。pad_token_id
(int
, optional, defaults to 1) — 填充标记 ID。bos_token_id
(int
, optional, defaults to 0) — 序列开始标记的 ID。eos_token_id
(int
, optional, defaults to 2) — 终止序列标记的 ID。max_source_positions
(int
, optional, defaults to 6000) — 该模型可能使用的对数梅尔滤波器组特征的最大序列长度。max_target_positions
(int
, optional, defaults to 1024) — 该模型可能使用的最大序列长度。通常,设置为较大的值以防万一(例如,512 或 1024 或 2048)。num_conv_layers
(int
, optional, defaults to 2) — 卷积模块中的 1D 卷积层数。conv_kernel_sizes
(Tuple[int]
, optional, defaults to(5, 5)
) — 定义卷积模块中每个 1D 卷积层的内核大小的整数元组。conv_kernel_sizes
的长度必须与num_conv_layers
匹配。conv_channels
(int
, optional, defaults to 1024) — 定义卷积模块中除最后一个卷积层外每个卷积层的输出通道数的整数。input_feat_per_channel
(int
, optional, defaults to 80) — 指定特征向量大小的整数。这也是对数梅尔滤波器组特征的维度。input_channels
(int
, optional, defaults to 1) — 指定输入特征向量的输入通道数的整数。
这是用于存储 Speech2TextModel 配置的配置类。它用于根据指定的参数实例化一个 Speech2Text 模型,定义模型架构。使用默认值实例化配置将产生类似于 Speech2Text facebook/s2t-small-librispeech-asr 架构的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import Speech2TextConfig, Speech2TextModel >>> # Initializing a Speech2Text s2t_transformer_s style configuration >>> configuration = Speech2TextConfig() >>> # Initializing a model (with random weights) from the s2t_transformer_s style configuration >>> model = Speech2TextModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config
Speech2TextTokenizer
class transformers.Speech2TextTokenizer
( vocab_file spm_file bos_token = '<s>' eos_token = '</s>' pad_token = '<pad>' unk_token = '<unk>' do_upper_case = False do_lower_case = False tgt_lang = None lang_codes = None additional_special_tokens = None sp_model_kwargs: Optional = None **kwargs )
参数
vocab_file
(str
) — 包含词汇表的文件。spm_file
(str
) — SentencePiece模型文件的路径bos_token
(str
, optional, 默认为"
") — 句子开头标记。eos_token
(str
, optional, 默认为"
"
) — 句子结束标记。unk_token
(str
, optional, 默认为""
) — 未知标记。词汇表中没有的标记无法转换为 ID,而是设置为此标记。pad_token
(str
, optional, 默认为""
) — 用于填充的标记,例如在批处理不同长度的序列时使用。do_upper_case
(bool
, optional, 默认为False
) — 解码时是否将输出大写。do_lower_case
(bool
, optional, 默认为False
) — 分词时是否将输入转换为小写。tgt_lang
(str
, optional) — 表示目标语言的字符串。sp_model_kwargs
(dict
, optional) — 将传递给SentencePieceProcessor.__init__()
方法。SentencePiece 的 Python 包装器可用于设置:
enable_sampling
: 启用子词正则化。nbest_size
: 用于 unigram 抽样的抽样参数。对于 BPE-Dropout 无效。
nbest_size = {0,1}
: 不执行抽样。nbest_size > 1
: 从 nbest_size 结果中抽样。nbest_size < 0
: 假设 nbest_size 是无限的,并使用前向过滤和后向抽样算法从所有假设(格子)中抽样。
alpha
: unigram 抽样的平滑参数,以及 BPE-dropout 合并操作的丢失概率。
- **kwargs — 传递给 PreTrainedTokenizer 的其他关键字参数
构建一个 Speech2Text 分词器。
这个分词器继承自 PreTrainedTokenizer,其中包含一些主要方法。用户应参考超类以获取有关这些方法的更多信息。
build_inputs_with_special_tokens
( token_ids_0 token_ids_1 = None )
通过附加 eos_token_id 从序列构建模型输入。
get_special_tokens_mask
( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
) — ID 列表。token_ids_1
(List[int]
, optional) — 序列对的可选第二个 ID 列表。already_has_special_tokens
(bool
, optional, 默认为False
) — 标记列表是否已经使用特殊标记格式化为模型。
返回
List[int]
一个整数列表,范围为[0, 1]:1 表示特殊令牌,0 表示序列令牌。
从没有添加特殊令牌的令牌列表中检索序列 ID。当使用 tokenizer 的prepare_for_model
方法添加特殊令牌时,会调用此方法。
create_token_type_ids_from_sequences
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
)— 第一个标记化序列。token_ids_1
(List[int]
,可选)— 第二个标记化序列。
返回
List[int]
令牌类型 ID。
创建与传递的序列对应的令牌类型 ID。什么是令牌类型 ID?
如果模型有特殊的构建方式,应该在子类中重写。
save_vocabulary
( save_directory: str filename_prefix: Optional = None )
Speech2TextFeatureExtractor
class transformers.Speech2TextFeatureExtractor
( feature_size = 80 sampling_rate = 16000 num_mel_bins = 80 padding_value = 0.0 do_ceptral_normalize = True normalize_means = True normalize_vars = True **kwargs )
参数
feature_size
(int
,可选,默认为 80)— 提取特征的特征维度。sampling_rate
(int
,可选,默认为 16000)— 音频文件应数字化的采样率,以赫兹(Hz)表示。num_mel_bins
(int
,可选,默认为 80)— Mel 频率箱的数量。padding_value
(float
,可选,默认为 0.0)— 用于填充填充向量的值。do_ceptral_normalize
(bool
,可选,默认为True
)— 是否对提取的特征应用语句级别的倒谱均值和方差归一化。normalize_means
(bool
,可选,默认为True
)— 是否对提取的特征进行零均值归一化。normalize_vars
(bool
,可选,默认为True
)— 是否对提取的特征进行单位方差归一化。
构建一个 Speech2Text 特征提取器。
这个特征提取器继承自 Speech2TextFeatureExtractor,其中包含大部分主要方法。用户应该参考这个超类以获取有关这些方法的更多信息。
这个类从原始语音中提取 mel 滤波器组特征,如果安装了 TorchAudio 则使用 TorchAudio,否则使用 numpy,并对提取的特征应用语句级别的倒谱均值和方差归一化。
__call__
( raw_speech: Union padding: Union = False max_length: Optional = None truncation: bool = False pad_to_multiple_of: Optional = None return_tensors: Union = None sampling_rate: Optional = None return_attention_mask: Optional = None **kwargs )
参数
raw_speech
(np.ndarray
,List[float]
,List[np.ndarray]
,List[List[float]]
)— 要填充的序列或批次序列。每个序列可以是一个 numpy 数组,一个浮点值列表,一个 numpy 数组列表或一个浮点值列表的列表。必须是单声道音频,不是立体声,即每个时间步长一个浮点数。padding
(bool
,str
或 PaddingStrategy,可选,默认为True
)— 选择一种策略来填充返回的序列(根据模型的填充方向和填充索引):
True
或'longest'
:填充到批次中最长的序列(如果只提供一个序列,则不填充)。'max_length'
:填充到指定的最大长度,使用参数max_length
或者如果未提供该参数,则填充到模型的最大可接受输入长度。False
或'do_not_pad'
(默认):无填充(即,可以输出长度不同的序列批次)。
max_length
(int
,可选)— 返回列表的最大长度和可选填充长度(见上文)。truncation
(bool
) — 激活截断,将输入序列截断到 max_length 以上的长度为 max_length。pad_to_multiple_of
(int
, 可选) — 如果设置,将序列填充到提供的值的倍数。
这对于启用 NVIDIA 硬件上的 Tensor Cores(计算能力>= 7.5
(Volta))或从序列长度为 128 的倍数中受益的 TPU 特别有用。return_attention_mask
(bool
, 可选) — 是否返回注意力遮罩。如果保持默认设置,将根据特定 feature_extractor 的默认设置返回注意力遮罩。
什么是注意力遮罩?
对于 Speech2TextTransformer 模型,应始终传递attention_mask
进行批量推断,以避免细微错误。return_tensors
(str
或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
'tf'
: 返回 TensorFlowtf.constant
对象。'pt'
: 返回 PyTorchtorch.Tensor
对象。'np'
: 返回 Numpynp.ndarray
对象。
sampling_rate
(int
, 可选) — 输入raw_speech
的采样率。强烈建议在前向调用时传递sampling_rate
以防止潜在错误。padding_value
(float
, 默认为 0.0) — 用于填充填充值/向量的值。
对一个或多个序列进行特征化和准备模型的主要方法。
Transformers 4.37 中文文档(七十七)(5)https://developer.aliyun.com/article/1564189