flashlight / wav2letter
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 29% duplication:
    • 18,033 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 5,275 duplicated lines
  • 954 duplicates
system29% (5,275 lines)
Duplication per Extension
cfg74% (2,769 lines)
cpp17% (1,305 lines)
py20% (1,073 lines)
h9% (128 lines)
Duplication per Component (primary)
recipes/sota56% (1,799 lines)
recipes/slimIPL34% (711 lines)
recipes/lexicon_free37% (616 lines)
recipes/joint_training_vox_populi17% (577 lines)
recipes/mls86% (326 lines)
recipes/self_training23% (240 lines)
recipes/streaming_convnets9% (205 lines)
recipes/local_prior_match11% (163 lines)
recipes/seq2seq_tds76% (159 lines)
recipes/conv_glu49% (137 lines)
recipes/utilities24% (137 lines)
recipes/data15% (66 lines)
data/librispeech31% (46 lines)
data/wsj7% (27 lines)
data/timit14% (18 lines)
data/ami3% (15 lines)
recipes/mling_pl15% (13 lines)
recipes/learnable_frontend16% (11 lines)
data/utils10% (9 lines)
data/mls0% (0 lines)

Duplication Between Components (50+ lines)

G recipes/joint_training_vox_populi recipes/joint_training_vox_populi recipes/slimIPL recipes/slimIPL recipes/joint_training_vox_populi--recipes/slimIPL 418 recipes/conv_glu recipes/conv_glu recipes/lexicon_free recipes/lexicon_free recipes/conv_glu--recipes/lexicon_free 267 recipes/seq2seq_tds recipes/seq2seq_tds recipes/conv_glu--recipes/seq2seq_tds 54 recipes/utilities recipes/utilities recipes/conv_glu--recipes/utilities 50 recipes/lexicon_free--recipes/seq2seq_tds 54 recipes/lexicon_free--recipes/utilities 50 recipes/sota recipes/sota recipes/streaming_convnets recipes/streaming_convnets recipes/sota--recipes/streaming_convnets 190 recipes/local_prior_match recipes/local_prior_match recipes/local_prior_match--recipes/seq2seq_tds 175 recipes/local_prior_match--recipes/utilities 102 recipes/self_training recipes/self_training recipes/local_prior_match--recipes/self_training 51 recipes/seq2seq_tds--recipes/utilities 146 data/librispeech data/librispeech data/librispeech--recipes/self_training 62 data/wsj data/wsj recipes/data recipes/data data/wsj--recipes/data 53

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 50 longest duplicates.
See data for all 954 duplicates...
Size#FoldersFilesLinesCode
46 x 2 recipes/conv_glu/wsj
recipes/lexicon_free/wsj
43:91 (38%)
105:152 (25%)
view
37 x 2 recipes/local_prior_match/librispeech
recipes/local_prior_match/librispeech
2:38 (94%)
2:38 (94%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
34 x 2 recipes/mls/train
recipes/mls/train
1:34 (100%)
1:34 (100%)
view
31 x 2 recipes/slimIPL
recipes/slimIPL
6:36 (83%)
5:35 (70%)
view
30 x 2 recipes/conv_glu/librispeech
recipes/lexicon_free/librispeech
25:57 (46%)
29:61 (13%)
view
29 x 2 recipes/sota/2019/librivox
recipes/sota/2019/librivox
15:43 (58%)
15:43 (58%)
view
29 x 2 recipes/slimIPL
recipes/slimIPL
4:32 (65%)
4:32 (80%)
view
28 x 2 recipes/slimIPL
recipes/slimIPL
2:29 (77%)
2:29 (63%)
view
28 x 2 recipes/slimIPL
recipes/slimIPL
6:33 (75%)
5:32 (77%)
view
27 x 2 recipes/slimIPL
recipes/slimIPL
54:92 (43%)
61:99 (39%)
view
26 x 2 recipes/slimIPL
recipes/slimIPL
4:29 (59%)
4:29 (59%)
view
25 x 2 recipes/slimIPL
recipes/slimIPL
6:30 (67%)
5:29 (56%)
view
24 x 2 recipes/slimIPL
recipes/slimIPL
13:40 (40%)
13:40 (38%)
view
24 x 2 recipes/slimIPL
recipes/slimIPL
13:40 (44%)
13:40 (35%)
view
24 x 2 recipes/slimIPL
recipes/slimIPL
55:89 (40%)
48:82 (44%)
view
23 x 2 recipes/slimIPL
recipes/slimIPL
59:92 (37%)
49:82 (42%)
view
23 x 2 recipes/slimIPL
recipes/slimIPL
56:89 (38%)
59:92 (37%)
view
23 x 2 recipes/slimIPL
recipes/slimIPL
56:89 (38%)
66:99 (33%)
view
23 x 2 recipes/slimIPL
recipes/slimIPL
49:82 (42%)
66:99 (33%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/self_training/librispeech/lm
recipes/sota/2019/lm
25:48 (100%)
25:48 (100%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/mls/train
recipes/mls/train
13:34 (64%)
13:34 (64%)
view
22 x 2 recipes/self_training/librispeech/am
recipes/self_training/librispeech/am
1:22 (100%)
1:22 (100%)
view
21 x 2 recipes/joint_training_vox_populi/cpc
recipes/slimIPL/src
728:750 (1%)
300:322 (1%)
view
21 x 2 recipes/lexicon_free/utilities
recipes/lexicon_free/utilities
187:211 (10%)
126:150 (16%)
view
20 x 2 recipes/sota/2019/librispeech
recipes/sota/2019/librispeech
4:23 (86%)
4:23 (86%)
view
20 x 2 recipes/sota/2019/librivox
recipes/sota/2019/librivox
4:23 (86%)
4:23 (86%)
view
20 x 2 recipes/sota/2019/librispeech
recipes/sota/2019/librivox
4:23 (86%)
4:23 (86%)
view
20 x 2 recipes/sota/2019/librispeech
recipes/sota/2019/librispeech
4:23 (86%)
4:23 (86%)
view
20 x 2 recipes/sota/2019/librispeech
recipes/sota/2019/librivox
4:23 (86%)
4:23 (86%)
view
20 x 2 recipes/sota/2019/librispeech
recipes/sota/2019/librispeech
4:23 (86%)
4:23 (86%)
view
20 x 2 recipes/local_prior_match/librispeech
recipes/seq2seq_tds/librispeech
101:124 (20%)
83:106 (24%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
8 x 2 recipes/self_training/librispeech/lm
data/librispeech
0:0 
0:0 
view
8 x 4 recipes/slimIPL
recipes/slimIPL
recipes/slimIPL
recipes/slimIPL
55:64 
72:81 
62:71 
65:74 
view