目录

torchaudio.models

models 子包包含用于解决常见音频任务的模型定义。

转换器

input_dim intnum_heads: intffn_dim: intnum_layers: intdepthwise_conv_kernel_sizeint,dropoutfloat = 0.0,use_group_normbool = Falseconvolution_first:bool = False[来源]torchaudio.models.Conformer

实现 Conformer 中引入的 Conformer 架构:用于语音识别的卷积增强转换器 [1]。

参数
  • input_dimint) – 输入维度。

  • num_headsint) – 每个 Conformer 层中的注意力头数。

  • ffn_dimint) - 前馈网络的隐藏层维度。

  • num_layersint) - 要实例化的 Conformer 层数。

  • depthwise_conv_kernel_sizeint) - 每个 Conformer 层的深度卷积层的核大小。

  • dropoutfloatoptional) - 辍学概率。(默认值:0.0)

  • use_group_normbooloptional) – 使用而不是在卷积模块中使用。(默认:GroupNormBatchNorm1dFalse)

  • convolution_firstbooloptional) – 在 注意力模块。(默认:False)

例子

>>> conformer = Conformer(
>>>     input_dim=80,
>>>     num_heads=4,
>>>     ffn_dim=128,
>>>     num_layers=4,
>>>     depthwise_conv_kernel_size=31,
>>> )
>>> lengths = torch.randint(1, 400, (10,))  # (batch,)
>>> input = torch.rand(10, int(lengths.max()), input_dim)  # (batch, num_frames, input_dim)
>>> output = conformer(input, lengths)
forward(输入Torch。张量长度torch。TensorTuple[torch.Tensortorch 的 Tensor 和 Torch 的 T张量][来源]
参数
  • inputTorch.Tensor) – 形状为 (B, T, input_dim)。

  • 长度割torch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效帧数。input

返回

(Torch。Tensor、torch 的 Tensor 和 Torch 的 T张量)
torch.Tensor

输出帧, 形状为 (B, T, input_dim)

torch.Tensor

输出长度,形状为 (B,) 和第 i 个元素表示 输出帧中第 i 个批处理元素的有效帧数。

ConvTasNet 公司

num_sources: int = 2enc_kernel_size: int = 16enc_num_feats: int = 512msk_kernel_sizeint = 3msk_num_featsint = 128msk_num_hidden_feats:int = 512,msk_num_layersint = 8,msk_num_stacks:int = 3,msk_activate:str = 'sigmoid'[来源]torchaudio.models.ConvTasNet

Conv-TasNet:一个全卷积的时域音频分离网络 Conv-TasNet:超越理想的语音分离时频幅度掩码 [2]。

参数
  • num_sourcesintoptional) – 要拆分的源数。

  • enc_kernel_sizeintoptional) - 编码器/解码器的卷积核大小 <L>。

  • enc_num_featsintoptional) – 传递给掩码生成器的特征维度 <N>。

  • msk_kernel_sizeintoptional) – 掩码生成器的卷积核大小 <P>。

  • msk_num_featsintoptional) - 掩码生成器中 conv 块的输入/输出特征维度,<B, Sc>。

  • msk_num_hidden_featsintoptional) - 掩码生成器的conv块的内部特征维度<H>。

  • msk_num_layersintoptional) – 遮罩生成器的一个 conv 块 <X> 中的层数。

  • msk_num_stacksintoptional) - 掩码生成器的 conv 块数 <R>。

  • msk_activatestroptional) – 掩码输出的激活函数 (默认值: )。sigmoid

注意

此实现对应于论文中的 “non-causal” 设置。

forward(输入Torch。Tensor) → torch 的 Tensor 中。张量[来源]

执行源分离。生成音频源波形。

参数

inputTorch.Tensor) – 形状为 [batch, channel==1, frames] 的 3D Tensor

返回

形状为 [batch, channel==num_sources, frames] 的 3D 张量

返回类型

张肌

深度语音

n_feature: intn_hidden int = 2048n_class: int = 40辍学 浮点= 0.0[来源]torchaudio.models.DeepSpeech

来自 Deep Speech 的 DeepSpeech 模型架构:扩展端到端语音识别 [3]。

参数
  • n_feature – 输入特征的数量

  • n_hidden – 内部隐藏单元大小。

  • n_class – 输出类的数量

forward(xTorch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

xTorch。Tensor) - 维度的张量 (batch, channel, time, feature).

返回

维度 (batch, time, class) 的预测因子张量。

返回类型

张肌

转换器

input_dim intnum_heads: intffn_dim: intnum_layers: intsegment_length intdropout float = 0.0activation str = 'relu'left_context_length int = 0right_context_length int = 0max_memory_size int = 0weight_init_scale_strategy: 可选[str] = 'depthwise'tanh_on_mem: bool = Falsenegative_inf: 浮点= - 100000000.0[来源]torchaudio.models.Emformer

实现 Emformer 中介绍的 Emformer 架构:用于低延迟流式语音识别的基于高效 Memory Transformer 的声学模型 [4]。

参数
  • input_dimint) – 输入维度。

  • num_headsint) - 每个 Emformer 层中的注意力头数。

  • ffn_dimint) – 每个 Emformer 层的前馈网络的隐藏层维度。

  • num_layersint) - 要实例化的 Emformer 层数。

  • segment_lengthint) - 每个输入段的长度。

  • dropoutfloatoptional) - 辍学概率。(默认值:0.0)

  • activationstroptional) – 在每个 Emformer 层的 前馈网络。必须是 (“relu”, “gelu”, “silu”) 之一。(默认: “relu”)

  • left_context_lengthintoptional) - 左侧上下文的长度。(默认值:0)

  • right_context_lengthintoptional) – 正确上下文的长度。(默认值:0)

  • max_memory_sizeintoptional) – 要使用的最大内存元素数。(默认值:0)

  • weight_init_scale_strategystrNone可选) – 每层权重初始化缩放 策略。必须是 (“depthwise”, “constant”, ) 之一。(默认:“depthwise”)None

  • tanh_on_membooloptional) – 如果 ,则对内存元素应用 tanh。(默认:TrueFalse)

  • negative_inffloatoptional) – 用于注意力权重中的负无穷大的值。(默认值:-1e8)

例子

>>> emformer = Emformer(512, 8, 2048, 20, 4, right_context_length=1)
>>> input = torch.rand(128, 400, 512)  # batch, num_frames, feature_dim
>>> lengths = torch.randint(1, 200, (128,))  # batch
>>> output, lengths = emformer(input, lengths)
>>> input = torch.rand(128, 5, 512)
>>> lengths = torch.ones(128) * 5
>>> output, lengths, states = emformer.infer(input, lengths, None)
forward(输入Torch。张量长度torch。TensorTuple[torch.Tensortorch 的 Tensor 和 Torch 的 T张肌]

用于训练和非流式推理的 Forward pass。

B: 批量大小; T:批量输入帧的最大数量; D:每帧的特征维度。

参数
  • inputTorch.Tensor) – 话语帧用右上下文帧右填充,其中 形状 (B, T + right_context_length, D)。

  • 长度割torch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效话语帧数。input

返回

张肌

输出帧,形状为 (B, T, D)。

张肌

输出长度,形状为 (B,) 和第 i 个元素表示 输出帧中第 i 个批处理元素的有效帧数。

返回类型

(张量、张量)

infer(输入Torch。张量长度torch。Tensor状态可选[List[List[torch.Tensor]]] = NoneTuple[torch.Tensortorch 的 Tensor 和 Torch 的 T张量List[List[torch.张肌]]]

用于流式推理的 Forward pass。

B: 批量大小; D:每帧的特征维度。

参数
  • inputTorch.Tensor) – 话语帧用右上下文帧右填充,其中 形状 (B, segment_length + right_context_length, D)。

  • 长度割torch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效帧数。input

  • 状态List[List[torch.Tensor]] 或 None可选) – 张量列表 表示在前面的 .(默认:inferNone)

返回

张肌

输出帧,形状为 (B, segment_length, D)。

张肌

输出长度,形状为 (B,) 和第 i 个元素表示 输出帧中第 i 个批处理元素的有效帧数。

列表[List[Tensor]]

输出状态;表示内部状态的张量列表 在当前调用 .infer

返回类型

(张量, 张量, 列表[List[Tensor]])

RNN-T 型

RNNT

[来源]torchaudio.models.RNNT

递归神经网络传感器 (RNN-T) 模型。

注意

要构建模型,请使用其中一个工厂函数。

参数
forward(资料来源Torch。Tensor,source_lengthstorch。Tensor目标torch。Tensor,target_lengthstorch。张量predictor_state可选[List[List[torch.Tensor]]] = NoneTuple[torch.Tensortorch 的 Tensor 和 Torch 的 TTensortorch 的 Tensor 和 Torch 的 T张量List[List[torch.张量]]][来源]

用于训练的向前传球。

B: 批量大小; T: 最大源序列批量长度; U: 最大目标序列批量长度; D:每个源序列元素的特征维度。

参数
  • Torch.Tensor) —— 源帧序列用正确的上下文右填充,其中 形状 (B, T, D)。

  • source_lengthsTorch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效帧数。sources

  • 目标Torch。Tensor) – 目标序列,形状为 (B, U) 和每个元素 映射到目标元件。

  • target_lengthsTorch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效帧数。targets

  • predictor_stateList[List[torch.Tensor]] 或 None可选) – 张量列表 表示在前面的调用中生成的预测网络内部状态 之。(默认:forwardNone)

返回

torch.Tensor

联合网络输出,形状为 (B, 最大输出源长度, 最大输出目标长度, output_dim (目标元件的数量))。

torch.Tensor

输出源长度,形状为 (B,) 和第 i 个元素表示 对于联合网络输出中的第 i 个批次元素,沿 Dim 1 的有效元素数。

torch.Tensor

输出目标长度,形状为 (B,),第 i 个元素表示 对于联合网络输出中的第 i 个批次元素,沿 dim 2 的有效元素数。

列表[列表[Torch.张量]]

输出状态;张量列表 表示当前调用中生成的 Prediction Network 内部状态 之。forward

返回类型

(torch。Tensortorch 的 Tensor 和 Torch 的 TTensortorch 的 Tensor 和 Torch 的 T张量,List[List[torch.张肌]])

transcribe_streaming(资料来源Torch。Tensor,source_lengthstorch。张量状态可选[List[List[torch.Tensor]]]Tuple[torch.Tensortorch 的 Tensor 和 Torch 的 T张量List[List[torch.张量]]][来源]

将转录网络应用于流模式下的源。

B: 批量大小; T: 最大批量源序列段长度; D:每个源序列帧的特征维度。

参数
  • Torch.Tensor) —— 源帧序列片段用正确的上下文右填充,其中 shape (B, T + 右上下文长度, D)。

  • source_lengthsTorch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效帧数。sources

  • stateList[List[torch.Tensor]] 或 None) – 张量列表 表示在前面的调用中生成的转录网络内部状态 之。transcribe_streaming

返回

torch.Tensor

output frame sequences(输出帧序列),其中 形状 (B, T // time_reduction_stride, output_dim)。

torch.Tensor

输出长度,形状为 (B,) 和第 i 个元素表示 输出中第 i 个批次元素的有效元素数。

列表[列表[Torch.张量]]

输出状态;张量列表 表示当前调用中生成的转录网络内部状态 之。transcribe_streaming

返回类型

(torch。Tensortorch 的 Tensor 和 Torch 的 T张量,List[List[torch.张肌]])

transcribe(资料来源Torch。Tensor,source_lengthstorch。TensorTuple[torch.Tensortorch 的 Tensor 和 Torch 的 T张量][来源]

将转录网络应用于非流模式下的源。

B: 批量大小; T: 最大源序列批量长度; D:每个源序列帧的特征维度。

参数
  • Torch.Tensor) —— 源帧序列用正确的上下文右填充,其中 shape (B, T + 右上下文长度, D)。

  • source_lengthsTorch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效帧数。sources

返回

torch.Tensor

output frame sequences(输出帧序列),其中 形状 (B, T // time_reduction_stride, output_dim)。

torch.Tensor

输出长度,形状为 (B,) 和第 i 个元素表示 输出帧序列中第 i 个批次元素的有效元素数。

返回类型

(torch。Tensortorch 的 Tensor 和 Torch 的 T张肌)

predict(目标Torch。Tensor,target_lengths:torch。张量状态可选[List[List[torch.Tensor]]]Tuple[torch.Tensortorch 的 Tensor 和 Torch 的 T张量List[List[torch.张量]]][来源]

将预测网络应用于目标。

B: 批量大小; U: 最大目标序列批量长度; D: 每个目标序列帧的特征维度。

参数
  • 目标Torch。Tensor) – 目标序列,形状为 (B, U) 和每个元素 映射到目标元件,即在 [0, num_symbols) 范围内。

  • target_lengthsTorch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效帧数。targets

  • stateList[List[torch.Tensor]] 或 None) – 张量列表 表示在前面的调用中生成的内部状态 之。predict

返回

torch.Tensor

输出帧序列,形状为 (B、U、output_dim)。

torch.Tensor

输出长度,形状为 (B,) 和第 i 个元素表示 输出中第 i 个批次元素的有效元素数。

列表[列表[Torch.张量]]

输出状态;张量列表 表示在当前调用 .predict

返回类型

(torch。Tensortorch 的 Tensor 和 Torch 的 T张量,List[List[torch.张肌]])

join(source_encodingsTorch。Tensor,source_lengthstorch。Tensor,target_encodings:torch。Tensor,target_lengthstorch。TensorTuple[torch.Tensortorch 的 Tensor 和 Torch 的 TTensortorch 的 Tensor 和 Torch 的 T张量][来源]

将联合网络应用于源编码和目标编码。

B: 批量大小; T: 最大源序列批量长度; U: 最大目标序列批量长度; D:每个源序列和目标序列编码的维度。

参数
  • source_encodingsTorch。Tensor) —— 源编码序列,其中 形状 (B, T, D)。

  • source_lengthsTorch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效序列长度。source_encodings

  • target_encodingsTorch。Tensor) – 形状为 (B, U, D) 的目标编码序列。

  • target_lengthsTorch。Tensor) – 形状为 (B,) 且第 i 个元素表示 中第 i 个批次元素的有效序列长度。target_encodings

返回

torch.Tensor

联合网络输出,形状为 (B, T, U, output_dim)。

torch.Tensor

输出源长度,形状为 (B,) 和第 i 个元素表示 对于联合网络输出中的第 i 个批次元素,沿 Dim 1 的有效元素数。

torch.Tensor

输出目标长度,形状为 (B,),第 i 个元素表示 对于联合网络输出中的第 i 个批次元素,沿 dim 2 的有效元素数。

返回类型

(torch。Tensortorch 的 Tensor 和 Torch 的 TTensortorch 的 Tensor 和 Torch 的 T张肌)

工厂功能

emformer_rnnt_model

torchaudio.models.emformer_rnnt_model(*input_dimintencoding_dim:intnum_symbolsintsegment_length:intright_context_长度int,time_reduction_input_dim:int,time_reduction_strideint,transformer_num_heads:inttransformer_ffn_dim:int,transformer_num_layers:int,transformer_dropoutfloat,transformer_activation:strtransformer_left_context_length:inttransformer_max_memory_sizeinttransformer_weight_init_scale_strategy:strtransformer_tanh_on_mem 布尔symbol_embedding_dimintnum_lstm_layers:intlstm_layer_norm:布尔lstm_layer_norm_epsilon float,lstm_dropoutfloattorchaudio.models.rnnt.RNNT [源]

构建基于 Emformer 的递归神经网络传感器 (RNN-T) 模型。

注意

对于非流式推理,预期是在输入时调用 transcribe 序列与 right_context_length 帧右连接。

对于流式推理,预期是调用 transcribe_streaming 在包含 segment_length 帧的 Input 块上,这些帧与 right_context_length 帧右连接。

参数
  • input_dimint) – 传递给转录网络的输入序列帧的维度。

  • encoding_dimint) – 转录和预测网络生成的编码的维度 传递给联合网络。

  • num_symbolsint) – 目标 Tokens 集的基数。

  • segment_lengthint) – 以帧数表示的输入段长度。

  • right_context_lengthint) – 以帧数表示的右侧上下文的长度。

  • time_reduction_input_dimint) – 将输入序列中的每个元素缩放到的维度 在应用时间减少块之前。

  • time_reduction_strideint) - 减少输入序列长度的因子。

  • transformer_num_headsint) - 每个 Emformer 层中的注意力头数。

  • transformer_ffn_dimint) - 每个 Emformer 层的前馈网络的隐藏层维度。

  • transformer_num_layersint) - 要实例化的 Emformer 层数。

  • transformer_left_context_lengthint) – Emformer 考虑的左上下文长度。

  • transformer_dropout (float) - 前者 dropout probability (缓者)的 dropout probability (暂缓者辍学概率)。

  • transformer_activationstr) – 在每个 Emformer 层的 前馈网络。必须是 (“relu”, “gelu”, “silu”) 之一。

  • transformer_max_memory_sizeint) – 要使用的最大内存元素数。

  • transformer_weight_init_scale_strategystr) – 每层权重初始化缩放 策略。必须是 (“depthwise”, “constant”, ) 之一。None

  • transformer_tanh_on_membool) – 如果 ,则对内存元素应用 tanh。True

  • symbol_embedding_dimint) – 每个目标标记嵌入的维度。

  • num_lstm_layersint) - 要实例化的 LSTM 层数。

  • lstm_layer_normbool) – 如果 ,则为 LSTM 层启用层标准化。True

  • lstm_layer_norm_epsilonfloat) – 在 LSTM 层归一化层中使用的 epsilon 值。

  • lstm_dropoutfloat) - LSTM dropout 概率。

返回

Emformer RNN-T 模型。

返回类型

RNNT

emformer_rnnt_base

torchaudio.models.emformer_rnnt_base(num_symbols:inttorchaudio.models.rnnt.RNNT[来源]

构建 Emformer RNN-T 模型的基本版本。

参数

num_symbolsint) – 目标令牌词典的大小。

返回

Emformer RNN-T 模型。

返回类型

RNNT

译码器

RNNTBeam搜索

模型torchaudio.models.rnnt.RNNT空白int温度浮点 = 1.0,hypo_sort_key 可选[Callable[[Tuple[List[int] torch.张量List[List[torch.张量]] 浮点]], 浮点]] = step_max_tokens: int = 100[来源]torchaudio.models.RNNTBeamSearch

用于 RNN-T 模型的波束搜索解码器。

参数
  • modelRNNT) – 要使用的 RNN-T 模型。

  • - 空白int) - 词汇表中空白标记的索引。

  • Temperaturefloat, optional) (温度 (floatoptional) ) – 应用于联合网络输出的温度。 值越大,生成的样本越均匀。(默认值:1.0)

  • hypo_sort_keyCallable[[Hypothesis]float] or Noneoptional) – 计算分数的可调用 对于给定的假设,以对假设进行排名。如果 ,则默认为返回 按标记序列长度标准化的假设分数。(默认值:无)None

  • step_max_tokensintoptional) – 每个输入时间步长要发出的最大令牌数。(默认值:100)

教程使用:RNNTBeamSearch
forward(输入Torch。Tensor长度torch。张量beam_width intList[Tuple[List[int] torch.张量List[List[torch.张量]]浮点]][来源]

对给定的输入序列执行光束搜索。

T: 帧数; D:每帧的特征维度。

参数
  • inputTorch.Tensor) – 形状为 (T, D) 或 (1, T, D) 的输入帧序列。

  • 长度Torch。Tensor) – 输入中的有效帧数 sequence,形状为 () 或 (1,)。

  • beam_widthint) – 搜索期间使用的光束大小。

返回

top- 通过 Beam 搜索找到的假设。beam_width

返回类型

列表[假设]

infer(输入Torch。Tensor长度torch。张量beam_width:int状态可选[List[List[torch.Tensor]]] = Nonehypothesis 可选[Tuple[List[int] torch.张量List[List[torch.张量]] float]] = None) → Tuple[List[Tuple[List[int]Torch。张量List[List[torch.Tensor]] float]], List[List[torch.张量]]][来源]

在流模式下对给定的输入序列执行光束搜索。

T: 帧数; D:每帧的特征维度。

参数
  • inputTorch.Tensor) – 形状为 (T, D) 或 (1, T, D) 的输入帧序列。

  • 长度Torch。Tensor) – 输入中的有效帧数 sequence,形状为 () 或 (1,)。

  • beam_widthint) – 搜索期间使用的光束大小。

  • stateList[List[torch.Tensor]] 或 None可选) – 张量列表 表示前面生成的转录网络内部状态 调用。(默认:None)

  • hypothesisHypothesis or None) – 从先前调用到种子的假设 搜索方式。(默认:None)

返回

列表[假设]

top- 通过 Beam 搜索找到的假设。beam_width

列表[列表[Torch.张量]]

表示转录网络的张量列表 internal 状态。

返回类型

(列表[假设],列表[列表[Torch.张肌]])

假设

torchaudio.models.Hypothesis

RNN-T 波束搜索译码器生成的假设, 表示为 (tokens, prediction network output, prediction network state, score) 的元组。

Tuple[List[int], torch 的别名。张量,List[List[torch.Tensor]], 浮点数]

Tacotron2 (塔科特龙2)

mask_padding bool = Falsen_mels int = 80n_symbol: int = 148n_frames_per_step: int = 1symbol_embedding_dim: int = 512encoder_embedding_dim: int = 512,encoder_n_convolutionint = 3,encoder_kernel_size:int = 5,decoder_rnn_dim: int = 1024,decoder_max_stepint = 2000,decoder_dropoutfloat = 0.1,decoder_early_stopping:bool = True,attention_rnn_dim:int = 1024,attention_hidden_dimint = 128attention_location_n_filterint = 32attention_location_kernel_size:int = 31attention_dropout:浮点型 = 0.1,prenet_dimint = 256,postnet_n_convolutionint = 5,postnet_kernel_size: int = 5,postnet_embedding_dim:int = 512,gate_thresholdfloat = 0.5[来源]torchaudio.models.Tacotron2

Tacotron2 模型基于 Nvidia 的实现。

最初的实现是在 Natural TTS Synthesis 中引入的,通过在 Mel Spectrogram Predictions 上调节 WaveNet [5]。

参数
  • mask_paddingbooloptional) – 使用掩码填充 (Default: )。False

  • n_melsintoptional) – mel bins 的数量 (默认值: )。80

  • n_symbolintoptional) – 输入文本的元件数 (Default: )。148

  • n_frames_per_stepintoptional) – 每步处理的帧数,仅支持 1 个(默认值:)。1

  • symbol_embedding_dimintoptional) – 输入嵌入维度 (Default: )。512

  • encoder_n_convolutionintoptional) - 编码器卷积的数量 (默认值: )。3

  • encoder_kernel_sizeintoptional) – 编码器内核大小 (Default: )。5

  • encoder_embedding_dimintoptional) – 编码器嵌入维度 (Default: )。512

  • decoder_rnn_dimintoptional) – 解码器 LSTM 中的单元数 (默认值: )。1024

  • decoder_max_stepintoptional) – 输出梅尔频谱图的最大数量 (默认值: )。2000

  • decoder_dropoutfloatoptional) - 解码器 LSTM 的 Dropout 概率 (默认值: )。0.1

  • decoder_early_stoppingbooloptional) – 完成所有样本后继续解码 (Default: )。True

  • attention_rnn_dimintoptional) – 关注 LSTM 中的单位数 (默认值: )。1024

  • attention_hidden_dimintoptional) – 注意力隐藏表示的维度 (Default: )。128

  • attention_location_n_filterintoptional) – 注意力模型的筛选条件数量 (Default: )。32

  • attention_location_kernel_sizeintoptional) – 注意力模型的内核大小 (Default: )。31

  • attention_dropoutfloatoptional) – 注意力 LSTM 的 dropout probability (默认值: )。0.1

  • prenet_dimintoptional) – prenet 层中的 ReLU 单元数 (默认值: )。256

  • postnet_n_convolutionintoptional) - 后网卷积的数量 (默认值: )。5

  • postnet_kernel_sizeintoptional) – Postnet kernel size (默认值: )。5

  • postnet_embedding_dimintoptional) – 后网嵌入维度 (Default: )。512

  • gate_thresholdfloatoptional) – 停止令牌的概率阈值 (Default: )。0.5

教程使用:Tacotron2
forward(tokens torch 的 Torch 中。Tensor,token_lengths:torch。Tensor,mel_specgram:torch。张量mel_specgram_lengths:torch。TensorTuple[torch.Tensortorch 的 Tensor 和 Torch 的 TTensortorch 的 Tensor 和 Torch 的 TTensortorch 的 Tensor 和 Torch 的 T张量][来源]

通过 Tacotron2 模型传递输入。这是在老师 强制模式,一般用于训练。

输入应用 0 填充到 最大长度 。 输入应用 0 填充到 最大长度 。tokenstoken_lengthsmel_specgrammel_specgram_lengths

参数
  • tokensTensor) – 形状为 (n_batch,最大值为 token_lengths) 的 Tacotron2 的输入令牌。

  • token_lengthsTensor) – 形状为 (n_batch, ) 的每个样本的有效长度。tokens

  • mel_specgramTensor) – 目标梅尔频谱图 形状为 (n_batch、n_mels、最大值 mel_specgram_lengths)。

  • mel_specgram_lengthsTensor) - 形状为 (n_batch, ) 的每个梅尔频谱图的长度。

返回

张肌

Postnet 之前的 Mel 频谱图,形状为 (n_batch, n_mels, max of mel_specgram_lengths)。

张肌

Postnet 之后的梅尔频谱图,形状为 (n_batch, n_mels, max of mel_specgram_lengths)。

张肌

每个时间步的 stop token 的输出,形状为 (n_batch,最大值为 mel_specgram_lengths)。

张肌

来自解码器的注意力权重序列 形状(n_batch、最大 mel_specgram_lengths、最大 token_lengths)。

返回类型

[张量、张量、张量、张量]

infer(tokens torch 的 Torch 中。Tensorlengths 可选[torch.Tensor] = NoneTuple[torch.Tensortorch 的 Tensor 和 Torch 的 TTensortorch 的 Tensor 和 Torch 的 T张量][来源]

使用 Tacotron2 进行推理。输入是一批编码的 句子 () 及其相应的长度 ()。这 output 是生成的 MEL 频谱图、其相应的长度,以及 来自 Decoder 的 attention 权重。tokenslengths

输入标记应用 0 填充 max 长度 。lengths

参数
  • tokensTensor) – 形状为 (n_batch,最大长度) 的 Tacotron2 的输入令牌。

  • lengthsTensorNone可选) – 形状为 (n_batch, ) 的每个样本的有效长度。 如果 ,则假定所有标记都有效。违约:tokensNoneNone

返回

张肌

形状为 (n_batch、n_mels、最大值 mel_specgram_lengths) 的预测梅尔频谱图。

张肌

形状为 (n_batch, ) 的预测梅尔频谱图的长度。

张肌

来自解码器的注意力权重序列,形状为 (n_batch,最大 mel_specgram_lengths,最大长度)。

返回类型

(张量、张量、张量)

Wav2字母

num_classes int = 40input_type str = 'waveform'num_features: int = 1[来源]torchaudio.models.Wav2Letter

来自 Wav2Letter 的 Wav2Letter 模型架构:基于 ConvNet 的端到端语音 识别系统 [6]。

\(\text{padding} = \frac{\text{ceil}(\text{kernel} - \text{stride})}{2}\)

参数
  • num_classesintoptional) – 要分类的类数。(默认:40)

  • input_typestroptional) – Wav2Letter 可以用作输入: , 或 (Default: )。waveformpower_spectrummfccwaveform

  • num_featuresintoptional) – 网络将接收的输入特征数 (Default: )。1

forward(xTorch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

xTorch。Tensor) - 维度 (batch_size, num_features, input_length) 的张量。

返回

维度 (batch_size, number_of_classes, input_length) 的预测因子张量。

返回类型

张肌

Wav2Vec2.0 / HuBERT

Wav2Vec2模型

class feature_extractor: torch.nn.Moduleencoder torch.nn.Moduleaux 可选[torch.nn.Module] = [来源]torchaudio.models.Wav2Vec2Model

wav2vec 2.0 中使用的编码器模型 [7]。

注意

要构建模型,请使用其中一个工厂函数。

参数
  • feature_extractortorch.nn.Module) – 从原始音频 Tensor 中提取特征向量的特征提取器。

  • encodertorch.nn.Module) – 将音频特征转换为概率序列的编码器 标签上的分布(负对数似然)。

  • auxtorch.nn.ModuleNone可选) – 辅助模块。如果提供,则 encoder 的输出将传递到此模块。

教程使用:Wav2Vec2Model
extract_features(waveforms(波形):Torch(Torch)。Tensorlengths 可选[torch.张量] = num_layers可选[int] = Tuple[List[torch.Tensor]可选[torch.张量]][来源]

从原始波形中提取特征向量

这将返回 编码器中的 transformer 块。

参数
  • waveformsTensor) - 形状为 (batch, frames) 的音频张量。

  • lengthsTensorNone可选) – 指示批处理中每个音频的有效长度。 形状:(batch, )。 当 包含不同时长的音频时, 通过提供参数,模型将计算 相应的有效输出长度,并在 transformer 注意层。 如果 ,则假定整个音频波形 length 有效。waveformslengthsNone

  • num_layersintNone可选) – 如果给定,则限制要通过的中间层的数量。 提供 1 将在完成 1 后停止计算 中间层。如果未给出,则所有 返回中间层。

返回

张量列表

请求图层中的要素。 每个 Tensor 的形状为:(batch、time frame、feature dimension)

Tensor 或 None

如果提供了 argument,则返回形状为 (batch, ) 的 Tensor。 它表示每个特征 Tensor 的时间轴上的有效长度。lengths

返回类型

(List[Tensor], 可选 [Tensor])

forward(waveforms(波形):Torch(Torch)。Tensorlengths 可选[torch.Tensor] = NoneTuple[torch.Tensor可选[torch.张量]][来源]

计算标签上的概率分布序列。

参数
  • waveformsTensor) - 形状为 (batch, frames) 的音频张量。

  • lengthsTensorNone可选) – 指示批处理中每个音频的有效长度。 形状:(batch, )。 当 包含不同时长的音频时, 通过提供参数,模型将计算 相应的有效输出长度,并在 transformer 注意层。 如果 ,则假定 中的所有音频都具有有效长度。违约:。waveformslengthsNonewaveformsNone

返回

张肌

标签上的概率分布序列(以 logit 为单位)。 形状:(batch, frames, num labels)。

Tensor 或 None

如果提供了 argument,则返回形状为 (batch, ) 的 Tensor。 它表示输出 Tensor 的时间轴上的有效长度。lengths

返回类型

(Tensor, 可选[Tensor])

HuBERTPretrain模型

wav2vec2 torchaudio.models.wav2vec2.model.Wav2Vec2Modelmask_generator: torch.nn.modules.module.Module, logit_generator: torch.nn.modules.module.Module, feature_grad_mult 可选[float][来源]torchaudio.models.HuBERTPretrainModel

HuBERT 预训练模型,用于从头开始训练。

注意

要构建模型,请使用

[hubert_pretrain_base、hubert_pretrain_large、hubert_pretrain_xlarge]。

参数
  • feature_extractortorch.nn.Module) – 从原始音频 Tensor 中提取特征向量的特征提取器。

  • encodertorch.nn.Module) – 将音频特征转换为概率序列的编码器 标签上的分布(负对数似然)。

  • mask_generatortorch.nn.Module) – 掩码生成器,用于在训练期间生成用于掩码预测的掩码。

  • logit_generatortorch.nn.Module) – 预测掩码和未掩码输入的 Logit 生成器。

  • feature_grad_multfloatNone) – 缩放卷积特征提取层梯度的因子。 如果 ,则特征提取层的梯度不受影响。 比例因子不会影响前向通道。None

forward(waveforms(波形):Torch(Torch)。Tensor标签torch。Tensor,audio_lengths可选[torch.Tensor] = NoneTuple[torch.Tensor可选[torch.张量]][来源]

计算标签上的概率分布序列。

参数
  • waveformsTensor) - 维度为 [batch, frames] 的音频张量。

  • labelsTensor) – 用于预训练的标签。维度为 [batch, frames] 的 Tensor。

  • audio_lengthsTensorNone可选) – 指示批处理中每个音频的有效长度。 形状:[batch, ]。 当 包含不同时长的音频时, 通过提供参数,模型将计算 相应的有效输出长度,并在 transformer 注意层。 如果 ,则假定 中的所有音频都具有有效长度。违约:。waveformslengthsNonewaveformsNone

返回

张肌

概率分布的掩码序列(在 logit 中)。 形状:(masked_frames,num 个标签)。

张肌

未掩蔽的概率分布序列(在 logit 中)。 形状:(unmasked_frames,num 个标签)。

张肌

额外罚金损失的特征平均值。 形状:(1,)。

返回类型

(张量、张量、张量)

工厂功能

wav2vec2_model

torchaudio.models.wav2vec2_model(extractor_mode: strextractor_conv_layer_config: 可选[List[元组[int int int]]]extractor_conv_biasboolencoder_embed_dimintencoder_projection_dropoutfloatencoder_pos_conv_内核intencoder_pos_conv_groups:intencoder_num_layersintencoder_num_heads:intencoder_attention_dropout:浮点数encoder_ff_interm_features:整数encoder_ff_interm_dropout浮点数encoder_dropout浮点encoder_layer_norm_firstboolencoder_layer_dropfloataux_num_outOptional[int]torchaudio.models.Wav2Vec2Model[来源]

构建自定义 Wav2Vec2Model

注意

下面的 “feature extractor” 对应于原始实现中的 ConvFeatureExtractionModel。 这在 wav2vec 2.0 [7] 论文中称为“(卷积)特征编码器”。fairseq

下面的 “encoder” 对应于 TransformerEncoder, 这在论文中被称为 “Transformer”。

参数
  • extractor_modestr) –

    特征提取器的操作模式。 有效值为 或 。 如果 ,则应用单个规范化 在第一个 convolution 块中。否则,所有卷积 块将进行层标准化。"group_norm""layer_norm""group_norm"

    此选项对应于 from 。extractor_modefairseq

  • extractor_conv_layer_configpython:integer tuples 列表None) –

    特征提取器中的卷积层配置。 卷积配置列表 / 即[(output_channel, kernel_size, stride), ...]

    如果提供,则使用以下默认值。None

    [
      (512, 10, 5),
      (512, 3, 2),
      (512, 3, 2),
      (512, 3, 2),
      (512, 3, 2),
      (512, 2, 2),
      (512, 2, 2),
    ]
    

    此选项对应于 from 。conv_feature_layersfairseq

  • extractor_conv_bias布尔值) –

    是否为每个卷积运算包含偏差项。

    此选项对应于 from 。conv_biasfairseq

  • encoder_embed_dimint) –

    编码器中嵌入的维度。

    此选项对应于 from 。encoder_embed_dimfairseq

  • encoder_projection_dropoutfloat) –

    投影输入特征后应用的 dropout 概率 自。encoder_embed_dim

    此选项对应于 from 。dropout_inputfairseq

  • encoder_pos_conv_kernelint) –

    卷积位置嵌入的核大小。

    此选项对应于 from 。conv_posfairseq

  • encoder_pos_conv_groupsint) –

    卷积位置嵌入的组数。

    此选项对应于 from 。conv_pos_groupsfairseq

  • encoder_num_layersint) –

    transformer block 中的自注意力层数。

    此选项对应于 from 。encoder_layersfairseq

  • encoder_num_headsint) –

    自我注意层中的头部数。

    此选项对应于 from 。encoder_attention_headsfairseq

  • encoder_attention_dropoutfloat) –

    在自我注意层中 softmax 之后应用的 dropout 概率。

    此选项对应于 from 。attention_dropoutfairseq

  • encoder_ff_interm_featuresint) –

    前馈层中隐藏特征的维度。

    此选项对应于 from 。encoder_ffn_embed_dimfairseq

  • encoder_ff_interm_dropoutfloat) –

    前馈层中应用的 dropout 概率。

    此选项与 from 对应。activation_dropoutfairseq

  • encoder_dropoutfloat) –

    在前馈层末尾应用的 dropout 概率。

    此选项对应于 from 。dropoutfairseq

  • encoder_layer_norm_first布尔值) –

    控制变压器层和每个编码器层的层范数顺序。 如果为 True,则在变压器层中,在馈送特征之前应用层范数 到编码器层。在编码器层中,在编码器层之前和之后应用两层范数 自我关注。 如果为 False,则在变压器层中,在馈送特征后应用层范数 到编码器层。在编码器层中,在 self 之后应用两层范数 注意,前馈和后馈。

    此选项对应于 from 。layer_norm_firstfairseq

  • encoder_layer_drop浮点数) –

    在训练期间丢弃每个编码器层的概率。

    此选项对应于 from 。layerdropfairseq

  • aux_num_outintNone) – 如果提供,请在编码器顶部附加一个额外的线性层,该层可以是 用于微调。

返回

生成的模型。

返回类型

Wav2Vec2模型

wav2vec2_base

torchaudio.models.wav2vec2_base(encoder_projection_dropout:浮点= 0.1,encoder_attention_dropout浮点= 0.1,encoder_ff_interm_dropout浮点数 = 0.1encoder_dropout: 浮点= 0.1encoder_layer_drop 浮点= 0.1aux_num_out: 可选[int] = Nonetorchaudio.models.Wav2Vec2Model[来源]

使用 wav2vec 2.0 的“基础”架构构建 Wav2Vec2Model [7]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • aux_num_outintNone可选) – 请参阅

返回

生成的模型。

返回类型

Wav2Vec2模型

wav2vec2_large

torchaudio.models.wav2vec2_large(encoder_projection_dropout:浮点= 0.1,encoder_attention_dropout浮点= 0.1,encoder_ff_interm_dropout浮点数 = 0.1encoder_dropout: 浮点= 0.1encoder_layer_drop 浮点= 0.1aux_num_out: 可选[int] = Nonetorchaudio.models.Wav2Vec2Model[来源]

使用 wav2vec 2.0 的“大型”架构构建 Wav2Vec2Model [7]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • aux_num_outintNone可选) – 请参阅

返回

生成的模型。

返回类型

Wav2Vec2模型

wav2vec2_large_lv60k

torchaudio.models.wav2vec2_large_lv60k(encoder_projection_dropout:浮点= 0.1,encoder_attention_dropout浮点= 0.0,encoder_ff_interm_dropout浮点数 = 0.1encoder_dropout: 浮点= 0.0encoder_layer_drop 浮点= 0.1aux_num_out: 可选[int] = Nonetorchaudio.models.Wav2Vec2Model[来源]

使用 wav2vec 2.0 的“大型 lv-60k”架构构建 Wav2Vec2Model [7]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • aux_num_outintNone可选) – 请参阅

返回

生成的模型。

返回类型

Wav2Vec2模型

hubert_base

torchaudio.models.hubert_base(encoder_projection_dropout:浮点= 0.1,encoder_attention_dropout浮点= 0.1,encoder_ff_interm_dropout浮点数 = 0.0,encoder_dropout浮点= 0.1,encoder_layer_drop浮点= 0.05,aux_num_out 可选[int] = Nonetorchaudio.models.Wav2Vec2Model[来源]

使用 HuBERT 的“基础”架构构建 HuBERT 模型 [8]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • aux_num_outintNone可选) – 请参阅

返回

生成的模型。

返回类型

Wav2Vec2模型

hubert_large

torchaudio.models.hubert_large(encoder_projection_dropout:浮点= 0.0,encoder_attention_dropout浮点= 0.0,encoder_ff_interm_dropout浮点数 = 0.0,encoder_dropout浮点= 0.0,encoder_layer_drop浮点= 0.0,aux_num_out 可选[int] = Nonetorchaudio.models.Wav2Vec2Model[来源]

使用 HuBERT 的“大型”架构构建 HuBERT 模型 [8]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • aux_num_outintNone可选) – 请参阅

返回

生成的模型。

返回类型

Wav2Vec2模型

hubert_xlarge

torchaudio.models.hubert_xlarge(encoder_projection_dropout:浮点= 0.0,encoder_attention_dropout浮点= 0.0,encoder_ff_interm_dropout浮点数 = 0.0,encoder_dropout浮点= 0.0,encoder_layer_drop浮点= 0.0,aux_num_out 可选[int] = Nonetorchaudio.models.Wav2Vec2Model[来源]

使用 HuBERT 的“超大”架构构建 HuBERT 模型 [8]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • aux_num_outintNone可选) – 请参阅

返回

生成的模型。

返回类型

Wav2Vec2模型

hubert_pretrain_model

torchaudio.models.hubert_pretrain_model(extractor_mode: strextractor_conv_layer_config: 可选[List[元组[int int int]]]extractor_conv_biasboolencoder_embed_dimintencoder_projection_dropoutfloatencoder_pos_conv_内核intencoder_pos_conv_groups:intencoder_num_layersintencoder_num_heads:intencoder_attention_dropout:浮点数encoder_ff_interm_features:整数encoder_ff_interm_dropout浮点数encoder_dropout浮点encoder_layer_norm_firstboolencoder_layer_dropfloatmask_probfloatmask_selectionstrmask_other浮点数mask_lengthintno_mask_overlapboolmask_min_space:intmask_channel_prob:float,mask_channel_selection:str,mask_channel_otherfloat,mask_channel_length:intno_mask_channel_overlapboolmask_channel_min_spaceintskip_masked boolskip_nomask: boolnum_classes: intfinal_dim: inttorchaudio.models.HuBERTPretrainModel[来源]

构建自定义 HuBERTPretrainModel 用于从头开始训练

注意

下面的 “feature extractor” 对应于原始实现中的 ConvFeatureExtractionModel。 这在 wav2vec 2.0 [7] 论文中称为“(卷积)特征编码器”。fairseq

下面的 “encoder” 对应于 TransformerEncoder, 这在论文中被称为 “Transformer”。

参数
  • extractor_modestr) –

    特征提取器的操作模式。 有效值为 或 。 如果 ,则应用单个规范化 在第一个 convolution 块中。否则,所有卷积 块将进行层标准化。"group_norm""layer_norm""group_norm"

    此选项对应于 from 。extractor_modefairseq

  • extractor_conv_layer_configpython:integer tuples 列表None) –

    特征提取器中的卷积层配置。 卷积配置列表 / 即[(output_channel, kernel_size, stride), ...]

    如果提供,则使用以下默认值。None

    [
      (512, 10, 5),
      (512, 3, 2),
      (512, 3, 2),
      (512, 3, 2),
      (512, 3, 2),
      (512, 2, 2),
      (512, 2, 2),
    ]
    

    此选项对应于 from 。conv_feature_layersfairseq

  • extractor_conv_bias布尔值) –

    是否为每个卷积运算包含偏差项。

    此选项对应于 from 。conv_biasfairseq

  • encoder_embed_dimint) –

    编码器中嵌入的维度。

    此选项对应于 from 。encoder_embed_dimfairseq

  • encoder_projection_dropoutfloat) –

    投影输入特征后应用的 dropout 概率 自。encoder_embed_dim

    此选项对应于 from 。dropout_inputfairseq

  • encoder_pos_conv_kernelint) –

    卷积位置嵌入的核大小。

    此选项对应于 from 。conv_posfairseq

  • encoder_pos_conv_groupsint) –

    卷积位置嵌入的组数。

    此选项对应于 from 。conv_pos_groupsfairseq

  • encoder_num_layersint) –

    transformer block 中的自注意力层数。

    此选项对应于 from 。encoder_layersfairseq

  • encoder_num_headsint) –

    自我注意层中的头部数。

    此选项对应于 from 。encoder_attention_headsfairseq

  • encoder_attention_dropoutfloat) –

    在自我注意层中 softmax 之后应用的 dropout 概率。

    此选项对应于 from 。attention_dropoutfairseq

  • encoder_ff_interm_featuresint) –

    前馈层中隐藏特征的维度。

    此选项对应于 from 。encoder_ffn_embed_dimfairseq

  • encoder_ff_interm_dropoutfloat) –

    前馈层中应用的 dropout 概率。

    此选项与 from 对应。activation_dropoutfairseq

  • encoder_dropoutfloat) –

    在前馈层末尾应用的 dropout 概率。

    此选项对应于 from 。dropoutfairseq

  • encoder_layer_norm_first布尔值) –

    控制变压器层和每个编码器层的层范数顺序。 如果为 True,则在变压器层中,在馈送特征之前应用层范数 到编码器层。在编码器层中,在编码器层之前和之后应用两层范数 自我关注。 如果为 False,则在变压器层中,在馈送特征后应用层范数 到编码器层。在编码器层中,在 self 之后应用两层范数 注意,前馈和后馈。

    此选项对应于 from 。layer_norm_firstfairseq

  • encoder_layer_drop浮点数) –

    在训练期间丢弃每个编码器层的概率。

    此选项对应于 from 。layerdropfairseq

  • mask_prob浮点数) –

    选择每个标记作为要屏蔽的 span 的开始的概率。这将乘以 时间步数除以掩码跨度的长度,以掩盖所有元素的大约此百分比。 但是,由于重叠,实际数量会更小(除非 no_overlap 为 True)。

    此选项对应于 from 。mask_probfairseq

  • mask_selectionstr) –

    如何选择蒙版长度。选项:[、]。staticuniformnormalpoisson

    此选项对应于 from 。mask_selectionfairseq

  • mask_other浮点数) –

    辅助掩码参数(用于更复杂的分布)。

    此选项对应于 from 。mask_otherfairseq

  • mask_lengthint) –

    遮罩的长度。

    此选项对应于 from 。mask_lengthfairseq

  • no_mask_overlap布尔值) –

    是否允许蒙版重叠。

    此选项对应于 from 。no_mask_overlapfairseq

  • mask_min_spaceint) –

    跨度之间的最小间距(如果未启用重叠)。

    此选项对应于 from 。mask_min_spacefairseq

  • mask_channel_prob

    (浮点): 将特征替换为 0 的概率。

    此选项对应于 from 。mask_channel_probfairseq

  • mask_channel_selectionstr) –

    如何选择通道蒙版的蒙版长度。选项:[、]。staticuniformnormalpoisson

    此选项对应于 from 。mask_channel_selectionfairseq

  • mask_channel_other浮点数) –

    通道掩码的 Secondary mask 参数(用于更复杂的分布)。

    此选项对应于 from 。mask_channel_otherfairseq

  • mask_channel_length整数) –

    通道遮罩的跨度之间的最小间距(如果未启用重叠)。

    此选项对应于 from 。mask_channel_lengthfairseq

  • no_mask_channel_overlap布尔值) –

    是否允许通道蒙版重叠。

    此选项对应于 from 。no_mask_channel_overlapfairseq

  • mask_channel_min_spaceint) –

    通道遮罩的跨度之间的最小间距(如果未启用重叠)。

    此选项对应于 from 。mask_channel_min_spacefairseq

  • skip_masked布尔值) –

    如果为 True,则跳过计算掩码帧的损失。

    此选项对应于 from 。skip_maskedfairseq

  • skip_nomask布尔值) –

    如果为 True,则跳过计算未屏蔽帧的损失。

    此选项对应于 from 。skip_nomaskfairseq

  • num_classesint) – 标签中的类数。

  • final_dimint) –

    将最终表示和目标投影到final_dim

    此选项对应于 from 。final_dimfairseq

  • feature_grad_multfloatNone) –

    缩放卷积特征提取层梯度的因子。 比例因子不会影响前向通道。

    此选项对应于 from 。feature_grad_multfairseq

返回

生成的模型。

返回类型

HuBERTPretrain模型

hubert_pretrain_base

torchaudio.models.hubert_pretrain_base(encoder_projection_dropout:浮点= 0.1,encoder_attention_dropout浮点= 0.1,encoder_ff_interm_dropout浮点数 = 0.0,encoder_dropout浮点= 0.1,encoder_layer_drop浮点= 0.05,mask_prob 浮点= 0.8,mask_channel_prob浮点= 0.0,mask_channel_lengthint = 10,feature_grad_mult 可选[float] = 0.1num_classes: int = 100torchaudio.models.HuBERTPretrainModel [来源]

使用 HuBERT 的 “base” 架构构建 HuBERTPretrainModel 模型 [8]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • mask_probfloat) – 请参阅

  • mask_channel_probfloat) – 请参阅

  • mask_channel_lengthint) – 请参阅

  • feature_grad_multfloatNone) – 请参阅

  • num_classesintoptional) – 请参阅

返回

生成的模型。

返回类型

HuBERTPretrain模型

hubert_pretrain_large

torchaudio.models.hubert_pretrain_large(encoder_projection_dropout:浮点= 0.0,encoder_attention_dropout浮点= 0.0,encoder_ff_interm_dropout浮点数 = 0.0,encoder_dropout浮点= 0.0,encoder_layer_drop浮点= 0.0,mask_prob 浮点= 0.8,mask_channel_prob浮点= 0.0,mask_channel_lengthint = 10,feature_grad_mult 可选[float] = None) → torchaudio.models.HuBERTPretrainModel[来源]

使用 HuBERT 的“大型”架构构建 HuBERTPretrainModel 模型以进行预训练 [8]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • mask_probfloat) – 请参阅

  • mask_channel_probfloat) – 请参阅

  • mask_channel_lengthint) – 请参阅

  • feature_grad_multfloatNone) – 请参阅

返回

生成的模型。

返回类型

HuBERTPretrain模型

hubert_pretrain_xlarge

torchaudio.models.hubert_pretrain_xlarge(encoder_projection_dropout:浮点= 0.0,encoder_attention_dropout浮点= 0.0,encoder_ff_interm_dropout浮点数 = 0.0,encoder_dropout浮点= 0.0,encoder_layer_drop浮点= 0.0,mask_prob 浮点= 0.8,mask_channel_prob浮点= 0.0,mask_channel_lengthint = 10,feature_grad_mult 可选[float] = None) → torchaudio.models.HuBERTPretrainModel[来源]

使用 HuBERT 的“超大型”架构构建用于预训练的 HuBERTPretrainModel 模型 [8]

参数
  • encoder_projection_dropoutfloat) – 请参阅

  • encoder_attention_dropoutfloat) – 请参阅

  • encoder_ff_interm_dropoutfloat) – 请参阅

  • encoder_dropoutfloat) – 请参阅

  • encoder_layer_dropfloat) – 请参阅

  • mask_probfloat) – 请参阅

  • mask_channel_probfloat) – 请参阅

  • mask_channel_lengthint) – 请参阅

  • feature_grad_multfloatNone) – 请参阅

返回

生成的模型。

返回类型

HuBERTPretrain模型

效用函数

import_huggingface_model

torchaudio.models.wav2vec2.utils.import_huggingface_model(原文torch.nn.Moduletorchaudio.models.Wav2Vec2Model[来源]

从 Hugging Face 的 Transformers 的相应模型对象构建 Wav2Vec2Model。

参数

originaltorch.nn.Module) – from 的实例。Wav2Vec2ForCTCtransformers

返回

导入的模型。

返回类型

Wav2Vec2模型

>>> from torchaudio.models.wav2vec2.utils import import_huggingface_model
>>>
>>> original = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")
>>> model = import_huggingface_model(original)
>>>
>>> waveforms, _ = torchaudio.load("audio.wav")
>>> logits, _ = model(waveforms)

import_fairseq_model

torchaudio.models.wav2vec2.utils.import_fairseq_model(原文torch.nn.Moduletorchaudio.models.Wav2Vec2Model[来源]

fairseq 的相应模型对象构建 Wav2Vec2Model。

参数

originaltorch.nn.Module) – fairseq 的 Wav2Vec2.0 或 HuBERT 模型的实例。 或 之一。fairseq.models.wav2vec.wav2vec2_asr.Wav2VecEncoderfairseq.models.wav2vec.wav2vec2.Wav2Vec2Modelfairseq.models.hubert.hubert_asr.HubertEncoder

返回

导入的模型。

返回类型

Wav2Vec2模型

示例 — 加载仅预训练模型
>>> from torchaudio.models.wav2vec2.utils import import_fairseq_model
>>>
>>> # Load model using fairseq
>>> model_file = 'wav2vec_small.pt'
>>> model, _, _ = fairseq.checkpoint_utils.load_model_ensemble_and_task([model_file])
>>> original = model[0]
>>> imported = import_fairseq_model(original)
>>>
>>> # Perform feature extraction
>>> waveform, _ = torchaudio.load('audio.wav')
>>> features, _ = imported.extract_features(waveform)
>>>
>>> # Compare result with the original model from fairseq
>>> reference = original.feature_extractor(waveform).transpose(1, 2)
>>> torch.testing.assert_allclose(features, reference)
示例 - 微调模型
>>> from torchaudio.models.wav2vec2.utils import import_fairseq_model
>>>
>>> # Load model using fairseq
>>> model_file = 'wav2vec_small_960h.pt'
>>> model, _, _ = fairseq.checkpoint_utils.load_model_ensemble_and_task([model_file])
>>> original = model[0]
>>> imported = import_fairseq_model(original.w2v_encoder)
>>>
>>> # Perform encoding
>>> waveform, _ = torchaudio.load('audio.wav')
>>> emission, _ = imported(waveform)
>>>
>>> # Compare result with the original model from fairseq
>>> mask = torch.zeros_like(waveform)
>>> reference = original(waveform, mask)['encoder_out'].transpose(0, 1)
>>> torch.testing.assert_allclose(emission, reference)

WaveRNN

upsample_scales List[int]n_classes inthop_length: intn_res_block int = 10n_rnn int = 512n_fc int = 512kernel_size int = 5n_freq: int = 128n_hidden int = 128n_output int = 128[来源]torchaudio.models.WaveRNN

基于 fatchord 实现的 WaveRNN 模型。

最初的实现是在 Efficient Neural Audio Synthesis [9] 中引入的。waveform 和 spectrogram 的 input channels 必须为 1。 upsample_scales 的乘积必须等于 hop_length

参数
  • upsample_scales – 上采样比例列表。

  • n_classes – 输出类的数量。

  • hop_length – 连续帧开始之间的样本数。

  • n_res_block – 堆栈中 ResBlock 的数量。(默认:10)

  • n_rnn – RNN 层的维度。(默认:512)

  • n_fc – 全连接层的维度。(默认:512)

  • kernel_size – 第一个 Conv1d 层中的内核大小数。(默认:5)

  • n_freq – 频谱图中的区间数。(默认:128)

  • n_hidden – resblock 的隐藏维度数。(默认:128)

  • n_output – MelresNet 的输出维度数。(默认:128)

>>> wavernn = WaveRNN(upsample_scales=[5,5,8], n_classes=512, hop_length=200)
>>> waveform, sample_rate = torchaudio.load(file)
>>> # waveform shape: (n_batch, n_channel, (n_time - kernel_size + 1) * hop_length)
>>> specgram = MelSpectrogram(sample_rate)(waveform)  # shape: (n_batch, n_channel, n_freq, n_time)
>>> output = wavernn(waveform, specgram)
>>> # output shape: (n_batch, n_channel, (n_time - kernel_size + 1) * hop_length, n_classes)
forward(波形手电筒。张量specgramtorch。Tensor) → torch 的 Tensor 中。张量[来源]

通过 WaveRNN 模型传递输入。

参数
  • waveform – WaveRNN 层的输入波形 (n_batch, 1, (n_time - kernel_size + 1) * hop_length)

  • specgram – WaveRNN 层的输入频谱图 (n_batch, 1, n_freq, n_time)

返回

形状 (n_batch, 1, (n_time - kernel_size + 1) * hop_length, n_classes)

返回类型

张肌

infer(specgramTorch。Tensorlengths 可选[torch.Tensor] = NoneTuple[torch.Tensor可选[torch.张量]][来源]

WaveRNN 的推理方法。

此函数目前仅支持多项式采样,该函数假定 网络在交叉熵损失上进行训练。

参数
  • specgramTensor) - 一批频谱图。形状:(n_batch、n_freq、n_time)。

  • lengthsTensorNone可选) – 指示批处理中每个音频的有效长度。 形状:(batch, )。 当 包含具有不同持续时间的 spectrograph 时, 通过提供参数,模型将计算 相应的有效输出长度。 如果 ,则假定 中的所有音频都具有有效长度。违约:。specgramlengthsNonewaveformsNone

返回

张肌

大小为 (n_batch, 1, n_time) 的推断波形。 1 代表单个通道。

Tensor 或 None

如果提供了 argument,则返回形状为 (batch, ) 的 Tensor。 它表示输出 Tensor 的时间轴上的有效长度。lengths

返回类型

(Tensor, 可选[Tensor])

引用

1

Anmol Gulati、James Qin、Chung-Cheng Chiu、Niki Parmar、Yu Zhang、Jiahui Yu、Wei Han、Shibo Wang、Zhengdong Zhang、Yonghui Wu 和 Ruoming Pang。Conformer:用于语音识别的卷积增强转换器。2020. arXiv:2005.08100.

2

Yi Luo 和 Nima Mesgarani。Conv-tasnet:超越了理想的时频幅度掩码,用于语音分离。IEEE/ACM 音频、语音和语言处理汇刊,27(8):1256–1266,2019 年 8 月。网址:http://dx.doi.org/10.1109/TASLP.2019.2915167,doi:10.1109/taslp.2019.2915167

3

Awni Hannun、Carl Case、Jared Casper、Bryan Catanzaro、Greg Diamos、Erich Elsen、Ryan Prenger、Sanjeev Satheesh、Shubho Sengupta、Adam Coates 和 Andrew Y. Ng。深度语音:扩大端到端语音识别。2014. arXiv:1412.5567.

4

Yangyang Shi、Yongqiang Wang、Chunyang Wu、Ching-Feng Yeh、Julian Chan、Frank Zhang、Duc Le 和 Mike Seltzer。Emformer:基于高效 memory transformer 的声学模型,用于低延迟流式语音识别。在 ICASSP 2021 - 2021 IEEE 声学、语音和信号处理国际会议 (ICASSP) 中,6783–6787。2021.

5

Jonathan Shen、Ruoming Pang、Ron J Weiss、Mike Schuster、Navdeep Jaitly、Zongheng Yang、Zhifeng Chen、Yu Zhang、Yuxuan Wang、Rj Skerrv-Ryan 等。通过在 mel 频谱图预测上调节 wavenet 来自然 tts 合成。2018 年 IEEE 声学、语音和信号处理国际会议 (ICASSP),4779–4783。IEEE,2018 年。

6

罗南·科洛伯特、克里斯蒂安·普尔施和加布里埃尔·辛纳夫。Wav2letter:一种基于卷积网络的端到端语音识别系统。2016. arXiv:1609.03193.

71,2,3,4,5,6)

阿列克谢·巴耶夫斯基、亨利·周、阿卜杜勒拉赫曼·穆罕默德和迈克尔·奥利。Wav2vec 2.0:语音表示的自监督学习框架。2020. arXiv:2006.11477.

81,2,3,4,5,6)

Wei-Ning Hsu、Benjamin Bolte、Yao-Hung Hubert Tsai、Kushal Lakhotia、Ruslan Salakhutdinov 和 Abdelrahman Mohamed。Hubert:通过隐藏单元的掩蔽预测进行自我监督的语音表示学习。2021. arXiv:2106.07447.

9

纳尔·卡尔赫布伦纳、埃里希·埃尔森、凯伦·西蒙尼扬、塞布·努里、诺曼·卡萨格兰德、爱德华·洛克哈特、弗洛里安·斯廷伯格、亚伦·范登奥德、桑德·迪勒曼和科雷·卡武克茨奥卢。高效的神经音频合成。2018. arXiv:1802.08435.

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源