目录

torchaudio.models

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

ConvTasNet

class torchaudio.models.ConvTasNet(num_sources: int = 2, enc_kernel_size: int = 16, enc_num_feats: int = 512, msk_kernel_size: int = 3, msk_num_feats: int = 128, msk_num_hidden_feats: int = 512, msk_num_layers: int = 8, msk_num_stacks: int = 3, msk_activate: str = 'sigmoid')[source]

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

Parameters
  • num_sources (int, optional) – 要分割的源的数量。

  • enc_kernel_size (int, optional) – 编码器/解码器的卷积核大小,<L>。

  • enc_num_feats (int, optional) – 传递给掩码生成器的特征维度,<N>。

  • msk_kernel_size (int, optional) – 掩码生成器的卷积核大小,<P>。

  • msk_num_feats (int, optional) – 掩码生成器中卷积块的输入/输出特征维度,<B, Sc>。

  • msk_num_hidden_feats (int, optional) – 掩码生成器中卷积块的内部特征维度,<H>。

  • msk_num_layers (int, optional) – 掩码生成器中一个卷积块的层数,<X>。

  • msk_num_stacks (int, optional) – 掩码生成器的卷积块数量,<R>。

  • msk_activate (str, optional) – 掩码输出的激活函数(默认值:sigmoid)。

注意

此实现对应于论文中的“非因果”设置。

forward(input: torch.Tensor)torch.Tensor[source]

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

Parameters

input (torch.Tensor) – 形状为 [batch, channel==1, frames] 的 3D 张量

Returns

形状为 [batch, channel==num_sources, frames] 的三维张量

Return type

张量

DeepSpeech

class torchaudio.models.DeepSpeech(n_feature: int, n_hidden: int = 2048, n_class: int = 40, dropout: float = 0.0)[source]

来自《Deep Speech: Scaling up end-to-end speech recognition》的 DeepSpeech 模型架构 [2]。

Parameters
  • n_feature – 输入特征的数量

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

  • n_class – 输出类别的数量

forward(x: torch.Tensor)torch.Tensor[source]
Parameters

x (torch.Tensor) – 维度为 (batch, channel, time, feature) 的张量。

Returns

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

Return type

张量

Tacotron2

class torchaudio.models.Tacotron2(mask_padding: bool = False, n_mels: int = 80, n_symbol: int = 148, n_frames_per_step: int = 1, symbol_embedding_dim: int = 512, encoder_embedding_dim: int = 512, encoder_n_convolution: int = 3, encoder_kernel_size: int = 5, decoder_rnn_dim: int = 1024, decoder_max_step: int = 2000, decoder_dropout: float = 0.1, decoder_early_stopping: bool = True, attention_rnn_dim: int = 1024, attention_hidden_dim: int = 128, attention_location_n_filter: int = 32, attention_location_kernel_size: int = 31, attention_dropout: float = 0.1, prenet_dim: int = 256, postnet_n_convolution: int = 5, postnet_kernel_size: int = 5, postnet_embedding_dim: int = 512, gate_threshold: float = 0.5)[source]

基于来自 Nvidia的实现构建的 Tacotron2 模型。

原始实现在论文《通过条件化 WaveNet 于梅尔频谱预测实现自然 TTS 合成》中提出 [3]。

Parameters
  • mask_padding (bool, optional) – 使用掩码填充(默认值:False)。

  • n_mels (int, optional) – Mel 分箱的数量(默认值:80)。

  • n_symbol (int, optional) – 输入文本的符号数量(默认值:148)。

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

  • symbol_embedding_dim (int, optional) – 输入嵌入维度(默认值:512)。

  • encoder_n_convolution (int, optional) – 编码器卷积的数量(默认值:3)。

  • encoder_kernel_size (int, optional) – 编码器核大小(默认值:5)。

  • encoder_embedding_dim (int, optional) – 编码器嵌入维度(默认值:512)。

  • decoder_rnn_dim (int, optional) – 解码器 LSTM 中的单元数量(默认值:1024)。

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

  • decoder_dropout (float, optional) – 解码器 LSTM 的 Dropout 概率(默认值:0.1)。

  • decoder_early_stopping (bool, optional) – 在所有样本完成后继续解码(默认值:True)。

  • attention_rnn_dim (int, optional) – 注意力 LSTM 中的单元数量(默认值:1024)。

  • attention_hidden_dim (int, optional) – 注意力隐藏表示的维度(默认值:128)。

  • attention_location_n_filter (int, optional) – 注意力模型的过滤器数量(默认值:32)。

  • attention_location_kernel_size (int, optional) – 注意力模型的核大小(默认值:31)。

  • attention_dropout (float, optional) – 注意力 LSTM 的 Dropout 概率(默认值:0.1)。

  • prenet_dim (int, optional) – prenet 层中 ReLU 单元的数量(默认值:256)。

  • postnet_n_convolution (int, optional) – 后网络卷积层数量(默认值:5)。

  • postnet_kernel_size (int, optional) – Postnet 核大小(默认值:5)。

  • postnet_embedding_dim (int, optional) – Postnet 嵌入维度(默认值:512)。

  • gate_threshold (float, optional) – 停止标记的概率阈值(默认值:0.5)。

forward(tokens: torch.Tensor, token_lengths: torch.Tensor, mel_specgram: torch.Tensor, mel_specgram_lengths: torch.Tensor)Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor][source]

将输入通过 Tacotron2 模型。这处于教师强制模式,通常用于训练。

输入 tokens 应使用零填充至最大长度 token_lengths。 输入 mel_specgram 应使用零填充至最大长度 mel_specgram_lengths

Parameters
  • tokens (Tensor) – 输入到 Tacotron2 的 token,形状为 (n_batch, max of token_lengths)

  • token_lengths (Tensor) – tokens 中每个样本的有效长度,形状为 (n_batch, )

  • mel_specgram (Tensor) – 目标梅尔频谱图,形状为 (n_batch, n_mels, max of mel_specgram_lengths)

  • mel_specgram_lengths (Tensor) – 每个梅尔频谱图的长度,形状为 (n_batch, )

Returns

Tensor

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

Tensor

经过 Postnet 处理后的梅尔频谱图,形状为 (n_batch, n_mels, max of mel_specgram_lengths)

Tensor

每个时间步停止 token 的输出,形状为 (n_batch, max of mel_specgram_lengths)

Tensor

来自解码器的注意力权重序列,形状为 (n_batch, max of mel_specgram_lengths, max of token_lengths)

Return type

[张量,张量,张量,张量]

infer(tokens: torch.Tensor, lengths: Optional[torch.Tensor] = None)Tuple[torch.Tensor, torch.Tensor, torch.Tensor][source]

使用 Tacotron2 进行推理。输入是一批编码后的句子 (tokens) 及其对应的长度 (lengths)。输出是生成的梅尔频谱图、其对应的长度以及来自解码器的注意力权重。

输入 tokens 应使用零填充至最大长度 lengths

Parameters
  • tokens (Tensor) – 输入到 Tacotron2 的 token,形状为 (n_batch, max of lengths)

  • lengths (TensorNone, 可选) – tokens 中每个样本的有效长度,形状为 (n_batch, )。 如果为 None,则假设所有标记均有效。默认值:None

Returns

Tensor

预测的梅尔频谱图,形状为 (n_batch, n_mels, max of mel_specgram_lengths)

Tensor

预测的 mel 频谱图的长度,形状为 (n_batch, )

Tensor

来自解码器的注意力权重序列,形状为 (n_batch, max of mel_specgram_lengths, max of lengths)

Return type

(张量,张量,张量)

Wav2Letter

class torchaudio.models.Wav2Letter(num_classes: int = 40, input_type: str = 'waveform', num_features: int = 1)[source]

来自 Wav2Letter:一种基于端到端卷积神经网络的语音识别系统 [4] 的 Wav2Letter 模型架构。

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

Parameters
  • num_classes (int, optional) – 要分类的类别数量。(默认值:40

  • input_type (str, optional) – Wav2Letter 可以使用以下输入:waveformpower_spectrummfcc(默认值:waveform)。

  • num_features (int, optional) – 网络将接收的输入特征数量(默认值:1)。

forward(x: torch.Tensor)torch.Tensor[source]
Parameters

x (torch.Tensor) – 维度为 (batch_size, num_features, input_length) 的张量。

Returns

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

Return type

张量

Wav2Vec2.0 / HuBERT

模型

Wav2Vec2Model

class torchaudio.models.Wav2Vec2Model(feature_extractor: torch.nn.Module, encoder: torch.nn.Module, aux: Optional[torch.nn.Module] = None)[source]

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

注意

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

Parameters
  • feature_extractor (torch.nn.Module) – 从原始音频 Tensor 中提取特征向量的特征提取器。

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

  • aux (torch.nn.ModuleNone, 可选) – 辅助模块。如果提供,编码器的输出将传递给此模块。

extract_features(waveforms: torch.Tensor, lengths: Optional[torch.Tensor] = None, num_layers: Optional[int] = None)Tuple[List[torch.Tensor], Optional[torch.Tensor]][source]

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

此操作返回编码器中 Transformer 块中间层的输出列表。

Parameters
  • waveforms (Tensor) – 形状为 (batch, frames) 的音频张量。

  • lengths (TensorNone, 可选) – 指示批次中每个音频的有效长度。 形状:(batch, )。 当 waveforms 包含不同持续时间的音频时, 通过提供 lengths 参数,模型将计算 相应的有效输出长度,并在 transformer 注意力层应用适当的掩码。 如果为 None,则假设整个音频波形 长度均为有效。

  • num_layers (intNone, 可选) – 如果提供,则限制要经过的中间层数量。 提供 1 将在经过一个中间层后停止计算。如果不提供,则返回所有中间层的输出。

Returns

List of Tensors

来自请求层的特征。 每个张量的形状为:(batch, time frame, feature dimension)

Tensor or None

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

Return type

(List[Tensor], Optional[Tensor])

forward(waveforms: torch.Tensor, lengths: Optional[torch.Tensor] = None)Tuple[torch.Tensor, Optional[torch.Tensor]][source]

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

Parameters
  • waveforms (Tensor) – 形状为 (batch, frames) 的音频张量。

  • lengths (TensorNone, optional) – 指示批次中每个音频的有效长度。 形状:(batch, )。 当 waveforms 包含不同持续时间的音频时, 通过提供 lengths 参数,模型将计算 相应的有效输出长度,并在 Transformer 注意力层应用适当的掩码。 如果为 None,则假设 waveforms 中的音频 均具有有效长度。默认值:None

Returns

Tensor

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

Tensor or None

如果提供了 lengths 个参数,则返回形状为 (batch, ) 的张量。 它表示输出张量在时间轴上的有效长度。

Return type

(张量,可选[张量])

工厂函数

wav2vec2_model

torchaudio.models.wav2vec2_model(extractor_mode: str, extractor_conv_layer_config: Optional[List[Tuple[int, int, int]]], extractor_conv_bias: bool, encoder_embed_dim: int, encoder_projection_dropout: float, encoder_pos_conv_kernel: int, encoder_pos_conv_groups: int, encoder_num_layers: int, encoder_num_heads: int, encoder_attention_dropout: float, encoder_ff_interm_features: int, encoder_ff_interm_dropout: float, encoder_dropout: float, encoder_layer_norm_first: bool, encoder_layer_drop: float, aux_num_out: Optional[int])torchaudio.models.Wav2Vec2Model[source]

构建自定义 Wav2Vec2Model

注意

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

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

Parameters
  • extractor_mode (str) –

    特征提取器的工作模式。 有效值为 "group_norm""layer_norm"。 如果为 "group_norm",则在第一个卷积块中应用单次归一化。否则,所有卷积块都将具有层归一化。

    此选项对应于 extractor_mode 来自 fairseq

  • extractor_conv_layer_config (python:integer 元组列表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),
    ]
    

    此选项对应于 conv_feature_layers 来自 fairseq

  • extractor_conv_bias (布尔值) –

    是否在每个卷积运算中包含偏置项。

    此选项对应于 conv_bias 来自 fairseq

  • encoder_embed_dim (int) –

    编码器中嵌入的维度。

    此选项对应于 encoder_embed_dim 来自 fairseq

  • encoder_projection_dropout (float) –

    输入特征投影到 encoder_embed_dim 后应用的丢弃概率。

    此选项对应于 dropout_input 来自 fairseq

  • encoder_pos_conv_kernel (int) –

    卷积位置编码的核大小。

    此选项对应于 conv_pos 来自 fairseq

  • encoder_pos_conv_groups (int) –

    卷积位置嵌入的组数。

    此选项对应于 conv_pos_groups 来自 fairseq

  • encoder_num_layers (int) –

    Transformer 块中自注意力层的数量。

    此选项对应于 encoder_layers 来自 fairseq

  • encoder_num_heads (int) –

    自注意力层中的头数。

    此选项对应于 encoder_attention_heads 来自 fairseq

  • encoder_attention_dropout (float) –

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

    此选项对应于 attention_dropout 来自 fairseq

  • encoder_ff_interm_features (int) –

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

    此选项对应于 encoder_ffn_embed_dim 来自 fairseq

  • encoder_ff_interm_dropout (float) –

    在全前向层中应用的丢弃概率。

    此选项对应于 activation_dropout 来自 fairseq

  • encoder_dropout (float) –

    在全前向层末尾应用的 Dropout 概率。

    此选项对应于 dropout 来自 fairseq

  • encoder_layer_norm_first (布尔值) –

    控制 Transformer 层和每个编码器层中 LayerNorm 的顺序。 如果为 True,在 Transformer 层中,LayerNorm 在特征输入到编码器层之前应用;在编码器层中,两个 LayerNorm 分别应用于自注意力机制之前和之后。 如果为 False,在 Transformer 层中,LayerNorm 在特征输入到编码器层之后应用;在编码器层中,两个 LayerNorm 均应用于自注意力机制之后,分别位于前馈网络之前和之后。

    此选项对应于 layer_norm_first 来自 fairseq

  • encoder_layer_drop (float) –

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

    此选项对应于 layerdrop 来自 fairseq

  • aux_num_out (intNone) – 如果提供,将在编码器顶部附加一个额外的线性层,可用于微调。

Returns

生成的模型。

Return type

Wav2Vec2Model

wav2vec2_base

torchaudio.models.wav2vec2_base(encoder_projection_dropout: float = 0.1, encoder_attention_dropout: float = 0.1, encoder_ff_interm_dropout: float = 0.1, encoder_dropout: float = 0.1, encoder_layer_drop: float = 0.1, aux_num_out: Optional[int] = None)torchaudio.models.Wav2Vec2Model[source]

使用“base”架构从 wav2vec 2.0 [5] 构建 Wav2Vec2Model

Parameters
Returns

生成的模型。

Return type

Wav2Vec2Model

wav2vec2_large

torchaudio.models.wav2vec2_large(encoder_projection_dropout: float = 0.1, encoder_attention_dropout: float = 0.1, encoder_ff_interm_dropout: float = 0.1, encoder_dropout: float = 0.1, encoder_layer_drop: float = 0.1, aux_num_out: Optional[int] = None)torchaudio.models.Wav2Vec2Model[source]

使用“large”架构从 wav2vec 2.0 [5] 构建 Wav2Vec2Model

Parameters
Returns

生成的模型。

Return type

Wav2Vec2Model

wav2vec2_large_lv60k

torchaudio.models.wav2vec2_large_lv60k(encoder_projection_dropout: float = 0.1, encoder_attention_dropout: float = 0.0, encoder_ff_interm_dropout: float = 0.1, encoder_dropout: float = 0.0, encoder_layer_drop: float = 0.1, aux_num_out: Optional[int] = None)torchaudio.models.Wav2Vec2Model[source]

使用来自 wav2vec 2.0 [5] 的“large lv-60k”架构构建 Wav2Vec2Model

Parameters
Returns

生成的模型。

Return type

Wav2Vec2Model

hubert_base

torchaudio.models.hubert_base(encoder_projection_dropout: float = 0.1, encoder_attention_dropout: float = 0.1, encoder_ff_interm_dropout: float = 0.0, encoder_dropout: float = 0.1, encoder_layer_drop: float = 0.05, aux_num_out: Optional[int] = None)torchaudio.models.Wav2Vec2Model[source]

使用“base”架构从 HuBERT [6] 构建 HuBERT 模型

Parameters
Returns

生成的模型。

Return type

Wav2Vec2Model

hubert_large

torchaudio.models.hubert_large(encoder_projection_dropout: float = 0.0, encoder_attention_dropout: float = 0.0, encoder_ff_interm_dropout: float = 0.0, encoder_dropout: float = 0.0, encoder_layer_drop: float = 0.0, aux_num_out: Optional[int] = None)torchaudio.models.Wav2Vec2Model[source]

使用“large”架构从 HuBERT [6] 构建 HuBERT 模型

Parameters
Returns

生成的模型。

Return type

Wav2Vec2Model

hubert_xlarge

torchaudio.models.hubert_xlarge(encoder_projection_dropout: float = 0.0, encoder_attention_dropout: float = 0.0, encoder_ff_interm_dropout: float = 0.0, encoder_dropout: float = 0.0, encoder_layer_drop: float = 0.0, aux_num_out: Optional[int] = None)torchaudio.models.Wav2Vec2Model[source]

使用“超大”架构构建 HuBERT 模型,源自 HuBERT [6]

Parameters
Returns

生成的模型。

Return type

Wav2Vec2Model

实用函数

import_huggingface_model

torchaudio.models.wav2vec2.utils.import_huggingface_model(original: torch.nn.Module)torchaudio.models.Wav2Vec2Model[source]

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

Parameters

原始 (torch.nn.Module) – Wav2Vec2ForCTC 类的一个实例,来自 transformers

Returns

已导入模型。

Return type

Wav2Vec2Model

Example
>>> 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(original: torch.nn.Module)torchaudio.models.Wav2Vec2Model[source]

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

Parameters

original (torch.nn.Module) – fairseq 的 Wav2Vec2.0 或 HuBERT 模型的一个实例。 fairseq.models.wav2vec.wav2vec2_asr.Wav2VecEncoderfairseq.models.wav2vec.wav2vec2.Wav2Vec2Modelfairseq.models.hubert.hubert_asr.HubertEncoder 中的一个。

Returns

已导入模型。

Return type

Wav2Vec2Model

Example - Loading pretrain-only model
>>> 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)
Example - Fine-tuned model
>>> 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

class torchaudio.models.WaveRNN(upsample_scales: List[int], n_classes: int, hop_length: int, n_res_block: int = 10, n_rnn: int = 512, n_fc: int = 512, kernel_size: int = 5, n_freq: int = 128, n_hidden: int = 128, n_output: int = 128)[source]

基于 fatchord 实现的 WaveRNN 模型。

原始实现在 Efficient Neural Audio Synthesis 中引入 [7]。波形和频谱图的输入通道必须为 1。 upsample_scales 的乘积必须等于 hop_length

Parameters
  • 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

Example
>>> 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(waveform: torch.Tensor, specgram: torch.Tensor)torch.Tensor[source]

将输入通过 WaveRNN 模型。

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

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

Returns

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

Return type

张量

infer(specgram: torch.Tensor, lengths: Optional[torch.Tensor] = None)Tuple[torch.Tensor, Optional[torch.Tensor]][source]

WaveRNN 的推理方法。

此函数目前仅支持多项式采样,该采样假设网络是使用交叉熵损失进行训练的。

Parameters
  • specgram (Tensor) – 一批频谱图。形状:(n_batch, n_freq, n_time)

  • lengths (TensorNone, 可选) – 指示批次中每个音频的有效长度。 形状:(batch, )。 当 specgram 包含不同持续时间的频谱图时, 通过提供 lengths 参数,模型将计算 相应的有效输出长度。 如果为 None,则假设 waveforms 中的所有音频 均具有有效长度。默认值:None

Returns

Tensor

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

Tensor or None

如果提供了 lengths 个参数,则返回形状为 (batch, ) 的张量。 它表示输出张量在时间轴上的有效长度。

Return type

(张量,可选[张量])

参考文献

1

Yi Luo 和 Nima Mesgarani。Conv-tasnet:超越理想时频幅度掩码的语音分离。IEEE/ACM Transactions on Audio, Speech, and Language Processing,27(8):1256–1266,2019年8月。URL: http://dx.doi.org/10.1109/TASLP.2019.2915167doi:10.1109/taslp.2019.2915167

2

Awni Hannun, Carl Case, Jared Casper, Bryan Catanzaro, Greg Diamos, Erich Elsen, Ryan Prenger, Sanjeev Satheesh, Shubho Sengupta, Adam Coates, 和 Andrew Y. Ng。Deep speech: scaling up end-to-end speech recognition。2014。 arXiv:1412.5567

3

Jonathan Shen, Ruoming Pang, Ron J Weiss, Mike Schuster, Navdeep Jaitly, Zongheng Yang, Zhifeng Chen, Yu Zhang, Yuxuan Wang, Rj Skerrv-Ryan, and others. 通过将WaveNet条件化在梅尔频谱预测上实现自然的TTS合成。In 2018 IEEE国际声学、语音与信号处理会议(ICASSP), 4779–4783. IEEE, 2018.

4

Ronan Collobert, Christian Puhrsch, 和 Gabriel Synnaeve。Wav2letter:一个端到端的基于卷积网络的语音识别系统。2016。 arXiv:1609.03193

5(1,2,3,4,5)

Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, 和 Michael Auli. Wav2vec 2.0: 一个用于语音表示自监督学习的框架。2020. arXiv:2006.11477.

6(1,2,3)

魏宁 胡, 本杰明·博尔特, 姚宏·赫伯特·蔡, 库沙尔·拉克霍蒂亚, 鲁斯兰·萨拉胡丁诺夫, 和阿卜杜勒拉赫曼·穆罕默德。Hubert:通过隐藏单元的掩码预测进行自监督语音表征学习。2021。arXiv:2106.07447.

7

Nal Kalchbrenner, Erich Elsen, Karen Simonyan, Seb Noury, Norman Casagrande, Edward Lockhart, Florian Stimberg, Aaron van den Oord, Sander Dieleman, 和 Koray Kavukcuoglu. 高效的神经音频合成。2018. arXiv:1802.08435.

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源