说话人识别-数据处理-生成trials.lst的方法

我在使用asv-subtools运行cnsrc-sv-scoreSets_sv.sh的时候,报告以下的错误

cat: data/fbank_81/eval_test/trials/trials.lst: No such file or directory

这里报错说我缺少了trials.lst文件。

没有找到生成文件的代码。所以自己学着生成了以下trials.lst

 trials.lst的内容就是每一个注册集要和测试集进行比配,并打上标签(同一个说话人,就是target,反之则为nontarget

以下就是代码

#!/bin/bash


cat temp.lst | awk -F ' ' '{printf("%s\n",$1)}' | awk -F '-' '{printf("%s\n",$1)}' > enroll_id.lst


cat temp.lst | awk -F ' ' '{printf("%s\n",$2)}' | awk -F '/' '{printf("%s\n",$2)}' | sed 's|.wav||' > test_temp.lst


paste -d' ' enroll_id.lst test_temp.lst > trials_temp.lst


python3 target.py


paste -d' ' trials_temp.lst target.lst > trials.lst

rm enroll_id.lst
rm test_temp.lst
rm trials_temp.lst
rm target.lst

 
trials1 = open(r"/ssdhome/jyt522/kaldi/egs/xmuspeech/sre/data/fbank_81/eval_test/trials/trials_temp.lst",'r')
trials1_list = list(trials1)

str = []
for line in trials1_list:
    if line.split(' ')[0] == line.split(" ")[1].split('-')[0]:
        str.append("target")
    else:
        str.append("nontarget")


with open(r"/ssdhome/jyt522/kaldi/egs/xmuspeech/sre/data/fbank_81/trials/target.lst",'w')as file:#输出文件
            file.write("\n".join(str))

 shell和python结合起来的小脚本就可以生成对应的trials.lst

 注意:写python的时候,要注意输出列表格式,否则就会没有数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值