Closed ooobsidian closed 3 years ago
@Walleclipse 能请您答复一下嘛
你好!
len(inds)=1
说明这个speaker只有一个语音,这样是无法计算 triplet loss的,这个项目要求,一个speaker至少要有2段语音。
我提供的 LibriSpeechSamples/train-clean-100/
里面的数据是满足要求的。你可以重新运行 preprocess.py
试试,或者检查其他数据准备过程
@Walleclipse 请问一下该网络结构最多可以训练多少说话人,或者说训练多少说话人的效果最好?期待您的答复!
你好, 理论上有多少人应该都可以训练的,但是效果如何,我没测试过。 如果你要用到实际的场景,似乎说话人多一点比较好。 比如说 我用 librispeech数据集训练,其中训练集采用train-clean-360,这包含了921 个说话人。性能还挺好的。所以类似数量的说话人应该都可以,当然每个说话人要有足够数量的数据。
@Walleclipse 还有一个问题,就是该项目是否可以对于未训练过/未注册的说话人进行区分?也就是说需要交叉验证的说话人都不在训练集中。我使用ST-CMDS-20170001_1-OS语料库(855说话人,中文,每人120条语音)训练出模型后进行其他说话人(不在训练集中,10人)的交叉验证,效果并不是很好,误拒率和误识率都比较高,请问您知道是为什么吗?
对于说话者验证任务来说是可以的。 我用的librispeech数据就是这样子的, 训练用的 train-clean-100 数据集包含 251 个说话人,测试用的 test-clean 数据包含40 个说话者,并且这40个都没有出现在训练集中。我给出的测试结果也是在这种书上给出来的,请查看 deep_speaker实验报告.pdf 如果你测试的是说话这是别的eer,应该来说是差不多的。如果效果很差,可能是你的训练集和测试集分布相差很大。
Traceback (most recent call last):
File "train.py", line 21, in
你好,
把pre_process.py
的第18行注释掉就行,也就是:
#np.set_printoptions(threshold=np.nan)
Traceback (most recent call last):
File "train.py", line 187, in
你好,
你先完整的跑完 pretraining.py
了么?那么请检查一下softmax预训练后保存的模型路径,是否准确。预训练模型的保存路径在 pretraining.py
158行那里,根目录是 c.PRE_CHECKPOINT_FOLDER
.
如果路径正常,那么进行 train.py
就可以了。
您好,谢谢您提供如此优秀的项目。 在预训练结束之后,执行train.py,会卡在select_batch里,具体情况就是会卡在beginning to select..........这里。进select_batch.py后发现inds的len是1,所以for jj in range(1,len(inds))这个循环无法执行,导致while死循环出不来。请问该如何解决,谢谢!