如何使用MFCC特征提取方法同时微调Wav2Vec2预训练模型?

问题描述 投票:0回答:2

我正在浏览一些关于在我的自定义数据集上微调 Wav2Vec2 预训练模型的博客。以下是相同的资源。
https://colab.research.google.com/github/huggingface/notebooks/blob/master/examples/multi_lingual_speech_recognition.ipynb#scrollTo=GNFuvi26Yiw6
https://huggingface.co/blog/fine-tune-xlsr-wav2vec2
我能够完成整个过程,并且结果也按预期生成。下面是他们提到我们可以使用其他特征提取方法(如 MFCC)的部分的摘录。

最后,我们可以利用 Wav2Vec2Processor 将数据处理到 训练模型期望的格式。为此,让我们利用 数据集的map(...)函数。首先,我们加载并重新采样音频 数据,只需调用batch[“audio”]即可。其次,我们提取 来自加载的音频文件的 input_values。在我们的例子中, Wav2Vec2Processor 仅对数据进行标准化。对于其他语音模型, 然而,此步骤可以包括更复杂的特征提取,例如 作为 Log-Mel 特征提取。第三,我们将转录编码为 标签 ID。

这是我几天来一直被困的部分。我已经尝试了所有方法但仍然无法继续。我能够将 Wav2Vec2 处理器生成的

input_values
更改为 MFCC 的值,如下面的代码所示,但仍然没有成功。

def prepare_dataset(batch):
    audio = batch["audio"]

    batch["input_values"] = processor(audio["array"], sampling_rate=audio["sampling_rate"]).input_values[0]
    batch["input_length"] = len(batch["input_values"])
    
    with processor.as_target_processor():
        batch["labels"] = processor(batch["sentence"]).input_ids
    return batch

通过将 Wav2Vec2Processor

input_values
(一维浮点数组)更改为 MFCC 系数一维浮点数组,我能够训练模型,但在评估步骤时,它抛出了这个错误。

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-164-3435b262f1ae> in <module>()
----> 1 trainer.train()

<ipython-input-143-57d9e4596fb5> in <listcomp>(.0)
     17         # split inputs and labels since they have to be of different lenghts and need
     18         # different padding methods
---> 19         input_features = [{"input_values": feature["input_values"]} for feature in features]
     20         label_features = [{"input_ids": feature["labels"]} for feature in features]
     21 

KeyError: 'input_values'

我应该如何继续使用 Wav2Vec2 预训练模型进行 MFCC 特征提取?

tensorflow tensorflow-datasets huggingface-transformers mfcc huggingface-datasets
2个回答
0
投票

我认为我的自定义数据集也遇到了同样的问题。您可以尝试本教程第[33]节中的prepare_dataset()函数。


0
投票

我知道已经晚了,但是你解决问题了吗?教程好像说mfcc等方法适用于其他模型,而不是wav2vec2。

© www.soinside.com 2019 - 2024. All rights reserved.