speechbrain.lobes.models.discrete.speechtokenizer 模块

该模块支持集成预训练的SpeechTokenizer。

Please, install speechtokenizer:

pip install speechtokenizer

参考: https://arxiv.org/abs/2308.16692

需要安装来自HuggingFace的Transformer: https://huggingface.co/transformers/installation.html

Author
  • Pooneh Mousavi 2023

摘要

类:

SpeechTokenizer

该模块支持集成HuggingFace和SpeechBrain预训练的SpeechTokenizer。

参考

class speechbrain.lobes.models.discrete.speechtokenizer.SpeechTokenizer(source, save_path)[source]

基础:Module

该模块支持集成HuggingFace和SpeechBrain预训练的SpeechTokenizer。

请安装speechtokenizer: pip install speechtokenizer

源论文: https://arxiv.org/abs/2308.16692

该模型可以用作固定的离散特征提取器,也可以进行微调。它将自动从HuggingFace下载模型或使用本地路径。

Parameters:
  • source (str) – HuggingFace 中心名称:例如 “fnlp/SpeechTokenizer”

  • save_path (str) – 下载模型的路径(目录)。

Example

>>> import torch
>>> inputs = torch.rand([10, 600])
>>> model_hub = "fnlp/SpeechTokenizer"
>>> save_path = "savedir"
>>> model =SpeechTokenizer(model_hub, save_path)
>>> tokens = model.encode(inputs)
>>> tokens.shape
torch.Size([8, 10, 2])
>>> wav=model.decode(tokens)
>>> wav.shape
torch.Size([10, 640])
forward(wav, wav_lens=None)[source]

获取输入波形并返回其对应的wav2vec编码。

Parameters:
  • wav (torch.Tensor (signal)) – 一批要转换为特征的音频信号。

  • wav_lens (torch.Tensor) – 以SpeechBrain格式给出的wav的相对长度。

Returns:

tokens – 一个 (N_q, Batch x Seq) 的音频令牌张量

Return type:

torch.Tensor

encode(wav, wav_lens=None)[source]

接收一个输入波形并返回其对应的wav2vec编码。

Parameters:
  • wav (torch.Tensor (signal)) – 一批要转换为特征的音频信号。

  • wav_lens (torch.Tensor) – 以SpeechBrain格式给出的wav的相对长度。

Returns:

tokens – 一个 (N_q, Batch x Seq) 的音频标记张量

Return type:

torch.Tensor

decode(codes)[source]

接收一个输入波形并返回其对应的wav2vec编码。

Parameters:

codes (torch.Tensor) – 一个 (N_q, Batch x Seq) 的音频标记张量

Returns:

wav – 一批重建的音频信号。

Return type:

torch.Tensor (信号)