speechbrain.inference.encoders 模块
指定语音和音频编码器的推理接口。
- Authors:
阿库·罗赫 2021
彼得·普兰廷加 2021
洛伦·卢戈斯奇 2020
Mirco Ravanelli 2020
Titouan Parcollet 2021
阿卜杜勒·赫巴 2021
安德烈亚斯·诺茨 2022, 2023
Pooneh Mousavi 2023
Sylvain de Langen 2023
阿德尔·穆门 2023
普拉迪亚·坎达尔卡 2023
摘要
类:
为Zero-Shot Multi-Speaker TTS模型创建的MelSpectrogramEncoder类。 |
|
一个现成的波形编码器模型 |
参考
- class speechbrain.inference.encoders.WaveformEncoder(modules=None, hparams=None, run_opts=None, freeze_params=True)[source]
基础类:
Pretrained一个即用型波形编码器模型
它可以用来封装不同的嵌入模型,例如SSL模型(wav2vec2)或说话者模型(Xvector)等。提供了两个函数:encode_batch和encode_file。它们可以分别用于直接从音频文件或一批音频张量中获取嵌入。
给定的YAML必须包含*_NEEDED[]列表中指定的字段。
- Parameters:
预训练 (参见)
Example
>>> from speechbrain.inference.encoders import WaveformEncoder >>> tmpdir = getfixture("tmpdir") >>> ssl_model = WaveformEncoder.from_hparams( ... source="speechbrain/ssl-wav2vec2-base-libri", ... savedir=tmpdir, ... ) >>> ssl_model.encode_file("samples/audio_samples/example_fr.wav")
- MODULES_NEEDED = ['encoder']
- encode_batch(wavs, wav_lens)[source]
将输入音频编码为一系列隐藏状态
波形应该已经是模型所需的格式。
- Parameters:
wavs (torch.Tensor) – 波形批次 [batch, time, channels] 或 [batch, time],具体取决于模型。
wav_lens (torch.Tensor) – 波形相对于批次中最长波形的长度,形状为 [batch] 的张量。最长的波形应具有相对长度 1.0,其他波形的长度为 len(waveform) / max_length。用于忽略填充部分。
- Returns:
编码的批次
- Return type:
torch.Tensor
- class speechbrain.inference.encoders.MelSpectrogramEncoder(modules=None, hparams=None, run_opts=None, freeze_params=True)[source]
基础类:
Pretrained为Zero-Shot Multi-Speaker TTS模型创建的MelSpectrogramEncoder类。
这是为了使用PyTorch MelSpectrogram变换的说话人编码器模型,以与当前的TTS管道兼容。
该类可用于编码单个波形、单个梅尔频谱图或一批梅尔频谱图。
- Parameters:
预训练 (参见)
Example
>>> import torchaudio >>> from speechbrain.inference.encoders import MelSpectrogramEncoder >>> # Model is downloaded from the speechbrain HuggingFace repo >>> tmpdir = getfixture("tmpdir") >>> encoder = MelSpectrogramEncoder.from_hparams( ... source="speechbrain/tts-ecapa-voxceleb", ... savedir=tmpdir, ... )
>>> # Compute embedding from a waveform (sample_rate must match the sample rate of the encoder) >>> signal, fs = torchaudio.load("tests/samples/single-mic/example1.wav") >>> spk_emb = encoder.encode_waveform(signal)
>>> # Compute embedding from a mel-spectrogram (sample_rate must match the sample rate of the ecoder) >>> mel_spec = encoder.mel_spectogram(audio=signal) >>> spk_emb = encoder.encode_mel_spectrogram(mel_spec)
>>> # Compute embeddings for a batch of mel-spectrograms >>> spk_embs = encoder.encode_mel_spectrogram_batch(mel_spec)
- MODULES_NEEDED = ['normalizer', 'embedding_model']
- mel_spectogram(audio)[source]
计算原始音频信号的梅尔频谱图
- Parameters:
audio (torch.tensor) – 输入音频信号
- Returns:
mel – 梅尔频谱图
- Return type:
torch.Tensor
- encode_waveform(wav)[source]
编码单个波形
- Parameters:
wav (torch.Tensor) – 波形
- Returns:
encoder_out – 输入波形的说话人嵌入
- Return type:
torch.Tensor