name: export-nemo-fast-conformer-transducer-non-streaming

on:
  workflow_dispatch:

concurrency:
  group: export-nemo-fast-conformer-hybrid-transducer-transducer-non-streaming-${{ github.ref }}
  cancel-in-progress: true

jobs:
  export-nemo-fast-conformer-hybrid-transducer-transducer-non-streaming:
    if: github.repository_owner == 'k2-fsa' || github.repository_owner == 'csukuangfj'
    name: Hybrid transducer non-streaming
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [macos-latest]
        python-version: ["3.10"]

    steps:
      - uses: actions/checkout@v4

      - name: Setup Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install NeMo
        shell: bash
        run: |
          BRANCH='main'
          pip install git+https://github.com/NVIDIA/NeMo.git@$BRANCH#egg=nemo_toolkit[asr]
          pip install onnxruntime ipython
          pip install kaldi-native-fbank
          pip install soundfile librosa

      - name: Run
        shell: bash
        run: |
          cd scripts/nemo/fast-conformer-hybrid-transducer-ctc
          ./run-transducer-non-streaming.sh

          mv -v sherpa-onnx-nemo* ../../..

      - name: Publish to huggingface
        env:
          HF_TOKEN: ${{ secrets.HF_TOKEN }}
        uses: nick-fields/retry@v3
        with:
          max_attempts: 20
          timeout_seconds: 200
          shell: bash
          command: |
            git config --global user.email "csukuangfj@gmail.com"
            git config --global user.name "Fangjun Kuang"

            models=(
              sherpa-onnx-nemo-fast-conformer-transducer-en-24500
              sherpa-onnx-nemo-fast-conformer-transducer-es-1424
              sherpa-onnx-nemo-fast-conformer-transducer-en-de-es-fr-14288
              sherpa-onnx-nemo-fast-conformer-transducer-be-de-en-es-fr-hr-it-pl-ru-uk-20k
              sherpa-onnx-nemo-parakeet_tdt_transducer_110m-en-36000
            )

            for m in ${models[@]}; do
              rm -rf huggingface
              export GIT_LFS_SKIP_SMUDGE=1
              export GIT_CLONE_PROTECTION_ACTIVE=false
              git clone https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/$m huggingface
              cp -av $m/* huggingface
              cd huggingface
              git lfs track "*.onnx"
              git status
              git add .
              git status
              git commit -m "first commit"
              git push https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/$m main
              cd ..
            done

      - name: Compress files
        shell: bash
        run: |
          dirs=(
            sherpa-onnx-nemo-fast-conformer-transducer-en-24500
            sherpa-onnx-nemo-fast-conformer-transducer-es-1424
            sherpa-onnx-nemo-fast-conformer-transducer-en-de-es-fr-14288
            sherpa-onnx-nemo-fast-conformer-transducer-be-de-en-es-fr-hr-it-pl-ru-uk-20k
            sherpa-onnx-nemo-parakeet_tdt_transducer_110m-en-36000
          )
          for d in ${dirs[@]}; do
            tar cjvf ${d}.tar.bz2 ./$d
          done

      - name: Release
        uses: svenstaro/upload-release-action@v2
        with:
          file_glob: true
          file: ./*.tar.bz2
          overwrite: true
          repo_name: k2-fsa/sherpa-onnx
          repo_token: ${{ secrets.UPLOAD_GH_SHERPA_ONNX_TOKEN }}
          tag: asr-models


