开发者社区> 问答> 正文

根据教程生成了1000+小时的数据用于训练,复现FRCRN模型的效果差距非常大,不知道问题在哪?

训练的模型FRCRN/checkpoint/output下的评估结果如下:

{"total_loss": 214.77833557128906, "avg_sisnr": 19.650760650634766, "avg_loss": 107.38919067382812}

我用一段含有噪声音频的测试,发现模型根本没有去噪功能,仅仅幅度变大了,而且我用下面这段代码再评估模型,avg_sisnr竟然是负数

import os
import tempfile

from modelscope.metainfo import Trainers
from modelscope.msdatasets import MsDataset
from modelscope.trainers import build_trainer
from modelscope.utils.audio.audio_utils import to_segment

tmp_dir = tempfile.TemporaryDirectory().name
if not os.path.exists(tmp_dir):
    os.makedirs(tmp_dir)

hf_ds = MsDataset.load(
    'ICASSP_2021_DNS_Challenge', split='test').to_hf_dataset()
mapped_ds = hf_ds.map(
    to_segment,
    remove_columns=['duration'],
    # num_proc=5, # Comment this line to avoid error in Jupyter notebook
    batched=True,
    batch_size=36)
dataset = MsDataset.from_hf_dataset(mapped_ds)
kwargs = dict(
    model='damo/speech_frcrn_ans_cirm_16k',
    model_revision='beta',
    train_dataset=None,
    eval_dataset=dataset,
    val_iters_per_epoch=125,
    work_dir=tmp_dir)

trainer = build_trainer(
    Trainers.speech_frcrn_ans_cirm_16k, default_args=kwargs)

eval_res = trainer.evaluate()
print(eval_res['avg_sisnr'])

数据量不少,超参数没变,出来的模型不至于会那么差吧。

展开
收起
倾注你的鑫 2023-11-17 13:30:12 98 0
3 条回答
写回答
取消 提交回答
  • 可以给您一些建议来帮助您解决问题:

    1. 检查数据预处理:确保您的测试数据集与训练数据集具有相似的预处理方式。例如,如果您在训练过程中对音频进行了归一化处理,那么在测试过程中也需要进行相同的处理。

    2. 检查模型参数:确保您在训练过程中使用了与测试时相同的超参数。不同的超参数可能导致模型性能的差异。

    3. 检查评估指标:avg_sisnr 的值为负数可能是由于计算错误或者数据问题导致的。您可以尝试使用其他评估指标(如 avg_pesq)来评估模型的性能。

    4. 检查模型输出:确保模型的输出是有效的。您可以检查模型输出的音频文件是否包含噪声,以及幅度是否发生了变化。

    5. 检查训练日志:查看训练日志以获取更多关于模型性能的信息。这可以帮助您找到可能的问题所在。

    2023-11-29 16:59:23
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    首先,SISNR是一个常见的音质评估指标,负数可能是信号比噪声还低的结果,这意味着模型并没有产生很好的去噪效果。以下是几个可能的原因:

    1. 训练集的声音质量不高,可能导致模型不能很好地区分原始音频和噪声。

    2. 缺乏足够的训练数据,使得模型不能学习有效的特征。

    3. 有可能训练过程中出现了过拟合现象。

    4. 模型的参数可能不合适,如卷积层的过滤器数量、大小等。

    2023-11-18 22:53:20
    赞同 展开评论 打赏
  • 检查训练过程:确保你的训练数据是正确的,模型参数设置得当,并且有足够的训练时间。如果你不确定,你可以尝试按照原始论文的设置重新训练模型,看是否能得到更好的结果。

    调整模型架构:你可能会需要调整模型的一些参数,如卷积层的数量、滤波器的大小等等。这可能需要一些试验和错误,但是可以帮助改进模型的表现。

    使用不同的评价指标:除了SISNR之外,还有其他的评价指标可用于评估音频去噪模型,如PSNR、SSIM等。尝试这些不同的评价指标,看看哪种最适合你的任务。

    2023-11-17 16:28:24
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载