Transformers 文档

无缝M4T-v2

无缝M4T-v2

概述

SeamlessM4T-v2 模型由 Meta AI 的 Seamless Communication 团队在 Seamless: Multilingual Expressive and Streaming Speech Translation 中提出。

SeamlessM4T-v2 是一组旨在提供高质量翻译的模型集合,使来自不同语言社区的人们能够通过语音和文本轻松交流。它是对前一版本的改进。有关 v1 和 v2 之间差异的更多详细信息,请参阅与 SeamlessM4T-v1 的差异部分。

SeamlessM4T-v2 支持多种任务,无需依赖单独的模型:

  • 语音到语音翻译 (S2ST)
  • 语音到文本翻译 (S2TT)
  • 文本到语音翻译 (T2ST)
  • 文本到文本翻译 (T2TT)
  • 自动语音识别 (ASR)

SeamlessM4Tv2Model 可以执行上述所有任务,但每个任务也有其专用的子模型。

论文的摘要如下:

自动语音翻译的最新进展极大地扩展了语言覆盖范围,提升了多模态能力,并实现了广泛的任务和功能。然而,与人与人之间的对话相比,当前的大规模自动语音翻译系统缺乏关键特性,使得机器中介的通信感觉不够流畅。在这项工作中,我们引入了一系列模型,能够以流式方式进行端到端的表达性和多语言翻译。首先,我们贡献了大规模多语言和多模态SeamlessM4T模型的改进版本——SeamlessM4T v2。这个新模型结合了更新的UnitY2框架,并在更多低资源语言数据上进行了训练。SeamlessAlign的扩展版本增加了114,800小时的自动对齐数据,总计覆盖76种语言。SeamlessM4T v2为我们最新的两个模型——SeamlessExpressive和SeamlessStreaming——奠定了基础。SeamlessExpressive能够保留声音风格和韵律的翻译。与之前的表达性语音研究相比,我们的工作解决了韵律中某些未被充分探索的方面,如语速和停顿,同时也保留了一个人的声音风格。至于SeamlessStreaming,我们的模型利用高效单调多头注意力(EMMA)机制生成低延迟的目标翻译,而无需等待完整的源话语。作为同类中的第一个,SeamlessStreaming实现了多种源语言和目标语言的同步语音到语音/文本翻译。为了了解这些模型的性能,我们结合了现有自动指标的新版本和改进版本来评估韵律、延迟和鲁棒性。对于人类评估,我们调整了现有的协议,专门用于衡量在意义保留、自然度和表达性方面最相关的属性。为了确保我们的模型能够安全且负责任地使用,我们实施了首个已知的多模态机器翻译红队测试,一个用于检测和减轻添加毒性的系统,对性别偏见的系统评估,以及一个旨在减少深度伪造影响的不可听局部水印机制。因此,我们将SeamlessExpressive和SeamlessStreaming的主要组件结合在一起,形成了Seamless,这是首个公开可用的系统,能够实时解锁表达性的跨语言通信。总之,Seamless为我们提供了一个关键视角,展示了将通用语音翻译器从科幻概念转变为现实世界技术所需的技术基础。最后,这项工作中的贡献——包括模型、代码和水印检测器——已在以下链接中公开发布并可供访问。

用法

在下面的示例中,我们将加载一个阿拉伯语音频样本和一个英语文本样本,并将它们转换为俄语语音和法语文本。

首先,加载处理器和模型的检查点:

>>> from transformers import AutoProcessor, SeamlessM4Tv2Model

>>> processor = AutoProcessor.from_pretrained("facebook/seamless-m4t-v2-large")
>>> model = SeamlessM4Tv2Model.from_pretrained("facebook/seamless-m4t-v2-large")

您可以无缝地在文本或音频上使用此模型,以生成翻译后的文本或翻译后的音频。

以下是使用处理器处理文本和音频的方法:

>>> # let's load an audio sample from an Arabic speech corpus
>>> from datasets import load_dataset
>>> dataset = load_dataset("arabic_speech_corpus", split="test", streaming=True)
>>> audio_sample = next(iter(dataset))["audio"]

>>> # now, process it
>>> audio_inputs = processor(audios=audio_sample["array"], return_tensors="pt")

>>> # now, process some English text as well
>>> text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt")

语音

SeamlessM4Tv2Model 可以无缝生成文本或语音,几乎不需要或不需要更改。让我们以俄语语音翻译为目标:

>>> audio_array_from_text = model.generate(**text_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()
>>> audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="rus")[0].cpu().numpy().squeeze()

使用基本相同的代码,我已经将英文文本和阿拉伯语语音翻译成了俄语语音样本。

文本

同样地,您可以从音频文件或文本生成翻译文本,使用相同的模型。您只需将generate_speech=False传递给SeamlessM4Tv2Model.generate()。 这次,让我们翻译成法语。

>>> # from audio
>>> output_tokens = model.generate(**audio_inputs, tgt_lang="fra", generate_speech=False)
>>> translated_text_from_audio = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

>>> # from text
>>> output_tokens = model.generate(**text_inputs, tgt_lang="fra", generate_speech=False)
>>> translated_text_from_text = processor.decode(output_tokens[0].tolist()[0], skip_special_tokens=True)

提示

1. 使用专用模型

SeamlessM4Tv2Model 是 transformers 的顶级模型,用于生成语音和文本,但你也可以使用专门执行任务的模型,而不需要额外的组件,从而减少内存占用。 例如,你可以用专门用于 S2ST 任务的模型替换音频到音频生成的代码片段,其余部分是完全相同的代码:

>>> from transformers import SeamlessM4Tv2ForSpeechToSpeech
>>> model = SeamlessM4Tv2ForSpeechToSpeech.from_pretrained("facebook/seamless-m4t-v2-large")

或者你可以将文本到文本生成的代码片段替换为专门用于T2TT任务的模型,你只需要移除generate_speech=False

>>> from transformers import SeamlessM4Tv2ForTextToText
>>> model = SeamlessM4Tv2ForTextToText.from_pretrained("facebook/seamless-m4t-v2-large")

请随意尝试 SeamlessM4Tv2ForSpeechToTextSeamlessM4Tv2ForTextToSpeech

2. 更改说话者身份

您可以通过speaker_id参数更改用于语音合成的扬声器。对于某些语言,某些speaker_id比其他更好!

3. 更改生成策略

你可以使用不同的生成策略进行文本生成,例如.generate(input_ids=input_ids, text_num_beams=4, text_do_sample=True),这将在文本模型上执行多项式束搜索解码。请注意,语音生成默认仅支持贪婪或多项式采样,可以使用例如.generate(..., speech_do_sample=True, speech_temperature=0.6)

4. 同时生成语音和文本

使用 return_intermediate_token_ids=TrueSeamlessM4Tv2Model 一起返回语音和文本!

模型架构

SeamlessM4T-v2 具有一个多功能架构,能够流畅地处理文本和语音的顺序生成。该设置包括两个序列到序列(seq2seq)模型。第一个模型将输入模态转换为翻译后的文本,而第二个模型从翻译后的文本生成语音标记,称为“单元标记”。

每种模态都有其专用的编码器,具有独特的架构。此外,对于语音输出,一个受HiFi-GAN架构启发的声码器被放置在第二个seq2seq模型的顶部。

与SeamlessM4T-v1的区别

这个新版本的架构在几个方面与第一个版本不同:

第二遍模型的改进

第二个seq2seq模型,名为text-to-unit模型,现在是非自回归的,这意味着它在单次前向传递中计算单元。这一成就是通过以下方式实现的:

  • 使用字符级嵌入,意味着预测翻译文本的每个字符都有自己的嵌入,然后用于预测单元标记。
  • 使用一个中间持续时间预测器,该预测器在预测的翻译文本上以字符级别预测语音持续时间。
  • 使用新的文本到单元解码器,混合卷积和自注意力机制以处理更长的上下文。

语音编码器的差异

语音编码器,在第一遍生成过程中用于预测翻译文本,主要通过以下机制与之前的语音编码器不同:

  • 使用分块注意力掩码来防止跨分块的注意力,确保每个位置仅关注其自身分块内的位置和固定数量的先前分块。
  • 使用相对位置嵌入,它只考虑序列元素之间的距离,而不是绝对位置。更多详情请参考Self-Attentionwith Relative Position Representations (Shaw et al.)
  • 使用因果深度卷积代替非因果卷积。

生成过程

以下是生成过程的工作原理:

  • 输入的文本或语音通过其特定的编码器进行处理。
  • 解码器生成所需语言的文本标记。
  • 如果需要生成语音,第二个seq2seq模型以非自回归的方式生成单元标记。
  • 这些单元标记随后通过最终的声码器生成实际的语音。

该模型由ylacombe贡献。原始代码可以在这里找到。

SeamlessM4Tv2Model

transformers.SeamlessM4Tv2Model

< >

( config current_modality = 'text' )

参数

  • config (~SeamlessM4Tv2Config) — 包含模型所有参数的模型配置类。 使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained() 方法以加载模型权重。
  • current_modality (str, 可选, 默认为 "text") — 默认模态。仅用于初始化模型。可以设置为 "text""speech"。 这将根据传递给前向和生成过程的模态自动更新(input_ids 用于文本,input_features 用于音频)。

原始的SeamlessM4Tv2模型转换器,可用于所有可用任务(S2ST、S2TT、T2TT、T2ST)。 该模型是PyTorch torch.nn.Module的子类。将其用作常规的PyTorch模块,并参考PyTorch文档以获取与一般使用和行为相关的所有信息。

生成

< >

( input_ids: typing.Optional[torch.Tensor] = None input_features: typing.Optional[torch.Tensor] = None return_intermediate_token_ids: typing.Optional[bool] = None tgt_lang: typing.Optional[str] = None speaker_id: typing.Optional[int] = 0 generate_speech: typing.Optional[bool] = True **kwargs ) Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor], ModelOutput]

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — Indices of input sequence tokens in the vocabulary.

    可以使用SeamlessM4TTokenizerSeamlessM4TProcessor获取索引。详情请参见PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入ID?

  • input_features (torch.FloatTensor of shape (batch_size, sequence_length, num_banks), optional) — 输入音频特征。这应该由SeamlessM4TFeatureExtractor类或SeamlessM4TProcessor类返回。详情请参见SeamlessM4TFeatureExtractor.call().
  • return_intermediate_token_ids (bool, 可选) — 如果为 True,还会返回中间生成的文本和单元标记。如果你还想要在音频旁边获取翻译的文本,请设置为 True。请注意,如果 generate_speech=True,此参数将被忽略。
  • tgt_lang (str, optional) — 用作翻译目标语言的语言。
  • speaker_id (int, 可选, 默认为 0) — 用于语音合成的说话者ID。必须小于 config.vocoder_num_spkrs.
  • generate_speech (bool, 可选, 默认为 True) — 如果为 False,将只返回文本标记,不会生成语音。
  • kwargs (optional) — Remaining dictioy of keyword arguments that will be passed to GenerationMixin.generate(). Keyword arguments are of two types:
    • Without a prefix, they will be entered as **kwargs for the generate method of each sub-model, except for decoder_input_ids which will only be passed through the text components.
    • With a text_ or speech_ prefix, they will be input for the generate method of the text model and speech model respectively. It has the priority over the keywords without a prefix.

    这意味着你可以,例如,为一个生成指定生成策略,而不为另一个生成指定策略。

返回

Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor], ModelOutput]

  • 如果 generate_speechreturn_intermediate_token_ids,返回 SeamlessM4Tv2GenerationOutput
  • 如果 generate_speech 且不 return_intermediate_token_ids,返回一个由波形组成的元组,形状为 (batch_size, sequence_length)waveform_lengths,后者给出每个样本的长度。
  • 如果 generate_speech=False,它将返回 ModelOutput

生成翻译后的令牌ID和/或翻译后的音频波形。

此方法依次调用两个不同子模型的.generate函数。您可以在两个不同的级别指定关键字参数:将传递给两个模型的通用参数,或仅传递给其中一个模型的前缀参数。

例如,调用 .generate(input_ids=input_ids, num_beams=4, speech_do_sample=True) 将会依次在文本模型上执行束搜索解码,并在语音模型上执行多项式束搜索采样。

有关生成策略和代码示例的概述,请查看以下指南

SeamlessM4Tv2ForTextToSpeech

transformers.SeamlessM4Tv2ForTextToSpeech

< >

( config: SeamlessM4Tv2Config )

参数

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

用于文本到语音的SeamlessM4Tv2模型转换器,可用于T2ST。 该模型是PyTorch torch.nn.Module的子类。将其作为常规的PyTorch模块使用,并参考PyTorch文档以获取与一般使用和行为相关的所有信息。

生成

< >

( input_ids: typing.Optional[torch.Tensor] = None return_intermediate_token_ids: typing.Optional[bool] = None tgt_lang: typing.Optional[str] = None speaker_id: typing.Optional[int] = 0 **kwargs ) Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor]]

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length)) — Indices of input sequence tokens in the vocabulary.

    可以使用SeamlessM4TTokenizerSeamlessM4TProcessor获取索引。详情请参见PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入ID?

  • return_intermediate_token_ids (bool, 可选) — 如果为 True,还会返回中间生成的文本和单元标记。如果你还想要在音频旁边获取翻译后的文本,请设置为 True
  • tgt_lang (str, optional) — 用于翻译的目标语言。
  • speaker_id (int, 可选, 默认为 0) — 用于语音合成的说话者ID。必须小于 config.vocoder_num_spkrs.
  • kwargs (optional) — Remaining dictionary of keyword arguments that will be passed to GenerationMixin.generate(). Keyword arguments are of two types:
    • Without a prefix, they will be entered as **kwargs for the generate method of each sub-model, except for decoder_input_ids which will only be passed through the text components.
    • With a text_ or speech_ prefix, they will be input for the generate method of the text model and speech model respectively. It has the priority over the keywords without a prefix.

    这意味着你可以,例如,为一个生成指定生成策略,而不为另一个生成指定策略。

返回

Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor]]

  • 如果 return_intermediate_token_ids,返回 SeamlessM4Tv2GenerationOutput
  • 如果不 return_intermediate_token_ids,返回一个由形状为 (batch_size, sequence_length) 的波形和 waveform_lengths 组成的元组,其中 waveform_lengths 给出每个样本的长度。

生成翻译后的音频波形。

此方法依次调用两个不同子模型的.generate函数。您可以在两个不同的级别指定关键字参数:将传递给两个模型的通用参数,或仅传递给其中一个模型的前缀参数。

例如,调用 .generate(input_ids, num_beams=4, speech_do_sample=True) 将依次在文本模型上执行束搜索解码,并在语音模型上执行多项式束搜索采样。

有关生成策略和代码示例的概述,请查看以下指南

SeamlessM4Tv2ForSpeechToSpeech

class transformers.SeamlessM4Tv2ForSpeechToSpeech

< >

( config )

参数

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

用于语音到语音转换的SeamlessM4Tv2模型变压器,可用于S2ST。 该模型是PyTorch torch.nn.Module 的子类。将其作为常规的PyTorch模块使用,并参考PyTorch文档以获取与一般使用和行为相关的所有信息。

生成

< >

( input_features: typing.Optional[torch.Tensor] = None return_intermediate_token_ids: typing.Optional[bool] = None tgt_lang: typing.Optional[str] = None speaker_id: typing.Optional[int] = 0 **kwargs ) Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor]]

参数

  • input_features (torch.FloatTensor of shape (batch_size, sequence_length, num_banks)) — 输入音频特征。这应该由SeamlessM4TFeatureExtractor类或SeamlessM4TProcessor类返回。详情请参见SeamlessM4TFeatureExtractor.call().
  • return_intermediate_token_ids (bool, 可选) — 如果 True,还会返回中间生成的文本和单元标记。如果你还想要 在音频旁边获取翻译的文本,请设置为 True.
  • tgt_lang (str, optional) — 用作翻译目标语言的语言。
  • speaker_id (int, 可选, 默认为 0) — 用于语音合成的说话者ID。必须小于 config.vocoder_num_spkrs.
  • kwargs (optional) — Remaining dictionary of keyword arguments that will be passed to GenerationMixin.generate(). Keyword arguments are of two types:
    • Without a prefix, they will be entered as **kwargs for the generate method of each sub-model, except for decoder_input_ids which will only be passed through the text components.
    • With a text_ or speech_ prefix, they will be input for the generate method of the text model and speech model respectively. It has the priority over the keywords without a prefix.

    这意味着你可以,例如,为一个生成指定生成策略,而不为另一个生成指定策略。

返回

Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor]]

  • 如果 return_intermediate_token_ids,返回 SeamlessM4Tv2GenerationOutput
  • 如果不是 return_intermediate_token_ids,返回一个由形状为 (batch_size, sequence_length) 的波形和 waveform_lengths 组成的元组,其中 waveform_lengths 给出每个样本的长度。

生成翻译后的音频波形。

此方法依次调用两个不同子模型的.generate函数。您可以在两个不同的级别指定关键字参数:将传递给两个模型的通用参数,或仅传递给其中一个模型的前缀参数。

例如,调用 .generate(input_features, num_beams=4, speech_do_sample=True) 将依次在文本模型上执行束搜索解码,并在语音模型上执行多项式束搜索采样。

有关生成策略和代码示例的概述,请查看以下指南

SeamlessM4Tv2ForTextToText

transformers.SeamlessM4Tv2ForTextToText

< >

( config: SeamlessM4Tv2Config )

参数

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

文本到文本的SeamlessM4Tv2模型转换器,可用于T2TT。 该模型是PyTorch torch.nn.Module 的子类。将其作为常规的PyTorch模块使用,并参考PyTorch文档以了解与一般使用和行为相关的所有事项。

前进

< >

( input_ids: LongTensor = None attention_mask: typing.Optional[torch.Tensor] = None decoder_input_ids: typing.Optional[torch.LongTensor] = None decoder_attention_mask: typing.Optional[torch.LongTensor] = None encoder_outputs: typing.Optional[typing.Tuple[typing.Tuple[torch.FloatTensor]]] = None past_key_values: typing.Optional[typing.Tuple[typing.Tuple[torch.FloatTensor]]] = None inputs_embeds: typing.Optional[torch.FloatTensor] = None decoder_inputs_embeds: typing.Optional[torch.FloatTensor] = None labels: typing.Optional[torch.LongTensor] = None use_cache: typing.Optional[bool] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None **kwargs )

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — Indices of input sequence tokens in the vocabulary.

    可以使用SeamlessM4TTokenizerSeamlessM4TProcessor获取索引。详情请参见PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入ID?

  • attention_mask (torch.FloatTensor of shape (batch_size, sequence_length), optional) — Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]:
    • 1 for tokens that are not masked,
    • 0 for tokens that are masked.

    什么是注意力掩码?

  • decoder_input_ids (torch.LongTensor of shape (batch_size, target_sequence_length), optional) — Indices of decoder input sequence tokens in the vocabulary.

    可以使用AutoTokenizer获取索引。详情请参见PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是解码器输入ID?

    Bart 使用 eos_token_id 作为 decoder_input_ids 生成的起始标记。如果使用了 past_key_values,则可以选择只输入最后一个 decoder_input_ids(参见 past_key_values)。

    对于翻译和摘要训练,应提供decoder_input_ids。如果没有提供decoder_input_ids,模型将根据论文中的去噪预训练方法,通过将input_ids向右移动来创建此张量。

  • decoder_attention_mask (torch.LongTensor of shape (batch_size, target_sequence_length), optional) — Default behavior: generate a tensor that ignores pad tokens in decoder_input_ids. Causal mask will also be used by default.

    如果你想改变填充行为,你应该阅读modeling_bart._prepare_decoder_attention_mask 并根据你的需求进行修改。有关默认策略的更多信息,请参见论文中的图1。

  • 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)), optional, returned when use_cache=True is passed or when config.use_cache=True) — Tuple of tuple(torch.FloatTensor) of length config.n_layers, with each tuple having 2 tensors of shape (batch_size, num_heads, sequence_length, embed_size_per_head)) and 2 additional tensors of shape (batch_size, num_heads, encoder_sequence_length, embed_size_per_head).

    包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),这些状态可用于(参见past_key_values输入)以加速顺序解码。

    如果使用了past_key_values,用户可以选择只输入形状为(batch_size, 1)的最后一个decoder_input_ids(那些没有将其过去键值状态提供给此模型的),而不是形状为(batch_size, sequence_length)的所有decoder_input_ids

  • inputs_embeds (torch.FloatTensor 形状为(batch_size, sequence_length, hidden_size), 可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递input_ids。如果您希望对如何将input_ids索引转换为相关向量有更多控制,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
  • decoder_inputs_embeds (torch.FloatTensor of shape (batch_size, target_sequence_length, hidden_size), optional) — Optionally, instead of passing decoder_input_ids you can choose to directly pass an embedded representation. If past_key_values is used, optionally only the last decoder_inputs_embeds have to be input (see past_key_values). This is useful if you want more control over how to convert decoder_input_ids indices into associated vectors than the model’s internal embedding lookup matrix.

    如果decoder_input_idsdecoder_inputs_embeds都未设置,decoder_inputs_embeds将取inputs_embeds的值。

  • labels (torch.LongTensor of shape (batch_size, sequence_length), optional) — 用于计算掩码语言建模损失的标签。索引应在 [-100, 0, ..., config.vocab_size] 范围内(参见 input_ids 文档字符串)。索引设置为 -100 的标记将被忽略(掩码), 损失仅针对标签在 [0, ..., config.vocab_size] 范围内的标记进行计算
  • use_cache (bool, 可选) — 如果设置为 Truepast_key_values 键值状态将被返回,并可用于加速解码(参见 past_key_values)。
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
  • output_hidden_states (bool, 可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
  • return_dict (bool, 可选) — 是否返回一个ModelOutput而不是一个普通的元组。

SeamlessM4Tv2ForTextToText 的 forward 方法,重写了 __call__ 特殊方法。

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

生成

< >

( input_ids = None tgt_lang = None generation_config = None logits_processor = None stopping_criteria = None prefix_allowed_tokens_fn = None synced_gpus = False **kwargs ) ModelOutputtorch.LongTensor

参数

  • input_ids (torch.Tensor of varying shape depending on the modality, optional) — Indices of input sequence tokens in the vocabulary.

    可以使用SeamlessM4TTokenizerSeamlessM4TProcessor获取索引。详情请参见PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入ID?

  • tgt_lang (str, optional) — 用于翻译的目标语言。
  • generation_config (~generation.GenerationConfig, optional) — The generation configuration to be used as base parametrization for the generation call. **kwargs passed to generate matching the attributes of generation_config will override them. If generation_config is not provided, the default will be used, which had the following loading priority: 1) from the generation_config.json model file, if it exists; 2) from the model configuration. Please note that unspecified parameters will inherit GenerationConfig’s default values, whose documentation should be checked to parameterize generation.
  • logits_processor (LogitsProcessorList, 可选) — 自定义的logits处理器,用于补充从参数和生成配置中构建的默认logits处理器。如果传递了一个已经通过参数或生成配置创建的logit处理器,则会抛出错误。此功能面向高级用户。
  • stopping_criteria (StoppingCriteriaList, 可选) — 自定义停止标准,补充了由参数和生成配置构建的默认停止标准。如果传递了一个已经由参数或生成配置创建的停止标准,则会抛出错误。此功能面向高级用户。
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], List[int]], 可选) — 如果提供,此函数将约束束搜索,使其在每一步仅允许特定的令牌。如果未提供,则不应用任何约束。此函数接受2个参数:批次ID batch_idinput_ids。它必须返回一个列表,其中包含根据批次ID batch_id 和先前生成的令牌 inputs_ids 条件允许的下一生成步骤的令牌。此参数对于基于前缀的条件生成非常有用,如自回归实体检索中所述。
  • synced_gpus (bool, 可选, 默认为 False) — 是否继续运行while循环直到达到max_length(需要避免与 FullyShardedDataParallel 和 DeepSpeed ZeRO Stage 3 发生死锁)。
  • kwargs (Dict[str, Any], 可选) — generate_config 的临时参数化和/或额外的模型特定 kwargs,这些将被转发到模型的 forward 函数中。

返回

ModelOutputtorch.LongTensor

一个 ModelOutput(如果 return_dict_in_generate=True 或当 config.return_dict_in_generate=True)或一个 torch.FloatTensor。可能的 ModelOutput 类型有:

生成令牌ID的序列。

大多数生成控制参数都在generation_config中设置,如果没有传递,将设置为模型的默认生成配置。您可以通过将相应的参数传递给generate()来覆盖任何generation_config,例如.generate(inputs, num_beams=4, do_sample=True)

有关生成策略和代码示例的概述,请查看以下指南

SeamlessM4Tv2ForSpeechToText

transformers.SeamlessM4Tv2ForSpeechToText

< >

( config: SeamlessM4Tv2Config )

参数

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

用于语音转文本的SeamlessM4Tv2模型转换器,可用于S2TT。 该模型是PyTorch torch.nn.Module的子类。将其作为常规的PyTorch模块使用,并参考PyTorch文档以获取与一般使用和行为相关的所有信息。

前进

< >

( input_features: LongTensor = None attention_mask: typing.Optional[torch.Tensor] = None decoder_input_ids: typing.Optional[torch.LongTensor] = None decoder_attention_mask: typing.Optional[torch.LongTensor] = None encoder_outputs: typing.Optional[typing.Tuple[typing.Tuple[torch.FloatTensor]]] = None past_key_values: typing.Optional[typing.Tuple[typing.Tuple[torch.FloatTensor]]] = None inputs_embeds: typing.Optional[torch.FloatTensor] = None decoder_inputs_embeds: typing.Optional[torch.FloatTensor] = None labels: typing.Optional[torch.LongTensor] = None use_cache: typing.Optional[bool] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None **kwargs )

参数

  • input_features (torch.FloatTensor of shape (batch_size, sequence_length, num_banks)) — 输入音频特征。这应该由SeamlessM4TFeatureExtractor类或SeamlessM4TProcessor类返回。详情请参见SeamlessM4TFeatureExtractor.call().
  • attention_mask (torch.FloatTensor of shape (batch_size, sequence_length), optional) — Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]:
    • 1 for tokens that are not masked,
    • 0 for tokens that are masked.

    什么是注意力掩码?

  • decoder_input_ids (torch.LongTensor of shape (batch_size, target_sequence_length), optional) — Indices of decoder input sequence tokens in the vocabulary.

    可以使用AutoTokenizer获取索引。详情请参见PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是解码器输入ID?

    Bart 使用 eos_token_id 作为 decoder_input_ids 生成的起始标记。如果使用了 past_key_values,则可以选择只输入最后一个 decoder_input_ids(参见 past_key_values)。

    对于翻译和摘要训练,应提供decoder_input_ids。如果没有提供decoder_input_ids,模型将根据论文中的去噪预训练方法,通过将input_ids向右移动来创建此张量。

  • decoder_attention_mask (torch.LongTensor of shape (batch_size, target_sequence_length), optional) — Default behavior: generate a tensor that ignores pad tokens in decoder_input_ids. Causal mask will also be used by default.

    如果你想改变填充行为,你应该阅读modeling_bart._prepare_decoder_attention_mask 并根据你的需求进行修改。有关默认策略的更多信息,请参见论文中的图1。

  • 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)), optional, returned when use_cache=True is passed or when config.use_cache=True) — Tuple of tuple(torch.FloatTensor) of length config.n_layers, with each tuple having 2 tensors of shape (batch_size, num_heads, sequence_length, embed_size_per_head)) and 2 additional tensors of shape (batch_size, num_heads, encoder_sequence_length, embed_size_per_head).

    包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),这些状态可用于(参见past_key_values输入)以加速顺序解码。

    如果使用了past_key_values,用户可以选择只输入形状为(batch_size, 1)的最后一个decoder_input_ids(那些没有将其过去键值状态提供给此模型的),而不是形状为(batch_size, sequence_length)的所有decoder_input_ids

  • inputs_embeds (torch.FloatTensor 形状为(batch_size, sequence_length, hidden_size), 可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递input_ids。如果您希望对如何将input_ids索引转换为相关向量有更多控制,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
  • decoder_inputs_embeds (torch.FloatTensor of shape (batch_size, target_sequence_length, hidden_size), optional) — Optionally, instead of passing decoder_input_ids you can choose to directly pass an embedded representation. If past_key_values is used, optionally only the last decoder_inputs_embeds have to be input (see past_key_values). This is useful if you want more control over how to convert decoder_input_ids indices into associated vectors than the model’s internal embedding lookup matrix.

    如果decoder_input_idsdecoder_inputs_embeds都未设置,decoder_inputs_embeds将取inputs_embeds的值。

  • labels (torch.LongTensor of shape (batch_size, sequence_length), optional) — 用于计算掩码语言建模损失的标签。索引应在 [-100, 0, ..., config.vocab_size] 范围内(参见 input_ids 文档字符串)。索引设置为 -100 的标记将被忽略(掩码), 损失仅针对标签在 [0, ..., config.vocab_size] 范围内的标记进行计算
  • use_cache (bool, 可选) — 如果设置为 Truepast_key_values 键值状态将被返回,并可用于加速解码(参见 past_key_values)。
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量中的attentions
  • output_hidden_states (bool, 可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
  • return_dict (bool, 可选) — 是否返回一个ModelOutput而不是一个普通的元组。

SeamlessM4Tv2ForSpeechToText 的前向方法,重写了 __call__ 特殊方法。

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

生成

< >

( input_features = None tgt_lang = None generation_config = None logits_processor = None stopping_criteria = None prefix_allowed_tokens_fn = None synced_gpus = False **kwargs ) ModelOutputtorch.LongTensor

参数

  • input_features (torch.FloatTensor of shape (batch_size, sequence_length, num_banks)) — 输入音频特征。这应该由SeamlessM4TFeatureExtractor类或SeamlessM4TProcessor类返回。详情请参见SeamlessM4TFeatureExtractor.call().
  • tgt_lang (str, optional) — 用作翻译目标语言的语言。
  • generation_config (~generation.GenerationConfig, optional) — The generation configuration to be used as base parametrization for the generation call. **kwargs passed to generate matching the attributes of generation_config will override them. If generation_config is not provided, the default will be used, which had the following loading priority: 1) from the generation_config.json model file, if it exists; 2) from the model configuration. Please note that unspecified parameters will inherit GenerationConfig’s default values, whose documentation should be checked to parameterize generation.
  • logits_processor (LogitsProcessorList, 可选) — 自定义的logits处理器,用于补充从参数和生成配置中构建的默认logits处理器。如果传递了一个已经通过参数或生成配置创建的logit处理器,则会抛出错误。此功能面向高级用户。
  • stopping_criteria (StoppingCriteriaList, 可选) — 自定义停止标准,补充了由参数和生成配置构建的默认停止标准。如果传递了一个已经由参数或生成配置创建的停止标准,则会抛出错误。此功能面向高级用户。
  • prefix_allowed_tokens_fn (Callable[[int, torch.Tensor], List[int]], optional) — If provided, this function constraints the beam search to allowed tokens only at each step. If not provided no constraint is applied. This function takes 2 arguments: the batch ID batch_id and input_ids. It has to return a list with the allowed tokens for the next generation step conditioned on the batch ID batch_id and the previously generated tokens inputs_ids. This argument is useful for constrained generation conditioned on the prefix, as described in Autoregressive Entity Retrieval.
  • synced_gpus (bool, optional, defaults to False) — 是否继续运行while循环直到达到max_length(需要避免与 FullyShardedDataParallel 和 DeepSpeed ZeRO Stage 3 发生死锁)。
  • kwargs (Dict[str, Any], 可选) — generate_config 的临时参数化和/或额外的模型特定 kwargs,这些参数将被传递给模型的 forward 函数。

返回

ModelOutputtorch.LongTensor

一个 ModelOutput(如果 return_dict_in_generate=True 或当 config.return_dict_in_generate=True)或一个 torch.FloatTensor。可能的 ModelOutput 类型有:

生成令牌ID的序列。

大多数生成控制参数都在generation_config中设置,如果没有传递,将设置为模型的默认生成配置。您可以通过将相应的参数传递给generate()来覆盖任何generation_config,例如.generate(inputs, num_beams=4, do_sample=True)

有关生成策略和代码示例的概述,请查看以下指南

SeamlessM4Tv2Config

transformers.SeamlessM4Tv2Config

< >

( vocab_size = 256102 t2u_vocab_size = 10082 char_vocab_size = 10943 hidden_size = 1024 initializer_range = 0.02 layer_norm_eps = 1e-05 use_cache = True max_position_embeddings = 4096 is_encoder_decoder = True encoder_layerdrop = 0.05 decoder_layerdrop = 0.05 activation_function = 'relu' dropout = 0.1 attention_dropout = 0.1 activation_dropout = 0.0 scale_embedding = True encoder_layers = 24 encoder_ffn_dim = 8192 encoder_attention_heads = 16 decoder_layers = 24 decoder_ffn_dim = 8192 decoder_attention_heads = 16 decoder_start_token_id = 3 max_new_tokens = 256 pad_token_id = 0 bos_token_id = 2 eos_token_id = 3 speech_encoder_layers = 24 speech_encoder_attention_heads = 16 speech_encoder_intermediate_size = 4096 speech_encoder_hidden_act = 'swish' speech_encoder_dropout = 0.0 add_adapter = True speech_encoder_layerdrop = 0.1 feature_projection_input_dim = 160 adaptor_kernel_size = 8 adaptor_stride = 8 adaptor_dropout = 0.1 num_adapter_layers = 1 position_embeddings_type = 'relative_key' conv_depthwise_kernel_size = 31 left_max_position_embeddings = 64 right_max_position_embeddings = 8 speech_encoder_chunk_size = 20000 speech_encoder_left_chunk_num = 128 t2u_bos_token_id = 0 t2u_pad_token_id = 1 t2u_eos_token_id = 2 t2u_encoder_layers = 6 t2u_encoder_ffn_dim = 8192 t2u_encoder_attention_heads = 16 t2u_decoder_layers = 6 t2u_decoder_ffn_dim = 8192 t2u_decoder_attention_heads = 16 t2u_max_position_embeddings = 4096 t2u_variance_predictor_embed_dim = 1024 t2u_variance_predictor_hidden_dim = 256 t2u_variance_predictor_kernel_size = 3 t2u_variance_pred_dropout = 0.5 sampling_rate = 16000 upsample_initial_channel = 512 upsample_rates = [5, 4, 4, 2, 2] upsample_kernel_sizes = [11, 8, 8, 4, 4] resblock_kernel_sizes = [3, 7, 11] resblock_dilation_sizes = [[1, 3, 5], [1, 3, 5], [1, 3, 5]] leaky_relu_slope = 0.1 unit_hifi_gan_vocab_size = 10000 unit_embed_dim = 1280 lang_embed_dim = 256 spkr_embed_dim = 256 vocoder_num_langs = 36 vocoder_num_spkrs = 200 variance_predictor_kernel_size = 3 <span class="rounded hover:bg-black hover:text-white dark:hover:bg-white dark:hover:text-black

参数

跨子模型共享的参数

  • hidden_size (int, optional, 默认为 1024) — 架构中“中间”层的维度。
  • initializer_range (float, 可选, 默认为 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。
  • layer_norm_eps (float, optional, defaults to 1e-05) — 层归一化层使用的epsilon值。
  • use_cache (bool, optional, defaults to True) — 模型是否应返回最后的键/值注意力(并非所有模型都使用)。
  • max_position_embeddings (int, optional, 默认为 4096) — 此模型文本编码器和解码器可能使用的最大序列长度。通常将其设置为较大的值以防万一(例如,512 或 1024 或 2048)。
  • is_encoder_decoder (bool, optional, defaults to True) — 模型是否用作编码器/解码器。
  • encoder_layerdrop (float, optional, 默认为 0.05) — 编码器的LayerDrop概率。更多详情请参阅[LayerDrop论文](see https://arxiv.org/abs/1909.11556)。
  • decoder_layerdrop (float, optional, 默认为 0.05) — 解码器的 LayerDrop 概率。更多详情请参阅 [LayerDrop 论文](see https://arxiv.org/abs/1909.11556)。
  • activation_function (strfunction, 可选, 默认为 "relu") — 解码器和前馈层中的非线性激活函数(函数或字符串)。如果是字符串, 支持 "gelu", "relu", "selu", "swish""gelu_new".
  • dropout (float, optional, defaults to 0.1) — 嵌入层、编码器、解码器和池化器中所有全连接层的dropout概率。
  • attention_dropout (float, optional, defaults to 0.1) — 所有注意力层的丢弃概率。
  • activation_dropout (float, optional, defaults to 0.0) — 模型中所有激活层的丢弃概率。
  • scale_embedding (bool, optional, defaults to True) — 通过除以 sqrt(d_model) 来缩放嵌入。

文本编码器和文本解码器的特定参数

  • encoder_layers (int, optional, defaults to 24) — Transformer文本编码器中的隐藏层数。
  • encoder_ffn_dim (int, optional, 默认为 8192) — Transformer 文本编码器中“中间”(即前馈)层的维度。
  • encoder_attention_heads (int, 可选, 默认为 16) — Transformer 文本编码器中每个注意力层的注意力头数。
  • decoder_layers (int, optional, defaults to 24) — Transformer文本解码器中的隐藏层数。
  • decoder_ffn_dim (int, optional, 默认为 8192) — Transformer 文本解码器中“中间”(即前馈)层的维度。
  • decoder_attention_heads (int, optional, defaults to 16) — Transformer文本解码器中每个注意力层的注意力头数。
  • decoder_start_token_id (int, optional, 默认为 3) — 如果编码器-解码器模型使用不同于 bos 的标记开始解码,则该标记的 ID。仅在文本解码器中应用。
  • max_new_tokens (int, 可选, 默认为 256) — 生成的最大文本标记数,忽略提示中的标记数。
  • pad_token_id (int, 可选, 默认为 0) — 填充文本标记的ID。仅应用于文本解码器模型。
  • bos_token_id (int, optional, 默认为 2) — beginning-of-stream 文本标记的 id。仅应用于文本解码器模型。
  • eos_token_id (int, optional, defaults to 3) — end-of-stream 文本标记的ID。仅适用于文本解码器模型。

语音编码器特定参数

  • speech_encoder_layers (int, optional, defaults to 24) — Transformer语音编码器中的隐藏层数。
  • speech_encoder_attention_heads (int, optional, 默认为 16) — Transformer 语音编码器中每个注意力层的注意力头数。
  • speech_encoder_intermediate_size (int, 可选, 默认为 4096) — Transformer 语音编码器中“中间”(即前馈)层的维度。
  • speech_encoder_hidden_act (strfunction, 可选, 默认为 "swish") — 语音编码器中的非线性激活函数(函数或字符串)。如果是字符串,支持 "gelu", "relu", "selu", "swish""gelu_new".
  • speech_encoder_dropout (float, optional, defaults to 0.0) — 语音编码器中所有层的丢弃概率。
  • add_adapter (bool, 可选, 默认为 True) — 在语音编码器顶部添加一个适配器层。
  • speech_encoder_layerdrop (float, optional, 默认为 0.1) — 语音编码器的 LayerDrop 概率。更多详情请参阅 [LayerDrop 论文](see https://arxiv.org/abs/1909.11556)。
  • feature_projection_input_dim (int, 可选, 默认为 160) — 语音编码器输入特征投影的输入维度,即使用SeamlessM4TFeatureExtractor处理输入音频后的维度。
  • adaptor_kernel_size (int, optional, defaults to 8) — 适配器网络中卷积层的核大小。仅在 add_adapter is True 时相关。
  • adaptor_stride (int, 可选, 默认为 8) — 适配器网络中卷积层的步幅。仅在 add_adapter 为 True 时相关。
  • adaptor_dropout (float, optional, defaults to 0.1) — 语音适配器中所有层的丢弃概率。
  • num_adapter_layers (int, 可选, 默认为 1) — 适配器网络中应使用的卷积层数。仅在 add_adapter is True 时相关。
  • position_embeddings_type (str, 可选, 默认为 "relative_key") — 可以指定为 relative_key。如果留空为 None,则不应用相对位置嵌入。仅 应用于语音编码器。有关 "relative_key" 的更多信息,请参阅 Self-Attention with Relative Position Representations (Shaw et al.).
  • conv_depthwise_kernel_size (int, 可选, 默认为 31) — Conformer 块中卷积深度一维层的核大小。仅应用于语音编码器。
  • left_max_position_embeddings (int, optional, 默认为 64) — 相对位置的左裁剪值。
  • right_max_position_embeddings (int, optional, defaults to 8) — 相对位置的右裁剪值。
  • speech_encoder_chunk_size (int, optional, defaults to 20000) — 每个注意力块的大小.
  • speech_encoder_left_chunk_num (int, optional, defaults to 128) — 允许向前看的左侧块数。

文本到单位 (t2u) 模型特定参数

  • t2u_bos_token_id (int, optional, defaults to 0) — beginning-of-stream 单元令牌的ID。仅应用于文本到单元的seq2seq模型。
  • t2u_pad_token_id (int, 可选, 默认为 1) — 填充单元令牌的ID。仅应用于文本到单元的seq2seq模型。
  • t2u_eos_token_id (int, optional, 默认为 2) — end-of-stream 单元令牌的 ID。仅适用于文本到单元的 seq2seq 模型。
  • t2u_encoder_layers (int, optional, 默认为 6) — Transformer 文本到单元编码器中的隐藏层数。
  • t2u_encoder_ffn_dim (int, optional, 默认为 8192) — Transformer 文本到单元编码器中“中间”(即前馈)层的维度。
  • t2u_encoder_attention_heads (int, optional, 默认为 16) — Transformer 文本到单元编码器中每个注意力层的注意力头数。
  • t2u_decoder_layers (int, optional, 默认为 6) — Transformer 文本到单元解码器中的隐藏层数。
  • t2u_decoder_ffn_dim (int, optional, 默认为 8192) — Transformer 文本到单元解码器中“中间”(即前馈)层的维度。
  • t2u_decoder_attention_heads (int, optional, 默认为 16) — Transformer 文本到单元解码器中每个注意力层的注意力头数。
  • t2u_max_position_embeddings (int, 可选, 默认为 4096) — 该模型的文本到单元组件可能使用的最大序列长度。通常将其设置为较大的值以防万一(例如,512 或 1024 或 2048)。
  • t2u_variance_predictor_embed_dim (int, 可选, 默认为 1024) — 文本到单元的持续时间预测器的投影维度。
  • t2u_variance_predictor_hidden_dim (int, 可选, 默认为 256) — 文本到单元的持续时间预测器的内部维度。
  • t2u_variance_predictor_kernel_size (int, optional, 默认为 3) — 文本到单元的持续时间预测器的卷积层的核大小。
  • t2u_variance_pred_dropout (float, optional, defaults to 0.5) — The dropout probability of the text-to-unit’s duration predictor.

    Hifi-Gan 声码器特定参数

  • sampling_rate (int, optional, defaults to 16000) — 生成输出音频的采样率,以赫兹(Hz)表示。
  • upsample_initial_channel (int, 可选, 默认为 512) — hifi-gan 上采样网络的输入通道数。仅适用于声码器。
  • upsample_rates (Tuple[int]List[int], 可选, 默认为 [5, 4, 4, 2, 2]) — 一个整数元组,定义了在声码器上采样网络中每个1D卷积层的步幅。 upsample_rates 的长度定义了卷积层的数量,并且必须与 upsample_kernel_sizes 的长度匹配。仅适用于声码器。
  • upsample_kernel_sizes (Tuple[int]List[int], 可选, 默认为 [11, 8, 8, 4, 4]) — 一个整数元组,定义了语音编码器上采样网络中每个1D卷积层的核大小。upsample_kernel_sizes 的长度定义了卷积层的数量,并且必须与 upsample_rates 的长度匹配。仅适用于语音编码器。
  • resblock_kernel_sizes (Tuple[int]List[int], 可选, 默认为 [3, 7, 11]) — 一个整数元组,定义了多感受野融合(MRF)模块中声码器1D卷积层的核大小。仅适用于声码器。
  • resblock_dilation_sizes (Tuple[Tuple[int]]List[List[int]], 可选, 默认为 [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — 一个嵌套的整数元组,定义了在多感受野融合(MRF)模块中声码器扩张1D卷积层的扩张率。仅适用于声码器。
  • leaky_relu_slope (float, optional, 默认为 0.1) — 用于声码器中 leaky ReLU 激活的负斜率角度。仅适用于声码器。
  • unit_hifi_gan_vocab_size (int, optional, 默认为 10000) — SeamlessM4Tv2 声码器的词汇表大小。定义了可以通过调用 ~SeamlessM4Tv2Model~SeamlessM4Tv2ForSpeechToSpeech~SeamlessM4Tv2ForTextToSpeech 的声码器时传递的 inputs_ids 表示的不同单元标记的数量。
  • unit_embed_dim (int, optional, 默认为 1280) — 提供给 hifi-gan 声码器的输入 id 的投影维度。仅适用于声码器。
  • lang_embed_dim (int, optional, 默认为 256) — 提供给 hifi-gan 声码器的目标语言的投影维度。仅适用于声码器。
  • spkr_embed_dim (int, optional, defaults to 256) — 提供给hifi-gan声码器的说话者ID的投影维度。仅适用于声码器。
  • vocoder_num_langs (int, 可选, 默认为 36) — 声码器支持的语言数量。可能与 t2u_num_langs 不同。
  • vocoder_num_spkrs (int, optional, defaults to 200) — 声码器支持的说话者数量。
  • variance_predictor_kernel_size (int, 可选, 默认为 3) — 持续时间预测器的内核大小。仅适用于声码器。
  • var_pred_dropout (float, optional, 默认为 0.5) — 持续时间预测器的丢弃概率。仅适用于声码器。
  • vocoder_offset (int, optional, defaults to 4) — 通过这个数字来偏移单元标记的ID,以考虑符号标记。仅适用于声码器。

这是用于存储~SeamlessM4Tv2Model配置的配置类。它用于根据指定的参数实例化一个SeamlessM4Tv2模型,定义模型架构。使用默认值实例化配置将产生与SeamlessM4Tv2 ""架构类似的配置。

配置对象继承自PretrainedConfig,可用于控制模型输出。阅读PretrainedConfig的文档以获取更多信息。

>>> from transformers import SeamlessM4Tv2Model, SeamlessM4Tv2Config

>>> # Initializing a SeamlessM4Tv2 "" style configuration
>>> configuration = SeamlessM4Tv2Config()

>>> # Initializing a model from the "" style configuration
>>> model = SeamlessM4Tv2Model(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
< > Update on GitHub