CoolFace
Modelpublic

fujie/espnet_asr_cbs_transducer_120303_hop132_cc0105

sourceHugging Facecc-by-4.0updated 4mo agoView on Hugging Face
0likes5downloads
Model Card

Use with fujielab-asr (recommended, streaming)

This model runs out of the box with the current ESPnet release via `fujielab-asr` (>= 0.1.4) — no checkout of an old ESPnet commit is required.

Japanese kana ASR (combined disfluency tokens), trained on CEJC + CSJ.

bash
pip install "fujielab-asr>=0.1.4"
python
import numpy as np, soundfile as sf
from fujielab.asr.espnet_ext.espnet2.bin.asr_transducer_inference_cbs import Speech2Text

s2t = Speech2Text.from_pretrained(
    "fujie/espnet_asr_cbs_transducer_120303_hop132_cc0105",
    streaming=True, lm_weight=0.0,
    beam_size=20, beam_search_config=dict(search_type="maes"),
)

audio, fs = sf.read("utterance.wav")  # 16 kHz mono
chunk = int(16000 * 0.1)              # 100 ms
for i in range(0, len(audio), chunk):
    c = audio[i:i + chunk]
    is_final = len(c) < chunk
    if is_final:
        c = np.pad(c, (0, chunk - len(c)))
    hyps = s2t.streaming_decode(c, is_final=is_final)
    res = s2t.hypotheses_to_results(hyps)
    if res:
        print(res[0][0])  # current best transcript

Disfluency-related information is encoded directly in the recognized tokens.

See examples/run_streaming_asr.py in fujielab-asr. For a model that predicts a separate per-token auxiliary label sequence (N/F/D) instead of composite tokens, see fujie/espnet_asr_csj_pron_aux_cbs_ctc_120300_hop132.


ESPnet2 ASR model

fujie/espnet_asr_cbs_transducer_120303_hop132_cc0105

This model was trained by Shinya Fujie using cejc_alt recipe in espnet.

Demo: How to use in ESPnet2

Follow the ESPnet installation instructions if you haven't done that already.

bash
cd espnet
git checkout 4c1c38f2c9c6a105ff4cffa8c833b0eb47f501a4
pip install -e .
cd egs2/cejc_alt/asr1
./run.sh --skip_data_prep false --skip_train true --download_model fujie/espnet_asr_cbs_transducer_120303_hop132_cc0105

<!-- Generated by scripts/utils/showasrresult.sh -->

RESULTS

Environments

  • —date: Sun Mar 10 16:16:24 JST 2024
  • —python version: 3.11.7 (main, Dec 15 2023, 18:12:31) [GCC 11.2.0]
  • —espnet version: espnet 202402
  • —pytorch version: pytorch 2.1.0+cu121
  • —Git hash: bf3653d6bd16c10a1df83f1db07e681374453f75
  • —Commit date: Wed Mar 6 17:25:02 2024 +0900

exp/asrtrainasrcbstransducer120303hop132_cc0105

WER

datasetSntWrdCorrSubDelInsErrS.Err
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval10f9531190889.25.75.13.013.858.0
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval10m9571609293.82.93.32.18.355.1
decodecbstransducerasrmodelvalid.certransducer.ave10best/eval1csj14006336294.93.02.11.26.369.5
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval20f14661832690.55.14.42.512.055.0
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval20m17722375689.05.85.22.813.856.6
decodecbstransducerasrmodelvalid.certransducer.ave10best/eval2csj14136415196.22.31.50.94.767.9
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval30f17342411693.63.43.02.38.848.1
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval30m16882011685.28.06.83.518.359.4
decodecbstransducerasrmodelvalid.certransducer.ave10best/eval3csj14374013196.32.01.81.24.952.6
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval40f14772071790.34.25.42.512.253.2
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval40m14982474792.43.54.12.39.955.7
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval50f14502658495.42.02.61.86.449.1
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval50m14992257292.04.14.02.410.454.6
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval60f13352181092.63.53.92.59.854.9
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval60m16212415189.55.05.42.312.862.1
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval70f906954288.75.75.63.414.753.4
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval70m8941249092.93.53.52.69.751.6

CER

datasetSntWrdCorrSubDelInsErrS.Err
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval10f9532458391.53.55.03.111.658.0
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval10m9573374994.91.63.52.47.555.1
decodecbstransducerasrmodelvalid.certransducer.ave10best/eval1csj140013908596.01.52.51.45.469.5
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval20f14663702492.33.14.62.610.455.0
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval20m17724783891.43.65.12.811.456.6
decodecbstransducerasrmodelvalid.certransducer.ave10best/eval2csj141314008197.01.02.01.24.267.9
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval30f17344896894.62.13.32.78.048.1
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval30m16884106788.44.96.73.515.159.4
decodecbstransducerasrmodelvalid.certransducer.ave10best/eval3csj14378658396.80.82.31.54.752.6
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval40f14774260991.72.85.52.410.753.2
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval40m14985174893.22.14.72.59.355.7
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval50f14505418195.81.42.81.96.149.1
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval50m14994603193.42.64.02.49.054.6
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval60f13354502893.92.04.22.78.954.9
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval60m16214944291.43.05.62.511.162.1
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval70f9061938690.73.75.63.612.953.4
decodecbstransducerasrmodelvalid.certransducer.ave_10best/eval70m8942620394.12.13.73.08.951.6

TER

datasetSntWrdCorrSubDelInsErrS.Err

ASR config

<details><summary>expand</summary>

config: myconf/train_asr_cbs_transducer_120303_hop132_silver11.yaml
print_config: false
log_level: INFO
drop_last_iter: false
dry_run: false
iterator_type: sequence
valid_iterator_type: null
output_dir: exp/asr_train_asr_cbs_transducer_120303_hop132_cc0105
ngpu: 1
seed: 0
num_workers: 1
num_att_plot: 0
dist_backend: nccl
dist_init_method: env://
dist_world_size: null
dist_rank: null
local_rank: 0
dist_master_addr: null
dist_master_port: null
dist_launcher: null
multiprocessing_distributed: false
unused_parameters: false
sharded_ddp: false
cudnn_enabled: true
cudnn_benchmark: false
cudnn_deterministic: true
collect_stats: false
write_collected_feats: false
max_epoch: 100
patience: null
val_scheduler_criterion:
- valid
- loss
early_stopping_criterion:
- valid
- loss
- min
best_model_criterion:
-   - valid
    - cer_transducer
    - min
keep_nbest_models: 10
nbest_averaging_interval: 0
grad_clip: 5
grad_clip_type: 2.0
grad_noise: false
accum_grad: 6
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: true
wandb_project: espnet_ninjal
wandb_id: null
wandb_entity: null
wandb_name: cejc_cbs_td_120303_hop132_cc0105
wandb_model_log_interval: -1
detect_anomaly: false
use_lora: false
save_lora_only: true
lora_conf: {}
pretrain_path: null
init_param:
- ./exp/asr_train_asr_cbs_transducer_081616_hop132/valid.cer_transducer.ave_10best.pth
ignore_init_mismatch: false
freeze_param: []
num_iters_per_epoch: null
batch_size: 20
valid_batch_size: null
batch_bins: 2000000
valid_batch_bins: null
train_shape_file:
- exp/asr_stats_raw_jp_word_cc0105/train/speech_shape
- exp/asr_stats_raw_jp_word_cc0105/train/text_shape.word
valid_shape_file:
- exp/asr_stats_raw_jp_word_cc0105/valid/speech_shape
- exp/asr_stats_raw_jp_word_cc0105/valid/text_shape.word
batch_type: numel
valid_batch_type: null
fold_length:
- 80000
- 150
sort_in_batch: descending
shuffle_within_batch: false
sort_batch: descending
multiple_iterator: false
chunk_length: 500
chunk_shift_ratio: 0.5
num_cache_chunks: 1024
chunk_excluded_key_prefixes: []
chunk_default_fs: null
train_data_path_and_name_and_type:
-   - dump/raw/train_nodup_cc_01_05/wav.scp
    - speech
    - sound
-   - dump/raw/train_nodup_cc_01_05/text
    - text
    - text
valid_data_path_and_name_and_type:
-   - dump/raw/train_dev_cc/wav.scp
    - speech
    - sound
-   - dump/raw/train_dev_cc/text
    - text
    - text
allow_variable_data_keys: false
max_cache_size: 0.0
max_cache_fd: 32
allow_multi_rates: false
valid_max_cache_size: null
exclude_weight_decay: false
exclude_weight_decay_conf: {}
optim: adam
optim_conf:
    lr: 0.002
scheduler: warmuplr
scheduler_conf:
    warmup_steps: 25000
token_list:
- <blank>
- <unk>
- <mask>
- '|'
- ー
- ン
- イ
- ト
- カ
- ノ
- <sp>
- テ
- デ
- タ
- シ
- ス
- ナ
- ッ
- コ
- オ
- ニ
- マ
- ワ
- ガ
- ク
- モ
- ー+F
- ル
- キ
- レ
- エ+F
- ラ
- リ
- ア
- ケ
- ツ
- ソ
- ユ
- ド
- サ
- セ
- ヨ
- ダ
- エ
- チ
- ジ
- ア+F
- ノ+F
- ネ
- ホ
- マ+F
- ハ
- ゴ
- ミ
- ロ
- ブ
- バ
- ヤ
- ヒ
- メ
- ウ
- フ
- ショ
- ジョ
- ジュ
- ズ
- ゲ
- シュ
- ム
- チョ
- ト+F
- キョ
- グ
- パ
- ベ
- シャ
- ゼ
- ソ+F
- ン+F
- ギ
- ザ
- ビ
- キュ
- ボ
- リョ
- ヘ
- ゾ
- プ
- ン+D
- チュ
- ジャ
- ウ+F
- オ+F
- ッ+F
- ヒョ
- チャ
- イ+D
- ヌ
- ス+D
- ポ
- ピ
- ディ
- ティ
- ギョ
- ニュ
- オ+D
- イ+F
- ー+D
- ヒャ
- シ+D
- ペ
- ッ+D
- ウ+D
- ア+D
- カ+D
- キャ
- ク+D
- コ+D
- ナ+D
- ツ+D
- エ+D
- ト+D
- ビョ
- ジェ
- リュ
- タ+D
- ピョ
- ハ+D
- ヒ+D
- ファ
- ノ+D
- キ+D
- ニ+D
- ギャ
- ハ+F
- モ+D
- フィ
- ソ+D
- フ+D
- ワ+D
- ホ+D
- ジ+D
- マ+D
- ヨ+D
- デ+D
- サ+D
- ガ+D
- ユ+D
- セ+D
- フォ
- ム+D
- ダ+D
- テ+D
- チ+D
- ヤ+D
- ケ+D
- トゥ
- ル+D
- ラ+D
- ウォ
- リャ
- ミ+D
- ド+D
- シュ+D
- リ+D
- ズ+D
- ヘ+F
- ウェ
- レ+D
- ピュ
- ブ+D
- フェ
- ミョ
- グ+D
- ヌ+D
- トゥ+D
- テュ
- ヘ+D
- ロ+D
- チェ
- ゴ+D
- ジュ+D
- ミュ
- ビャ
- ネ+F
- ピャ
- ショ+D
- メ+D
- ミャ
- ギュ
- ネ+D
- バ+D
- スィ
- ゲ+D
- ビュ
- ニョ
- ジョ+D
- チョ+D
- ス+F
- ゼ+D
- デ+F
- キョ+D
- ヤ+F
- チュ+D
- プ+D
- ワ+F
- ギ+D
- ウィ
- ベ+D
- シェ
- ボ+D
- パ+D
- ドゥ+D
- ニャ
- シャ+D
- ドゥ
- ザ+D
- ヒョ+D
- レ+F
- ツォ
- ビ+D
- ド+F
- ニュ+D
- キュ+D
- リョ+D
- デュ
- ヒュ
- ディ+D
- ゾ+D
- ティ+D
- フ+F
- ラ+F
- ナ+F
- ピ+D
- リュ+D
- ヒャ+D
- ジャ+D
- ヒュ+D
- チャ+D
- ツァ
- ポ+D
- ニョ+D
- ツェ
- ヌ+F
- ズィ
- キャ+D
- ホ+F
- ペ+D
- ヴィ
- ツ+F
- ギョ+D
- ファ+D
- ウェ+D
- ウォ+D
- ツォ+F
- ジェ+D
- メ+F
- フィ+D
- バ+F
- ニャ+D
- ギャ+D
- ビョ+D
- ツィ
- フォ+D
- スィ+D
- ウィ+D
- リャ+D
- モ+F
- チェ+D
- フュ
- テュ+D
- ロ+F
- デュ+D
- シェ+D
- イェ
- ム+F
- ニェ
- ツォ+D
- トゥ+F
- カ+F
- ミャ+D
- ミョ+D
- ギュ+D
- ミュ+D
- ツァ+D
- フェ+D
- ガ+F
- クヮ
- ヨ+F
- テ+F
- ヒ+F
- ズィ+D
- グヮ
- ウェ+F
- ビュ+D
- イェ+D
- ユ+F
- イェ+F
- ツェ+D
- パ+F
- ヴァ
- チョ+F
- ニョ+F
- ダ+F
- ニェ+D
- ル+F
- ゼ+F
- ゾ+F
- ニェ+F
- リャ+F
- ミャ+F
- ヴェ
- ショ+F
- キャ+F
- ゲ+F
- ピュ+D
- ク+F
- ニャ+F
- ケ+F
- ヴ
- チャ+F
- タ+F
- グ+F
- ヴォ
- ミェ
- ヒャ+F
- ファ+F
- フェ+F
- ビャ+D
- ブ+F
- ズ+F
- ジェ+F
- ピャ+D
- ツィ+D
- リ+F
- セ+F
- サ+F
- ドゥ+F
- ウォ+F
- グヮ+D
- ベ+F
- ザ+F
- クヮ+D
- ヒェ+D
- シ+F
- フュ+D
- ヴィ+D
- テュ+F
- ミェ+D
- ボ+F
- ジャ+F
- ヴァ+D
- ジ+F
- チ+F
- ゴ+F
- ピョ+D
- ヒェ
- ニ+F
- シュ+F
- ミュ+F
- <sos/eos>
init: null
input_size: null
ctc_conf:
    dropout_rate: 0.0
    ctc_type: builtin
    reduce: true
    ignore_nan_grad: null
    zero_infinity: true
    brctc_risk_strategy: exp
    brctc_group_strategy: end
    brctc_risk_factor: 0.0
joint_net_conf:
    joint_space_size: 640
use_preprocessor: true
use_lang_prompt: false
use_nlp_prompt: false
token_type: word
bpemodel: null
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
aux_ctc_tasks: []
frontend: default
frontend_conf:
    hop_length: 132
    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_jp_word_cc0105/train/feats_stats.npz
model: espnet
model_conf:
    ctc_weight: 0.0
    report_cer: true
    report_wer: true
preencoder: null
preencoder_conf: {}
encoder: contextual_block_conformer
encoder_conf:
    output_size: 256
    attention_heads: 4
    linear_units: 2048
    num_blocks: 12
    dropout_rate: 0.1
    positional_dropout_rate: 0.1
    attention_dropout_rate: 0.0
    input_layer: conv2d
    normalize_before: true
    activation_type: swish
    macaron_style: true
    use_cnn_module: true
    cnn_module_kernel: 15
    block_size: 18
    hop_size: 3
    look_ahead: 3
    init_average: true
    ctx_pos_enc: true
postencoder: null
postencoder_conf: {}
decoder: transducer
decoder_conf:
    rnn_type: lstm
    num_layers: 1
    hidden_size: 512
    dropout: 0.1
    dropout_embed: 0.2
preprocessor: default
preprocessor_conf: {}
required:
- output_dir
- token_list
version: '202402'
distributed: false

</details>

Citing ESPnet

BibTex
@inproceedings{watanabe2018espnet,
  author={Shinji Watanabe and Takaaki Hori and Shigeki Karita and Tomoki Hayashi and Jiro Nishitoba and Yuya Unno and Nelson Yalta and Jahn Heymann and Matthew Wiesner and Nanxin Chen and Adithya Renduchintala and Tsubasa Ochiai},
  title={{ESPnet}: End-to-End Speech Processing Toolkit},
  year={2018},
  booktitle={Proceedings of Interspeech},
  pages={2207--2211},
  doi={10.21437/Interspeech.2018-1456},
  url={http://dx.doi.org/10.21437/Interspeech.2018-1456}
}





or arXiv:

bibtex
@misc{watanabe2018espnet,
  title={ESPnet: End-to-End Speech Processing Toolkit},
  author={Shinji Watanabe and Takaaki Hori and Shigeki Karita and Tomoki Hayashi and Jiro Nishitoba and Yuya Unno and Nelson Yalta and Jahn Heymann and Matthew Wiesner and Nanxin Chen and Adithya Renduchintala and Tsubasa Ochiai},
  year={2018},
  eprint={1804.00015},
  archivePrefix={arXiv},
  primaryClass={cs.CL}
}