Transformers 4.37 中文文档(七十八)(4)

简介: Transformers 4.37 中文文档(七十八)

Transformers 4.37 中文文档(七十八)(3)https://developer.aliyun.com/article/1564161


SpeechT5ForTextToSpeech

class transformers.SpeechT5ForTextToSpeech

<来源>

( config: SpeechT5Config )

参数

  • config(SpeechT5Config)— 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。

具有文本编码器和语音解码器的 SpeechT5 模型。该模型继承自 PreTrainedModel。查看超类文档以获取库为所有模型实现的通用方法(如下载或保存、调整输入嵌入、修剪头等)。

这个模型也是一个 PyTorch torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有内容。

forward

<来源>

( input_ids: Optional = None attention_mask: Optional = None decoder_input_values: Optional = None decoder_attention_mask: Optional = None head_mask: Optional = None decoder_head_mask: Optional = None cross_attn_head_mask: Optional = None encoder_outputs: Optional = None past_key_values: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None speaker_embeddings: Optional = None labels: Optional = None stop_labels: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.Seq2SeqSpectrogramOutput or tuple(torch.FloatTensor)

参数

  • attention_mask(形状为(batch_size, sequence_length)torch.LongTensor可选)— 用于避免在填充标记索引上执行卷积和注意力的遮罩。遮罩值选定在[0, 1]之间:
  • 1 表示未被遮罩的标记,
  • 0 表示被遮罩的标记。
  • 什么是注意力遮罩?
    只有当相应的处理器具有config.return_attention_mask == True时,才应传递attention_mask。对于所有处理器具有config.return_attention_mask == False的模型,在进行批量推理时,应避免传递attention_mask以避免性能下降。对于这样的模型,input_values应简单地用 0 填充并在不传递attention_mask的情况下传递。请注意,这些模型根据input_values是否填充,也会产生略有不同的结果。
  • decoder_attention_mask(形状为(batch_size, target_sequence_length)torch.LongTensor可选)— 默认行为:生成一个忽略decoder_input_values中填充标记的张量。因果遮罩也将默认使用。
    如果要更改填充行为,应阅读SpeechT5Decoder._prepare_decoder_attention_mask并根据需要进行修改。有关默认策略的更多信息,请参见论文中的图表 1。
  • head_mask(形状为(encoder_layers, encoder_attention_heads)torch.FloatTensor可选)— 用于在编码器中使注意力模块中的选定头部失效的遮罩。遮罩值选定在[0, 1]之间:
  • 1 表示头部未被遮罩,
  • 0 表示头部被遮罩。
  • decoder_head_mask(形状为(decoder_layers, decoder_attention_heads)torch.FloatTensor可选)- 用于使解码器中注意力模块的选定头部失效的掩码。掩码值在[0, 1]中选择:
  • 1 表示头部未被“掩盖”,
  • 0 表示头部被“掩盖”。
  • cross_attn_head_mask(形状为(decoder_layers, decoder_attention_heads)torch.Tensor可选)- 用于使解码器中交叉注意力模块的选定头部失效的掩码。掩码值在[0, 1]中选择:
  • 1 表示头部未被“掩盖”,
  • 0 表示头部被“掩盖”。
  • encoder_outputstuple(tuple(torch.FloatTensor)可选)- 元组包括(last_hidden_state可选hidden_states可选attentionslast_hidden_state的形状为(batch_size, sequence_length, hidden_size)可选是编码器最后一层输出的隐藏状态序列。用于解码器的交叉注意力。
  • past_key_valuestuple(tuple(torch.FloatTensor))可选,当传递use_cache=Trueconfig.use_cache=True时返回)- 长度为config.n_layerstuple(torch.FloatTensor)的元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)的张量和 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)的张量。
    包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码(参见past_key_values输入)。
    如果使用past_key_values,用户可以选择仅输入最后的decoder_input_values(这些值没有传递给该模型的过去键值状态)的形状为(batch_size, 1),而不是形状为(batch_size, sequence_length)的所有decoder_input_values。decoder_inputs_embeds(形状为(batch_size, target_sequence_length, hidden_size)torch.FloatTensor可选):可选择直接传递嵌入表示,而不是传递decoder_input_values。如果使用past_key_values,可以选择只输入最后的decoder_inputs_embeds(参见past_key_values)。如果要更好地控制如何将decoder_input_values索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,则这很有用。
  • use_cachebool可选)- 如果设置为True,将返回past_key_values键值状态,可用于加速解码(参见past_key_values)。
  • output_attentionsbool可选)- 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
  • output_hidden_statesbool可选)- 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
  • return_dictbool可选)- 是否返回 ModelOutput 而不是普通元组。
  • input_ids(形状为(batch_size, sequence_length)torch.LongTensor)- 词汇表中输入序列标记的索引。
    可以使用 SpeechT5Tokenizer 获取索引。有关详细信息,请参见 encode()和call()。
    什么是输入 ID?
  • decoder_input_values(形状为(batch_size, sequence_length, config.num_mel_bins)torch.FloatTensor)- 输入梅尔频谱的浮点值。
    SpeechT5 使用全零频谱作为decoder_input_values生成的起始令牌。如果使用past_key_values,可以选择只输入最后的decoder_input_values(参见past_key_values)。
  • speaker_embeddings(形状为(batch_size, config.speaker_embedding_dim)torch.FloatTensor可选)- 包含说话者嵌入的张量。
  • labels(形状为(batch_size, sequence_length, config.num_mel_bins)torch.FloatTensor可选)- 目标梅尔频谱的浮点值。时间步设置为-100.0将被忽略(掩码)用于损失计算。可以使用 SpeechT5Processor 获取频谱图。有关详细信息,请参阅 SpeechT5Processor.call()。

返回值

transformers.modeling_outputs.Seq2SeqSpectrogramOutput 或tuple(torch.FloatTensor)

一个 transformers.modeling_outputs.Seq2SeqSpectrogramOutput 或一个torch.FloatTensor元组(如果传递return_dict=Falseconfig.return_dict=False)包含根据配置(SpeechT5Config)和输入的各种元素。

  • loss(形状为(1,)torch.FloatTensor可选,当提供labels时返回)- 频谱生成损失。
  • spectrogram(形状为(batch_size, sequence_length, num_bins)torch.FloatTensor)- 预测的频谱图。
  • past_key_valuestuple(tuple(torch.FloatTensor))可选,当传递use_cache=Trueconfig.use_cache=True时返回)- 长度为config.n_layerstuple(torch.FloatTensor)元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)的张量和 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)的张量。
    包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码。
  • decoder_hidden_statestuple(torch.FloatTensor)可选,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回)- 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组。
    解码器每一层的隐藏状态以及初始嵌入输出。
  • decoder_attentionstuple(torch.FloatTensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回)- 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组。
    解码器的注意力权重,在注意力 softmax 之后,用于计算自注意力头中的加权平均值。
  • cross_attentionstuple(torch.FloatTensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回)- 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组。
    解码器的交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均值。
  • encoder_last_hidden_state(形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor可选)- 模型编码器最后一层的隐藏状态序列。
  • encoder_hidden_statestuple(torch.FloatTensor)可选,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回)- 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组。
    编码器在每一层的隐藏状态加上初始嵌入输出。
  • encoder_attentions可选,当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组,每层一个。
    编码器的注意力权重,在注意力 softmax 之后,用于计算自注意力头中的加权平均值。

SpeechT5ForTextToSpeech 的前向方法,覆盖了__call__特殊方法。

虽然前向传递的配方需要在此函数内定义,但应该在此之后调用Module实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。

示例:

>>> from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan, set_seed
>>> import torch
>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
>>> model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
>>> vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
>>> inputs = processor(text="Hello, my dog is cute", return_tensors="pt")
>>> speaker_embeddings = torch.zeros((1, 512))  # or load xvectors from a file
>>> set_seed(555)  # make deterministic
>>> # generate speech
>>> speech = model.generate(inputs["input_ids"], speaker_embeddings, vocoder=vocoder)
>>> speech.shape
torch.Size([15872])
generate

<来源>

( input_ids: LongTensor attention_mask: Optional = None speaker_embeddings: Optional = None threshold: float = 0.5 minlenratio: float = 0.0 maxlenratio: float = 20.0 vocoder: Optional = None output_cross_attentions: bool = False return_output_lengths: bool = False **kwargs ) → export const metadata = 'undefined';tuple(torch.FloatTensor) comprising various elements depending on the inputs

参数

  • input_ids(形状为(batch_size, sequence_length)torch.LongTensor) — 词汇表中输入序列标记的索引。
    可以使用 SpeechT5Tokenizer 获取索引。有关详细信息,请参阅 encode()和call()。
    什么是输入 ID?
  • attention_mask(形状为(batch_size, sequence_length)torch.LongTensor) — 来自分词器的注意力蒙版,用于批量推理,指示模型在哪里忽略输入的填充标记。
  • speaker_embeddings(形状为(batch_size, config.speaker_embedding_dim)torch.FloatTensor可选) — 包含说话者嵌入的张量。
  • threshold可选,默认为 0.5 的float) — 当预测的停止标记概率超过此值时,生成的序列结束。
  • minlenratio可选,默认为 0.0 的float) — 用于计算输出序列的最小所需长度。
  • maxlenratio可选,默认为 20.0 的float) — 用于计算输出序列的最大允许长度。
  • vocoder可选nn.Module) — 将梅尔频谱图转换为语音波形的声码器。如果为None,则输出为梅尔频谱图。
  • output_cross_attentions可选,默认为Falsebool) — 是否返回解码器的交叉注意力层的注意力张量。
  • return_output_lengths可选,默认为Falsebool) — 是否返回具体的频谱/波形长度。

返回

torch.FloatTensor元组,包含根据输入不同的元素

  • return_output_lengths为 False 时
  • spectrogram可选,当未提供vocoder时返回)torch.FloatTensor,形状为(output_sequence_length, config.num_mel_bins) — 预测的对数梅尔频谱图。
  • waveform可选,当提供vocoder时返回)torch.FloatTensor,形状为(num_frames,) — 预测的语音波形。
  • cross_attentions可选,当output_cross_attentionsTrue时返回)torch.FloatTensor,形状为(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — 解码器的交叉注意力层的输出。
  • return_output_lengths为 True 时
  • spectrograms可选,当未提供vocoder时返回)torch.FloatTensor,形状为(batch_size, output_sequence_length, config.num_mel_bins) — 预测的对数梅尔频谱图,填充到最大长度。
  • spectrogram_lengths可选,在没有提供vocoder时返回)List[Int] — 每个频谱图的具体长度的列表。
  • waveforms可选,在提供vocoder时返回)torch.FloatTensor,形状为(batch_size, num_frames) — 预测的语音波形,填充到最大长度。
  • waveform_lengths可选,在提供vocoder时返回)List[Int] — 每个波形的具体长度的列表。
  • cross_attentions可选,当output_cross_attentionsTrue时返回)torch.FloatTensor,形状为(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — 解码器的交叉注意力层的输出。

将一系列输入标记转换为一系列 mel 频谱图,随后使用声码器将其转换为语音波形。

SpeechT5ForSpeechToSpeech

class transformers.SpeechT5ForSpeechToSpeech

<来源>

( config: SpeechT5Config )

参数

  • config(SpeechT5Config)— 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。

具有语音编码器和语音解码器的 SpeechT5 模型。该模型继承自 PreTrainedModel。查看超类文档以了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入、修剪头等)。

该模型也是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。

forward

<来源>

( input_values: Optional = None attention_mask: Optional = None decoder_input_values: Optional = None decoder_attention_mask: Optional = None head_mask: Optional = None decoder_head_mask: Optional = None cross_attn_head_mask: Optional = None encoder_outputs: Optional = None past_key_values: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None speaker_embeddings: Optional = None labels: Optional = None stop_labels: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.Seq2SeqSpectrogramOutput or tuple(torch.FloatTensor)

参数

  • attention_masktorch.LongTensor,形状为(batch_size, sequence_length)可选)— 用于避免在填充标记索引上执行卷积和注意力的掩码。掩码值选定在[0, 1]之间:
  • 1 表示未被masked的标记,
  • 0 表示被masked的标记。
  • 什么是注意力掩码?
    只有在相应的处理器具有config.return_attention_mask == True时才应传递attention_mask。对于所有处理器具有config.return_attention_mask == False的模型,应避免传递attention_mask以避免在进行批量推断时性能下降。对于这些模型,input_values应简单地用 0 填充并在不传递attention_mask的情况下传递。请注意,这些模型还会根据input_values是否填充而产生略有不同的结果。
  • decoder_attention_masktorch.LongTensor,形状为(batch_size, target_sequence_length)可选)— 默认行为:生成一个张量,忽略decoder_input_values中的填充标记。因果掩码也将默认使用。
    如果要更改填充行为,您应阅读SpeechT5Decoder._prepare_decoder_attention_mask并根据需要进行修改。有关默认策略的更多信息,请参阅论文中的图表 1。
  • head_masktorch.FloatTensor,形状为(encoder_layers, encoder_attention_heads)可选)— 用于将编码器中注意力模块的选定头部置零的掩码。掩码值选定在[0, 1]之间:
  • 1 表示头部未被masked
  • 0 表示头部被masked
  • decoder_head_mask (torch.FloatTensor,形状为(decoder_layers, decoder_attention_heads)可选)— 用于使解码器中选择的注意力模块的头部失效的掩码。掩码值选在[0, 1]之间:
  • 1 表示头部未被遮蔽,
  • 0 表示头部被遮蔽。
  • cross_attn_head_mask (torch.Tensor,形状为(decoder_layers, decoder_attention_heads)可选)— 用于使交叉注意力模块中选择的头部失效的掩码。掩码值选在[0, 1]之间:
  • 1 表示头部未被遮蔽,
  • 0 表示头部被遮蔽。
  • encoder_outputs (tuple(tuple(torch.FloatTensor)可选)— 元组包含(last_hidden_state可选hidden_states可选attentions) last_hidden_state形状为(batch_size, sequence_length, hidden_size)可选)是编码器最后一层输出的隐藏状态序列。用于解码器的交叉注意力。
  • past_key_values (tuple(tuple(torch.FloatTensor))可选,当传递use_cache=Trueconfig.use_cache=True时返回)— 长度为config.n_layerstuple(torch.FloatTensor)元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)的张量和 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)的张量。
    包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码(请参阅past_key_values输入)。
    如果使用past_key_values,用户可以选择仅输入最后一个形状为(batch_size, 1)decoder_input_values(那些没有将其过去键值状态提供给此模型的值),而不是形状为(batch_size, sequence_length)的所有decoder_input_valuesdecoder_inputs_embeds (torch.FloatTensor,形状为(batch_size, target_sequence_length, hidden_size)可选):可选地,您可以选择直接传递嵌入表示,而不是传递decoder_input_values。如果使用past_key_values,可以选择仅输入最后一个decoder_inputs_embeds(请参阅past_key_values)。如果您想要更多控制权来将decoder_input_values索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
  • use_cache (bool可选)— 如果设置为True,将返回past_key_values键值状态,可用于加速解码(请参阅past_key_values)。
  • output_attentions (bool可选)— 是否返回所有注意力层的注意力张量。有关更多细节,请参阅返回张量中的attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多细节,请参阅返回张量中的hidden_states
  • return_dict (bool可选)— 是否返回 ModelOutput 而不是普通元组。
  • input_values (torch.FloatTensor,形状为(batch_size, sequence_length))— 输入原始语音波形的浮点值。可以通过将*.flac.wav*音频文件加载到List[float]类型的数组或numpy.ndarray中获得值,例如通过 soundfile 库(pip install soundfile)。要将数组准备成input_values,应使用 SpeechT5Processor 进行填充和转换为torch.FloatTensor类型的张量。有关详细信息,请参阅 SpeechT5Processor.call()。
  • decoder_input_values (torch.FloatTensor,形状为(batch_size, sequence_length, config.num_mel_bins))— 输入梅尔频谱图的浮点值。
    SpeechT5 使用全零频谱作为decoder_input_values生成的起始标记。如果使用past_key_values,可以选择只输入最后的decoder_input_values(参见past_key_values)。
  • speaker_embeddings (torch.FloatTensor,形状为(batch_size, config.speaker_embedding_dim)可选) — 包含说话者嵌入的张量。
  • labels (torch.FloatTensor,形状为(batch_size, sequence_length, config.num_mel_bins)可选) — 目标梅尔频谱的浮点值。可以使用 SpeechT5Processor 获取频谱图。详细信息请参见 SpeechT5Processor.call()。

返回

transformers.modeling_outputs.Seq2SeqSpectrogramOutput 或 tuple(torch.FloatTensor)

一个 transformers.modeling_outputs.Seq2SeqSpectrogramOutput 或一个torch.FloatTensor元组(如果传递return_dict=Falseconfig.return_dict=False)包含各种元素,取决于配置(SpeechT5Config)和输入。

  • loss (torch.FloatTensor,形状为(1,)可选,在提供labels时返回) — 频谱图生成损失。
  • spectrogram (torch.FloatTensor,形状为(batch_size, sequence_length, num_bins)) — 预测的频谱图。
  • past_key_values (tuple(tuple(torch.FloatTensor))可选,在传递use_cache=Trueconfig.use_cache=True时返回) — 长度为config.n_layerstuple(torch.FloatTensor)元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)的张量和 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)的张量。
    包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码(查看past_key_values输入)。
  • decoder_hidden_states (tuple(torch.FloatTensor)可选,在传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组(如果模型有嵌入层,则为嵌入输出的一个 + 每一层的输出一个)。
    解码器每一层输出的隐藏状态加上初始嵌入输出。
  • decoder_attentions (tuple(torch.FloatTensor)可选,在传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每层一个)。
    解码器的注意力权重,在注意力 softmax 之后,用于计算自注意力头中的加权平均值。
  • cross_attentions (tuple(torch.FloatTensor)可选,在传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每层一个)。
    解码器交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均值。
  • encoder_last_hidden_state (torch.FloatTensor,形状为(batch_size, sequence_length, hidden_size)可选) — 模型编码器最后一层的隐藏状态序列。
  • encoder_hidden_states (tuple(torch.FloatTensor), optional, 当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组。
    编码器在每一层输出的隐藏状态以及初始嵌入输出。
  • encoder_attentions (tuple(torch.FloatTensor), optional, 当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组。
    编码器的注意力权重,在注意力 softmax 之后,用于计算自注意力头中的加权平均值。

SpeechT5ForSpeechToSpeech 的前向方法,覆盖了__call__特殊方法。

尽管前向传递的配方需要在此函数内定义,但应该在此之后调用Module实例,而不是在此之后调用,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。

示例:

>>> from transformers import SpeechT5Processor, SpeechT5ForSpeechToSpeech, SpeechT5HifiGan, set_seed
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset(
...     "hf-internal-testing/librispeech_asr_demo", "clean", split="validation"
... )  # doctest: +IGNORE_RESULT
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_vc")
>>> model = SpeechT5ForSpeechToSpeech.from_pretrained("microsoft/speecht5_vc")
>>> vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
>>> # audio file is decoded on the fly
>>> inputs = processor(audio=dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> speaker_embeddings = torch.zeros((1, 512))  # or load xvectors from a file
>>> set_seed(555)  # make deterministic
>>> # generate speech
>>> speech = model.generate_speech(inputs["input_values"], speaker_embeddings, vocoder=vocoder)
>>> speech.shape
torch.Size([77824])
generate_speech

<来源>

( input_values: FloatTensor speaker_embeddings: Optional = None attention_mask: Optional = None threshold: float = 0.5 minlenratio: float = 0.0 maxlenratio: float = 20.0 vocoder: Optional = None output_cross_attentions: bool = False return_output_lengths: bool = False ) → export const metadata = 'undefined';tuple(torch.FloatTensor) comprising various elements depending on the inputs

参数

  • input_values (torch.FloatTensor,形状为(batch_size, sequence_length)) — 输入原始语音波形的浮点值。
    可以通过将*.flac.wav*音频文件加载到List[float]类型的数组或numpy.ndarray中来获取值,例如通过声音文件库(pip install soundfile)。要将数组准备成input_values,应该使用 SpeechT5Processor 进行填充和转换为torch.FloatTensor类型的张量。有关详细信息,请参阅 SpeechT5Processor.call()。
  • speaker_embeddings (torch.FloatTensor,形状为(batch_size, config.speaker_embedding_dim)optional) — 包含说话者嵌入的张量。
  • attention_mask (torch.LongTensor,形状为(batch_size, sequence_length)optional) — 用于避免在填充标记索引上执行卷积和注意力的掩码。掩码值选择在[0, 1]之间:
  • 对于未被masked的标记,值为 1。
  • 对于被masked的标记,值为 0。
  • 什么是注意力掩码?
  • threshold (floatoptional,默认为 0.5) — 当预测的停止标记概率超过此值时,生成的序列结束。
  • minlenratio (floatoptional,默认为 0.0) — 用于计算输出序列的最小所需长度。
  • maxlenratio (floatoptional,默认为 20.0) — 用于计算输出序列的最大允许长度。
  • vocoder (nn.Moduleoptional,默认为None) — 将梅尔频谱图转换为语音波形的声码器。如果为None,则输出为梅尔频谱图。
  • output_cross_attentions (booloptional,默认为False) — 是否返回解码器交叉注意力层的注意力张量。
  • return_output_lengths (booloptional,默认为False) — 是否返回具体的频谱/波形长度。

返回

包含各种元素的tuple(torch.FloatTensor),取决于输入

  • return_output_lengths为 False 时
  • spectrogram (optional,当未提供vocoder时返回) 形状为(output_sequence_length, config.num_mel_bins)torch.FloatTensor — 预测的对数梅尔频谱图。
  • waveform (optional,当提供vocoder时返回) 形状为(num_frames,)torch.FloatTensor — 预测的语音波形。
  • cross_attentions (可选, 当output_cross_attentionsTrue时返回) torch.FloatTensor,形状为(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — 解码器交叉注意力层的输出。
  • return_output_lengths为 True 时
  • spectrograms (可选, 当未提供vocoder时返回) torch.FloatTensor,形状为(batch_size, output_sequence_length, config.num_mel_bins) — 预测的对数梅尔频谱图,已填充到最大长度。
  • spectrogram_lengths (可选, 当未提供vocoder时返回) List[Int] — 每个频谱图的具体长度列表。
  • waveforms (可选, 当提供vocoder时返回) torch.FloatTensor,形状为(batch_size, num_frames) — 预测的语音波形,已填充到最大长度。
  • waveform_lengths (可选, 当提供vocoder时返回) List[Int] — 每个波形的具体长度列表。
  • cross_attentions (可选, 当output_cross_attentionsTrue时返回) torch.FloatTensor,形状为(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length) — 解码器交叉注意力层的输出。

将原始语音波形转换为一系列梅尔频谱图,随后使用语音合成器将其转换回语音波形。

SpeechT5HifiGan

class transformers.SpeechT5HifiGan

<来源>

( config: SpeechT5HifiGanConfig )

参数

  • config (SpeechT5HifiGanConfig) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。

HiFi-GAN 语音合成器。该模型继承自 PreTrainedModel。查看超类文档以获取库实现的所有模型的通用方法(如下载或保存、调整输入嵌入、修剪头等)。

该模型也是一个 PyTorch torch.nn.Module 子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有内容。

forward

<来源>

( spectrogram: FloatTensor ) → export const metadata = 'undefined';torch.FloatTensor

参数

  • spectrogram (torch.FloatTensor) — 包含对数梅尔频谱图的张量。可以是批处理的,形状为(batch_size, sequence_length, config.model_in_dim),也可以是未经批处理的,形状为(sequence_length, config.model_in_dim)

返回

torch.FloatTensor

包含语音波形的张量。如果输入的频谱图是批处理的,则形状为(batch_size, num_frames,)。如果未经批处理,则形状为(num_frames,)

将对数梅尔频谱图转换为语音波形。传递一批对数梅尔频谱图将返回一批语音波形。传递单个、未经批处理的对数梅尔频谱图将返回单个、未经批处理的语音波形。


Transformers 4.37 中文文档(七十八)(5)https://developer.aliyun.com/article/1564163

相关文章
|
2月前
|
存储 JSON PyTorch
Transformers 4.37 中文文档(七十八)(3)
Transformers 4.37 中文文档(七十八)
22 3
|
2月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(六十五)(3)
Transformers 4.37 中文文档(六十五)
16 1
|
2月前
|
存储 JSON PyTorch
Transformers 4.37 中文文档(七十八)(1)
Transformers 4.37 中文文档(七十八)
18 0
|
2月前
|
存储 自然语言处理 语音技术
Transformers 4.37 中文文档(七十八)(2)
Transformers 4.37 中文文档(七十八)
18 0
|
2月前
|
存储 PyTorch 语音技术
Transformers 4.37 中文文档(七十八)(5)
Transformers 4.37 中文文档(七十八)
14 0
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
Transformers 4.37 中文文档(六十五)(5)
Transformers 4.37 中文文档(六十五)
13 0
|
2月前
|
PyTorch 算法框架/工具 计算机视觉
Transformers 4.37 中文文档(六十五)(2)
Transformers 4.37 中文文档(六十五)
31 0
|
2月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(六十五)(4)
Transformers 4.37 中文文档(六十五)
18 0
|
2月前
|
机器学习/深度学习 PyTorch 定位技术
Transformers 4.37 中文文档(六十五)(1)
Transformers 4.37 中文文档(六十五)
23 0
|
2月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(六十二)(4)
Transformers 4.37 中文文档(六十二)
15 0