flashlight / wav2letter

Facebook AI Research's Automatic Speech Recognition Toolkit
https://github.com/facebookresearch/wav2letter/wiki
Other
6.39k stars 1.01k forks source link

Can't decode #390

Closed toliz closed 5 years ago

toliz commented 5 years ago

I downloaded the docker image for wav2letter and updated it with the latest version of this repo. I am trying to use the results from the Seq2Seq TDS model and while recipes/models/seq2seq_tds/librispeech/prepare.py runs just fine, build/Decoder with the recipes/models/seq2seq_tds/librispeech/decode_convlm_other.cfg has the following error:

root@8b46b828f222:~# wav2letter/build/Decoder --flagsfile decode_convlm_other.cfg 
terminate called after throwing an instance of 'std::runtime_error'
  what():  Invalid dictionary filepath specified.
*** Aborted at 1566985302 (unix time) try "date -d @1566985302" if you are using GNU date ***
PC: @     0x7fde92123428 gsignal
*** SIGABRT (@0x3af) received by PID 943 (TID 0x7fdedc394600) from PID 943; stack trace: ***
    @     0x7fded469a390 (unknown)
    @     0x7fde92123428 gsignal
    @     0x7fde9212502a abort
    @     0x7fde92a6684d __gnu_cxx::__verbose_terminate_handler()
    @     0x7fde92a646b6 (unknown)
    @     0x7fde92a64701 std::terminate()
    @     0x7fde92a64919 __cxa_throw
    @           0x419109 main
    @     0x7fde9210e830 __libc_start_main
    @           0x47b7c9 _start
    @                0x0 (unknown)
Aborted (core dumped)
toliz commented 5 years ago

I opened the respective cpp file and I see the variables FLAGS_tokensdir and FLAGS_tokens are concatenated to form the dictionary path. But the problem is I don't know which file is assumed to be the dictionary and also I can't see the value of these flags to know where to place it. From this line I see that the flags should be saved in /tmp/Decoder.INFO, but my logger contains only the following:

Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I0828 10:05:39.377187   985 Decode.cpp:53] Parsing command line flags
I0828 10:05:39.377609   985 Decode.cpp:57] Reading flags from file decode_convlm_other.cfg
I0828 10:05:39.377884   985 Decode.cpp:82] [Network] Reading acoustic model from seq2seq_tds_librispeech/am/baseline_dev-other.bin
I0828 10:05:40.717425   985 Decode.cpp:86] [Network] Sequential [input -> (0) -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> (7) -> (8) -> (9) -> (10) -> (11) -> (12) -> (13) -> (14) -> (15) -> (16) -> (17) -> (18) -> (19) -> (20) -> (21) -> (22) -> (23) -> (24) -> (25) -> (26) -> output]
        (0): View (-1 80 1 0)
        (1): Conv2D (1->10, 5x21, 2,1, SAME,SAME, 1, 1) (with bias)
        (2): ReLU
        (3): Dropout (0.200000)
        (4): LayerNorm ( axes : { 3 } )
        (5): Time-Depth Separable Block (21, 80, 10) [800 -> 800 -> 800]
        (6): Time-Depth Separable Block (21, 80, 10) [800 -> 800 -> 800]
        (7): Conv2D (10->14, 21x1, 2,1, SAME,SAME, 1, 1) (with bias)
        (8): ReLU
        (9): Dropout (0.200000)
        (10): LayerNorm ( axes : { 3 } )
        (11): Time-Depth Separable Block (21, 80, 14) [1120 -> 1120 -> 1120]
        (12): Time-Depth Separable Block (21, 80, 14) [1120 -> 1120 -> 1120]
        (13): Time-Depth Separable Block (21, 80, 14) [1120 -> 1120 -> 1120]
        (14): Conv2D (14->18, 21x1, 2,1, SAME,SAME, 1, 1) (with bias)
        (15): ReLU
        (16): Dropout (0.200000)
        (17): LayerNorm ( axes : { 3 } )
        (18): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
        (19): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
        (20): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
        (21): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
        (22): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
        (23): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
        (24): View (0 1440 1 0)
        (25): Reorder (1,0,3,2)
        (26): Linear (1440->1024) (with bias)
I0828 10:05:40.717444   985 Decode.cpp:89] [Criterion] Seq2SeqCriterion
I0828 10:05:40.717468   985 Decode.cpp:91] [Network] Number of params: 36539300
I0828 10:05:40.717474   985 Decode.cpp:97] [Network] Updating flags from config file: seq2seq_tds_librispeech/am/baseline_dev-other.bin

My tree for the MODEL_DST:

seq2seq_tds_librispeech/
|-- am
|   |-- baseline_dev-clean.bin
|   |-- baseline_dev-other.bin
|   |-- lexicon-train+dev-unigram-10000-nbest10.lexicon
|   |-- tokens-train-all-unigram-10000.model
|   |-- tokens-train-all-unigram-10000.tokens
|   |-- tokens-train-all-unigram-10000.vocab
|   `-- train.txt
`-- decoder
    |-- lm_librispeech_convlm_14B.bin
    |-- lm_librispeech_convlm_14B.vocab
    `-- lm_librispeech_kenlm_4g.bin

and for the DATA_DST:

librispeech/
|-- audio
|   `-- LibriSpeech
|       |-- dev-clean
|       |-- dev-other
|       |-- test-clean
|       |-- test-other
|       |-- train-clean-100
|       |-- train-clean-360
|       `-- train-other-500
|-- lists
|   |-- dev-clean.lst
|   |-- dev-other.lst
|   |-- test-clean.lst
|   |-- test-other.lst
|   |-- train-clean-100.lst
|   |-- train-clean-360.lst
|   `-- train-other-500.lst
`-- text
    |-- dev-clean.txt
    |-- dev-other.txt
    |-- librispeech-lm-norm.txt
    |-- librispeech-lm-norm.txt.lower.shuffle
    |-- test-clean.txt
    |-- test-other.txt
    |-- train-clean-100.txt
    |-- train-clean-360.txt
    `-- train-other-500.txt

and finally my configuration file (which is placed in the same level as the above 2 folders):

 Decoding config for Librispeech using Seq2Seq TDS model
# Replace `[...]`, `[DATA_DST]`, `[MODEL_DST]` with appropriate paths
# for test-other (best params for dev-other)
--listdata=true
--lm=seq2seq_tds_librispeech/decoder/lm_librispeech_convlm_14B.bin
--am=seq2seq_tds_librispeech/am/baseline_dev-other.bin
--tokensdir=seq2seq_tds_librispeech/am
--test=librispeech/lists/test-other.lst
--sclite=./
--decodertype=tkn
--lmweight=0.5
--wordscore=1.0
--beamsize=80
--beamthreshold=7
--hardselection=1.5
--softselection=10.0
--attentionthreshold=30
--nthread_decoder=8
--smearing=max
--show=true
--lmtype=convlm
--lm_memory=3000
--lm_vocab=seq2seq_tds_librispeech/decoder/lm_librispeech_convlm_14B.vocab
tlikhomanenko commented 5 years ago

Hi @toliz, Thanks for catching this!

I sent fix for prepare.py you pointed and also fixed config to have necessary flags (checked on my side that decoding now is running fine with the pre-trained models from links in the README.md). I fixed also names of generated files in the prepare.py to be consistent with the names from the released links, so please re-run it before running decoding.

One hint: add this flags --logtostderr=1 --minloglevel=0 while running decoding or training in the docker to have all logging right on the screen.

toliz commented 5 years ago

Hello @tlikhomanenko, Although now it's a bit better there are still a few problems.

1) Decoder tries to find the LibriSpeech dataset in /root

For example it tries to find /root/LibriSpeech/test-other/3331/159609/3331-159609-0003.flac I fixed this by making a symbolic folder which mapped to the actual dataset (stored in /root/librispeech/audio/LibriSpeech, which is default location that prepare.py places the data) to /root/LibriSpeech.

2) There is a problem with ConvLM decoding.

The flag lm_vocab should be set to point the lm_librispeech_convlm_14B.vocab file, because otherwise you can only run n-gram decoding. But even if done so, I get the following error:

[ConvLM]: Loading vocabulary from tds/decoder/lm_librispeech_convlm_14B.vocab
terminate called after throwing an instance of 'std::invalid_argument'
  what():  Duplicate entry name in dictionary '0'
*** Aborted at 1567081086 (unix time) try "date -d @1567081086" if you are using GNU date ***
PC: @     0x7f6eef382428 gsignal
*** SIGABRT (@0x9c9) received by PID 2505 (TID 0x7f6f395f3600) from PID 2505; stack trace: ***
    @     0x7f6f318f9390 (unknown)
    @     0x7f6eef382428 gsignal
    @     0x7f6eef38402a abort
    @     0x7f6eefcc584d __gnu_cxx::__verbose_terminate_handler()
    @     0x7f6eefcc36b6 (unknown)
    @     0x7f6eefcc3701 std::terminate()
    @     0x7f6eefcc3919 __cxa_throw
    @           0x5147ed w2l::Dictionary::addEntry()
    @           0x514b8e w2l::Dictionary::createFromStream()
    @           0x514f41 w2l::Dictionary::Dictionary()
    @           0x53a044 w2l::ConvLM::ConvLM()
    @           0x48c434 std::__shared_ptr<>::__shared_ptr<>()
    @           0x41c241 main
    @     0x7f6eef36d830 __libc_start_main
    @           0x47b7c9 _start
    @                0x0 (unknown)
Aborted (core dumped)

Which makes sense to me since in the file src/libraries/common/Dictionary.cpp you try to add all token of the same line with the same key in a dictionary structure. Of course I guess I must have understood something wrong, but debugging the code led me there.

3) Even with the n-gram decoding I get no actual transcription

Here is the output of decoding with the config file for n-gram (alongside with logging) The file <sclite>/test-other.lst.hyp is containing only the audio ids, and the WER is 100 so I guess I get not transcription at all :(

With what paremeters did you actually made it run fine? Could you help me reproduce these results?

root@8b46b828f222:~# wav2letter/build/Decoder --flagsfile decode_ngram.cfg --logtostderr=1 --minloglevel=0 > log.txt
I0829 12:41:50.907443  2866 Decode.cpp:57] Reading flags from file decode_ngram.cfg
I0829 12:41:50.907743  2866 Decode.cpp:82] [Network] Reading acoustic model from nn/baseline_dev-other.bin
I0829 12:41:52.196600  2866 Decode.cpp:86] [Network] Sequential [input -> (0) -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> (7) -> (8) -> (9) -> (10) -> (11) -> (12) -> (13) -> (14) -> (15) -> (16) -> (17) -> (18) -> (19) -> (20) -> (21) -> (22) -> (23) -> (24) -> (25) -> (26) -> output]
    (0): View (-1 80 1 0)
    (1): Conv2D (1->10, 5x21, 2,1, SAME,SAME, 1, 1) (with bias)
    (2): ReLU
    (3): Dropout (0.200000)
    (4): LayerNorm ( axes : { 3 } )
    (5): Time-Depth Separable Block (21, 80, 10) [800 -> 800 -> 800]
    (6): Time-Depth Separable Block (21, 80, 10) [800 -> 800 -> 800]
    (7): Conv2D (10->14, 21x1, 2,1, SAME,SAME, 1, 1) (with bias)
    (8): ReLU
    (9): Dropout (0.200000)
    (10): LayerNorm ( axes : { 3 } )
    (11): Time-Depth Separable Block (21, 80, 14) [1120 -> 1120 -> 1120]
    (12): Time-Depth Separable Block (21, 80, 14) [1120 -> 1120 -> 1120]
    (13): Time-Depth Separable Block (21, 80, 14) [1120 -> 1120 -> 1120]
    (14): Conv2D (14->18, 21x1, 2,1, SAME,SAME, 1, 1) (with bias)
    (15): ReLU
    (16): Dropout (0.200000)
    (17): LayerNorm ( axes : { 3 } )
    (18): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
    (19): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
    (20): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
    (21): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
    (22): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
    (23): Time-Depth Separable Block (21, 80, 18) [1440 -> 1440 -> 1440]
    (24): View (0 1440 1 0)
    (25): Reorder (1,0,3,2)
    (26): Linear (1440->1024) (with bias)
I0829 12:41:52.196660  2866 Decode.cpp:89] [Criterion] Seq2SeqCriterion
I0829 12:41:52.196686  2866 Decode.cpp:91] [Network] Number of params: 36539300
I0829 12:41:52.196699  2866 Decode.cpp:97] [Network] Updating flags from config file: nn/baseline_dev-other.bin
I0829 12:41:52.198128  2866 Decode.cpp:107] Gflags after parsing 
--flagfile=; --fromenv=; --tryfromenv=; --undefok=; --tab_completion_columns=80; --tab_completion_word=; --help=false; --helpfull=false; --helpmatch=; --helpon=; --helppackage=false; --helpshort=false; --helpxml=false; --version=false; --adambeta1=0.90000000000000002; --adambeta2=0.999; --am=nn/baseline_dev-other.bin; --arch=librispeech_s2s_tds_baseline_rerun.arch.txt; --archdir=/mnt/vol/gfsai-east/ai-group/users/awni/speech/arch; --attention=keyvalue; --attentionthreshold=0; --attnWindow=softPretrain; --attnconvchannel=0; --attnconvkernel=0; --attndim=0; --batchsize=16; --beamsize=2500; --beamthreshold=25; --blobdata=false; --channels=1; --criterion=seq2seq; --critoptim=sgd; --datadir=librispeech/lists; --dataorder=output_spiral; --decoderattnround=1; --decoderdropout=0; --decoderrnnlayer=1; --decodertype=tkn; --devwin=0; --emission_dir=; --enable_distributed=true; --encoderdim=512; --eostoken=true; --everstoredb=false; --fftcachesize=1; --filterbanks=80; --flagsfile=decode_ngram.cfg; --framesizems=25; --framestridems=10; --gamma=0.5; --gumbeltemperature=1; --hardselection=1; --input=flac; --inputbinsize=25; --inputfeeding=false; --iter=1000000; --itersave=false; --labelsmooth=0.050000000000000003; --leftWindowSize=50; --lexicon=tds/am/librispeech-train+dev-unigram-10000-nbest10.lexicon; --linlr=-1; --linlrcrit=-1; --linseg=0; --lm=tds/decoder/lm_librispeech_kenlm_4g.bin; --lm_memory=5000; --lm_vocab=; --lmtype=kenlm; --lmweight=1; --localnrmlleftctx=0; --localnrmlrightctx=0; --logadd=false; --lr=0.050000000000000003; --lrcrit=0.050000000000000003; --maxdecoderoutputlen=120; --maxgradnorm=15; --maxisz=9223372036854775807; --maxload=-1; --maxrate=10; --maxsil=50; --maxtsz=9223372036854775807; --maxword=-1; --melfloor=1; --memstepsize=8338608; --mfcc=false; --mfcccoeffs=13; --mfsc=true; --minisz=0; --minrate=3; --minsil=0; --mintsz=0; --momentum=0; --netoptim=sgd; --noresample=false; --nthread=6; --nthread_decoder=1; --onorm=none; --optimepsilon=1e-08; --optimrho=0.90000000000000002; --outputbinsize=5; --pctteacherforcing=99; --pcttraineval=1; --pow=false; --pretrainWindow=3; --replabel=0; --reportiters=0; --rightWindowSize=50; --rndv_filepath=; --rundir=/mnt/vol/gfsai-east/ai-group/users/awni/speech/experiments; --runname=librispeech_s2s_tds_baseline_rerun; --samplerate=16000; --sampletarget=0.01; --samplingstrategy=rand; --sclite=nn; --seed=0; --show=false; --showletters=false; --silweight=0; --smearing=none; --smoothingtemperature=1; --softselection=inf; --softwoffset=10; --softwrate=5; --softwstd=4; --sqnorm=false; --stepsize=40; --surround=; --tag=; --target=ltr; --test=test-other.lst; --tokens=librispeech-train-all-unigram-10000.tokens; --tokensdir=tds/am; --train=librispeech/train-clean-100.lst,librispeech/train-clean-360.lst,librispeech/train-other-500.lst; --trainWithWindow=true; --transdiag=0; --unkweight=-inf; --usewordpiece=true; --valid=librispeech/dev-other:librispeech/dev-other.lst,librispeech/dev-clean:librispeech/dev-clean.lst; --weightdecay=0; --wordscore=1; --wordseparator=_; --world_rank=0; --world_size=1; --alsologtoemail=; --alsologtostderr=false; --colorlogtostderr=false; --drop_log_memory=true; --log_backtrace_at=; --log_dir=; --log_link=; --log_prefix=true; --logbuflevel=0; --logbufsecs=30; --logemaillevel=999; --logmailer=/bin/mail; --logtostderr=true; --max_log_size=1800; --minloglevel=0; --stderrthreshold=5; --stop_logging_if_full_disk=false; --symbolize_stacktrace=true; --v=0; --vmodule=; 
I0829 12:41:52.204645  2866 Decode.cpp:128] Number of classes (network): 9998
I0829 12:41:53.436408  2866 Decode.cpp:135] Number of words: 89612
Falling back to using letters as targets for the unknown word: o'nights
Falling back to using letters as targets for the unknown word: gruffish
Falling back to using letters as targets for the unknown word: fauces
Falling back to using letters as targets for the unknown word: stas
Falling back to using letters as targets for the unknown word: filtrates
Falling back to using letters as targets for the unknown word: pernounce
Falling back to using letters as targets for the unknown word: exackly
Falling back to using letters as targets for the unknown word: alonger
Falling back to using letters as targets for the unknown word: wunnered
Falling back to using letters as targets for the unknown word: reg'ler
Falling back to using letters as targets for the unknown word: knobbly
Falling back to using letters as targets for the unknown word: perambulator's
Falling back to using letters as targets for the unknown word: ow'm
Falling back to using letters as targets for the unknown word: nexter
Falling back to using letters as targets for the unknown word: steever
Falling back to using letters as targets for the unknown word: traindawg
Falling back to using letters as targets for the unknown word: yuss
Falling back to using letters as targets for the unknown word: arsts
Falling back to using letters as targets for the unknown word: distichs
Falling back to using letters as targets for the unknown word: whilome
Falling back to using letters as targets for the unknown word: ignomy
Falling back to using letters as targets for the unknown word: girthing
Falling back to using letters as targets for the unknown word: nu'uman
Falling back to using letters as targets for the unknown word: hijaz
Falling back to using letters as targets for the unknown word: restoreth
Falling back to using letters as targets for the unknown word: doest
Falling back to using letters as targets for the unknown word: doest
Falling back to using letters as targets for the unknown word: seduceth
Falling back to using letters as targets for the unknown word: finical
Falling back to using letters as targets for the unknown word: mimick
Falling back to using letters as targets for the unknown word: merneptah
Falling back to using letters as targets for the unknown word: atum
Falling back to using letters as targets for the unknown word: atum
Falling back to using letters as targets for the unknown word: pithum
Falling back to using letters as targets for the unknown word: ramses
Falling back to using letters as targets for the unknown word: kedem
Falling back to using letters as targets for the unknown word: sinuhit
Falling back to using letters as targets for the unknown word: kenites
Falling back to using letters as targets for the unknown word: kenites
Falling back to using letters as targets for the unknown word: yahweh
Falling back to using letters as targets for the unknown word: antolian
Falling back to using letters as targets for the unknown word: deodorizing
Falling back to using letters as targets for the unknown word: disney
Falling back to using letters as targets for the unknown word: ditchfield
Falling back to using letters as targets for the unknown word: deans
Falling back to using letters as targets for the unknown word: proas
Falling back to using letters as targets for the unknown word: proas
Falling back to using letters as targets for the unknown word: proas
Falling back to using letters as targets for the unknown word: proa
Falling back to using letters as targets for the unknown word: proa
Falling back to using letters as targets for the unknown word: proa
Falling back to using letters as targets for the unknown word: sherburn's
Falling back to using letters as targets for the unknown word: sherburn
Falling back to using letters as targets for the unknown word: darkand
Falling back to using letters as targets for the unknown word: lynches
Falling back to using letters as targets for the unknown word: ringmaster
Falling back to using letters as targets for the unknown word: andbut
Falling back to using letters as targets for the unknown word: heptarchies
Falling back to using letters as targets for the unknown word: rosamun
Falling back to using letters as targets for the unknown word: mouthwhat
Falling back to using letters as targets for the unknown word: tolerble
Falling back to using letters as targets for the unknown word: lizabeth
Falling back to using letters as targets for the unknown word: blodgett
Falling back to using letters as targets for the unknown word: elexander
Falling back to using letters as targets for the unknown word: blodgett
Falling back to using letters as targets for the unknown word: elexander
Falling back to using letters as targets for the unknown word: blodgett
Falling back to using letters as targets for the unknown word: g'yirls
Falling back to using letters as targets for the unknown word: ryo
Falling back to using letters as targets for the unknown word: janeero
Falling back to using letters as targets for the unknown word: fourteenthat's
Falling back to using letters as targets for the unknown word: wilkses
Falling back to using letters as targets for the unknown word: businesswhich
Falling back to using letters as targets for the unknown word: george'swhich
Falling back to using letters as targets for the unknown word: harvey'swhich
Falling back to using letters as targets for the unknown word: dissentering
Falling back to using letters as targets for the unknown word: wilks
Falling back to using letters as targets for the unknown word: mortificationthat
Falling back to using letters as targets for the unknown word: cheeke
Falling back to using letters as targets for the unknown word: vavasour
Falling back to using letters as targets for the unknown word: cowley's
Falling back to using letters as targets for the unknown word: scaped
Falling back to using letters as targets for the unknown word: puttel
Falling back to using letters as targets for the unknown word: roths
Falling back to using letters as targets for the unknown word: fontevrault
Falling back to using letters as targets for the unknown word: satanical
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: mabillon
Falling back to using letters as targets for the unknown word: merlonus
Falling back to using letters as targets for the unknown word: horstius
Falling back to using letters as targets for the unknown word: merlonus
Falling back to using letters as targets for the unknown word: horstius
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: precentors
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: chonodemaire
Falling back to using letters as targets for the unknown word: volvitur
Falling back to using letters as targets for the unknown word: orbis
Falling back to using letters as targets for the unknown word: overfull
Falling back to using letters as targets for the unknown word: benoit
Falling back to using letters as targets for the unknown word: clairvaux
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: sagittaire
Falling back to using letters as targets for the unknown word: salone
Falling back to using letters as targets for the unknown word: embrun
Falling back to using letters as targets for the unknown word: mommol
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: confectionary
Falling back to using letters as targets for the unknown word: rinds
Falling back to using letters as targets for the unknown word: confectionary
Falling back to using letters as targets for the unknown word: confectionary
Falling back to using letters as targets for the unknown word: conficere
Falling back to using letters as targets for the unknown word: confectionary
Falling back to using letters as targets for the unknown word: georges
Falling back to using letters as targets for the unknown word: spaddle
Falling back to using letters as targets for the unknown word: cinderlad
Falling back to using letters as targets for the unknown word: cinderlad
Falling back to using letters as targets for the unknown word: cinderlad
Falling back to using letters as targets for the unknown word: cinderlad
Falling back to using letters as targets for the unknown word: cinderlad
Falling back to using letters as targets for the unknown word: cinderlad
Falling back to using letters as targets for the unknown word: cinderlad
Falling back to using letters as targets for the unknown word: fafnir's
Falling back to using letters as targets for the unknown word: fafnir's
Falling back to using letters as targets for the unknown word: hindfell
Falling back to using letters as targets for the unknown word: brynhild
Falling back to using letters as targets for the unknown word: brynhild's
Falling back to using letters as targets for the unknown word: brynhild
Falling back to using letters as targets for the unknown word: gudrun
Falling back to using letters as targets for the unknown word: brynhild
Falling back to using letters as targets for the unknown word: guirun's
Falling back to using letters as targets for the unknown word: delmonico
Falling back to using letters as targets for the unknown word: gobey's
Falling back to using letters as targets for the unknown word: gobey's
Falling back to using letters as targets for the unknown word: gobey's
Falling back to using letters as targets for the unknown word: garnishment
Falling back to using letters as targets for the unknown word: minionette
Falling back to using letters as targets for the unknown word: consomme
Falling back to using letters as targets for the unknown word: lachaise
Falling back to using letters as targets for the unknown word: lachaise
Falling back to using letters as targets for the unknown word: venial
Falling back to using letters as targets for the unknown word: tranquillities
Falling back to using letters as targets for the unknown word: mestienne
Falling back to using letters as targets for the unknown word: mestienne
Falling back to using letters as targets for the unknown word: mestienne
Falling back to using letters as targets for the unknown word: gribier
Falling back to using letters as targets for the unknown word: mestienne
Falling back to using letters as targets for the unknown word: mestienne's
Falling back to using letters as targets for the unknown word: mestienne
Falling back to using letters as targets for the unknown word: prytaneum
Falling back to using letters as targets for the unknown word: grandpap
Falling back to using letters as targets for the unknown word: sco'tch
Falling back to using letters as targets for the unknown word: grandpap
Falling back to using letters as targets for the unknown word: ev'ybody's
Falling back to using letters as targets for the unknown word: fam'ly
Falling back to using letters as targets for the unknown word: grandpap
Falling back to using letters as targets for the unknown word: yo'
Falling back to using letters as targets for the unknown word: alls
Falling back to using letters as targets for the unknown word: sho'ly
Falling back to using letters as targets for the unknown word: gammer
Falling back to using letters as targets for the unknown word: sanct
Falling back to using letters as targets for the unknown word: girds
Falling back to using letters as targets for the unknown word: cacked
Falling back to using letters as targets for the unknown word: tanquam
Falling back to using letters as targets for the unknown word: sponsus
Falling back to using letters as targets for the unknown word: synonymon
Falling back to using letters as targets for the unknown word: ballock
Falling back to using letters as targets for the unknown word: godebillios
Falling back to using letters as targets for the unknown word: thriftily
Falling back to using letters as targets for the unknown word: angeston
Falling back to using letters as targets for the unknown word: lachryma
Falling back to using letters as targets for the unknown word: prenticeship
Falling back to using letters as targets for the unknown word: supernaculum
Falling back to using letters as targets for the unknown word: capitulum
Falling back to using letters as targets for the unknown word: capitulantes
Falling back to using letters as targets for the unknown word: sanct
Falling back to using letters as targets for the unknown word: mihi
Falling back to using letters as targets for the unknown word: potum
Falling back to using letters as targets for the unknown word: cop's
Falling back to using letters as targets for the unknown word: sanct
Falling back to using letters as targets for the unknown word: spondyles
Falling back to using letters as targets for the unknown word: swinged
Falling back to using letters as targets for the unknown word: balammed
Falling back to using letters as targets for the unknown word: epigaster
Falling back to using letters as targets for the unknown word: homepush
Falling back to using letters as targets for the unknown word: nytouch
Falling back to using letters as targets for the unknown word: sanctess
Falling back to using letters as targets for the unknown word: sharduris
Falling back to using letters as targets for the unknown word: arpad
Falling back to using letters as targets for the unknown word: tiglath
Falling back to using letters as targets for the unknown word: pileser
Falling back to using letters as targets for the unknown word: urartian
Falling back to using letters as targets for the unknown word: qummukh
Falling back to using letters as targets for the unknown word: sharduris
Falling back to using letters as targets for the unknown word: mati
Falling back to using letters as targets for the unknown word: ilu
Falling back to using letters as targets for the unknown word: sharduris
Falling back to using letters as targets for the unknown word: tiglath
Falling back to using letters as targets for the unknown word: pileser
Falling back to using letters as targets for the unknown word: arpad
Falling back to using letters as targets for the unknown word: mati
Falling back to using letters as targets for the unknown word: ilu
Falling back to using letters as targets for the unknown word: jehoash
Falling back to using letters as targets for the unknown word: shallum
Falling back to using letters as targets for the unknown word: menahem
Falling back to using letters as targets for the unknown word: tiglath
Falling back to using letters as targets for the unknown word: pileser
Falling back to using letters as targets for the unknown word: tiglath
Falling back to using letters as targets for the unknown word: pileser
Falling back to using letters as targets for the unknown word: menahem
Falling back to using letters as targets for the unknown word: pekahiah
Falling back to using letters as targets for the unknown word: ukinzer
Falling back to using letters as targets for the unknown word: shapia
Falling back to using letters as targets for the unknown word: bandinello
Falling back to using letters as targets for the unknown word: cortona
Falling back to using letters as targets for the unknown word: bernardone
Falling back to using letters as targets for the unknown word: bargello
Falling back to using letters as targets for the unknown word: magnifies
Falling back to using letters as targets for the unknown word: fridolin
Falling back to using letters as targets for the unknown word: retzch's
Falling back to using letters as targets for the unknown word: millston
Falling back to using letters as targets for the unknown word: overripeness
Falling back to using letters as targets for the unknown word: grandame
Falling back to using letters as targets for the unknown word: ethelried's
Falling back to using letters as targets for the unknown word: ciseaux
Falling back to using letters as targets for the unknown word: watchmaker's
Falling back to using letters as targets for the unknown word: malnutrition
Falling back to using letters as targets for the unknown word: tuberculous
Falling back to using letters as targets for the unknown word: yausky
Falling back to using letters as targets for the unknown word: caprivi's
Falling back to using letters as targets for the unknown word: transitoriness
Falling back to using letters as targets for the unknown word: jakey
Falling back to using letters as targets for the unknown word: jakey
Falling back to using letters as targets for the unknown word: betcha
Falling back to using letters as targets for the unknown word: fuzz
Falling back to using letters as targets for the unknown word: antiquarian's
Falling back to using letters as targets for the unknown word: jakey
Falling back to using letters as targets for the unknown word: jakey's
Falling back to using letters as targets for the unknown word: freeway
Falling back to using letters as targets for the unknown word: gosler
Falling back to using letters as targets for the unknown word: disconcertion
Falling back to using letters as targets for the unknown word: hattersley
Falling back to using letters as targets for the unknown word: milicent's
Falling back to using letters as targets for the unknown word: inelegantly
Falling back to using letters as targets for the unknown word: waggot
Falling back to using letters as targets for the unknown word: wideawake
Falling back to using letters as targets for the unknown word: flerov's
Falling back to using letters as targets for the unknown word: flerov's
Falling back to using letters as targets for the unknown word: equerry's
Falling back to using letters as targets for the unknown word: ivanovitch's
Falling back to using letters as targets for the unknown word: proclus
Falling back to using letters as targets for the unknown word: euphranor
Falling back to using letters as targets for the unknown word: myrtilus
Falling back to using letters as targets for the unknown word: grammateus
Falling back to using letters as targets for the unknown word: hermon's
Falling back to using letters as targets for the unknown word: arsinoe
Falling back to using letters as targets for the unknown word: nico
Falling back to using letters as targets for the unknown word: arsinoe's
Falling back to using letters as targets for the unknown word: lysimachus
Falling back to using letters as targets for the unknown word: amyntas
Falling back to using letters as targets for the unknown word: proclus
Falling back to using letters as targets for the unknown word: arsinoe
Falling back to using letters as targets for the unknown word: arsinoe
Falling back to using letters as targets for the unknown word: rhodian
Falling back to using letters as targets for the unknown word: arsinoe
Falling back to using letters as targets for the unknown word: hermon's
Falling back to using letters as targets for the unknown word: hermon's
Falling back to using letters as targets for the unknown word: ensnares
Falling back to using letters as targets for the unknown word: myrtilus
Falling back to using letters as targets for the unknown word: philippus
Falling back to using letters as targets for the unknown word: philippus
Falling back to using letters as targets for the unknown word: myrtilus
Falling back to using letters as targets for the unknown word: archias
Falling back to using letters as targets for the unknown word: philippus
Falling back to using letters as targets for the unknown word: amyntas
Falling back to using letters as targets for the unknown word: rhodian
Falling back to using letters as targets for the unknown word: proclus
Falling back to using letters as targets for the unknown word: daphne's
Falling back to using letters as targets for the unknown word: soteles
Falling back to using letters as targets for the unknown word: myrtilus
Falling back to using letters as targets for the unknown word: tapis
Falling back to using letters as targets for the unknown word: revolte
Falling back to using letters as targets for the unknown word: chasseur
Falling back to using letters as targets for the unknown word: elisions
Falling back to using letters as targets for the unknown word: farrinder
Falling back to using letters as targets for the unknown word: farrinder
Falling back to using letters as targets for the unknown word: farrinder
Falling back to using letters as targets for the unknown word: farrinder
Falling back to using letters as targets for the unknown word: birdseye
Falling back to using letters as targets for the unknown word: humanitary
Falling back to using letters as targets for the unknown word: figger
Falling back to using letters as targets for the unknown word: detectin
Falling back to using letters as targets for the unknown word: pinkus
Falling back to using letters as targets for the unknown word: phut's
Falling back to using letters as targets for the unknown word: scrappin
Falling back to using letters as targets for the unknown word: ali's
Falling back to using letters as targets for the unknown word: dagos
Falling back to using letters as targets for the unknown word: donovan's
Falling back to using letters as targets for the unknown word: creel
Falling back to using letters as targets for the unknown word: grafton's
Falling back to using letters as targets for the unknown word: ratchford
Falling back to using letters as targets for the unknown word: provocator
Falling back to using letters as targets for the unknown word: agrarian
Falling back to using letters as targets for the unknown word: congealeth
Falling back to using letters as targets for the unknown word: comorin
Falling back to using letters as targets for the unknown word: abyssinians
Falling back to using letters as targets for the unknown word: abyssinians
Falling back to using letters as targets for the unknown word: gladdenest
Falling back to using letters as targets for the unknown word: clomb
Falling back to using letters as targets for the unknown word: platterbaff's
Falling back to using letters as targets for the unknown word: platterbaff
Falling back to using letters as targets for the unknown word: radprop
Falling back to using letters as targets for the unknown word: platterbaff
Falling back to using letters as targets for the unknown word: platterbaff
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: kleptomania
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: pigeoncotes
Falling back to using letters as targets for the unknown word: graeme
Falling back to using letters as targets for the unknown word: nandy's
Falling back to using letters as targets for the unknown word: skew
Falling back to using letters as targets for the unknown word: middy
Falling back to using letters as targets for the unknown word: weevilly
Falling back to using letters as targets for the unknown word: awk
Falling back to using letters as targets for the unknown word: awk
Falling back to using letters as targets for the unknown word: awk'ard
Falling back to using letters as targets for the unknown word: cottony
Falling back to using letters as targets for the unknown word: sallower
Falling back to using letters as targets for the unknown word: graeme
Falling back to using letters as targets for the unknown word: bursheba
Falling back to using letters as targets for the unknown word: fristoe
Falling back to using letters as targets for the unknown word: fristoe
Falling back to using letters as targets for the unknown word: fristoe's
Falling back to using letters as targets for the unknown word: harrisonville
Falling back to using letters as targets for the unknown word: westport
Falling back to using letters as targets for the unknown word: corkle
Falling back to using letters as targets for the unknown word: harrisonville
Falling back to using letters as targets for the unknown word: waverly
Falling back to using letters as targets for the unknown word: elkins
Falling back to using letters as targets for the unknown word: rabb's
Falling back to using letters as targets for the unknown word: cockrell
Falling back to using letters as targets for the unknown word: jackman
Falling back to using letters as targets for the unknown word: youngers
Falling back to using letters as targets for the unknown word: monkers
Falling back to using letters as targets for the unknown word: quantrell
Falling back to using letters as targets for the unknown word: youngers
Falling back to using letters as targets for the unknown word: obocock
Falling back to using letters as targets for the unknown word: woodson
Falling back to using letters as targets for the unknown word: twyman's
Falling back to using letters as targets for the unknown word: hudspeth
Falling back to using letters as targets for the unknown word: helvin
Falling back to using letters as targets for the unknown word: greenton
Falling back to using letters as targets for the unknown word: neosho
Falling back to using letters as targets for the unknown word: chadwell
Falling back to using letters as targets for the unknown word: northfield
Falling back to using letters as targets for the unknown word: waterville
Falling back to using letters as targets for the unknown word: mankato
Falling back to using letters as targets for the unknown word: mankato
Falling back to using letters as targets for the unknown word: glispin
Falling back to using letters as targets for the unknown word: vought
Falling back to using letters as targets for the unknown word: severson
Falling back to using letters as targets for the unknown word: glispin
Falling back to using letters as targets for the unknown word: watonwan
Falling back to using letters as targets for the unknown word: northfield
Falling back to using letters as targets for the unknown word: glispin's
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: marsport
Falling back to using letters as targets for the unknown word: derelicts
Falling back to using letters as targets for the unknown word: racketeers
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: phosphor
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: firster
Falling back to using letters as targets for the unknown word: izzy
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: phosphor
Falling back to using letters as targets for the unknown word: haley's
Falling back to using letters as targets for the unknown word: marspeaker
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: hadda
Falling back to using letters as targets for the unknown word: izzy
Falling back to using letters as targets for the unknown word: izzy
Falling back to using letters as targets for the unknown word: izzy's
Falling back to using letters as targets for the unknown word: izzy
Falling back to using letters as targets for the unknown word: izzy
Falling back to using letters as targets for the unknown word: schulberg's
Falling back to using letters as targets for the unknown word: needled
Falling back to using letters as targets for the unknown word: bums
Falling back to using letters as targets for the unknown word: transship
Falling back to using letters as targets for the unknown word: cobber
Falling back to using letters as targets for the unknown word: izzy
Falling back to using letters as targets for the unknown word: izzy
Falling back to using letters as targets for the unknown word: lauderdale
Falling back to using letters as targets for the unknown word: acheson
Falling back to using letters as targets for the unknown word: lauderdale
Falling back to using letters as targets for the unknown word: promotive
Falling back to using letters as targets for the unknown word: mountnorris
Falling back to using letters as targets for the unknown word: chewers
Falling back to using letters as targets for the unknown word: chewers
Falling back to using letters as targets for the unknown word: deach
Falling back to using letters as targets for the unknown word: dalys
Falling back to using letters as targets for the unknown word: zaynab
Falling back to using letters as targets for the unknown word: azariah
Falling back to using letters as targets for the unknown word: islamised
Falling back to using letters as targets for the unknown word: bhang
Falling back to using letters as targets for the unknown word: shuman
Falling back to using letters as targets for the unknown word: jouvin's
Falling back to using letters as targets for the unknown word: victimize
Falling back to using letters as targets for the unknown word: rubenses
Falling back to using letters as targets for the unknown word: kerstall
Falling back to using letters as targets for the unknown word: torquilstone
Falling back to using letters as targets for the unknown word: rememberest
Falling back to using letters as targets for the unknown word: torquilstone
Falling back to using letters as targets for the unknown word: coningsburgh
Falling back to using letters as targets for the unknown word: preceptory
Falling back to using letters as targets for the unknown word: preceptory
I0829 12:41:54.008906  2866 W2lListFilesDataset.cpp:137] 2939 files found. 
I0829 12:41:54.008996  2866 Utils.cpp:102] Filtered 0/2939 samples
I0829 12:41:54.010501  2866 W2lListFilesDataset.cpp:62] Total batches (i.e. iters): 2939
I0829 12:41:54.011624  2866 Decode.cpp:149] [Serialization] Running forward pass ...
Falling back to using letters as targets for the unknown word: cinderlad
Skipping unknown entry: 'cinderlad'
Falling back to using letters as targets for the unknown word: cinderlad
Skipping unknown entry: 'cinderlad'
Falling back to using letters as targets for the unknown word: waggot
Falling back to using letters as targets for the unknown word: doest
Skipping unknown entry: 'doest'
Skipping unknown entry: 'waggot'
Falling back to using letters as targets for the unknown word: yausky
Skipping unknown entry: 'yausky'
Falling back to using letters as targets for the unknown word: girthing
Falling back to using letters as targets for the unknown word: grafton's
Skipping unknown entry: 'grafton's'
Skipping unknown entry: 'girthing'
Falling back to using letters as targets for the unknown word: myrtilus
Skipping unknown entry: 'myrtilus'
Falling back to using letters as targets for the unknown word: antolian
Skipping unknown entry: 'antolian'
Falling back to using letters as targets for the unknown word: murdoch
Skipping unknown entry: 'murdoch'
Falling back to using letters as targets for the unknown word: jakey's
Skipping unknown entry: 'jakey's'
Falling back to using letters as targets for the unknown word: venial
Falling back to using letters as targets for the unknown word: volvitur
Falling back to using letters as targets for the unknown word: orbis
Skipping unknown entry: 'venial'
Skipping unknown entry: 'volvitur'
Skipping unknown entry: 'orbis'
Falling back to using letters as targets for the unknown word: gladdenest
Skipping unknown entry: 'gladdenest'
Falling back to using letters as targets for the unknown word: nytouch
Falling back to using letters as targets for the unknown word: sanctess
Skipping unknown entry: 'nytouch'
Skipping unknown entry: 'sanctess'
Falling back to using letters as targets for the unknown word: confectionary
Skipping unknown entry: 'confectionary'
Falling back to using letters as targets for the unknown word: cacked
Skipping unknown entry: 'cacked'
Falling back to using letters as targets for the unknown word: cottony
Falling back to using letters as targets for the unknown word: philippus
Skipping unknown entry: 'cottony'
Skipping unknown entry: 'philippus'
Falling back to using letters as targets for the unknown word: graeme
Falling back to using letters as targets for the unknown word: distichs
Skipping unknown entry: 'graeme'
Falling back to using letters as targets for the unknown word: pigeoncote
Skipping unknown entry: 'distichs'
Skipping unknown entry: 'pigeoncote'
Falling back to using letters as targets for the unknown word: ringmaster
Falling back to using letters as targets for the unknown word: garnishment
Skipping unknown entry: 'ringmaster'
Skipping unknown entry: 'garnishment'
Falling back to using letters as targets for the unknown word: rhodian
Falling back to using letters as targets for the unknown word: arsinoe
Falling back to using letters as targets for the unknown word: hermon's
Skipping unknown entry: 'rhodian'
Skipping unknown entry: 'arsinoe'
Skipping unknown entry: 'hermon's'
Falling back to using letters as targets for the unknown word: wilkses
Falling back to using letters as targets for the unknown word: businesswhich
Falling back to using letters as targets for the unknown word: george'swhich
Falling back to using letters as targets for the unknown word: harvey'swhich
Falling back to using letters as targets for the unknown word: dissentering
Skipping unknown entry: 'wilkses'
Skipping unknown entry: 'businesswhich'
Skipping unknown entry: 'george'swhich'
Skipping unknown entry: 'harvey'swhich'
Skipping unknown entry: 'dissentering'
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: fuzz
Falling back to using letters as targets for the unknown word: antiquarian's
Skipping unknown entry: 'fuzz'
Skipping unknown entry: 'antiquarian's'
Falling back to using letters as targets for the unknown word: reg'ler
Skipping unknown entry: 'reg'ler'
Falling back to using letters as targets for the unknown word: izzy
Skipping unknown entry: 'izzy'
Falling back to using letters as targets for the unknown word: fam'ly
Falling back to using letters as targets for the unknown word: ukinzer
Falling back to using letters as targets for the unknown word: shapia
Skipping unknown entry: 'ukinzer'
Skipping unknown entry: 'shapia'
Skipping unknown entry: 'fam'ly'
Falling back to using letters as targets for the unknown word: islamised
Falling back to using letters as targets for the unknown word: bandinello
Skipping unknown entry: 'islamised'
Skipping unknown entry: 'bandinello'
Falling back to using letters as targets for the unknown word: malnutrition
Skipping unknown entry: 'malnutrition'
Falling back to using letters as targets for the unknown word: tranquillities
Skipping unknown entry: 'tranquillities'
Falling back to using letters as targets for the unknown word: dalys
Skipping unknown entry: 'dalys'
Falling back to using letters as targets for the unknown word: mati
Falling back to using letters as targets for the unknown word: ilu
Falling back to using letters as targets for the unknown word: sharduris
Falling back to using letters as targets for the unknown word: pigeoncote
Skipping unknown entry: 'mati'
Skipping unknown entry: 'ilu'
Skipping unknown entry: 'sharduris'
Skipping unknown entry: 'pigeoncote'
Falling back to using letters as targets for the unknown word: fridolin
Falling back to using letters as targets for the unknown word: retzch's
Skipping unknown entry: 'fridolin'
Skipping unknown entry: 'retzch's'
Falling back to using letters as targets for the unknown word: benoit
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: pigeoncote
Falling back to using letters as targets for the unknown word: pigeoncote
Skipping unknown entry: 'benoit'
Skipping unknown entry: 'pigeoncote'
Skipping unknown entry: 'pigeoncote'
Skipping unknown entry: 'pigeoncote'
Falling back to using letters as targets for the unknown word: yo'
Falling back to using letters as targets for the unknown word: alls
Falling back to using letters as targets for the unknown word: prytaneum
Skipping unknown entry: 'yo''
Skipping unknown entry: 'alls'
Skipping unknown entry: 'prytaneum'
Falling back to using letters as targets for the unknown word: lachaise
Skipping unknown entry: 'lachaise'
Falling back to using letters as targets for the unknown word: fafnir's
Falling back to using letters as targets for the unknown word: pernounce
Skipping unknown entry: 'fafnir's'
Skipping unknown entry: 'pernounce'
Falling back to using letters as targets for the unknown word: tiglath
Falling back to using letters as targets for the unknown word: pileser
Skipping unknown entry: 'tiglath'
Skipping unknown entry: 'pileser'
Falling back to using letters as targets for the unknown word: bernardone
Skipping unknown entry: 'bernardone'
Falling back to using letters as targets for the unknown word: wunnered
Falling back to using letters as targets for the unknown word: izzy
Skipping unknown entry: 'izzy'
Skipping unknown entry: 'wunnered'
Falling back to using letters as targets for the unknown word: bargello
Skipping unknown entry: 'bargello'
Falling back to using letters as targets for the unknown word: blodgett
Falling back to using letters as targets for the unknown word: elexander
Falling back to using letters as targets for the unknown word: blodgett
Falling back to using letters as targets for the unknown word: elexander
Falling back to using letters as targets for the unknown word: blodgett
Falling back to using letters as targets for the unknown word: proa
Skipping unknown entry: 'proa'
Skipping unknown entry: 'blodgett'
Skipping unknown entry: 'elexander'
Skipping unknown entry: 'blodgett'
Skipping unknown entry: 'elexander'
Skipping unknown entry: 'blodgett'
Falling back to using letters as targets for the unknown word: stas
Skipping unknown entry: 'stas'
Falling back to using letters as targets for the unknown word: georges
Skipping unknown entry: 'georges'
Falling back to using letters as targets for the unknown word: kleptomania
Falling back to using letters as targets for the unknown word: farrinder
Skipping unknown entry: 'kleptomania'
Skipping unknown entry: 'farrinder'
Falling back to using letters as targets for the unknown word: phut's
Skipping unknown entry: 'phut's'
Falling back to using letters as targets for the unknown word: proclus
Skipping unknown entry: 'proclus'
Falling back to using letters as targets for the unknown word: gobey's
Falling back to using letters as targets for the unknown word: lauderdale
Skipping unknown entry: 'gobey's'
Falling back to using letters as targets for the unknown word: rosamun
Skipping unknown entry: 'lauderdale'
Skipping unknown entry: 'rosamun'
Falling back to using letters as targets for the unknown word: grammateus
Skipping unknown entry: 'grammateus'
Falling back to using letters as targets for the unknown word: sanct
Skipping unknown entry: 'sanct'
Falling back to using letters as targets for the unknown word: pithum
Falling back to using letters as targets for the unknown word: ramses
Falling back to using letters as targets for the unknown word: philippus
Skipping unknown entry: 'pithum'
Skipping unknown entry: 'ramses'
Skipping unknown entry: 'philippus'
Falling back to using letters as targets for the unknown word: hijaz
Falling back to using letters as targets for the unknown word: cinderlad
Skipping unknown entry: 'cinderlad'
Skipping unknown entry: 'hijaz'
Falling back to using letters as targets for the unknown word: milicent's
Falling back to using letters as targets for the unknown word: nexter
Skipping unknown entry: 'milicent's'
Skipping unknown entry: 'nexter'
Falling back to using letters as targets for the unknown word: thriftily
Falling back to using letters as targets for the unknown word: sagittaire
Falling back to using letters as targets for the unknown word: salone
Falling back to using letters as targets for the unknown word: embrun
Falling back to using letters as targets for the unknown word: mommol
Skipping unknown entry: 'thriftily'
Skipping unknown entry: 'sagittaire'
Skipping unknown entry: 'salone'
Skipping unknown entry: 'embrun'
Skipping unknown entry: 'mommol'
Falling back to using letters as targets for the unknown word: hermon's
Skipping unknown entry: 'hermon's'
Falling back to using letters as targets for the unknown word: youngers
Falling back to using letters as targets for the unknown word: cinderlad
Skipping unknown entry: 'youngers'
Skipping unknown entry: 'cinderlad'
Falling back to using letters as targets for the unknown word: cinderlad
Skipping unknown entry: 'cinderlad'
Falling back to using letters as targets for the unknown word: hadda
Skipping unknown entry: 'hadda'
Falling back to using letters as targets for the unknown word: harrisonville
Falling back to using letters as targets for the unknown word: waverly
Skipping unknown entry: 'harrisonville'
Skipping unknown entry: 'waverly'
Falling back to using letters as targets for the unknown word: mestienne
Falling back to using letters as targets for the unknown word: izzy
Skipping unknown entry: 'mestienne'
Skipping unknown entry: 'izzy'
Falling back to using letters as targets for the unknown word: tuberculous
Skipping unknown entry: 'tuberculous'
Falling back to using letters as targets for the unknown word: woodson
Skipping unknown entry: 'woodson'
Falling back to using letters as targets for the unknown word: restoreth
Skipping unknown entry: 'restoreth'
Falling back to using letters as targets for the unknown word: revolte
Skipping unknown entry: 'revolte'
Falling back to using letters as targets for the unknown word: myrtilus
Skipping unknown entry: 'myrtilus'
Falling back to using letters as targets for the unknown word: elkins
Skipping unknown entry: 'elkins'
Falling back to using letters as targets for the unknown word: tanquam
Falling back to using letters as targets for the unknown word: sponsus
Falling back to using letters as targets for the unknown word: platterbaff
Skipping unknown entry: 'tanquam'
Skipping unknown entry: 'sponsus'
Skipping unknown entry: 'platterbaff'
Falling back to using letters as targets for the unknown word: proas
Skipping unknown entry: 'proas'
Falling back to using letters as targets for the unknown word: awk
Falling back to using letters as targets for the unknown word: awk'ard
Skipping unknown entry: 'awk'
Skipping unknown entry: 'awk'ard'
Falling back to using letters as targets for the unknown word: kenites
Falling back to using letters as targets for the unknown word: mestienne
Skipping unknown entry: 'mestienne'
Skipping unknown entry: 'kenites'
Falling back to using letters as targets for the unknown word: ratchford
Falling back to using letters as targets for the unknown word: fontevrault
Skipping unknown entry: 'ratchford'
Skipping unknown entry: 'fontevrault'
Falling back to using letters as targets for the unknown word: ali's
Skipping unknown entry: 'ali's'
Falling back to using letters as targets for the unknown word: cobber
Skipping unknown entry: 'cobber'
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: nandy's
Skipping unknown entry: 'murdoch'
Skipping unknown entry: 'nandy's'
Falling back to using letters as targets for the unknown word: izzy
Falling back to using letters as targets for the unknown word: rememberest
Skipping unknown entry: 'izzy'
Falling back to using letters as targets for the unknown word: azariah
Skipping unknown entry: 'rememberest'
Skipping unknown entry: 'azariah'
Falling back to using letters as targets for the unknown word: prenticeship
Skipping unknown entry: 'prenticeship'
Falling back to using letters as targets for the unknown word: agrarian
Skipping unknown entry: 'agrarian'
Falling back to using letters as targets for the unknown word: capitulum
Falling back to using letters as targets for the unknown word: capitulantes
Skipping unknown entry: 'capitulum'
Skipping unknown entry: 'capitulantes'
Falling back to using letters as targets for the unknown word: cinderlad
Skipping unknown entry: 'cinderlad'
Falling back to using letters as targets for the unknown word: bums
Falling back to using letters as targets for the unknown word: pigeoncote
Skipping unknown entry: 'bums'
Skipping unknown entry: 'pigeoncote'
Falling back to using letters as targets for the unknown word: jakey
Skipping unknown entry: 'jakey'
Falling back to using letters as targets for the unknown word: roths
Skipping unknown entry: 'roths'
Falling back to using letters as targets for the unknown word: izzy
Skipping unknown entry: 'izzy'
Falling back to using letters as targets for the unknown word: chadwell
Skipping unknown entry: 'chadwell'
Falling back to using letters as targets for the unknown word: whilome
Skipping unknown entry: 'whilome'
Falling back to using letters as targets for the unknown word: comorin
Falling back to using letters as targets for the unknown word: ivanovitch's
Skipping unknown entry: 'ivanovitch's'
Skipping unknown entry: 'comorin'
Falling back to using letters as targets for the unknown word: transship
Skipping unknown entry: 'transship'
Falling back to using letters as targets for the unknown word: mabillon
Falling back to using letters as targets for the unknown word: merlonus
Falling back to using letters as targets for the unknown word: horstius
Falling back to using letters as targets for the unknown word: merlonus
Falling back to using letters as targets for the unknown word: horstius
Skipping unknown entry: 'mabillon'
Skipping unknown entry: 'merlonus'
Skipping unknown entry: 'horstius'
Skipping unknown entry: 'merlonus'
Skipping unknown entry: 'horstius'
Falling back to using letters as targets for the unknown word: soteles
Skipping unknown entry: 'soteles'
Falling back to using letters as targets for the unknown word: preceptory
Skipping unknown entry: 'preceptory'
Falling back to using letters as targets for the unknown word: glispin's
Skipping unknown entry: 'glispin's'
Falling back to using letters as targets for the unknown word: abyssinians
Falling back to using letters as targets for the unknown word: millston
Falling back to using letters as targets for the unknown word: chewers
Skipping unknown entry: 'chewers'
Skipping unknown entry: 'abyssinians'
Skipping unknown entry: 'millston'
Falling back to using letters as targets for the unknown word: tolerble
Skipping unknown entry: 'tolerble'
Falling back to using letters as targets for the unknown word: birdseye
Falling back to using letters as targets for the unknown word: humanitary
Skipping unknown entry: 'birdseye'
Skipping unknown entry: 'humanitary'
Falling back to using letters as targets for the unknown word: ryo
Falling back to using letters as targets for the unknown word: janeero
Skipping unknown entry: 'ryo'
Skipping unknown entry: 'janeero'
Falling back to using letters as targets for the unknown word: murdoch
Skipping unknown entry: 'murdoch'
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: betcha
Falling back to using letters as targets for the unknown word: donovan's
Skipping unknown entry: 'betcha'
Skipping unknown entry: 'donovan's'
Falling back to using letters as targets for the unknown word: platterbaff's
Skipping unknown entry: 'platterbaff's'
Falling back to using letters as targets for the unknown word: platterbaff
Skipping unknown entry: 'platterbaff'
Falling back to using letters as targets for the unknown word: watchmaker's
Skipping unknown entry: 'watchmaker's'
Falling back to using letters as targets for the unknown word: murdoch
Skipping unknown entry: 'murdoch'
Falling back to using letters as targets for the unknown word: precentors
Falling back to using letters as targets for the unknown word: jakey
Skipping unknown entry: 'precentors'
Skipping unknown entry: 'jakey'
Falling back to using letters as targets for the unknown word: girds
Falling back to using letters as targets for the unknown word: murdoch
Skipping unknown entry: 'girds'
Skipping unknown entry: 'murdoch'
Falling back to using letters as targets for the unknown word: hindfell
Falling back to using letters as targets for the unknown word: brynhild
Falling back to using letters as targets for the unknown word: mountnorris
Skipping unknown entry: 'hindfell'
Skipping unknown entry: 'brynhild'
Skipping unknown entry: 'mountnorris'
Falling back to using letters as targets for the unknown word: tapis
Skipping unknown entry: 'tapis'
Falling back to using letters as targets for the unknown word: promotive
Skipping unknown entry: 'promotive'
Falling back to using letters as targets for the unknown word: northfield
Skipping unknown entry: 'northfield'
Falling back to using letters as targets for the unknown word: caprivi's
Skipping unknown entry: 'caprivi's'
Falling back to using letters as targets for the unknown word: daphne's
Falling back to using letters as targets for the unknown word: mortificationthat
Skipping unknown entry: 'daphne's'
Skipping unknown entry: 'mortificationthat'
Falling back to using letters as targets for the unknown word: sharduris
Falling back to using letters as targets for the unknown word: provocator
Skipping unknown entry: 'provocator'
Skipping unknown entry: 'sharduris'
Falling back to using letters as targets for the unknown word: murdoch
Skipping unknown entry: 'murdoch'
Falling back to using letters as targets for the unknown word: hattersley
Skipping unknown entry: 'hattersley'
Falling back to using letters as targets for the unknown word: fafnir's
Skipping unknown entry: 'fafnir's'
Falling back to using letters as targets for the unknown word: izzy
Skipping unknown entry: 'izzy'
Falling back to using letters as targets for the unknown word: victimize
Skipping unknown entry: 'victimize'
Falling back to using letters as targets for the unknown word: murdoch
Falling back to using letters as targets for the unknown word: glispin
Falling back to using letters as targets for the unknown word: vought
Falling back to using letters as targets for the unknown word: severson
Skipping unknown entry: 'murdoch'
Skipping unknown entry: 'glispin'
Skipping unknown entry: 'vought'
Skipping unknown entry: 'severson'
Falling back to using letters as targets for the unknown word: vavasour
Skipping unknown entry: 'vavasour'
Falling back to using letters as targets for the unknown word: mestienne
Skipping unknown entry: 'mestienne'
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: gosler
Falling back to using letters as targets for the unknown word: godebillios
Skipping unknown entry: 'gosler'
Skipping unknown entry: 'godebillios'
Falling back to using letters as targets for the unknown word: darkand
Skipping unknown entry: 'darkand'
Falling back to using letters as targets for the unknown word: farrinder
Falling back to using letters as targets for the unknown word: marspeaker
Skipping unknown entry: 'farrinder'
Skipping unknown entry: 'marspeaker'
Falling back to using letters as targets for the unknown word: merneptah
Skipping unknown entry: 'merneptah'
Falling back to using letters as targets for the unknown word: atum
Falling back to using letters as targets for the unknown word: atum
Skipping unknown entry: 'atum'
Skipping unknown entry: 'atum'
Falling back to using letters as targets for the unknown word: o'nights
Skipping unknown entry: 'o'nights'
Falling back to using letters as targets for the unknown word: wilks
Falling back to using letters as targets for the unknown word: shallum
Skipping unknown entry: 'wilks'
Skipping unknown entry: 'shallum'
Falling back to using letters as targets for the unknown word: jackman
Skipping unknown entry: 'jackman'
Falling back to using letters as targets for the unknown word: mouthwhat
Falling back to using letters as targets for the unknown word: sherburn
Falling back to using letters as targets for the unknown word: bhang
Skipping unknown entry: 'mouthwhat'
Skipping unknown entry: 'sherburn'
Skipping unknown entry: 'bhang'
Falling back to using letters as targets for the unknown word: menahem
Falling back to using letters as targets for the unknown word: pekahiah
Skipping unknown entry: 'menahem'
Skipping unknown entry: 'pekahiah'
Falling back to using letters as targets for the unknown word: obocock
Skipping unknown entry: 'obocock'
Falling back to using letters as targets for the unknown word: torquilstone
Skipping unknown entry: 'torquilstone'
Falling back to using letters as targets for the unknown word: proas
Skipping unknown entry: 'proas'
Falling back to using letters as targets for the unknown word: jehoash
Skipping unknown entry: 'jehoash'
Falling back to using letters as targets for the unknown word: menahem
Skipping unknown entry: 'menahem'
Falling back to using letters as targets for the unknown word: chasseur
Falling back to using letters as targets for the unknown word: grandame
Skipping unknown entry: 'chasseur'
Skipping unknown entry: 'grandame'
Falling back to using letters as targets for the unknown word: lynches
Skipping unknown entry: 'lynches'
Falling back to using letters as targets for the unknown word: twyman's
Skipping unknown entry: 'twyman's'
Falling back to using letters as targets for the unknown word: waterville
Skipping unknown entry: 'waterville'
Falling back to using letters as targets for the unknown word: elisions
Skipping unknown entry: 'elisions'
Falling back to using letters as targets for the unknown word: izzy
Skipping unknown entry: 'izzy'
Falling back to using letters as targets for the unknown word: exackly
Skipping unknown entry: 'exackly'
Falling back to using letters as targets for the unknown word: cop's
Falling back to using letters as targets for the unknown word: sanct
Skipping unknown entry: 'cop's'
Skipping unknown entry: 'sanct'
Falling back to using letters as targets for the unknown word: clairvaux
Skipping unknown entry: 'clairvaux'
Falling back to using letters as targets for the unknown word: gobey's
Skipping unknown entry: 'gobey's'
Falling back to using letters as targets for the unknown word: puttel
Falling back to using letters as targets for the unknown word: sanct
Falling back to using letters as targets for the unknown word: sherburn's
Skipping unknown entry: 'puttel'
Skipping unknown entry: 'sanct'
Skipping unknown entry: 'sherburn's'
Falling back to using letters as targets for the unknown word: heptarchies
Skipping unknown entry: 'heptarchies'
Falling back to using letters as targets for the unknown word: ciseaux
Skipping unknown entry: 'ciseaux'
Falling back to using letters as targets for the unknown word: grandpap
Falling back to using letters as targets for the unknown word: helvin
Falling back to using letters as targets for the unknown word: greenton
Skipping unknown entry: 'grandpap'
Skipping unknown entry: 'helvin'
Skipping unknown entry: 'greenton'
Falling back to using letters as targets for the unknown word: cortona
Skipping unknown entry: 'cortona'
Falling back to using letters as targets for the unknown word: cinderlad
Skipping unknown entry: 'cinderlad'
Falling back to using letters as targets for the unknown word: hermon's
Falling back to using letters as targets for the unknown word: arsinoe
Skipping unknown entry: 'hermon's'
Skipping unknown entry: 'arsinoe'
Falling back to using letters as targets for the unknown word: clomb
Skipping unknown entry: 'clomb'
Falling back to using letters as targets for the unknown word: tiglath
Falling back to using letters as targets for the unknown word: pileser
Falling back to using letters as targets for the unknown word: urartian
Falling back to using letters as targets for the unknown word: qummukh
Falling back to using letters as targets for the unknown word: kenites
Falling back to using letters as targets for the unknown word: yahweh
Skipping unknown entry: 'tiglath'
Skipping unknown entry: 'pileser'
Skipping unknown entry: 'urartian'
Skipping unknown entry: 'qummukh'
Skipping unknown entry: 'kenites'
Skipping unknown entry: 'yahweh'
Falling back to using letters as targets for the unknown word: cheeke
Falling back to using letters as targets for the unknown word: gobey's
Skipping unknown entry: 'gobey's'
Skipping unknown entry: 'cheeke'
Falling back to using letters as targets for the unknown word: pigeoncotes
Skipping unknown entry: 'pigeoncotes'
Falling back to using letters as targets for the unknown word: gribier
Skipping unknown entry: 'gribier'
Falling back to using letters as targets for the unknown word: haley's
Skipping unknown entry: 'haley's'
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: ethelried's
Skipping unknown entry: 'ethelried's'
Falling back to using letters as targets for the unknown word: preceptory
Skipping unknown entry: 'preceptory'
Falling back to using letters as targets for the unknown word: congealeth
Falling back to using letters as targets for the unknown word: freeway
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'congealeth'
Skipping unknown entry: 'freeway'
Falling back to using letters as targets for the unknown word: dagos
Falling back to using letters as targets for the unknown word: amyntas
Falling back to using letters as targets for the unknown word: proclus
Skipping unknown entry: 'fauvent'
Skipping unknown entry: 'dagos'
Skipping unknown entry: 'amyntas'
Skipping unknown entry: 'proclus'
Falling back to using letters as targets for the unknown word: chewers
Skipping unknown entry: 'chewers'
Falling back to using letters as targets for the unknown word: lauderdale
Skipping unknown entry: 'lauderdale'
Falling back to using letters as targets for the unknown word: fauces
Falling back to using letters as targets for the unknown word: consomme
Skipping unknown entry: 'fauces'
Skipping unknown entry: 'consomme'
Falling back to using letters as targets for the unknown word: neosho
Skipping unknown entry: 'neosho'
Falling back to using letters as targets for the unknown word: angeston
Skipping unknown entry: 'angeston'
Falling back to using letters as targets for the unknown word: firster
Skipping unknown entry: 'firster'
Falling back to using letters as targets for the unknown word: traindawg
Skipping unknown entry: 'traindawg'
Falling back to using letters as targets for the unknown word: ev'ybody's
Skipping unknown entry: 'ev'ybody's'
Falling back to using letters as targets for the unknown word: myrtilus
Skipping unknown entry: 'myrtilus'
Falling back to using letters as targets for the unknown word: coningsburgh
Falling back to using letters as targets for the unknown word: magnifies
Skipping unknown entry: 'coningsburgh'
Skipping unknown entry: 'magnifies'
Falling back to using letters as targets for the unknown word: ow'm
Skipping unknown entry: 'ow'm'
Falling back to using letters as targets for the unknown word: ditchfield
Skipping unknown entry: 'ditchfield'
Falling back to using letters as targets for the unknown word: proas
Skipping unknown entry: 'proas'
Falling back to using letters as targets for the unknown word: acheson
Skipping unknown entry: 'acheson'
Falling back to using letters as targets for the unknown word: myrtilus
Skipping unknown entry: 'myrtilus'
Falling back to using letters as targets for the unknown word: marsport
Skipping unknown entry: 'marsport'
Falling back to using letters as targets for the unknown word: steever
Falling back to using letters as targets for the unknown word: g'yirls
Skipping unknown entry: 'steever'
Skipping unknown entry: 'g'yirls'
Falling back to using letters as targets for the unknown word: supernaculum
Skipping unknown entry: 'supernaculum'
Falling back to using letters as targets for the unknown word: shuman
Skipping unknown entry: 'shuman'
Falling back to using letters as targets for the unknown word: euphranor
Falling back to using letters as targets for the unknown word: hudspeth
Skipping unknown entry: 'euphranor'
Skipping unknown entry: 'hudspeth'
Falling back to using letters as targets for the unknown word: skew
Skipping unknown entry: 'skew'
Falling back to using letters as targets for the unknown word: archias
Skipping unknown entry: 'archias'
Falling back to using letters as targets for the unknown word: spondyles
Falling back to using letters as targets for the unknown word: swinged
Falling back to using letters as targets for the unknown word: balammed
Skipping unknown entry: 'spondyles'
Skipping unknown entry: 'swinged'
Skipping unknown entry: 'balammed'
Falling back to using letters as targets for the unknown word: flerov's
Falling back to using letters as targets for the unknown word: flerov's
Skipping unknown entry: 'flerov's'
Skipping unknown entry: 'flerov's'
Falling back to using letters as targets for the unknown word: pinkus
Skipping unknown entry: 'pinkus'
Falling back to using letters as targets for the unknown word: abyssinians
Falling back to using letters as targets for the unknown word: awk
Skipping unknown entry: 'awk'
Skipping unknown entry: 'abyssinians'
Falling back to using letters as targets for the unknown word: minionette
Skipping unknown entry: 'minionette'
Falling back to using letters as targets for the unknown word: sharduris
Falling back to using letters as targets for the unknown word: arpad
Skipping unknown entry: 'sharduris'
Skipping unknown entry: 'arpad'
Falling back to using letters as targets for the unknown word: deans
Falling back to using letters as targets for the unknown word: arsinoe
Skipping unknown entry: 'deans'
Skipping unknown entry: 'arsinoe'
Falling back to using letters as targets for the unknown word: doest
Skipping unknown entry: 'doest'
Falling back to using letters as targets for the unknown word: torquilstone
Skipping unknown entry: 'torquilstone'
Falling back to using letters as targets for the unknown word: sho'ly
Skipping unknown entry: 'sho'ly'
Falling back to using letters as targets for the unknown word: lachaise
Skipping unknown entry: 'lachaise'
Falling back to using letters as targets for the unknown word: kedem
Skipping unknown entry: 'kedem'
Falling back to using letters as targets for the unknown word: corkle
Skipping unknown entry: 'corkle'
Falling back to using letters as targets for the unknown word: disney
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'disney'
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: equerry's
Skipping unknown entry: 'equerry's'
Falling back to using letters as targets for the unknown word: cowley's
Skipping unknown entry: 'cowley's'
Falling back to using letters as targets for the unknown word: arpad
Falling back to using letters as targets for the unknown word: mati
Falling back to using letters as targets for the unknown word: ilu
Skipping unknown entry: 'arpad'
Skipping unknown entry: 'mati'
Skipping unknown entry: 'ilu'
Falling back to using letters as targets for the unknown word: scrappin
Skipping unknown entry: 'scrappin'
Falling back to using letters as targets for the unknown word: harrisonville
Falling back to using letters as targets for the unknown word: westport
Falling back to using letters as targets for the unknown word: grandpap
Falling back to using letters as targets for the unknown word: sco'tch
Falling back to using letters as targets for the unknown word: grandpap
Skipping unknown entry: 'harrisonville'
Skipping unknown entry: 'westport'
Skipping unknown entry: 'grandpap'
Skipping unknown entry: 'sco'tch'
Skipping unknown entry: 'grandpap'
Falling back to using letters as targets for the unknown word: phosphor
Falling back to using letters as targets for the unknown word: schulberg's
Skipping unknown entry: 'phosphor'
Skipping unknown entry: 'schulberg's'
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: fourteenthat's
Skipping unknown entry: 'fourteenthat's'
Falling back to using letters as targets for the unknown word: deach
Falling back to using letters as targets for the unknown word: spaddle
Skipping unknown entry: 'deach'
Skipping unknown entry: 'spaddle'
Falling back to using letters as targets for the unknown word: proa
Skipping unknown entry: 'proa'
Falling back to using letters as targets for the unknown word: jakey
Falling back to using letters as targets for the unknown word: glispin
Falling back to using letters as targets for the unknown word: watonwan
Skipping unknown entry: 'jakey'
Falling back to using letters as targets for the unknown word: disconcertion
Skipping unknown entry: 'glispin'
Skipping unknown entry: 'watonwan'
Skipping unknown entry: 'disconcertion'
Falling back to using letters as targets for the unknown word: cockrell
Skipping unknown entry: 'cockrell'
Falling back to using letters as targets for the unknown word: jouvin's
Skipping unknown entry: 'jouvin's'
Falling back to using letters as targets for the unknown word: epigaster
Falling back to using letters as targets for the unknown word: homepush
Skipping unknown entry: 'epigaster'
Skipping unknown entry: 'homepush'
Falling back to using letters as targets for the unknown word: murdoch
Skipping unknown entry: 'murdoch'
Falling back to using letters as targets for the unknown word: rinds
Skipping unknown entry: 'rinds'
Falling back to using letters as targets for the unknown word: arsinoe
Falling back to using letters as targets for the unknown word: confectionary
Skipping unknown entry: 'arsinoe'
Skipping unknown entry: 'confectionary'
Falling back to using letters as targets for the unknown word: murdoch
Skipping unknown entry: 'murdoch'
Falling back to using letters as targets for the unknown word: monkers
Falling back to using letters as targets for the unknown word: quantrell
Skipping unknown entry: 'monkers'
Skipping unknown entry: 'quantrell'
Falling back to using letters as targets for the unknown word: delmonico
Skipping unknown entry: 'delmonico'
Falling back to using letters as targets for the unknown word: chonodemaire
Falling back to using letters as targets for the unknown word: synonymon
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'chonodemaire'
Skipping unknown entry: 'synonymon'
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: racketeers
Falling back to using letters as targets for the unknown word: scaped
Skipping unknown entry: 'racketeers'
Skipping unknown entry: 'scaped'
Falling back to using letters as targets for the unknown word: lizabeth
Skipping unknown entry: 'lizabeth'
Falling back to using letters as targets for the unknown word: mankato
Falling back to using letters as targets for the unknown word: phosphor
Skipping unknown entry: 'mankato'
Skipping unknown entry: 'phosphor'
Falling back to using letters as targets for the unknown word: farrinder
Skipping unknown entry: 'farrinder'
Falling back to using letters as targets for the unknown word: inelegantly
Skipping unknown entry: 'inelegantly'
Falling back to using letters as targets for the unknown word: radprop
Skipping unknown entry: 'radprop'
Falling back to using letters as targets for the unknown word: needled
Skipping unknown entry: 'needled'
Falling back to using letters as targets for the unknown word: filtrates
Skipping unknown entry: 'filtrates'
Falling back to using letters as targets for the unknown word: mankato
Falling back to using letters as targets for the unknown word: knobbly
Falling back to using letters as targets for the unknown word: perambulator's
Skipping unknown entry: 'mankato'
Skipping unknown entry: 'knobbly'
Skipping unknown entry: 'perambulator's'
Falling back to using letters as targets for the unknown word: sallower
Falling back to using letters as targets for the unknown word: philippus
Falling back to using letters as targets for the unknown word: amyntas
Falling back to using letters as targets for the unknown word: rhodian
Falling back to using letters as targets for the unknown word: proclus
Skipping unknown entry: 'sallower'
Skipping unknown entry: 'philippus'
Skipping unknown entry: 'amyntas'
Skipping unknown entry: 'rhodian'
Skipping unknown entry: 'proclus'
Falling back to using letters as targets for the unknown word: fauvent
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: proa
Falling back to using letters as targets for the unknown word: brynhild
Falling back to using letters as targets for the unknown word: gudrun
Falling back to using letters as targets for the unknown word: brynhild
Falling back to using letters as targets for the unknown word: guirun's
Skipping unknown entry: 'proa'
Skipping unknown entry: 'brynhild'
Skipping unknown entry: 'gudrun'
Skipping unknown entry: 'brynhild'
Skipping unknown entry: 'guirun's'
Falling back to using letters as targets for the unknown word: graeme
Skipping unknown entry: 'graeme'
Falling back to using letters as targets for the unknown word: northfield
Skipping unknown entry: 'northfield'
Falling back to using letters as targets for the unknown word: fauvent
Falling back to using letters as targets for the unknown word: arsts
Skipping unknown entry: 'arsts'
Skipping unknown entry: 'fauvent'
Falling back to using letters as targets for the unknown word: alonger
Skipping unknown entry: 'alonger'
Falling back to using letters as targets for the unknown word: nico
Falling back to using letters as targets for the unknown word: arsinoe's
Skipping unknown entry: 'nico'
Skipping unknown entry: 'arsinoe's'
Falling back to using letters as targets for the unknown word: ensnares
Skipping unknown entry: 'ensnares'
Falling back to using letters as targets for the unknown word: derelicts
Skipping unknown entry: 'derelicts'
Falling back to using letters as targets for the unknown word: ignomy
Skipping unknown entry: 'ignomy'
Falling back to using letters as targets for the unknown word: youngers
Skipping unknown entry: 'youngers'
Falling back to using letters as targets for the unknown word: seduceth
Falling back to using letters as targets for the unknown word: lachryma
Skipping unknown entry: 'seduceth'
Skipping unknown entry: 'lachryma'
Falling back to using letters as targets for the unknown word: bursheba
Falling back to using letters as targets for the unknown word: fristoe
Falling back to using letters as targets for the unknown word: fristoe
Falling back to using letters as targets for the unknown word: fristoe's
Skipping unknown entry: 'bursheba'
Skipping unknown entry: 'fristoe'
Skipping unknown entry: 'fristoe'
Skipping unknown entry: 'fristoe's'
Falling back to using letters as targets for the unknown word: rabb's
Skipping unknown entry: 'rabb's'
Falling back to using letters as targets for the unknown word: overripeness
Skipping unknown entry: 'overripeness'
Falling back to using letters as targets for the unknown word: mestienne's
Falling back to using letters as targets for the unknown word: mestienne
Skipping unknown entry: 'mestienne's'
Skipping unknown entry: 'mestienne'
Falling back to using letters as targets for the unknown word: finical
Falling back to using letters as targets for the unknown word: mimick
Falling back to using letters as targets for the unknown word: kerstall
Falling back to using letters as targets for the unknown word: confectionary
Falling back to using letters as targets for the unknown word: conficere
Falling back to using letters as targets for the unknown word: confectionary
Skipping unknown entry: 'kerstall'
Skipping unknown entry: 'finical'
Skipping unknown entry: 'mimick'
Skipping unknown entry: 'confectionary'
Skipping unknown entry: 'conficere'
Skipping unknown entry: 'confectionary'
Falling back to using letters as targets for the unknown word: rubenses
Skipping unknown entry: 'rubenses'
Falling back to using letters as targets for the unknown word: lysimachus
Falling back to using letters as targets for the unknown word: ballock
Skipping unknown entry: 'lysimachus'
Falling back to using letters as targets for the unknown word: nu'uman
Skipping unknown entry: 'ballock'
Skipping unknown entry: 'nu'uman'
Falling back to using letters as targets for the unknown word: andbut
Falling back to using letters as targets for the unknown word: platterbaff
Skipping unknown entry: 'andbut'
Skipping unknown entry: 'platterbaff'
Falling back to using letters as targets for the unknown word: gammer
Skipping unknown entry: 'gammer'
Falling back to using letters as targets for the unknown word: izzy's
Falling back to using letters as targets for the unknown word: satanical
Falling back to using letters as targets for the unknown word: mihi
Falling back to using letters as targets for the unknown word: potum
Skipping unknown entry: 'izzy's'
Skipping unknown entry: 'satanical'
Skipping unknown entry: 'mihi'
Skipping unknown entry: 'potum'
Falling back to using letters as targets for the unknown word: farrinder
Skipping unknown entry: 'farrinder'
Falling back to using letters as targets for the unknown word: transitoriness
Skipping unknown entry: 'transitoriness'
Falling back to using letters as targets for the unknown word: gruffish
Skipping unknown entry: 'gruffish'
Falling back to using letters as targets for the unknown word: mestienne
Skipping unknown entry: 'mestienne'
Falling back to using letters as targets for the unknown word: creel
Skipping unknown entry: 'creel'
Falling back to using letters as targets for the unknown word: overfull
Skipping unknown entry: 'overfull'
Falling back to using letters as targets for the unknown word: sinuhit
Skipping unknown entry: 'sinuhit'
Falling back to using letters as targets for the unknown word: figger
Falling back to using letters as targets for the unknown word: detectin
Skipping unknown entry: 'figger'
Skipping unknown entry: 'detectin'
Falling back to using letters as targets for the unknown word: deodorizing
Skipping unknown entry: 'deodorizing'
Falling back to using letters as targets for the unknown word: middy
Falling back to using letters as targets for the unknown word: weevilly
Skipping unknown entry: 'middy'
Skipping unknown entry: 'weevilly'
Falling back to using letters as targets for the unknown word: tiglath
Falling back to using letters as targets for the unknown word: pileser
Skipping unknown entry: 'tiglath'
Skipping unknown entry: 'pileser'
Falling back to using letters as targets for the unknown word: brynhild's
Skipping unknown entry: 'brynhild's'
Falling back to using letters as targets for the unknown word: pigeoncote
Skipping unknown entry: 'pigeoncote'
Falling back to using letters as targets for the unknown word: tiglath
Falling back to using letters as targets for the unknown word: pileser
Skipping unknown entry: 'tiglath'
Skipping unknown entry: 'pileser'
Falling back to using letters as targets for the unknown word: wideawake
Skipping unknown entry: 'wideawake'
Falling back to using letters as targets for the unknown word: zaynab
Falling back to using letters as targets for the unknown word: yuss
Skipping unknown entry: 'zaynab'
Skipping unknown entry: 'yuss'
I0829 12:43:04.126574  2866 Decode.cpp:196] [Dataset] Number of samples per thread: 2939
I0829 12:43:04.996770  2866 Decode.cpp:304] [Decoder] LM constructed.
I0829 12:43:04.996907  2866 Decode.cpp:409] [Decoder] Seq2Seq decoder with token-LM loaded in thread: 0
I0829 12:43:09.410919  2866 Decode.cpp:563] ------
[Decode test-other.lst (2939 samples) in 4.41398s (actual decoding time 0.0015s/sample) -- WER: 100, LER: 100]
nimz commented 5 years ago

I also got the above error when using the lm_librispeech_convlm_14B.vocab file.

I fixed it by modifying line 46 of src/libraries/Dictionary.cpp to addEntry(tkn, idx); break;. This ensures that only the first entry of each line will be added to the dictionary - the second (number) will be ignored. I am not sure what the numbers are for, or if this is the right way to fix the issue, but it worked for me. (You need to rebuild wav2letter after doing this.)

When I run the fixed decoding (using "dev-clean" model, testing on "test-clean"), I get a WER of 3.39%, which is slightly higher than the 3.28% reported in the paper. @tlikhomanenko is this error rate expected, or is there an issue with the way I fixed the addEntry bug? Thanks for your help.

toliz commented 5 years ago

Thanks @nimz. Did you had any of the other issues as well?

tlikhomanenko commented 5 years ago

Hi @toliz, @nimz

1) Decoder tries to find the LibriSpeech dataset in /root

For example it tries to find /root/LibriSpeech/test-other/3331/159609/3331-159609-0003.flac I fixed this by making a symbolic folder which mapped to the actual dataset (stored in /root/librispeech/audio/LibriSpeech, which is default location that prepare.py places the data) to /root/LibriSpeech.

How did you run prepare.py? Did you specify data_dst correctly? Seems like you re-run it without specifying data_dst. You should use the same data_dst from prepare.py for [DATA_DST] in the configs. And remember to use full absolute paths in the config while working in docker (not ~/...).

2) There is a problem with ConvLM decoding.

The flag lm_vocab should be set to point the lm_librispeech_convlm_14B.vocab file, because otherwise you can only run n-gram decoding.

There was a bug in the file (it was original from fairseq, but we need to remove the second column - frequencies of the words, as expected format is only word on each row). We updated this file, so please download it again. Now it is in a right format for the decoder.

I also got the above error when using the lm_librispeech_convlm_14B.vocab file.

I fixed it by modifying line 46 of src/libraries/Dictionary.cpp to addEntry(tkn, idx); break;. This ensures that only the first entry of each line will be added to the dictionary - the second (number) will be ignored. I am not sure what the numbers are for, or if this is the right way to fix the issue, but it worked for me. (You need to rebuild wav2letter after doing this.)

Simple solution - just modify file cut -f1 -d " " lm_librispeech_convlm_14B.vocab or download it again (as said above).

I am running in the docker (with current master)

./Decoder --flagsfile /recipes/models/seq2seq_tds/librispeech/decode_ngram_clean.cfg --minloglevel=0 --logtostderr=1

with decode_kenlm_clean.cfg (acoustic model and language models I used by downloading the links from README.md)

# Decoding config for Librispeech using Seq2Seq TDS model
# Replace `[...]`, `[DATA_DST]`, `[MODEL_DST]` with appropriate paths
# for test-clean (best params for dev-clean)
--am=/recipes/models/seq2seq_tds/librispeech/am/baseline_dev-clean.bin 
--tokensdir=/recipes/models/seq2seq_tds/librispeech/am
--tokens=librispeech-train-all-unigram-10000.tokens
--lexicon=/recipes/models/seq2seq_tds/librispeech/am/librispeech-train+dev-unigram-10000-nbest10.lexicon
--lm=/recipes/models/seq2seq_tds/librispeech/decoder/lm_librispeech_kenlm_4g.bin
--datadir=/checkpoint/antares/datasets/librispeech/lists
--test=test-clean.lst
--decodertype=tkn
--lmweight=1.0
--wordscore=2.0
--beamsize=80
--beamthreshold=7
--hardselection=1.5
--softselection=10.0
--attentionthreshold=30
--nthread_decoder=2
--smearing=max
--show=true

and in the log I have

...
I0829 18:53:14.874413 48705 Decode.cpp:194] [Dataset] Number of samples per thread: 1310
I0829 18:53:15.523000 48705 Decode.cpp:302] [Decoder] LM constructed.
I0829 18:53:15.523533 48989 Decode.cpp:407] [Decoder] Seq2Seq decoder with token-LM loaded in thread: 0
I0829 18:53:16.361666 48990 Decode.cpp:407] [Decoder] Seq2Seq decoder with token-LM loaded in thread: 1
|T|: she screamed and shouted too with a terrific volume of sound which doubtless caused the hearts of the fugitives to quake within them
|P|: she screamed and shouted too with a terrific volume of sound which doubtless caused the hearts of the fugitives to quake within them
[sample: test-clean-1221-135767-0010, WER: 0%, LER: 0%, slice WER: 0%, slice LER: 0%, progress (slice 0): 0.0763359%]
|T|: then i drank half of the hornful and sent the rest across the fire to the farmer he took it and smiled saying
|P|: then i drank half of the mournful and set the rest across the fire to the farmer he took it and smiled saying
[sample: test-clean-5142-33396-0034, WER: 8.69565%, LER: 2.75229%, slice WER: 4.34783%, slice LER: 1.24481%, progress (slice 0): 0.152672%]
|T|: it is you who are mistaken raoul i have read his distress in his eyes in his every gesture and action the whole day
|P|: it is you who are mistaken roe i have read his distress in his eyes in his every gesture and action the whole day
[sample: test-clean-6930-75918-0009, WER: 4.16667%, LER: 2.6087%, slice WER: 4.28571%, slice LER: 1.68539%, progress (slice 0): 0.229008%]
|T|: those clouds seem as if they were going to crush the sea
|P|: those clouds seem as if they were going to crush the sea
[sample: test-clean-260-123288-0009, WER: 0%, LER: 0%, slice WER: 3.65854%, slice LER: 1.45631%, progress (slice 0): 0.305344%]
|T|: rodolfo and his companions with their faces muffled in their cloaks stared rudely and insolently at the mother the daughter and the servant maid
|P|: rudolpho and his companions with their faces muffled in their cloaks stared rudely and insolently at the mother the daughter and the servant maid
[sample: test-clean-5639-40744-0002, WER: 4.16667%, LER: 2.08333%, slice WER: 3.77358%, slice LER: 1.61871%, progress (slice 0): 0.381679%]
|T|: uncas occupied a distant corner in a reclining attitude being rigidly bound both hands and feet by strong and painful withes
|P|: uncas occupied a distant corner in a reclining attitude being rigidly bound both hands and feet by strong and painful whiffs
[sample: test-clean-1320-122617-0019, WER: 4.7619%, LER: 3.22581%, slice WER: 3.93701%, slice LER: 1.91176%, progress (slice 0): 0.458015%]
|T|: there was something in his air and manner that betrayed to the scout the utter confusion of the state of his mind
|P|: there was something in his air and manner that betrayed to the scout the utter confusion of the state of his mind
[sample: test-clean-1320-122617-0003, WER: 0%, LER: 0%, slice WER: 3.3557%, slice LER: 1.63934%, progress (slice 0): 0.534351%]
|T|: january and february of eighteen thirty seven had passed away and still there was no reply from southey
|P|: january and february of eighteen thirty seven had passed away and still there was no reply from sylvie
[sample: test-clean-3575-170457-0009, WER: 5.55556%, LER: 4.85437%, slice WER: 3.59281%, slice LER: 2.00893%, progress (slice 0): 0.610687%]
|T|: as to his age and also the name of his master jacob's statement varied somewhat from the advertisement
|P|: as to his age and also the name of his master jacob's statement varied somewhat from the advertisement
[sample: test-clean-8463-287645-0013, WER: 0%, LER: 0%, slice WER: 3.24324%, slice LER: 1.80361%, progress (slice 0): 0.687023%]
....

@toliz, could you send what you have inside log.txt? Or running as I am doing and send what is printed after

I0829 18:52:20.055450 48705 Decode.cpp:105] Gflags after parsing

and after

I0829 18:53:15.523000 48705 Decode.cpp:302] [Decoder] LM constructed.

When I run the fixed decoding (using "dev-clean" model, testing on "test-clean"), I get a WER of 3.39%, which is slightly higher than the 3.28% reported in the paper. @tlikhomanenko is this error rate expected, or is there an issue with the way I fixed the addEntry bug? Thanks for your help.

@nimz Running on my side, will update as it will be finished.

tlikhomanenko commented 5 years ago

@toliz,

3) Even with the n-gram decoding I get no actual transcription

Here is the output of decoding with the config file for n-gram (alongside with logging) The file <sclite>/test-other.lst.hyp is containing only the audio ids, and the WER is 100 so I guess I get not transcription at all :(

With what paremeters did you actually made it run fine? Could you help me reproduce these results?

Found the error in your parameters: you set --attentionthreshold=0, thus all hypotheses are cut and you will have an empty predicted transcription (that is why the time of decoding is tiny). You should provide positive number. Please use parameters from the original config (the same as I posted above). In case you want to play with parameters: beamsize and beamthreshould should be small (we used 80 and 7 correspondingly) for seq2seq decoder. Also use flags --show=true --showletters=true then the decoder will print word and letter transcriptions (target and predicted) so it is simpler to debug what happens.

tlikhomanenko commented 5 years ago

@nimz,

with released models you should get the following numbers:

These numbers are different from the paper numbers because (but close): 1) we re-trained acoustic model using master branch (to make it work with published code) and provided the link to this re-trained model. So it is different from the model we used in the paper. 2) even though AM is different, the decoder parameters are kept to be the same as we used in the paper.

toliz commented 5 years ago

How did you run prepare.py? Did you specify data_dst correctly? Seems like you re-run it without specifying data_dst. You should use the same data_dst from prepare.py for [DATA_DST] in the configs. And remember to use full absolute paths in the config while working in docker (not ~/...).

The problem is my .lst files, they are referencing this path. Sorry for not having caught this one.

There was a bug in the file (it was original from fairseq, but we need to remove the second column - frequencies of the words, as expected format is only word on each row). We updated this file, so please download it again. Now it is in a right format for the decoder.

Now this runs fine

Found the error in your parameters: you set --attentionthreshold=0, thus all hypotheses are cut and you will have an empty predicted transcription (that is why the time of decoding is tiny). You should provide positive number. Please use parameters from the original config (the same as I posted above). In case you want to play with parameters: beamsize and beamthreshould should be small (we used 80 and 7 correspondingly) for seq2seq decoder. Also use flags --show=true --showletters=true then the decoder will print word and letter transcriptions (target and predicted) so it is simpler to debug what happens.

This indeed solved the issue, for some reason after git pull my config files got messy.

I have a few more questions, if you could help me

1) Decoding with ConvLM crashes due to memory error on test-other.lst. I share a server (which maybe the reason it crashed) with 2 GTX 1070 (17GB total), do you think I need more just to use decoding?

2) I ran decode (with ConvLM) just on one example from test-other and i took 40 minutes (I just kept the first line of test-other.lst). Is this normal? On the other hand Decoding with n-gram outputs this:

[Decode custom-test.lst (100 samples) in 1342.12s (actual decoding time 25.3s/sample) -- WER: 6.42903, LER: 2.80802]

The timing is normal I guess, but isn't WER too low? (I used the first 100 samples from test-other)

And final question which may be for another thread: If i want to use decoding in a frequent basis, is there a way to have the model loaded in GPU and just "send queries"? So it doesn't spend time loading the model every time?

tlikhomanenko commented 5 years ago

Hi @toliz,

1) Decoding with ConvLM crashes due to memory error on test-other.lst. I share a server (which maybe the reason it crashed) with 2 GTX 1070 (17GB total), do you think I need more just to use decoding?

I am running on 2 GPUs, on each 2GB-5GB(at peak) are used. Just have a look at nvidia-smi during running, if your process is the second process on the GPU and there is OOM then your process will be killed.

2) I ran decode (with ConvLM) just on one example from test-other and i took 40 minutes (I just kept the first line of test-other.lst). Is this normal? On the other hand Decoding with n-gram outputs this:

[Decode custom-test.lst (100 samples) in 1342.12s (actual decoding time 25.3s/sample) -- WER: 6.42903, LER: 2.80802]

The timing is normal I guess, but isn't WER too low? (I used the first 100 samples from test-other)

And final question which may be for another thread: If i want to use decoding in a frequent basis, is there a way to have the model loaded in GPU and just "send queries"? So it doesn't spend time loading the model every time?

You could implement this by yourself, but time to load a model on the GPU (which is several Gb) is negligible with comparison to the decoding time, so I don't see a point.

toliz commented 5 years ago

Oh thanks a lot! Yes I used these values for decoding.

It turns out that for my target videos/audios the (pretrained) wav2letter model has bad performance, so I am switching to another ASR (since I don't want to spend more time digging around).

But I am thankful for FAIR's contribution and your help with my issues :)