--- tags: - espnet - audio - automatic-speech-recognition language: de datasets: - speechcatcher license: mit --- ## Speechcatcher ESPnet streaming ASR model XL for German ASR ### `speechcatcher/speechcatcher_german_espnet_streaming_transformer_26k_train_size_xl_raw_de_bpe1024` This model was trained by bmilde using the Speechcatcher recipe in [espnet](https://github.com/speechcatcher-asr/espnet/tree/egs2-speechcatcher-de). ### Demo: How to use the model Global installation: ```bash sudo apt-get install portaudio19-dev python3.10-dev ffmpeg # on mac: # brew install portaudio ffmpeg pip3 install git+https://github.com/speechcatcher-asr/speechcatcher speechcatcher -m de_streaming_transformer_xl mediafile.mp4 # or with a microphone: speechcatcher -m de_streaming_transformer_xl -l ``` Virtual environment: ```bash virtualenv -p python3.10 speechcatcher_env source speechcatcher_env/bin/activate pip3 install git+https://github.com/speechcatcher-asr/speechcatcher speechcatcher -m de_streaming_transformer_xl mediafile.mp4 # or with a microphone: speechcatcher -m de_streaming_transformer_xl -l ``` # RESULTS Tuda-de-raw: 2.4% CER (without LM) Tuda-de-raw: 8.5% WER (without LM) Note: Tuda-de-raw results are based on raw tuda-de test utterances without the normalization step. It may not be directly comparable to regular tuda-de results. # Speechcatcher training Speechcatcher models are trained by using Whisper large as a teacher model: ![Speechcatcher Teacher/student training](https://github.com/speechcatcher-asr/speechcatcher/raw/main/speechcatcher_training.svg) See [speechcatcher-data](https://github.com/speechcatcher-asr/speechcatcher-data) for code and more info on replicating the training process. # Sponsors Speechcatcher was gracefully funded by Media Tech Lab by Media Lab Bayern (@media-tech-lab) # Citing ```BibTex @misc{milde2023speechcatcher, author = {Milde, Benjamin}, title = {Speechcatcher}, year = {2023}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/speechcatcher-asr/speechcatcher}}, } ``` # ASR config
expand ``` config: conf/train_asr_streaming_transformer_size_xl.yaml print_config: false log_level: INFO dry_run: false iterator_type: sequence output_dir: exp/asr_train_asr_streaming_transformer_size_xl_raw_de_bpe1024 ngpu: 1 seed: 0 num_workers: 1 num_att_plot: 0 dist_backend: nccl dist_init_method: env:// dist_world_size: 4 dist_rank: 0 local_rank: 0 dist_master_addr: localhost dist_master_port: 58047 dist_launcher: null multiprocessing_distributed: true unused_parameters: false sharded_ddp: false cudnn_enabled: true cudnn_benchmark: false cudnn_deterministic: true collect_stats: false write_collected_feats: false max_epoch: 16 patience: 3 val_scheduler_criterion: - valid - acc early_stopping_criterion: - valid - acc - max best_model_criterion: - - valid - acc - max keep_nbest_models: 6 nbest_averaging_interval: 0 grad_clip: 5 grad_clip_type: 2.0 grad_noise: false accum_grad: 1 no_forward_run: false resume: true train_dtype: float32 use_amp: false log_interval: null use_matplotlib: true use_tensorboard: true create_graph_in_tensorboard: false use_wandb: false wandb_project: null wandb_id: null wandb_entity: null wandb_name: null wandb_model_log_interval: -1 detect_anomaly: false pretrain_path: null init_param: [] ignore_init_mismatch: false freeze_param: [] num_iters_per_epoch: null batch_size: 32 valid_batch_size: null batch_bins: 1000000 valid_batch_bins: null train_shape_file: - exp/asr_stats_raw_de_bpe1024/train/speech_shape - exp/asr_stats_raw_de_bpe1024/train/text_shape.bpe valid_shape_file: - exp/asr_stats_raw_de_bpe1024/valid/speech_shape - exp/asr_stats_raw_de_bpe1024/valid/text_shape.bpe batch_type: folded valid_batch_type: null fold_length: - 80000 - 150 sort_in_batch: descending sort_batch: descending multiple_iterator: false chunk_length: 500 chunk_shift_ratio: 0.5 num_cache_chunks: 1024 train_data_path_and_name_and_type: - - dump/raw/train/wav.scp - speech - sound - - dump/raw/train/text - text - text valid_data_path_and_name_and_type: - - dump/raw/dev/wav.scp - speech - sound - - dump/raw/dev/text - text - text allow_variable_data_keys: false max_cache_size: 0.0 max_cache_fd: 32 valid_max_cache_size: null exclude_weight_decay: false exclude_weight_decay_conf: {} optim: adam optim_conf: lr: 0.001 scheduler: warmuplr scheduler_conf: warmup_steps: 25000 token_list: - - - ',' - . - ▁ - t - en - e - s - n - ▁ich - ▁das - ▁die - ▁und - ▁ist - er - ▁auch - ▁so - ▁der - m - st - ▁nicht - ▁es - r - ▁ein - ▁in - ▁dann - d - ▁ja - ▁da - u - g - o - ▁zu - f - ▁wir - ▁ge - ▁Und - b - ▁du - h - l - ▁den - ▁man - ▁mit - ▁dass - ▁auf - ge - ▁jetzt - k - ▁er - in - ▁hat - '?' - ▁was - sch - '-' - ä - ▁war - ▁eine - ▁Ja - ▁aber - ▁mal - ra - i - ▁noch - ung - ▁haben - p - ▁oder - y - te - ▁F - ▁Das - ▁Ich - ▁an - re - ▁wie - ▁von - ▁sich - ▁be - ▁habe - an - ▁wenn - ▁schon - w - de - ig - ▁K - al - ch - ▁für - lich - ▁T - ▁Also - le - la - ▁sie - es - el - ü - ▁sind - ▁A - ▁also - or - ▁ver - ▁im - ▁ganz - ▁dem - z - ▁aus - ▁bei - ▁B - ▁halt - ▁kann - ter - li - ö - it - ▁immer - ▁einfach - ck - ten - ▁weil - a - ▁mir - ▁P - ▁S - ▁vor - gen - ▁sehr - ▁G - ri - ▁wo - ut - ur - ▁E - ▁St - ▁gut - ▁Aber - he - il - ▁als - ▁Sch - ▁über - tz - ▁mich - und - se - um - ▁uns - ar - ro - ing - ▁ihr - den - ▁einen - ▁f - ▁wieder - ze - ▁glaube - ie - ▁bisschen - ▁nur - ▁Ge - me - ▁irgendwie - ▁mehr - hr - us - ▁sagen - ▁wird - ▁muss - nt - 'on' - ▁alle - ▁Da - ▁wirklich - ▁natürlich - ▁Be - et - ▁diese - '0' - ▁gibt - ▁H - ▁um - ben - be - ma - at - ste - ▁nach - ▁k - ▁viel - ▁sein - nd - ▁hier - ▁meine - cht - ▁eigentlich - ▁So - kt - ▁O - ern - ▁machen - is - ▁I - ▁bin - ▁weiß - ▁Ver - ll - ▁hast - ▁Ma - ▁C - uch - ru - ▁vielleicht - rei - ▁Re - c - ha - iert - ▁Die - ▁zum - icht - ▁finde - ell - ▁eben - ▁1 - ne - ▁s - di - lo - ▁sch - chen - ein - hl - ▁Es - ▁gesagt - we - ▁U - ft - zu - nen - ▁am - ▁In - ieren - ▁werden - ▁An - ▁Er - pp - ▁geht - hn - ▁Jahr - ▁R - isch - ▁alles - ▁gerade - ▁M - rt - der - ▁ne - ▁genau - ▁re - ag - end - ▁Wir - ▁Ha - ▁würde - ▁p - ▁doch - ▁zwei - ▁einem - ▁erst - ▁g - ▁w - ▁keine - au - ik - ▁durch - ▁hin - her - un - art - mm - ▁dir - ▁Spiel - kommen - ▁gar - ▁b - ▁mein - S - ver - ff - ▁können - zi - ▁Ein - im - ▁andere - na - ▁richtig - ei - rk - ul - lle - fe - ▁W - wi - ach - sp - rie - ▁Zeit - ▁Leute - ▁ab - ▁viele - ▁Ka - ▁We - ke - and - ▁ob - ür - ner - ▁Ko - wa - ▁einer - ber - ko - x - ▁weiter - ation - ▁gemacht - ▁hatte - spiel - ▁Ne - ▁des - ▁Z - '...' - sten - che - sen - hör - ▁Man - ▁dieser - igen - ▁unter - ▁N - ▁L - ion - ▁Was - ssen - ß - ken - ungen - ▁le - ▁will - ga - ▁denn - am - ▁J - ▁kommt - ▁ent - ▁st - iv - ▁D - ▁groß - ir - ▁hab - nder - aus - ▁macht - ist - ▁dieses - ▁Li - si - ho - ▁Fall - rü - ▁De - so - ▁Du - ve - '5' - ▁Ba - ▁ange - ▁heißt - ni - ht - rä - '3' - ▁Wo - ▁dich - ▁sagt - ▁Le - pro - gel - ▁Se - ▁schön - mp - ▁jeden - id - ▁damit - ▁Al - ▁Me - ▁Co - ▁Beispiel - ol - ▁her - ▁sondern - V - ▁unsere - ▁Genau - ▁Sie - all - gt - ▁La - ▁euch - ▁neu - ub - ▁Sp - ▁bis - ▁tatsächlich - ier - ▁Pa - ▁rein - tion - mo - elt - sa - ▁Der - ige - ▁anderen - schaft - lu - ka - ische - ▁kein - ▁Na - ungs - ▁wäre - '''' - reich - ▁raus - nehmen - ▁Film - ▁nochmal - ▁wer - tra - ger - ler - lä - ▁hätte - j - halt - ▁heute - ▁a - ld - ick - ▁diesen - ▁Sa - ta - ▁wurde - eiß - bar - lei - ▁To - ▁Ding - arbeit - ischen - ▁of - ▁un - ▁Auf - ▁Dann - wo - ▁ihn - ▁Mo - ▁Mi - ▁Ab - ▁Ho - ▁Zu - ▁Ra - pf - v - ▁Frage - ▁okay - ▁waren - ▁Wie - sse - ▁möchte - ▁dazu - fall - ▁Vor - äng - '4' - sam - 'no' - ▁Tag - ▁kommen - A - ▁mach - ▁seine - ▁Wa - ich - ▁Wenn - ▁Menschen - P - ▁sp - lass - ▁diesem - ün - hin - ▁klar - ▁2 - ▁soll - ▁Thema - geben - ▁je - '9' - ▁Aus - ▁Ro - schau - ▁deine - ▁Bo - heit - voll - teil - ex - ce - ▁kannst - ment - acht - ▁drei - cken - ▁bist - ▁gleich - nis - ▁müssen - är - ▁Po - ▁Mit - op - ▁gerne - ▁nie - ad - lang - ▁Woche - ▁kurz - stellen - mmer - ▁Sta - ffen - ▁quasi - ▁gegen - akt - ▁kleine - fer - ▁20 - ▁guck - ▁Ende - ▁gesehen - ▁Wi - ör - ▁nächste - mal - ab - ▁Fa - '1' - ▁Podcast - bi - dem - ▁wenig - führ - tag - bo - krieg - pass - ▁etwas - hi - stand - ▁the - ▁sehen - F - M - ▁könnte - ▁gehen - T - ▁wichtig - zeit - ▁Leben - ▁He - ▁paar - mpf - ▁Do - ▁einmal - pa - ▁echt - ▁Kon - ▁Gott - ▁dabei - ▁zusammen - '2' - ▁Di - vi - D - '6' - ▁weg - ▁Unter - zähl - B - bring - ▁denke - ▁wollen - ▁letzten - hol - ▁Sachen - ▁Tra - '8' - ba - ▁Folge - ▁vom - ▁tr - ah - ▁wollte - ▁selbst - ▁Weil - co - kauf - gi - ia - ▁wahrscheinlich - ▁ha - ▁Mal - ▁Pro - uß - ▁überhaupt - bau - ja - weg - ▁eher - folg - C - rich - ▁fand - ic - ▁selber - ▁super - vor - ack - ▁beim - ▁jemand - ▁dafür - ▁drauf - ▁Nach - ▁musst - ▁hatten - ▁ihm - ▁tun - ▁sage - fahren - ▁zurück - ▁gab - ▁drin - ▁sieht - ▁sozusagen - schrei - ▁Hi - ▁Okay - ▁Oder - ▁lange - iz - ieß - ität - ▁Jo - fang - ▁Wer - '7' - gehen - anz - ▁Nein - ▁besser - ▁Frau - ▁schnell - stehen - ▁sowas - ▁Problem - ▁Punkt - ▁Haus - ▁zwar - ▁sollte - form - ▁passiert - ca - ▁wissen - ▁Vi - ▁dein - ▁Bi - ▁deswegen - pi - lauf - ▁welche - ▁total - ▁nämlich - ▁davon - ▁Hand - ▁War - ▁Kinder - ▁irgendwann - qu - ▁Welt - ▁cool - bei - ▁abge - ▁dort - fin - weis - ▁kenne - ▁damals - sprech - ▁sogar - schaff - ▁Ga - ▁jeder - fühl - ▁Mein - ▁kam - igkeit - ▁Teil - ▁konnte - ▁Seite - ▁Moment - ▁steht - ▁gewesen - ▁Ta - K - ▁Schw - port - log - ▁anders - trag - ▁liebe - ▁eigene - genommen - ▁lassen - ▁trotzdem - ▁toll - ▁relativ - ▁Jetzt - ▁gehört - R - ▁komm - ▁ohne - ▁Geld - ▁Art - ▁Vo - ▁Lo - land - ▁alt - ▁Euro - rück - ▁Grund - ▁darüber - ▁No - setzt - keit - nehm - ▁Arbeit - G - ▁Auto - ▁Mu - ▁Gefühl - gestellt - ▁vier - ▁schlecht - L - ▁Anfang - ▁darauf - ▁Bild - einander - ▁irgendwas - ▁letzte - I - ▁Dr - ▁darf - ▁Dank - ▁interessant - ativ - E - ▁irgendwo - ▁direkt - ▁Geschichte - ▁spielen - ▁Freund - ▁manchmal - frage - va - ▁Nu - ▁los - ▁komplett - ▁fast - ▁früh - ▁seit - ▁Über - ▁Ganz - ▁erstmal - gang - ▁stimmt - nutz - kommt - ▁Ahnung - ▁gedacht - klär - ▁weit - zahl - ▁Kind - ▁funktioniert - ▁zumindest - gegangen - bild - ▁gehabt - ▁Deutschland - setzen - ▁meisten - ▁bestimmt - ▁zwischen - ▁gespielt - ▁hoch - ▁Person - ▁ehrlich - ▁Sinn - ▁fünf - ▁solche - ▁brauche - ▁dachte - ▁Spaß - schied - ▁fest - ▁sprechen - ziehen - geschrieben - ▁Idee - ▁spannend - ▁später - Ä - W - fällt - ▁offen - ▁Herr - ▁krass - ▁schwierig - ▁bitte - fahr - erweise - ▁Musik - ▁ziemlich - punkt - ▁stark - ▁freue - fass - ▁irgendein - ▁hoffe - ▁Chris - ▁Situation - ▁sehe - ▁schwer - ▁normal - ▁Mensch - ▁Vielleicht - ▁egal - '000' - ▁Minuten - H - Y - O - ▁Herz - ▁Bundes - ▁darum - ▁braucht - ▁worden - ▁leider - ▁irgendwelche - ▁Monat - hält - ▁gewisse - ▁verschiedene - spekt - ▁Video - ▁Qua - ▁Stelle - U - '!' - N - Q - Ö - X - Z - J - '%' - é - Ü - » - « - '&' - – - à - '*' - q - € - è - ş - ú - ć - á - ë - ç - — - í - ° - / - å - $ - č - ô - š - ó - _ - ñ - ı - õ - '"' - › - ́ - ‹ - ⁄ - ê - û - É - ':' - ğ - Ã - ) - ø - ♪ - ã - ł - Ş - ù - ž - î - â - ń - Č - ï - ā - Š - ș - '=' - ę - ś - ō - ð - İ - ă - ū - ò - ř - Ø - ý - ì - ē - ̄ - μ - ż - · - À - Á - ο - ṇ - ě - ; - ^ - Î - ą - о - ה - ♫ - 스 - 해 - § - λ - τ - Ó - đ - Ž - ț - '>' - '~' - £ - Å - ź - Ż - Ȗ - Ε - Π - έ - δ - ς - υ - ύ - а - р - у - щ - ё - י - ث - ض - “ - ► - っ - ぱ - る - 些 - + - م - init: null input_size: null ctc_conf: dropout_rate: 0.0 ctc_type: builtin reduce: true ignore_nan_grad: null zero_infinity: true joint_net_conf: null use_preprocessor: true token_type: bpe bpemodel: data/de_token_list/bpe_unigram1024/bpe.model non_linguistic_symbols: null cleaner: null g2p: null speech_volume_normalize: null rir_scp: null rir_apply_prob: 1.0 noise_scp: null noise_apply_prob: 1.0 noise_db_range: '13_15' short_noise_thres: 0.5 frontend: default frontend_conf: n_fft: 512 win_length: 400 hop_length: 160 fs: 16k specaug: specaug specaug_conf: apply_time_warp: true time_warp_window: 5 time_warp_mode: bicubic apply_freq_mask: true freq_mask_width_range: - 0 - 30 num_freq_mask: 2 apply_time_mask: true time_mask_width_range: - 0 - 40 num_time_mask: 2 normalize: global_mvn normalize_conf: stats_file: exp/asr_stats_raw_de_bpe1024/train/feats_stats.npz model: espnet model_conf: ctc_weight: 0.3 lsm_weight: 0.1 length_normalized_loss: false preencoder: null preencoder_conf: {} encoder: contextual_block_transformer encoder_conf: output_size: 256 attention_heads: 8 linear_units: 2048 num_blocks: 30 dropout_rate: 0.1 positional_dropout_rate: 0.1 attention_dropout_rate: 0.0 input_layer: conv2d normalize_before: true block_size: 40 hop_size: 16 look_ahead: 16 init_average: true ctx_pos_enc: true postencoder: null postencoder_conf: {} decoder: transformer decoder_conf: attention_heads: 8 linear_units: 2048 num_blocks: 14 dropout_rate: 0.1 positional_dropout_rate: 0.1 self_attention_dropout_rate: 0.0 src_attention_dropout_rate: 0.0 preprocessor: default preprocessor_conf: {} required: - output_dir - token_list version: '202211' distributed: true ```