The 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 能够进行保留语音风格和韵律的翻译。与之前表达性语音研究中的工作相比,我们的研究解决了某些未被充分探索的韵律方面,例如说话速度和停顿,同时也保留了语音的声调。至于 SeamleStreaming,我们的模型利用了高效的单调多头注意力(EMMA)机制,在不等待完整的源语utterance的情况下生成低延迟的目标翻译。作为同类中的第一个,SeamleStreaming 能够实现多种源和目标语言的语音到语音/文本的同步翻译。为了了解这些模型的性能,我们将现有的自动度量方法的新版本和改进版本结合起来,以评估韵律、延迟和鲁棒性。对于人工评估,我们采用针对衡量保留意义、自然性和表达性的最相关属性量身定制的现有协议。为了保证我们的模型能够安全且负责任地使用,我们实施了已知的第一次多模态机器翻译的红色团队工作,包括一个检测和减轻附加毒性、系统评估性别偏差以及旨在缓解深度伪造影响的设计用于不可闻的本地化水印机制。因此,我们将 SeamlessExpressive 和 SeamleStreaming 的主要组件结合在一起,形成 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")
您也可以尝试使用 SeamlessM4Tv2ForSpeechToText 和 SeamlessM4Tv2ForTextToSpeech。
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=True
与 SeamlessM4Tv2Model 返回语音和文本!
模型架构
SeamlessM4T-v2具有一个灵活的架构,可以平滑地处理文本和语音的顺序生成。该设置包含两个序列到序列(seq2seq)模型。第一个模型将输入模式转换为翻译文本,而第二个模型从翻译文本生成称为“单元标记”的语音标记。
每个模式都有自己的专用编码器,具有独特的架构。此外,对于语音输出,在第二个seq2seq模型之上放置了一个受HiFi-GAN架构启发的vocoder。
与SeamlessM4T-v1的差异
本新版本的架构在与第一版相比的几个方面有所不同
第二次遍历模型的改进
第二个seq2seq模型,名为文本到单元模型,现在是非自回归的,这意味着它通过单个正向遍历计算单元。这一成就通过以下方式实现:
- 使用字符级嵌入,意味着预测翻译文本中的每个字符都有自己的嵌入,然后使用它们来预测单元标记。
- 使用中间持续时间预测器,它在预测翻译文本的字符级上预测语音持续时间。
- 使用新的文本到单元解码器,它将卷积和自注意力混合起来以处理更长的上下文。
语音编码器的差异
语音编码器,用于第一次遍历生成过程中预测翻译文本,在以下机制上与以前的语音编码器主要不同
- 使用块状注意力掩码来防止跨块注意力,确保每个位置只关注其自身块和固定数量的前续块内的位置。
- 使用相对位置嵌入,只考虑序列元素之间的距离而不是绝对位置。有关更多详情,请参阅Self-Attentionwith Relative Position Representations (Shaw et al.)。
- 使用因果深度可分离卷积而不是非因果卷积。
生成过程
这里是生成过程的工作方式
- 输入文本或语音经过特定的编码器处理。
- 解码器在所需语言中创建文本标记。
- 如果需要语音生成,第二个seq2seq模型以非自回归方式生成单元标记。
- 然后将这些单元标记传递到最终的声码器以产生实际语音。
SeamlessM4Tv2Model
类名 transformers.SeamlessM4Tv2Model
< 源代码 >( config current_modality = 'text' )
参数
- config (~SeamlessM4Tv2Config) - 模型配置类,包含所有模型参数。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看from_pretrained() 方法以加载模型权重。
- current_modality (
str
, 可选, 默认为"text"
) - 默认模态。仅用于初始化模型。可以是"text"
或"speech"
。这将根据传递给 forward 和 generate 传递的模态自动更新(文本的input_ids
和音频的input_features
)。
原始的 SeamlessM4Tv2 模型变压器,可用于所有可用的任务(S2ST、S2TT、T2TT、T2ST)。该模型是 PyTorch torch.nn.Module 子类。将其作为普通 PyTorch 模块使用,并参考 PyTorch 文档以了解所有关于常规用法和行为的信息。
生成
< 更多 >( input_ids: 可选 = None input_features: 可选 = None return_intermediate_token_ids: 可选 = None tgt_lang: 可选 = None speaker_id: 可选 = 0 generate_speech: 可选 = True **kwargs ) → Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor], ModelOutput]
参数
- input_ids (
torch.LongTensor
of shape(batch_size, sequence_length)
, 可选) — 输入序列词汇中的标记索引。索引可以使用 SeamlessM4TTokenizer 或 SeamlessM4TProcessor 获取。详情请参考 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- input_features (
torch.FloatTensor
形状(batch_size, sequence_length, num_banks)
, 可选) — 输入音频特征。这应由 SeamlessM4TFeatureExtractor 类或 SeamlessM4TProcessor 类返回。有关详细信息,请参阅 SeamlessM4TFeatureExtractor.call()。 - return_intermediate_token_ids (
bool
, 可选) — 如果为True
,还将返回中间生成的文本和单位标记。如果您还想获取翻译文本和音频,请将其设置为True
。请注意,如果generate_speech=True
,则此参数将被忽略。 - tgt_lang (
str
, 可选) — 用于翻译的目标语言。 - speaker_id (
int
, 可选,默认为0) — 语音合成的发言人ID。必须小于config.vocoder_num_spkrs
。 - (
bool
, 可选,默认为True
) — 如果设置为False
,将仅返回文本标记,不会生成语音。 - kwargs (可选) — 将传递给 GenerationMixin.generate() 的其他字典关键字。关键字类型有两种:
- 无前缀的关键字将被作为
**kwargs
传入每个子模型的generate
方法,除decoder_input_ids
外将仅通过文本组件传递。 - 带有 text_ 或 speech_ 前缀的关键字将被分别输入到文本模型和语音模型的
generate
方法中。若与无前缀的关键字冲突,前缀关键字具有优先权。
这意味着您可以,例如,为一种生成方式指定生成策略,但不为另一种指定。
- 无前缀的关键字将被作为
返回值
SeamlessM4Tv2GenerationOutput
或 Tuple[Tensor],或 ModelOutput
- 如果
generate_speech
和return_intermediate_token_ids
都设置为 True,则返回SeamlessM4Tv2GenerationOutput
。 - 如果
generate_speech
为 True,但return_intermediate_token_ids
为 False,则返回一个由波形组成的元组,其形状为(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() 方法以加载模型权重。
适用于T2ST的语音到文本无缝M4Tv2模型转换器。这是一个PyTorch的torch.nn.Module子类。将其作为常规PyTorch模块使用,并请参阅PyTorch文档以了解所有与通用用法和行为有关的事项。
生成
< source >( input_ids: Optional = None return_intermediate_token_ids: Optional = None tgt_lang: Optional = None speaker_id: Optional = 0 **kwargs ) → Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor]]
参数
- input_ids (
torch.LongTensor
of shape(batch_size, sequence_length)
) — 输入序列token在词汇表中的索引。 利用SeamlessM4TTokenizer或SeamlessM4TProcessor可获取索引。有关详情,请参阅PreTrainedTokenizer.encode()和PreTrainedTokenizer.call()。 - return_intermediate_token_ids (
bool
,可选) — 如果为True
,则同时返回中间生成的文本和单元标记。如果您还希望获取翻译文本,除了音频之外,设置为您即可获得翻译文本。 - tgt_lang (
str
,可选) — 用于翻译的目标语言。 - speaker_id (
int
,可选,默认值0) — 用于语音合成的说话人ID。必须小于config.vocoder_num_spkrs
。 - kwargs (可选) — 传递给 GenerationMixin.generate() 的剩余关键字参数字典。关键字参数有两种类型:
- 没有前缀的,它们将作为每个子模型的
generate
方法中的**kwargs
使用,除了decoder_input_ids
只会通过文本组件传递。 - 带有 text_ 或 speech_ 前缀的,它们将依次输入到文本模型和语音模型的
generate
方法中。它具有优先级,高于没有前缀的关键字。
这意味着,例如,您可以为一个生成指定生成策略,但不为另一个指定。
- 没有前缀的,它们将作为每个子模型的
返回值
Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor]]
- 如果
return_intermediate_token_ids
,则返回SeamlessM4Tv2GenerationOutput
。 - 如果不
return_intermediate_token_ids
,则返回一个由形状为(batch_size, sequence_length)
的波幅和waveform_lengths
组成的元组,后者给出了每个样本的长度。
生成翻译后的音频波幅。
此方法依次调用两个不同子模型的 .generate
函数。您可以在两个不同级别指定关键字参数:将传递给两个模型的通用参数,或者传递给其中一个的前缀参数。
例如,调用 .generate(input_ids, num_beams=4, speech_do_sample=True)
将逐个对文本模型进行束搜索解码,并依次对语音模型进行多项式束搜索采样。
要查看生成策略概述和代码示例,请参阅 以下指南。
SeamlessM4Tv2ForSpeechToSpeech
类 transformers.SeamlessM4Tv2ForSpeechToSpeech
< 源 >( 配置 )
参数
- 配置 (~SeamlessM4Tv2Config) — 包含模型所有参数的配置类。使用配置文件初始化时,不会加载关联的模型权重,只加载配置。有关加载模型权重的信息,请参阅from_pretrained() 方法。
The speech-to-speech SeamlessM4Tv2 Model transformer which can be used for S2ST. This model is a PyTorch torch.nn.Module sub-class. Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and behavior.
生成
< source >( input_features: 可选 = None return_intermediate_token_ids: 可选 = None tgt_lang: 可选 = None speaker_id: 可选 = 0 **kwargs ) → Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor]]
参数
- input_features (
torch.FloatTensor
形状(batch_size, sequence_length, num_banks)
) — 输入音频特征。这应由 SeamlessM4TFeatureExtractor 类或 SeamlessM4TProcessor 类返回。有关详细信息,请参阅 SeamlessM4TFeatureExtractor.call()。 - return_intermediate_token_ids (
bool
,可选) — 如果为True
,还将返回中间生成的文本和单元标识符。如果想同时获得翻译文本和音频,请设置为True
。 - tgt_lang (
str
,可选) — 用于翻译的目标语言。 - speaker_id (
int
, 可选, 默认值为0) — 用于语音合成的演讲者ID。必须小于config.vocoder_num_spkrs
。 - kwargs (可选) — 传递给 GenerationMixin.generate() 剩余的字典关键字参数。关键字参数有两种类型:
- 没有前缀,它们将被作为
**kwargs
输入到每个子模型的generate
方法中,除了decoder_input_ids
之外,它将只会通过文本组件传递。 - 带有 text_ 或 speech_ 前缀,它们将分别输入到文本模型和语音模型的
generate
方法中。它比没有前缀的关键字具有优先级。
这意味着您可以为示例指定一个生成策略,但不为另一个指定。
- 没有前缀,它们将被作为
返回值
Union[SeamlessM4Tv2GenerationOutput, Tuple[Tensor]]
- 如果
return_intermediate_token_ids
,则返回SeamlessM4Tv2GenerationOutput
。 - 如果不
return_intermediate_token_ids
,则返回一个由形状为(batch_size, sequence_length)
的波幅和waveform_lengths
组成的元组,后者给出了每个样本的长度。
生成翻译后的音频波幅。
此方法依次调用两个不同子模型的 .generate
函数。您可以在两个不同级别指定关键字参数:将传递给两个模型的通用参数,或者传递给其中一个的前缀参数。
例如,调用 .generate(input_features, num_beams=4, speech_do_sample=True)
将依次在文本模型上执行束搜索解码,在语音模型上执行多项分布束搜索采样。
要查看生成策略概述和代码示例,请参阅 以下指南。
SeamlessM4Tv2ForTextToText
class transformers.SeamlessM4Tv2ForTextToText
< 来源 >( config: SeamlessM4Tv2Config )
参数
- config (~SeamlessM4Tv2Config) — 包含模型所有参数的模型配置类。使用配置文件初始化时不会加载与模型相关的权重,只加载配置。请参阅from_pretrained()方法来加载模型权重。
SeamlessM4Tv2 文本到文本模型,可用于T2TT。此模型是 PyTorch torch.nn.Module 的子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以了解所有有关一般用法和行为的内容。
前向
< 来源 >( input_ids: LongTensor = None attention_mask: Optional = None decoder_input_ids: Optional = None decoder_attention_mask: Optional = None encoder_outputs: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None decoder_inputs_embeds: Optional = None labels: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None **kwargs )
参数
- input_ids (
torch.LongTensor
of shape(batch_size, sequence_length)
, optional) — 输入序列词汇中的输入序列令牌索引。索引可以通过使用 SeamlessM4TTokenizer 或 SeamlessM4TProcessor 获取。有关详细信息,请参阅 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- attention_mask (形状为
(batch_size, sequence_length)
的torch.FloatTensor
,可选) — 用于避免在填充标记索引上执行注意力的掩码。在[0, 1]
中选择的掩码值:- 1表示未掩码的标记,
- 0表示掩码的标记。
- decoder_input_ids (形状为
(batch_size, target_sequence_length)
的torch.LongTensor
,可选) — 解码器输入序列标记的索引词汇。可以通过使用AutoTokenizer获得索引。有关详细信息,请参阅PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。Bart使用
eos_token_id
作为解码器输入ID生成的起点。如果使用了past_key_values
,则可以选择性地仅输入最后生成的decoder_input_ids
(请参阅past_key_values
)。在翻译和摘要训练中,应提供
decoder_input_ids
。如果没有提供,则模型将根据论文中的去噪预训练方法创建该张量,通过将input_ids
向右移位。 - decoder_attention_mask (
torch.LongTensor
形状为(batch_size, target_sequence_length)
,可选) — 默认行为:生成一个忽略decoder_input_ids
中填充令牌的张量。默认情况下还将使用因果掩码。 若要更改填充行为,请阅读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))
, 可选,当传递use_cache=True
或config.use_cache=True
时返回) — 长度为config.n_layers
的tuple(torch.FloatTensor)
的元组,每个元组包含形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的 2 个张量,以及 2 个形状为(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) — 可选地,而不是传递decoder_input_ids
,您可以直接传递嵌入表示。如果使用past_key_values
,则可选地只有最后的decoder_inputs_embeds
需要输入(见past_key_values
)。这非常有用,如果您想更多地控制如何将decoder_input_ids
的索引转换为相关向量,而不是模型内部的嵌入查找矩阵。如果
decoder_input_ids
和decoder_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
, optional) — 如果设置为True
,则返回past_key_values
的键值状态,可用于加速解码(见past_key_values
)。 - output_attentions (
bool
, 可选) — 是否返回所有注意力层的注意力张量。详见返回张量下的attentions
更多详情。 - output_hidden_states (
bool
, 可选) — 是否返回所有层的隐藏状态。详见返回张量下的hidden_states
更多详情。 - return_dict (
bool
, 可选) — 是否返回 ModelOutput 而不是普通元组。
SeamlessM4Tv2ForTextToText 的 forward 方法,重写了 __call__
特殊方法。
虽然需要在函数内部定义前向传递的配方,但应调用之后的 Module
实例而不是此函数,因为前者负责运行前处理和后处理步骤,而后者会默默地忽略它们。
生成
< source >( input_ids = None tgt_lang = None generation_config = None logits_processor = None stopping_criteria = None prefix_allowed_tokens_fn = None synced_gpus = False **kwargs ) → ModelOutput or torch.LongTensor
参数
- input_ids (
torch.Tensor
of varying shape depending on the modality, optional) — Indices of input sequence tokens in the vocabulary.Indices can be obtained using SeamlessM4TTokenizer or SeamlessM4TProcessor. See PreTrainedTokenizer.encode() and PreTrainedTokenizer.call() for details.
- tgt_lang (
str
, optional) — 用于翻译的目标语言。 - generation_config (
~generation.GenerationConfig
, optional) — 用于生成调用作为基本参数化的生成配置。传递给 generate 的**kwargs
将会覆盖它们。如果没有提供generation_config
,将使用默认配置,其加载优先级如下:1) 从存在的generation_config.json
模型文件;2) 从模型配置。请注意,未指明的参数将继承 GenerationConfig 的默认值,其文档应进行检查以进行参数化。 - logits_processor (
LogitsProcessorList
, optional) — 补充默认由参数和生成配置构建的 logits 处理器的自定义 logits 处理器。如果传递的 logits 处理器已经使用参数或生成配置创建,则会引发错误。此功能针对高级用户。 - stopping_criteria (
StoppingCriteriaList
, 可选) — 用来补充由参数和生成配置构建的默认停止条件的自定义停止条件。如果传递了一个已通过参数或生成配置创建的停止条件,则会抛出错误。该特性旨在供高级用户使用。 - prefix_allowed_tokens_fn (
Callable[[int, torch.Tensor], List[int]]
, 可选) — 如果提供,此函数限制每个步骤只允许beam search使用允许的标记。如果不提供,则不应用任何约束。此函数接受2个参数:批IDbatch_id
和input_ids
。它必须返回一个列表,其中包含基于批IDbatch_id
和之前生成的标记inputs_ids
的允许标记。该参数对于基于前缀的约束生成很有用,如自回归实体检索中所述。 - synced_gpus (
bool
, 可选, 默认为False
) — 是否继续执行while循环直到max_length(对于ZeRO阶段3是必需的)。 - kwargs (
Dict[str, Any]
, optional) — 对generate_config
和/或模型特定kwargs的临时参数化。这些kwargs将被转发到模型的forward
函数中。
返回值
ModelOutput或torch.LongTensor
如果是return_dict_in_generate=True
或当config.return_dict_in_generate=True
,则是ModelOutput或一个torch.FloatTensor
。可能的ModelOutput类型有
生成一系列标记ID
大多数生成控制参数都设置在generation_config
中,如果未传递,则将采用模型的默认生成配置。您可以通过传递生成()函数的相应参数来覆盖任何generation_config
,例如.generate(inputs, num_beams=4, do_sample=True)
。
要查看生成策略概述和代码示例,请参阅 以下指南。
SeamlessM4Tv2ForSpeechToText
类 transformers.SeamlessM4Tv2ForSpeechToText
< source >( config: SeamlessM4Tv2Config )
参数
- 配置 (~SeamlessM4Tv2Config) —— 一个包含模型所有参数的模型配置类。使用配置文件初始化不会加载模型相关的权重,只加载配置。请查看 from_pretrained() 方法来加载模型权重。
用于S2TT的语音到文本无缝M4Tv2模型转换器。这是一个PyTorch torch.nn.Module 的子类。作为一个常规的PyTorch模块使用,并参考PyTorch文档来了解所有有关通用使用和行为的细节。
前向
< source >( input_features: LongTensor = None attention_mask: Optional = None decoder_input_ids: Optional = None decoder_attention_mask: Optional = None encoder_outputs: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None decoder_inputs_embeds: Optional = None labels: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = 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)
, 可选) — 用于防止在填充token索引上执行注意力的掩码。在[0, 1]
内选择掩码值:- 1 对应于未_masked的token
- 0 对应于已_masked的token
- decoder_input_ids (
torch.LongTensor
of shape(batch_size, target_sequence_length)
, 可选) — 词汇表中解码器输入序列token的索引。可以借助AutoTokenizer获取索引。详见PreTrainedTokenizer.encode()和PreTrainedTokenizer.call()。
Bart使用
eos_token_id
作为解码器输入ID生成的起始token。如果使用past_key_values
,则可选地只需要输入最后的部分decoder_input_ids
(见past_key_values
)。在翻译和摘要训练中,应提供
decoder_input_ids
。如果没有提供decoder_input_ids
,则模型会根据论文中描述的去噪预训练方法通过将input_ids
向右移动来创建这个tensor。 - decoder_attention_mask (
torch.LongTensor
形状为(batch_size, target_sequence_length)
,可选) — 默认行为:生成一个tensor,忽略decoder_input_ids
中的填充token。默认情况下还将使用因果掩码。如果您想更改填充行为,应阅读
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))
,可选,当传递use_cache=True
或config.use_cache=True
时返回)— 长度为config.n_layers
的tuple(torch.FloatTensor)
的元组,每个元组包含两个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的张量以及两个形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)
的附加张量。包含预计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于(请参阅
如果使用past_key_values
输入)来加速顺序解码。past_key_values
,用户可以选择仅输入最后一个decoder_input_ids
(那些没有将过去键值状态提供给此模型的)的形状为(batch_size, 1)
,而不是所有形状为(batch_size, sequence_length)
的decoder_input_ids
。 - 输入嵌入信息(inputs_embeds)(
shape=(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
,可选)— 可选地,您可以选择直接传递嵌入表示而不是传递input_ids
。如果您想要比模型的内部嵌入查找矩阵更有控制权地将input_ids
索引转换为相关向量,这种方法很有用。 - decoder_inputs_embeds (
torch.FloatTensor
形状为(batch_size, target_sequence_length, hidden_size)
,可选)— 可选地,您可以选择直接传递嵌入表示而不是decoder_input_ids
。如果使用past_key_values
,则可选项仅将最后一个decoder_inputs_embeds
输入(见past_key_values
)。这很有用,如果您想比模型的内部嵌入查找矩阵有更多控制权来转换decoder_input_ids
索引到相关向量。如果
decoder_input_ids
和decoder_inputs_embeds
都未设置,则decoder_inputs_embeds
取inputs_embeds
的值。 - labels (
torch.LongTensor
形状为(batch_size, sequence_length)
,可选)— 用于计算掩码语言建模损失的标签。索引应在[-100, 0, ..., config.vocab_size]
之间(参见input_ids
的文档字符串)索引设置为-100
的令牌将被忽略(掩码),损失仅针对标签在[0, ..., config.vocab_size]
之间的令牌计算 - use_cache (
bool
,可选)— 如果设置为True
,将返回past_key_values
的键值状态并可用于加速解码(见past_key_values
)。 - output_attentions (
bool
, 可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。 - output_hidden_states (
bool
, 可选) — 是否返回所有层的状态。有关更多详细信息,请参阅返回张量下的hidden_states
。 - return_dict (
bool
, 可选) — 是否返回一个 ModelOutput 而不是平面元组。
SeamlessM4Tv2ForSpeechToText forward 方法,重写了 __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 ) → 模型输出或torch.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) — 用于生成调用作为基本参数化的生成配置。传递给 generate 的匹配generation_config
属性的**kwargs
将覆盖它们。如果没有提供generation_config
,将使用默认配置,其加载优先级如下:1) 从存在的generation_config.json
模型文件中;2) 从模型配置中。请注意,未指定的参数将继承 GenerationConfig 的默认值,应检查其文档以进行生成参数化。 - logits_processor (
LogitsProcessorList
, optional) — 自定义 logits 处理器,补充从参数和生成配置构建的默认 logits 处理器。如果传递了一个已用参数或生成配置创建的 logits 处理器,将引发错误。该功能适用于高级用户。 - 停止条件 (可选项,类型 StoppingCriteriaList)— 自定义停止条件,补充由参数以及生成配置构建的默认停止条件。如果传入已使用参数或生成配置创建的停止条件,将抛出错误。此功能针对高级用户设计。
- prefix_allowed_tokens_fn (类型 Callable[[int, torch.Tensor], List[int]],可选项)— 如果提供,此函数将限制束搜索仅在每个步骤中允许令牌。如果没有提供,则不应用约束。此函数接受两个参数:批ID batch_id 和 input_ids。它必须根据批ID batch_id 和先前生成的令牌 inputs_ids 返回允许令牌的列表,以用于下一步生成。此参数对于根据前缀约束的生成很有用,如自回归实体检索中所述。
- synced_gpus (类型 bool,可选项,默认为 False)— 是否继续运行循环直到 max_length(对于 ZeRO 阶段 3 所需)。
- kwargs (
Dict[str, Any]
, 可选) — 对generate_config
的临时参数化以及/或传递给模型forward
函数的其他模型特定 kwargs。
返回值
ModelOutput或torch.LongTensor
如果是return_dict_in_generate=True
或当config.return_dict_in_generate=True
,则是ModelOutput或一个torch.FloatTensor
。可能的ModelOutput类型有
生成一系列标记ID
大多数生成控制参数都设置在generation_config
中,如果未传递,则将采用模型的默认生成配置。您可以通过传递生成()函数的相应参数来覆盖任何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 var_pred_dropout = 0.5 vocoder_offset = 4 **kwargs )
参数
- vocab_size (
int
, 可选, 默认为256102) — SeamlessM4Tv2模型文本模态的词汇大小。定义了当调用SeamlessM4Tv2Model
、SeamlessM4Tv2ForTextToSpeech
或SeamlessM4Tv2ForTextToText
时,可通过inputs_ids
表示的不同标记的数量。 - t2u_vocab_size (
int
, 可选, 默认为10082) — SeamlessM4Tv2模型的单元词汇大小。定义了当调用SeamlessM4Tv2Model
、SeamlessM4Tv2ForSpeechToSpeech
或SeamlessM4Tv2ForTextToSpeech
的文本到单元子模型时,可通过inputs_ids
表示的不同“单元标记”的数量。 - char_vocab_size (
int
, 可选, 默认为10943) — SeamlessM4Tv2模型的字符词汇大小。定义了当调用SeamlessM4Tv2Model
、SeamlessM4Tv2ForSpeechToSpeech
或SeamlessM4Tv2ForTextToSpeech
的文本到单元子模型时,可通过char_inputs_ids
表示的不同字符标记的数量。
子模型间的共享参数
- hidden_size (
int
, 可选,默认值 1024) — 架构中“中间”层维度。 - initializer_range (
float
, 可选,默认值为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。 - layer_norm_eps (
float
, 可选,默认值为 1e-05) — 层归一化层使用的 epsilon。 - use_cache (
bool
, 可选, 默认为True
) — 模型是否应返回最后一个键/值注意力(并非所有模型都使用)。 - max_position_embeddings (
int
, 可选, 默认为 4096) — 该模型文本编码器和解码器可能使用的最大序列长度。通常只将其设置为非常大(例如,512或1024或2048)。 - is_encoder_decoder (
bool
, 可选, 默认为True
) — 该模型是否用作编码器/解码器。 - encoder_layerdrop (
float
, 可选, 默认为 0.05) — 编码器的 LayerDrop 几率。查阅 [LayerDrop 论文](see https://arxiv.org/abs/1909.11556) 获取更多信息。 - decoder_layerdrop (
float
, 可选, 默认为 0.05) — 解码器的 LayerDrop 几率。查阅 [LayerDrop 论文](see https://arxiv.org/abs/1909.11556) 获取更多信息。 - activation_function (
str
或function
, 可选, 默认为"relu"
) — 解码器和前馈层的非线性激活函数(函数或字符串)。如果为字符串,支持"gelu"
、"relu"
、"selu"
、"swish"
和"gelu_new"
。 - dropout (
float
,可选,默认为0.1) — 全连接层(嵌入、编码器、解码器和池化器)的丢弃概率。 - attention_dropout (
float
,可选,默认为0.1) — 所有注意力层的丢弃概率。 - activation_dropout (
float
,可选,默认为0.0) — 模型中所有激活层的丢弃概率。 - scale_embedding (
bool
,可选,默认为True
) — 通过除以sqrt(d_model)来缩放嵌入。
文本编码器和文本解码器特定的参数
- encoder_layers (
int
, 可选, 默认为24) — Transformer文本编码器中的隐藏层数量。 - encoder_ffn_dim (
int
, 可选, 默认为8192) — Transformer文本编码器中“中间”(即前馈)层的维度。 - encoder_attention_heads (
int
, 可选, 默认为16) — Transformer文本编码器中每个注意力层的注意力头数。 - decoder_layers (
int
, 可选, 默认为24) — Transformer文本解码器中的隐藏层数量。 - decoder_ffn_dim (
int
, 可选, 默认值 8192) — Transformer 文本解码器中“中间层”(即前馈层)的维度。 - decoder_attention_heads (
int
, 可选, 默认值 16) — Transformer 文本解码器中每个注意力层的注意力头数量。 - decoder_start_token_id (
int
, 可选, 默认值 3) — 如果编码器-解码器模型不以 bos 为起始标记开始解码,则该标记的 ID。仅在文本解码器中应用。 - max_new_tokens (
int
,可选,默认为256) — 生成文本token的最大数量,忽略提示中的token数量。 - pad_token_id (
int
,可选,默认为0) — 填充文本token的id。仅应用于文本解码器模型。 - bos_token_id (
int
,可选,默认为2) — 开始流文本token的id。仅应用于文本解码器模型。 - eos_token_id (
int
, 可选, 默认为 3) — 流结束文本标记的 id。仅应用于文本解码器模型。
语音编码器特定参数
- speech_encoder_layers (
int
, 可选, 默认为 24) — Transformer 语音编码器中的隐藏层数量。 - speech_encoder_attention_heads (
int
, 可选, 默认为 16) — Transformer 语音编码器中每个注意力层的注意力头数量。 - speech_encoder_intermediate_size (
int
, 可选, 默认为 4096) — Transformer语音编码器中“中间层”(即,前馈层)的维度。 - speech_encoder_hidden_act (
str
或function
, 可选, 默认为"swish"
) — 语音编码器中的非线性激活函数(函数或字符串)。如果为字符串,支持"gelu"
、"relu"
、"selu"
、"swish"
和"gelu_new"
。 - speech_encoder_dropout (
float
, 可选, 默认为 0.0) — 语音编码器中所有层的dropout概率。 - add_adapter (
布尔值
, 可选, 默认为True
) — 在语音编码器之上添加适配器层。 - speech_encoder_layerdrop (
浮点数
, 可选, 默认为 0.1) — 语音编码器的 LayerDrop 概率。参见[LayerDrop 论文](see https://arxiv.org/abs/1909.11556)以获取更多详细信息。 - feature_projection_input_dim (
整数
, 可选, 默认为 160) — 语音编码器输入特征投影的输入维度,即处理输入音频后由 SeamlessM4TFeatureExtractor 处理后的维度。 - adaptor_kernel_size (
int
, 可选, 默认值 8) — 适配器网络中卷积层的内核大小。仅在add_adapter 是 True
时相关。 - adaptor_stride (
int
, 可选, 默认值 8) — 适配器网络中卷积层的步长。仅在add_adapter 是 True
时相关。 - adaptor_dropout (
float
, 可选, 默认值 0.1) — 语音适配器中所有层的 dropout 概率。 - num_adapter_layers (
int
, 可选, 默认值 1) — 应在适配器网络中使用的卷积层数量。仅在add_adapter 是 True
时相关。 - position_embeddings_type (
str
, 可选, 默认为"relative_key"
) — 可以指定为relative_key
。如果设置为None
,则不应用相对位置嵌入。仅应用于语音编码器。有关"relative_key"
的更多信息,请参阅 Self-Attention with Relative Position Representations (Shaw 等人)。 - conv_depthwise_kernel_size (
int
, 可选, 默认为 31) — Conformer 块中卷积深度wise 1D 层的内核大小。仅应用于语音编码器。 - left_max_position_embeddings (
int
, 可选, 默认为 64) — 相对位置左裁剪值。 - — 右侧最大位置嵌入值(
int
,可选,默认为 8),用于相对位置剪裁。 - — 每个注意力块的尺寸(
int
,可选,默认为 20000)。 - — 允许的左向段落数(
int
,可选,默认为 128)。
文本到单位(t2u)模型特定参数
- t2u_bos_token_id (
int
, 可选,默认为0) — 开始流单元标记的id。仅适用于文本到单元序列到序列模型。 - t2u_pad_token_id (
int
, 可选,默认为1) — 填充单元标记的id。仅适用于文本到单元序列到序列模型。 - t2u_eos_token_id (
int
, 可选,默认为2) — 结束流单元标记的id。仅适用于文本到单元序列到序列模型。 - t2u_encoder_layers (
int
, 可选,默认为6) — Transformer文本到单元编码器中的隐藏层数量。 - t2u_encoder_ffn_dim (
int
, optional, defaults to 8192) — Transformer 文本到单元编码器的 “中间” (即,前馈) 层的维度。 - t2u_encoder_attention_heads (
int
, optional, defaults to 16) — Transformer 文本到单元编码器每个注意力层中的注意力头数量。 - t2u_decoder_layers (
int
, optional, defaults to 6) — Transformer 文本到单元解码器的隐藏层数量。 - t2u_decoder_ffn_dim (
int
, 可选,默认为8192) — Transformer文本到单元解码器中“中间”层(即前馈)的维数。 - t2u_decoder_attention_heads (
int
, 可选,默认为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
, 可选,默认为3) — 文本到单位时长预测器卷积层的内核大小。 - t2u_variance_pred_dropout (
float
, 可选,默认为0.5) — 文本到单元时长预测器的丢弃概率。Hifi-Gan 语音合成器特定参数
- sampling_rate (
int
, 可选,默认为16000) — 输出音频的采样率,以赫兹(Hz)表示。Hifi-Gan 语音合成器特定参数
- upsample_initial_channel (
int
, 可选,默认为512) — Hifi-Gan 上采样网络输入通道的数量。仅适用于语音合成器。Hifi-Gan 语音合成器特定参数
- upsample_rates (
元组[int]
或列表[int]
,可选,默认为[5, 4, 4, 2, 2]
) — 定义 vocoderUpsampling 网络中每个 1D 卷积层步幅的整数元组。upsample_rates 的长度定义了卷积层的数量,必须与 upsample_kernel_sizes 的长度匹配。仅适用于 vocoder。 - upsample_kernel_sizes (
元组[int]
或列表[int]
,可选,默认为[11, 8, 8, 4, 4]
) — 定义 vocoderUpsampling 网络中每个 1D 卷积层内核大小的整数元组。upsample_kernel_sizes 的长度定义了卷积层的数量,必须与 upsample_rates 的长度匹配。仅适用于 vocoder。 - resblock_kernel_sizes (
元组[int]
或列表[int]
,可选,默认为[3, 7, 11]
) — 定义多功能感受野融合(MRF)模块中 vocoder 1D 卷积层内核大小的整数元组。仅适用于 vocoder。 - resblock_dilation_sizes (
Tuple[Tuple[int]]
或List[List[int]]
,可选,默认为[[1, 3, 5], [1, 3, 5], [1, 3, 5]]
) — 定义多感受野融合(MRF)模块中语音编码器膨胀1D卷积层膨胀率的嵌套整数元组。仅适用于语音编码器。 - leaky_relu_slope (
float
,可选,默认为 0.1) — 语音编码器中漏润(leaky ReLU)激活函数使用的负斜率的角。仅适用于语音编码器。 - unit_hifi_gan_vocab_size (
int
,可选,默认为 10000) — SeamlessM4Tv2 语音编码器的词汇大小。定义了可以通过调用 ~SeamlessM4Tv2Model, ~SeamlessM4Tv2ForSpeechToSpeech 或 ~SeamlessM4Tv2ForTextToSpeech 传递的inputs_ids
表示的不同单元标记的数量。 - unit_embed_dim (
int
, 可选, 默认为1280) — hifi-gan 语音合成器接收的输入id的投影维度。仅适用于语音合成器。 - lang_embed_dim (
int
, 可选, 默认为256) — hifi-gan 语音合成器接收的目标语言的投影维度。仅适用于语音合成器。 - spkr_embed_dim (
int
, 可选, 默认为256) — hifi-gan 语音合成器接收的说话人ID的投影维度。仅适用于语音合成器。 - vocoder_num_langs (
int
, 可选, 默认为36) — 语音合成器支持的语种数量。可能与t2u_num_langs
不同。 - vocoder_num_spkrs (
int
, 可选, 默认200) — 语音解码器支持的扬声器数量。 - variance_predictor_kernel_size (
int
, 可选, 默认3) — 持续性预测器的核大小。仅适用于语音解码器。 - var_pred_dropout (
float
, 可选, 默认0.5) — 持续性预测器的dropout概率。仅适用于语音解码器。 - vocoder_offset (
int
, 可选, 默认4) — 将单元token ID通过这个数值来偏移以考虑符号token。仅适用于语音解码器。
这是存储~SeamlessM4Tv2Model配置信息的配置类~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