speechbrain.inference.classifiers 模块
指定音频分类模块的推理接口。
- Authors:
阿库·罗赫 2021
彼得·普兰廷加 2021
洛伦·卢戈斯奇 2020
Mirco Ravanelli 2020
Titouan Parcollet 2021
阿卜杜勒·赫巴 2021
安德烈亚斯·诺茨 2022, 2023
Pooneh Mousavi 2023
Sylvain de Langen 2023
阿德尔·穆门 2023
普拉迪亚·坎达尔卡 2023
摘要
类:
一个现成的类,用于话语级别的分类(例如,说话者识别、语言识别、情感识别、关键词检测等)。 |
|
一个现成的类,用于话语级别分类(例如,说话者识别、语言识别、情感识别、关键词检测等)。 |
参考
- class speechbrain.inference.classifiers.EncoderClassifier(modules=None, hparams=None, run_opts=None, freeze_params=True)[source]
基础类:
Pretrained一个用于话语级别分类的现成类(例如,说话者识别、语言识别、情感识别、关键词检测等)。
该类假设在yaml文件中定义了一个名为“embedding_model”的编码器和一个名为“classifier”的模型。如果您想将预测的索引转换为相应的文本标签,请在yaml中提供一个名为‘lab_encoder_file’的变量,其中包含label_encoder的路径。
该类可以用于仅运行编码器(encode_batch())以提取嵌入,或者运行分类步骤(classify_batch())。
- Parameters:
预训练 (参见)
Example
>>> import torchaudio >>> from speechbrain.inference.classifiers import EncoderClassifier >>> # Model is downloaded from the speechbrain HuggingFace repo >>> tmpdir = getfixture("tmpdir") >>> classifier = EncoderClassifier.from_hparams( ... source="speechbrain/spkrec-ecapa-voxceleb", ... savedir=tmpdir, ... ) >>> classifier.hparams.label_encoder.ignore_len()
>>> # Compute embeddings >>> signal, fs = torchaudio.load("tests/samples/single-mic/example1.wav") >>> embeddings = classifier.encode_batch(signal)
>>> # Classification >>> prediction = classifier.classify_batch(signal)
- MODULES_NEEDED = ['compute_features', 'mean_var_norm', 'embedding_model', 'classifier']
- encode_batch(wavs, wav_lens=None, normalize=False)[source]
将输入的音频编码为单个向量嵌入。
波形应该已经是模型所需的格式。 你可以调用:
normalized =在大多数情况下获取正确转换的信号。.normalizer(signal, sample_rate)- Parameters:
wavs (torch.Tensor) – 波形批次 [batch, time, channels] 或 [batch, time],具体取决于模型。确保采样率为 fs=16000 Hz。
wav_lens (torch.Tensor) – 波形相对于批次中最长波形的长度,形状为 [batch] 的张量。最长的波形应具有相对长度 1.0,其他波形的长度为 len(waveform) / max_length。用于忽略填充部分。
normalize (bool) – 如果为True,则使用mean_var_norm_emb中包含的统计信息对嵌入进行归一化。
- Returns:
编码的批次
- Return type:
torch.Tensor
- classify_batch(wavs, wav_lens=None)[source]
在编码特征的顶部执行分类。
它返回后验概率、索引,如果指定了标签编码器,还会返回文本标签。
- Parameters:
wavs (torch.Tensor) – 波形批次 [batch, time, channels] 或 [batch, time],具体取决于模型。请确保采样率为 fs=16000 Hz。
wav_lens (torch.Tensor) – 波形相对于批次中最长波形的长度,形状为 [batch] 的张量。最长的波形应具有相对长度 1.0,其他波形的长度为 len(waveform) / max_length。用于忽略填充部分。
- Returns:
out_prob – 每个类别的对数后验概率 ([batch, N_class])
score – 最佳类别的对数后验值 ([batch,])
index – 最佳类别的索引 ([batch,])
text_lab – 与索引对应的文本标签列表。 (应提供标签编码器)。
- class speechbrain.inference.classifiers.AudioClassifier(modules=None, hparams=None, run_opts=None, freeze_params=True)[source]
基础类:
Pretrained一个用于话语级别分类的现成类(例如,说话者识别、语言识别、情感识别、关键词检测等)。
该类假设在yaml文件中定义了一个名为“embedding_model”的编码器和一个名为“classifier”的模型。如果您想将预测的索引转换为相应的文本标签,请在yaml中提供一个名为‘lab_encoder_file’的变量,其中包含label_encoder的路径。
该类可以用于仅运行编码器(encode_batch())以提取嵌入,或者运行分类步骤(classify_batch())。
- Parameters:
预训练。 (参见)
Example
>>> import torchaudio >>> from speechbrain.inference.classifiers import AudioClassifier >>> tmpdir = getfixture("tmpdir") >>> classifier = AudioClassifier.from_hparams( ... source="speechbrain/cnn14-esc50", ... savedir=tmpdir, ... ) >>> signal = torch.randn(1, 16000) >>> prediction, _, _, text_lab = classifier.classify_batch(signal) >>> print(prediction.shape) torch.Size([1, 1, 50])
- classify_batch(wavs, wav_lens=None)[source]
在编码特征的顶部执行分类。
它返回后验概率、索引,如果指定了标签编码器,还会返回文本标签。
- Parameters:
wavs (torch.Tensor) – 波形批次 [batch, time, channels] 或 [batch, time],具体取决于模型。请确保采样率为 fs=16000 Hz。
wav_lens (torch.Tensor) – 波形相对于批次中最长波形的长度,形状为 [batch] 的张量。最长的波形应具有相对长度 1.0,其他波形的长度为 len(waveform) / max_length。用于忽略填充部分。
- Returns:
out_prob (torch.Tensor) – 每个类别的对数后验概率 ([batch, N_class])
score (torch.Tensor) – 最佳类别的对数后验值 ([batch,])
index (torch.Tensor) – 最佳类别的索引 ([batch,])
text_lab (list of str) – 与索引对应的文本标签列表。 (应提供标签编码器)。