speechbrain.lobes.models.Xvector 模块

一个流行的说话人识别和分段模型。

Authors
  • 纳曼·达瓦拉塔巴德 2020

  • Mirco Ravanelli 2020

摘要

类:

Classifier

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

Discriminator

该类在xvector特征之上实现了一个判别器。

Xvector

该模型提取用于说话人识别和分割的X-向量。

参考

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-向量用于说话人识别和分割。

Parameters:
  • 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) – 输入特征的预期大小。

Example

>>> 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向量。

Parameters:
  • x (torch.Tensor) – 用于提取x向量的输入特征。

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

Returns:

x – X向量。

Return type:

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。

Parameters:
  • input_shape (tuple) – 期望的输入示例形状。

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

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

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

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

Example

>>> 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特征之上实现了一个判别器。

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

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

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

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

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

Example

>>> 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])