python里面Dataset干嘛的_conv-tasnet代码笔记--dataset&audio

一个入门语音分离小菜鸡的日记

写此文的目的是记录自己的学习过程,一些经过,遇到问题以及解决问题的方法,存放在这里,方便自己以后复习以及自己的一些总结,如果此文对你有帮助,或者我写的有错误,请随时联系我。


我也是边看代码边学习基础计知识,毕业就好。

最近新看了很多基础知识。对numpy矩阵里面的很多形式不是很会,

NumPy Ndarray 对象​www.runoob.com
f6d04349e6e807d1cd0b2faebead4379.png

对于python里面有num_workers=4,早dataset里面,是4个num_worker一起工作,增加数据读取效率。

eg是一个字典,看你传进来什么。

def _make_chunk(self, eg, s):
        """
        Make a chunk instance, which contains:
            "mix": ndarray,
            "ref": [ndarray...]
        """
        chunk = dict()
        chunk["mix"] = eg["mix"][s:s + self.chunk_size]
        chunk["ref"] = [ref[s:s + self.chunk_size] for ref in eg["ref"]]
        return chunk

这里的意思是分块,chunk成32000,。chunk=dict(),创建一个空字典。s+self.chunk_size一起看。

def 

这段代码块的意思是,如果混合的语音少于16000,舍弃掉。如果大于16000小于32000,后面加0,接下来就是随机挑选起点。

下面就是块级别的pit。

def _merge(self, chunk_list):
        """
        Merge chunk list into mini-batch
        """
        N = len(chunk_list)
        if self.train:
            random.shuffle(chunk_list)
        blist = []
        for s in range(0, N - self.batch_size + 1, self.batch_size):
            batch = default_collate(chunk_list[s:s + self.batch_size])
            blist.append(batch)
        rn = N % self.batch_size
        return blist, chunk_list[-rn:] if rn else []

这块代码是将数据块列表合并到迷你批处理中。

audio

这一部分不难,是直接看代码是处理音频数据的。

直接看代码的解释就能看懂,读取数据scp格式,顺序索引格式,直接看代码注释没问题,这一部分即使不能全部理解,对整个实验的影响不大。我要做的修改实验不在这里改。

时间

20200328--11:20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值