speechbrain.lobes.models.Xvector 模块

一种流行的说话人识别和分割模型。

作者
  • Nauman Dawalatabad 2020

  • Mirco Ravanelli 2020

摘要

Classifier

这个类实现了 xvector 特征之上的最后一个 MLP。

Discriminator

这个类实现了 xvector 特征之上的一个判别器。

Xvector

这个模型提取 X-vectors 用于说话人识别和分割。

参考

class speechbrain.lobes.models.Xvector.Xvector(device='cpu', activation=<class 'torch.nn.modules.activation.LeakyReLU'>, tdnn_blocks=5, tdnn_channels=[512, 512, 512, 512, 1500], tdnn_kernel_sizes=[5, 3, 3, 1, 1], tdnn_dilations=[1, 2, 3, 1, 1], lin_neurons=512, in_channels=40)[source]

基类: Module

这个模型提取 X-vectors 用于说话人识别和分割。

参数:
  • device (str) – 使用的设备,例如 “cpu” 或 “cuda”。

  • activation (torch class) – 用于构建激活层的类。

  • tdnn_blocks (int) – 时延神经网络 (TDNN) 层的数量。

  • tdnn_channels (list of ints) – TDNN 层的输出通道。

  • tdnn_kernel_sizes (list of ints) – 每个 TDNN 层的核大小列表。

  • tdnn_dilations (list of ints) – 每个 TDNN 层中核的膨胀率列表。

  • lin_neurons (int) – 线性层中的神经元数量。

  • in_channels (int) – 输入特征的预期大小。

示例

>>> compute_xvect = Xvector('cpu')
>>> input_feats = torch.rand([5, 10, 40])
>>> outputs = compute_xvect(input_feats)
>>> outputs.shape
torch.Size([5, 1, 512])
forward(x, lens=None)[source]

返回 x-vectors。

参数:
  • x (torch.Tensor) – 用于提取 x-vectors 的输入特征。

  • lens (torch.Tensor) – 对应的输入相对长度。

返回值:

x – X-vectors。

返回类型:

torch.Tensor

class speechbrain.lobes.models.Xvector.Classifier(input_shape, activation=<class 'torch.nn.modules.activation.LeakyReLU'>, lin_blocks=1, lin_neurons=512, out_neurons=1211)[source]

基类: Sequential

这个类实现了 xvector 特征之上的最后一个 MLP。

参数:
  • input_shape (tuple) – 示例输入的预期形状。

  • activation (torch class) – 用于构建激活层的类。

  • lin_blocks (int) – 线性层的数量。

  • lin_neurons (int) – 线性层中的神经元数量。

  • out_neurons (int) – 输出神经元的数量。

示例

>>> input_feats = torch.rand([5, 10, 40])
>>> compute_xvect = Xvector()
>>> xvects = compute_xvect(input_feats)
>>> classify = Classifier(input_shape=xvects.shape)
>>> output = classify(xvects)
>>> output.shape
torch.Size([5, 1, 1211])
class speechbrain.lobes.models.Xvector.Discriminator(input_shape, activation=<class 'torch.nn.modules.activation.LeakyReLU'>, lin_blocks=1, lin_neurons=512, out_neurons=1)[source]

基类: Sequential

这个类实现了 xvector 特征之上的一个判别器。

参数:
  • input_shape (tuple) – 输入张量的预期形状。

  • activation (torch class) – 用于构建激活层的类。

  • lin_blocks (int) – 线性层的数量。

  • lin_neurons (int) – 线性层中的神经元数量。

  • out_neurons (int) – 输出向量的大小。

示例

>>> input_feats = torch.rand([5, 10, 40])
>>> compute_xvect = Xvector()
>>> xvects = compute_xvect(input_feats)
>>> discriminate = Discriminator(xvects.shape)
>>> output = discriminate(xvects)
>>> output.shape
torch.Size([5, 1, 1])