From 6a41e13ba9f9acedffce24a3b6e815ecb37408af Mon Sep 17 00:00:00 2001
From: jmwang66 <wangjiaming.wjm@alibaba-inc.com>
Date: 星期三, 08 二月 2023 17:30:19 +0800
Subject: [PATCH] upload github.io
---
docs_cn/images/dingding.jpg | 0
docs_cn/index.rst | 32 +++
docs_cn/installation.md | 42 ++++
docs_cn/get_started.md | 130 ++++++++++++++
docs_cn/images/DeepScience.png | 0
docs_cn/make.bat | 35 +++
docs_cn/papers.md | 4
docs_cn/modelscope_usages.md | 49 +++++
docs_cn/Makefile | 21 ++
docs_cn/images/funasr_logo.jpg | 0
.github/workflows/main.yml | 36 ++--
funasr/bin/build_trainer.py | 28 ++
funasr/utils/modelscope_param.py | 58 +++--
docs_cn/images/wechat.png | 0
docs_cn/modelscope_models.md | 34 +++
docs_cn/conf.py | 67 +++++++
16 files changed, 492 insertions(+), 44 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 9014467..b0049b2 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -11,23 +11,23 @@
docs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v1
- - uses: ammaraskar/sphinx-action@master
- with:
- docs-folder: "docs/"
- pre-build-command: "pip install sphinx-markdown-tables nbsphinx jinja2 recommonmark sphinx_rtd_theme"
+ - uses: actions/checkout@v1
+ - uses: ammaraskar/sphinx-action@master
+ with:
+ docs-folder: "docs_cn/"
+ pre-build-command: "pip install sphinx-markdown-tables nbsphinx jinja2 recommonmark sphinx_rtd_theme"
- - name: deploy copy
- if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev'
- run: |
- mkdir public
- touch public/.nojekyll
- cp -r docs/_build/html/* public/
+ - name: deploy copy
+ if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev'
+ run: |
+ mkdir public_cn
+ touch public_cn/.nojekyll
+ cp -r docs_cn/_build/html/* public_cn/
- - name: deploy github.io pages
- if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev'
- uses: peaceiris/actions-gh-pages@v2.3.1
- env:
- GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
- PUBLISH_BRANCH: gh-pages
- PUBLISH_DIR: public
\ No newline at end of file
+ - name: deploy github.io pages
+ if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev'
+ uses: peaceiris/actions-gh-pages@v2.3.1
+ env:
+ GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
+ PUBLISH_BRANCH: gh-pages-cn
+ PUBLISH_DIR: public_cn
\ No newline at end of file
diff --git a/docs_cn/Makefile b/docs_cn/Makefile
new file mode 100644
index 0000000..d58379b
--- /dev/null
+++ b/docs_cn/Makefile
@@ -0,0 +1,21 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+SPHINXPROJ = FunASR
+SOURCEDIR = .
+BUILDDIR = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/docs_cn/conf.py b/docs_cn/conf.py
new file mode 100644
index 0000000..0189991
--- /dev/null
+++ b/docs_cn/conf.py
@@ -0,0 +1,67 @@
+# Configuration file for the Sphinx documentation builder.
+#
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'FunASR'
+copyright = '2022, Speech Lab, Alibaba Group'
+author = 'Speech Lab, Alibaba Grou'
+
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+ "nbsphinx",
+ "sphinx.ext.autodoc",
+ 'sphinx.ext.napoleon',
+ 'sphinx.ext.viewcode',
+ "sphinx.ext.mathjax",
+ "sphinx.ext.todo",
+ # "sphinxarg.ext",
+ "sphinx_markdown_tables",
+ 'recommonmark',
+ 'sphinx_rtd_theme',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+source_suffix = [".rst", ".md"]
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = []
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = "sphinx"
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+
+html_theme = "sphinx_rtd_theme"
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
\ No newline at end of file
diff --git a/docs_cn/get_started.md b/docs_cn/get_started.md
new file mode 100644
index 0000000..6e077e0
--- /dev/null
+++ b/docs_cn/get_started.md
@@ -0,0 +1,130 @@
+# 蹇�熷紑濮�
+鍦ㄦ鎴戜滑灏嗕互"浣跨敤AISHELL-1鏁版嵁闆嗭紝浠庨殢鏈哄垵濮嬪寲璁粌涓�涓猵araformer妯″瀷"涓轰緥锛屼粙缁嶅浣曚娇鐢‵unASR銆傛牴鎹繖涓緥瀛愶紝鐢ㄦ埛鍙互绫讳技鍦颁娇鐢ㄥ埆鐨勬暟鎹泦锛堝AISHELL-2鏁版嵁闆嗙瓑锛夎缁冨埆鐨勬ā鍨嬶紙濡俢onformer锛宼ransformer绛夛級銆�
+
+## 鏁翠綋浠嬬粛
+
+鎴戜滑鎻愪緵浜哷egs/aishell/paraformer/run.sh`鏉ュ疄鐜颁娇鐢ˋISHELL-1鏁版嵁闆嗚缁冧竴涓猵araformer妯″瀷銆傝鑴氭湰鍖呭惈5涓樁娈碉紝鍖呮嫭浠庢暟鎹鐞嗗埌璁粌瑙g爜绛夋暣涓祦绋嬶紝鍚屾椂鎻愪緵浜嗗崟/澶欸PU璁粌鍜孋PU/GPU瑙g爜銆傚湪璇︾粏浠嬬粛姣忎釜闃舵涔嬪墠锛屾垜浠厛瀵圭敤鎴烽渶瑕佹墜鍔ㄨ缃殑涓�浜涘弬鏁拌繘琛岃鏄庛��
+- `CUDA_VISIBLE_DEVICES`: 鍙敤鐨凣PU鍒楄〃
+- `gpu_num`: 鐢ㄤ簬璁粌鐨凣PU鏁伴噺
+- `gpu_inference`: 鏄惁浣跨敤GPU杩涜瑙g爜
+- `njob`: for CPU decoding, indicating the total number of CPU jobs; for GPU decoding, indicating the number of jobs on each GPU. 瀵逛簬CPU瑙g爜锛岃〃绀鸿В鐮佷换鍔℃暟锛涘浜嶨PU瑙g爜
+- `data_aishell`: AISHELL-1鍘熷鏁版嵁鐨勮矾寰�
+- `feats_dir`: 缁忚繃澶勭悊寰楀埌鐨勭壒寰佺殑淇濆瓨璺緞
+- `nj`: 鏁版嵁澶勭悊鏃剁殑骞惰浠诲姟鏁�
+- `speed_perturb`: 鍙橀�熻缃�
+- `exp_dir`: 瀹為獙缁撴灉鐨勪繚瀛樿矾寰�
+- `tag`: 瀹為獙缁撴灉鐩綍鐨勫悗缂�鍚�
+
+## 闃舵 0锛� 鏁版嵁鍑嗗
+鏈樁娈电敤浜庡鐞嗗師濮嬬殑AISHELL-1鏁版嵁锛屽苟鐢熸垚鐩稿簲鐨刞wav.scp`鍜宍text`锛屼繚瀛樺湪`$feats_dir/data/xxx`鐩綍涓嬶紝杩欓噷鐨刞xxx`琛ㄧず`train`, `dev` 鎴� `test`锛堜笅鍚岋級銆� 杩欓噷鎴戜滑鍋囪鐢ㄦ埛宸茬粡涓嬭浇濂戒簡AISHELL-1鏁版嵁闆嗐�傚鏋滄病鏈夛紝鐢ㄦ埛鍙互鍦╗杩欓噷](https://www.openslr.org/33/) 涓嬭浇鏁版嵁锛屽苟灏哷$data_aishell`璁剧疆涓虹浉搴旂殑璺緞銆備笅闈㈢粰鍑虹敓鎴愮殑`wav.scp`鍜宍text`鐨勭ず渚嬶細
+鏈樁娈电敤浜庡鐞嗗師濮嬬殑AISHELL-1鏁版嵁锛屽苟鐢熸垚鐩稿簲鐨刞wav.scp`鍜宍text`锛屼繚瀛樺湪`$feats_dir/data/xxx`鐩綍涓嬶紝杩欓噷鐨刞xxx`琛ㄧず`train`, `dev` 鎴� `test`锛堜笅鍚岋級銆� 杩欓噷鎴戜滑鍋囪鐢ㄦ埛宸茬粡涓嬭浇濂戒簡AISHELL-1鏁版嵁闆嗐�傚鏋滄病鏈夛紝鐢ㄦ埛鍙互鍦╗杩欓噷](https://www.openslr.org/33/) 涓嬭浇鏁版嵁锛屽苟灏哷$data_aishell`璁剧疆涓虹浉搴旂殑璺緞銆備笅闈㈢粰鍑虹敓鎴愮殑`wav.scp`鍜宍text`鐨勭ず渚嬶細
+* `wav.scp`
+```
+BAC009S0002W0122 /nfs/ASR_DATA/AISHELL-1/data_aishell/wav/train/S0002/BAC009S0002W0122.wav
+BAC009S0002W0123 /nfs/ASR_DATA/AISHELL-1/data_aishell/wav/train/S0002/BAC009S0002W0123.wav
+BAC009S0002W0124 /nfs/ASR_DATA/AISHELL-1/data_aishell/wav/train/S0002/BAC009S0002W0124.wav
+...
+```
+* `text`
+```
+BAC009S0002W0122 鑰� 瀵� 妤� 甯� 鎴� 浜� 鎶� 鍒� 浣� 鐢� 鏈� 澶� 鐨� 闄� 璐�
+BAC009S0002W0123 涔� 鎴� 涓� 鍦� 鏂� 鏀� 搴� 鐨� 鐪� 涓� 閽�
+BAC009S0002W0124 鑷� 鍏� 鏈� 搴� 鍛� 鍜� 娴� 鐗� 甯� 鐜� 鍏� 瀹� 甯� 鍙� 娑� 闄� 璐� 鍚�
+...
+```
+鍙互鐪嬪埌锛岃繖涓や釜鏂囦欢鍧囧寘鎷袱鍒楋紝绗竴鍒楁槸闊抽鐨刬d锛岀浜屽垪鍒嗗埆鏄煶棰戣矾寰勫拰闊抽瀵瑰簲鐨勬妱鏈��
+
+## 闃舵 1锛氱壒寰佹彁鍙�
+鏈樁娈靛皢浼氬熀浜庡師濮嬬殑闊抽`wav.scp`鎻愬彇FBank鐗瑰緛銆傚鏋滄寚瀹氫簡鍙傛暟`speed_perturb`锛屽垯浼氶澶栧闊抽杩涜鍙橀�熸潵瀹炵幇鏁版嵁澧炲己銆傜敤鎴峰彲浠ヨ缃甡nj`鍙傛暟鏉ユ帶鍒剁壒寰佹彁鍙栫殑骞惰浠诲姟鏁般�傚鐞嗗悗鐨勭壒寰佷繚瀛樺湪鐩綍`$feats_dir/dump/xxx/ark`涓嬶紝鐩稿簲鐨刞feats.scp`鏂囦欢璺緞涓篳$feats_dir/dump/xxx/feats.scp`銆備笅闈㈢粰鍑篳feats.scp`鐨勭ず渚嬶細
+* `feats.scp`
+```
+...
+BAC009S0002W0122_sp0.9 /nfs/funasr_data/aishell-1/dump/fbank/train/ark/feats.16.ark:592751055
+...
+```
+娉ㄦ剰锛岃鏂囦欢鐨勬牱鏈『搴忓凡缁忚繘琛屼簡闅忔満鎵撲贡銆傝鏂囦欢鍖呮嫭涓ゅ垪锛岀涓�鍒楁槸闊抽鐨刬d锛岀浜屽垪鏄搴旂殑kaldi-ark鏍煎紡鐨勭壒寰併�傚彟澶栵紝鍦ㄦ闃舵杩樹細鐢熸垚璁粌闇�瑕佺敤鍒扮殑`speech_shape`鍜宍text_shape`涓や釜鏂囦欢锛岃褰曚簡姣忎釜鏍锋湰鐨勭壒寰佺淮搴﹀拰鎶勬湰闀垮害銆備笅闈㈢粰鍑鸿繖涓や釜鏂囦欢鐨勭ず渚嬶細
+* `speech_shape`
+```
+...
+BAC009S0002W0122_sp0.9 665,80
+...
+```
+* `text_shape`
+```
+...
+BAC009S0002W0122_sp0.9 15
+...
+```
+鍙互鐪嬪埌锛岃繖涓や釜鏂囦欢鍧囧寘鎷袱鍒楋紝绗竴鍒楁槸闊抽鐨刬d锛岀浜屽垪鏄搴旂殑鐗瑰緛鐨勭淮搴﹀拰鎶勬湰鐨勯暱搴︺��
+
+## 闃舵 2锛氬瓧鍏稿噯澶�
+鏈樁娈电敤浜庣敓鎴愬瓧鍏革紝鐢ㄤ簬璁粌杩囩▼涓紝瀛楃鍒版暣鏁扮储寮曚箣闂寸殑鏄犲皠銆傜敓鎴愮殑瀛楀吀鏂囦欢鐨勮矾寰勪负`$feats_dir/data/zh_toekn_list/char/tokens.txt`銆備笅闈㈢粰鍑篳tokens.txt`鐨勭ず渚嬶細
+* `tokens.txt`
+```
+<blank>
+<s>
+</s>
+涓�
+涓�
+...
+榫�
+榫�
+<unk>
+```
+* `<blank>`: 琛ㄧずCTC璁粌涓殑blank
+* `<s>`: 琛ㄧず鍙ュ瓙鐨勮捣濮嬬
+* `</s>`: 琛ㄧず鍙ュ瓙鐨勭粓姝㈢
+* `<unk>`: 琛ㄧず瀛楀吀澶栫殑瀛楃
+
+## 闃舵 3锛氳缁�
+鏈樁娈靛搴旀ā鍨嬬殑璁粌銆傚湪寮�濮嬭缁冧箣鍓嶏紝闇�瑕佹寚瀹氬疄楠岀粨鏋滀繚瀛樼洰褰昤exp_dir`锛岃缁冨彲鐢℅PU`CUDA_VISIBLE_DEVICES`鍜岃缁冪殑gpu鏁伴噺`gpu_num`銆傞粯璁ゆ儏鍐典笅锛屾渶濂界殑`$keep_nbest_models`妯″瀷缁撴灉浼氳骞冲潎浠庤�屾潵鑾峰彇鏇村ソ鐨勬�ц兘銆�
+
+* DDP Training
+
+鎴戜滑鎻愪緵浜嗗垎甯冨紡璁粌锛圖DP锛夊姛鑳斤紝鍏蜂綋鐨勭粏鑺傚彲浠ュ湪[杩欓噷](https://pytorch.org/tutorials/intermediate/ddp_tutorial.html) 鎵惧埌銆備负浜嗗紑鍚垎甯冨紡璁粌锛岄渶瑕佽缃甡gpu_num`澶т簬1銆備緥濡傦紝璁剧疆`CUDA_VISIBLE_DEVICES=0,1,5,6,7`锛宍gpu_num=3`锛屽垯缂栧彿涓�0锛�1鍜�5鐨凣PU浼氳鐢ㄤ簬璁粌銆�
+
+* DataLoader
+
+鎴戜滑鎻愪緵浜嗗熀浜嶽Pytorch Iterable-style DataPipes](https://pytorch.org/data/beta/torchdata.datapipes.iter.html) 瀹炵幇鐨勫ぇ鏁版嵁DataLoader锛岀敤鎴峰彲浠ラ�氳繃璁剧疆`dataset_type=large`鏉ュ惎鐢ㄣ��
+
+* Configuration
+
+璁粌鐩稿叧鐨勫弬鏁帮紝鍖呮嫭妯″瀷锛屼紭鍖栧櫒锛屾暟鎹瓑锛屽潎鍙互閫氳繃`conf`鐩綍涓嬬殑config鏂囦欢鎸囧畾銆傚悓鏃讹紝鐢ㄦ埛涔熷彲浠ョ洿鎺ュ湪`run.sh`鑴氭湰涓寚瀹氱浉鍏冲弬鏁般�傝閬垮厤鍦╟onfig鏂囦欢鍜宍run.sh`鑴氭湰涓缃浉鍚岀殑鍙傛暟锛屼互鍏嶉�犳垚姝т箟銆�
+
+* Training Steps
+
+鎴戜滑鎻愪緵浜嗕袱绉嶆柟寮忔潵鎺у埗璁粌鐨勬�绘鏁帮紝瀵瑰簲鐨勫弬鏁板垎鍒负`max_epoch`鍜宍max_update`銆俙max_epoch`琛ㄧず璁粌鐨勬渶澶poch鏁帮紝`max_update`琛ㄧず璁粌鐨勬渶澶ц凯浠f鏁般�傚鏋滆繖涓や釜鍙傛暟鍚屾椂琚寚瀹氾紝鍒欎竴鏃﹁缁冩鏁板埌杈惧叾涓换鎰忎竴涓弬鏁帮紝璁粌缁撴潫銆�
+
+* Tensorboard
+
+鐢ㄦ埛鍙互閫氳繃tensorboard鏉ヨ瀵熻缁冭繃绋嬩腑鐨勬崯澶憋紝瀛︿範鐜囩瓑銆傚彲浠ラ�氳繃涓嬭堪鎸囧畾鏉ュ疄鐜帮細
+```
+tensorboard --logdir ${exp_dir}/exp/${model_dir}/tensorboard/train
+```
+
+## 闃舵 4: 瑙g爜
+鏈樁娈电敤浜庤В鐮佸緱鍒拌瘑鍒粨鏋滐紝鍚屾椂璁$畻CER鏉ラ獙璇佽缁冨緱鍒扮殑妯″瀷鎬ц兘銆�
+
+* Mode Selection
+鐢变簬鎴戜滑鎻愪緵浜唒araformer锛寀niasr鍜宑onformer绛夋ā鍨嬶紝鍥犳鍦ㄨВ鐮佹椂锛岄渶瑕佹寚瀹氱浉搴旂殑瑙g爜妯″紡銆傚搴旂殑鍙傛暟涓篳mode`锛岀浉搴旂殑鍙�夎缃负`asr/paraformer/uniase`绛夈��
+
+* Configuration
+
+鎴戜滑鎻愪緵浜哻tc瑙g爜, attention瑙g爜鍜宑tc-attention娣峰悎瑙g爜銆傝繖鍑犵瑙g爜鏂瑰紡鍙互閫氳繃`conf`涓嬬殑瑙g爜閰嶇疆鏂囦欢涓殑`ctc_weight`鍙傛暟鏉ユ寚瀹氥�傚叿浣撶殑锛宍ctc_weight=1.0`琛ㄧずCTC瑙g爜, `ctc_weight=0.0`琛ㄧずattention瑙g爜, `0.0<ctc_weight<1.0`琛ㄧずctc-attention娣峰悎瑙g爜銆�
+
+* CPU/GPU Decoding
+
+鎴戜滑鎻愪緵CPU/GPU瑙g爜銆傚浜嶤PU瑙g爜锛岀敤鎴烽渶瑕佽缃甡gpu_inference=False`锛屽悓鏃惰缃甡njob`鏉ユ寚瀹氬苟琛岃В鐮佷换鍔℃暟閲忋�傚浜嶨PU瑙g爜锛岀敤鎴烽渶瑕佽缃甡gpu_inference=True`锛岃缃甡gpuid_list`鏉ユ寚瀹氬摢浜汫PU鐢ㄤ簬瑙g爜锛岃缃甡njobs`鏉ユ寚瀹氭瘡寮燝PU涓婄殑骞惰瑙g爜浠诲姟鏁伴噺銆�
+
+* Performance
+
+鎴戜滑閲囩敤`CER`鏉ラ獙璇佹ā鍨嬬殑鎬ц兘銆傝В鐮佺粨鏋滀繚瀛樺湪`$exp_dir/exp/$model_dir/$decoding_yaml_name/$average_model_name/$dset`锛屽叿浣撳寘鎷琡text.cer`鍜宍text.cer.txt`涓や釜鏂囦欢銆俙text.cer`涓殑鍐呭涓鸿瘑鍒粨鏋滃拰瀵瑰簲鎶勬湰涔嬮棿鐨勬瘮杈冿紝`text.cer.txt`璁板綍浜嗘渶缁堢殑`CER`銆備笅闈㈢粰鍑篳text.cer`鐨勭ず渚�:
+* `text.cer`
+```
+...
+BAC009S0764W0213(nwords=11,cor=11,ins=0,del=0,sub=0) corr=100.00%,cer=0.00%
+ref: 鏋� 寤� 鑹� 濂� 鐨� 鏃� 娓� 甯� 鍦� 鐜� 澧�
+res: 鏋� 寤� 鑹� 濂� 鐨� 鏃� 娓� 甯� 鍦� 鐜� 澧�
+...
+```
+
diff --git a/docs_cn/images/DeepScience.png b/docs_cn/images/DeepScience.png
new file mode 100644
index 0000000..9f46165
--- /dev/null
+++ b/docs_cn/images/DeepScience.png
Binary files differ
diff --git a/docs_cn/images/dingding.jpg b/docs_cn/images/dingding.jpg
new file mode 100644
index 0000000..4cdad28
--- /dev/null
+++ b/docs_cn/images/dingding.jpg
Binary files differ
diff --git a/docs_cn/images/funasr_logo.jpg b/docs_cn/images/funasr_logo.jpg
new file mode 100644
index 0000000..a47243e
--- /dev/null
+++ b/docs_cn/images/funasr_logo.jpg
Binary files differ
diff --git a/docs_cn/images/wechat.png b/docs_cn/images/wechat.png
new file mode 100644
index 0000000..e7b7349
--- /dev/null
+++ b/docs_cn/images/wechat.png
Binary files differ
diff --git a/docs_cn/index.rst b/docs_cn/index.rst
new file mode 100644
index 0000000..e0283ae
--- /dev/null
+++ b/docs_cn/index.rst
@@ -0,0 +1,32 @@
+.. Funasr documentation master file, created by
+ sphinx-quickstart on Tues Dec 6 19:05:00 2022.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+FunASR: A Fundamental End-to-End Speech Recognition Toolkit
+============================================================
+.. image:: ./images/funasr_logo.jpg
+
+FunASR鑷村姏浜庡湪璇煶璇嗗埆鐨勫鏈爺绌跺拰宸ヤ笟搴旂敤涔嬮棿鏋勫缓璧蜂竴搴фˉ姊併�傞�氳繃鍦� `ModelScope <https://www.modelscope.cn/models?page=1&tasks=auto-speech-recognition>`_ 涓婂彂甯冨伐涓氱骇璇煶璇嗗埆妯″瀷浠ュ強鏀寔鐩稿叧鐨勮缁冨拰寰皟锛岀爺绌惰�呭拰寮�鍙戣�呬滑鍙互鏇存柟渚垮湴杩涜璇煶璇嗗埆妯″瀷鐨勭爺绌跺拰鐢熶骇锛屼績杩涜闊宠瘑鍒敓鎬佺殑鍙戝睍銆侫SR for Fun!
+
+.. toctree::
+ :maxdepth: 1
+ :caption: 鏁欑▼:
+
+ ./installation.md
+ ./papers.md
+ ./get_started.md
+
+.. toctree::
+ :maxdepth: 1
+ :caption: ModelScope:
+
+ ./modelscope_models.md
+ ./modelscope_usages.md
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/docs_cn/installation.md b/docs_cn/installation.md
new file mode 100755
index 0000000..387d752
--- /dev/null
+++ b/docs_cn/installation.md
@@ -0,0 +1,42 @@
+# 瀹夎
+FunASR鐨勫畨瑁呭崄鍒嗕究鎹凤紝涓嬮潰灏嗙粰鍑鸿缁嗙殑瀹夎姝ラ銆�
+
+- 涓嬭浇FunASR浠撳簱
+``` sh
+git clone https://github.com/alibaba/FunASR.git
+```
+
+- 瀹夎Conda骞跺垱寤鸿櫄鎷熺幆澧�
+``` sh
+wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
+sh Miniconda3-latest-Linux-x86_64.sh
+conda create -n funasr python=3.7
+conda activate funasr
+```
+
+- 瀹夎Pytorch (鐗堟湰 >= 1.7.0):
+
+| cuda | |
+|:-----:| --- |
+| 9.2 | conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=9.2 -c pytorch |
+| 10.2 | conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch |
+| 11.1 | conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch |
+
+鍏充簬鏇村鐨勭増鏈�, 璇峰弬鐓� [https://pytorch.org/get-started/locally](https://pytorch.org/get-started/locally)
+
+- 瀹夎 ModelScope
+
+瀵逛簬鍥藉唴鐢ㄦ埛锛屽彲浠ラ�氳繃閰嶇疆涓嬭堪闀滃儚婧愭潵鍔犲揩涓嬭浇閫熷害
+```sh
+pip config set global.index-url https://mirror.sjtu.edu.cn/pypi/web/simple
+```
+
+瀹夎鎴栨洿鏂癕odelScope
+``` sh
+pip install "modelscope[audio]" --upgrade -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
+```
+
+- 瀹夎鍓╀綑鎵�闇�渚濊禆
+``` sh
+pip install --editable ./
+```
\ No newline at end of file
diff --git a/docs_cn/make.bat b/docs_cn/make.bat
new file mode 100644
index 0000000..747ffb7
--- /dev/null
+++ b/docs_cn/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=source
+set BUILDDIR=build
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.https://www.sphinx-doc.org/
+ exit /b 1
+)
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+
+:end
+popd
diff --git a/docs_cn/modelscope_models.md b/docs_cn/modelscope_models.md
new file mode 100644
index 0000000..8501c1f
--- /dev/null
+++ b/docs_cn/modelscope_models.md
@@ -0,0 +1,34 @@
+# ModelScope涓婄殑棰勮缁冩ā鍨�
+
+## 妯″瀷璁稿彲璇�
+- Apache License 2.0
+
+## 妯″瀷搴�
+杩欓噷鎴戜滑鎻愪緵浜嗕竴浜涘熀浜庝笉鍚屾暟鎹泦璁粌寰楀埌鐨勫嚑绉嶉璁粌妯″瀷锛屾墍鏈夌殑棰勮缁冩ā鍨嬪拰鏇村缁嗚妭鍙互鍙傝 [ModelScope](https://www.modelscope.cn/models?page=1&tasks=auto-speech-recognition) 銆�
+
+| Datasets | Hours | Model | Online/Offline | Language | Framework | Checkpoint |
+|:-----:|:-----:|:--------------:|:--------------:| :---: | :---: | --- |
+| Alibaba Speech Data | 60000 | Paraformer | Offline | CN | Pytorch |[speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary) |
+| Alibaba Speech Data | 50000 | Paraformer | Offline | CN | Tensorflow |[speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary) |
+| Alibaba Speech Data | 50000 | Paraformer | Offline | CN | Tensorflow |[speech_paraformer_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1](https://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary) |
+| Alibaba Speech Data | 50000 | Paraformer | Online | CN | Tensorflow |[speech_paraformer_asr_nat-zh-cn-16k-common-vocab3444-tensorflow1-online](http://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab3444-tensorflow1-online/summary) |
+| Alibaba Speech Data | 50000 | UniASR | Online | CN | Tensorflow |[speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-online](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-online/summary) |
+| Alibaba Speech Data | 50000 | UniASR | Offline | CN | Tensorflow |[speech_UniASR-large_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline](https://www.modelscope.cn/models/damo/speech_UniASR-large_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary) |
+| Alibaba Speech Data | 50000 | UniASR | Online | CN&EN | Tensorflow |[speech_UniASR_asr_2pass-cn-en-moe-16k-vocab8358-tensorflow1-online](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-en-moe-16k-vocab8358-tensorflow1-online/summary) |
+| Alibaba Speech Data | 50000 | UniASR | Offline | CN&EN | Tensorflow |[speech_UniASR_asr_2pass-cn-en-moe-16k-vocab8358-tensorflow1-offline](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-en-moe-16k-vocab8358-tensorflow1-offline/summary) |
+| Alibaba Speech Data | 20000 | UniASR | Online | CN-Accent | Tensorflow |[speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-online](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-online/summary) |
+| Alibaba Speech Data | 20000 | UniASR | Offline | CN-Accent | Tensorflow |[speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-offline](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-offline/summary) |
+| Alibaba Speech Data | 30000 | Paraformer-8K | Online | CN | Tensorflow |[speech_paraformer_asr_nat-zh-cn-8k-common-vocab3444-tensorflow1-online](https://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-8k-common-vocab3444-tensorflow1-online/summary) |
+| Alibaba Speech Data | 30000 | Paraformer-8K | Offline | CN | Tensorflow |[speech_paraformer_asr_nat-zh-cn-8k-common-vocab8358-tensorflow1](https://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-8k-common-vocab8358-tensorflow1/summary) |
+| Alibaba Speech Data | 30000 | Paraformer-8K | Online | CN | Pytorch |[speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary) |
+| Alibaba Speech Data | 30000 | Paraformer-8K | Offline | CN | Pytorch |[speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-offline](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-offline/summary) |
+| Alibaba Speech Data | 30000 | UniASR-8K | Online | CN | Tensorflow |[speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-online](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-online/summary) |
+| Alibaba Speech Data | 30000 | UniASR-8K | Offline | CN | Tensorflow |[speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline/summary) |
+| Alibaba Speech Data | 30000 | UniASR-8K | Online | CN | Pytorch |[speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary) |
+| Alibaba Speech Data | 30000 | UniASR-8K | Offline | CN | Pytorch |[speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-offline](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-offline/summary) |
+| AISHELL-1 | 178 | Paraformer | Offline | CN | Pytorch | [speech_paraformer_asr_nat-aishell1-pytorch](https://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-aishell1-pytorch/summary) |
+| AISHELL-2 | 1000 | Paraformer | Offline | CN | Pytorch | [speech_paraformer_asr_nat-aishell2-pytorch](https://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-aishell2-pytorch/summary) |
+| AISHELL-1 | 178 | ParaformerBert | Offline | CN | Pytorch | [speech_paraformerbert_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch](https://modelscope.cn/models/damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary) |
+| AISHELL-2 | 1000 | ParaformerBert | Offline | CN | Pytorch | [speech_paraformerbert_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch](https://modelscope.cn/models/damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary) |
+| AISHELL-1 | 178 | Conformer | Offline | CN | Pytorch | [speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch](https://modelscope.cn/models/damo/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary) |
+| AISHELL-2 | 1000 | Conformer | Offline | CN | Pytorch | [speech_conformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch](https://modelscope.cn/models/damo/speech_conformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary) |
diff --git a/docs_cn/modelscope_usages.md b/docs_cn/modelscope_usages.md
new file mode 100644
index 0000000..6986340
--- /dev/null
+++ b/docs_cn/modelscope_usages.md
@@ -0,0 +1,49 @@
+# 蹇�熶娇鐢∕odelScope
+ModelScope鏄樋閲屽反宸存帹鍑虹殑寮�婧愭ā鍨嬪嵆鏈嶅姟鍏变韩骞冲彴锛屼负骞垮ぇ瀛︽湳鐣岀敤鎴峰拰宸ヤ笟鐣岀敤鎴锋彁渚涚伒娲汇�佷究鎹风殑妯″瀷搴旂敤鏀寔銆傚叿浣撶殑浣跨敤鏂规硶鍜屽紑婧愭ā鍨嬪彲浠ュ弬瑙乕ModelScope](https://www.modelscope.cn/models?page=1&tasks=auto-speech-recognition) 銆傚湪璇煶鏂瑰悜锛屾垜浠彁渚涗簡鑷洖褰�/闈炶嚜鍥炲綊璇煶璇嗗埆锛岃闊抽璁粌锛屾爣鐐归娴嬬瓑妯″瀷锛岀敤鎴峰彲浠ユ柟渚夸娇鐢ㄣ��
+
+## 鏁翠綋浠嬬粛
+鎴戜滑鍦╡gs_modelscope鐩綍涓嬫彁渚涗簡鐩稿叧妯″瀷鐨勪娇鐢紝鏀寔鐩存帴鐢ㄦ垜浠彁渚涚殑妯″瀷杩涜鎺ㄧ悊锛屽悓鏃朵篃鏀寔灏嗘垜浠彁渚涚殑妯″瀷浣滀负棰勮缁冨ソ鐨勬ā鍨嬩綔涓哄垵濮嬫ā鍨嬭繘琛屽井璋冦�備笅闈紝鎴戜滑灏嗕互egs_modelscope/asr/paraformer/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch鐩綍涓彁渚涚殑妯″瀷鏉ヨ繘琛屼粙缁嶏紝鍖呮嫭`infer.py`锛宍finetune.py`鍜宍infer_after_finetune.py`锛屽搴旂殑鍔熻兘濡備笅锛�
+- `infer.py`: 鍩轰簬鎴戜滑鎻愪緵鐨勬ā鍨嬶紝瀵规寚瀹氱殑鏁版嵁闆嗚繘琛屾帹鐞�
+- `finetune.py`: 灏嗘垜浠彁渚涚殑妯″瀷浣滀负鍒濆妯″瀷杩涜寰皟
+- `infer_after_finetune.py`: 鍩轰簬寰皟寰楀埌鐨勬ā鍨嬶紝瀵规寚瀹氱殑鏁版嵁闆嗚繘琛屾帹鐞�
+
+## 妯″瀷鎺ㄧ悊
+鎴戜滑鎻愪緵浜哷infer.py`鏉ュ疄鐜版ā鍨嬫帹鐞嗐�傚熀浜庢鏂囦欢锛岀敤鎴峰彲浠ュ熀浜庢垜浠彁渚涚殑妯″瀷锛屽鎸囧畾鐨勬暟鎹泦杩涜鎺ㄧ悊锛屽緱鍒扮浉搴旂殑璇嗗埆缁撴灉銆傚鏋滃悓鏃剁粰瀹氫簡鎶勬湰锛屽垯浼氬悓鏃惰绠桟ER銆傚湪寮�濮嬫帹鐞嗗墠锛岀敤鎴峰彲浠ユ寚瀹氬涓嬪弬鏁版潵淇敼鎺ㄧ悊閰嶇疆锛�
+* `data_dir`锛氭暟鎹泦鐩綍銆傜洰褰曚笅搴旇鍖呮嫭闊抽鍒楄〃鏂囦欢`wav.scp`鍜屾妱鏈枃浠禶text`(鍙��)锛屽叿浣撴牸寮忓彲浠ュ弬瑙乕蹇�熷紑濮媇(./get_started.md)涓殑璇存槑銆傚鏋渀text`鏂囦欢瀛樺湪锛屽垯浼氱浉搴旂殑璁$畻CER锛屽惁鍒欎細璺宠繃銆�
+* `output_dir`锛氭帹鐞嗙粨鏋滀繚瀛樼洰褰�
+* `batch_size`锛氭帹鐞嗘椂鐨刡atch澶у皬
+* `ctc_weight`锛氶儴鍒嗘ā鍨嬪寘鍚獵TC妯″潡锛屽彲浠ヨ缃鍙傛暟鏉ユ寚瀹氭帹鐞嗘椂锛孋TC妯″潡鐨勬潈閲�
+
+闄や簡鐩存帴鍦╜infer.py`涓缃弬鏁板锛岀敤鎴蜂篃鍙互閫氳繃鎵嬪姩淇敼妯″瀷涓嬭浇鐩綍涓嬬殑`decoding.yaml`鏂囦欢涓殑鍙傛暟鏉ヤ慨鏀规帹鐞嗛厤缃��
+
+## 妯″瀷寰皟
+鎴戜滑鎻愪緵浜哷finetune.py`鏉ュ疄鐜版ā鍨嬪井璋冦�傚熀浜庢鏂囦欢锛岀敤鎴峰彲浠ュ熀浜庢垜浠彁渚涚殑妯″瀷浣滀负鍒濆妯″瀷锛屽湪鎸囧畾鐨勬暟鎹泦涓婅繘琛屽井璋冿紝浠庤�屽湪鐗瑰緛棰嗗煙鍙栧緱鏇村ソ鐨勬�ц兘銆傚湪寰皟寮�濮嬪墠锛岀敤鎴峰彲浠ユ寚瀹氬涓嬪弬鏁版潵淇敼寰皟閰嶇疆锛�
+* `data_path`锛氭暟鎹洰褰曘�傝鐩綍涓嬪簲璇ュ寘鎷瓨鏀捐缁冮泦鏁版嵁鐨刞train`鐩綍鍜屽瓨鏀鹃獙璇侀泦鏁版嵁鐨刞dev`鐩綍銆傛瘡涓洰褰曚腑闇�瑕佸寘鎷煶棰戝垪琛ㄦ枃浠禶wav.scp`鍜屾妱鏈枃浠禶text`
+* `output_dir`锛氬井璋冪粨鏋滀繚瀛樼洰褰�
+* `dataset_type`锛氬浜庡皬鏁版嵁闆嗭紝璁剧疆涓篳small`锛涘綋鏁版嵁閲忓ぇ浜�1000灏忔椂鏃讹紝璁剧疆涓篳large`
+* `batch_bins`锛歜atch size锛屽鏋渄ataset_type璁剧疆涓篳small`锛宐atch_bins鍗曚綅涓篺bank鐗瑰緛甯ф暟锛涘鏋渄ataset_type=`large`锛宐atch_bins鍗曚綅涓烘绉�
+* `max_epoch`锛氭渶澶х殑璁粌杞暟
+
+浠ヤ笅鍙傛暟涔熷彲浠ヨ繘琛岃缃�備絾鏄鏋滄病鏈夌壒鍒殑闇�姹傦紝鍙互蹇界暐锛岀洿鎺ヤ娇鐢ㄦ垜浠粰瀹氱殑榛樿鍊硷細
+* `accum_grad`锛氭搴︾疮绉�
+* `keep_nbest_models`锛氶�夋嫨鎬ц兘鏈�濂界殑`keep_nbest_models`涓ā鍨嬬殑鍙傛暟杩涜骞冲潎锛屽緱鍒版�ц兘鏇村ソ鐨勬ā鍨�
+* `optim`锛氳缃井璋冩椂鐨勪紭鍖栧櫒
+* `lr`锛氳缃井璋冩椂鐨勫涔犵巼
+* `scheduler`锛氳缃涔犵巼璋冩暣绛栫暐
+* `scheduler_conf`锛氬涔犵巼璋冩暣绛栫暐鐨勭浉鍏冲弬鏁�
+* `specaug`锛氳缃氨澧炲箍
+* `specaug_conf`锛氳氨澧炲箍鐨勭浉鍏冲弬鏁�
+
+闄や簡鐩存帴鍦╜finetune.py`涓缃弬鏁板锛岀敤鎴蜂篃鍙互閫氳繃鎵嬪姩淇敼妯″瀷涓嬭浇鐩綍涓嬬殑`finetune.yaml`鏂囦欢涓殑鍙傛暟鏉ヤ慨鏀瑰井璋冮厤缃��
+
+## 鍩轰簬寰皟鍚庣殑妯″瀷鎺ㄧ悊
+鎴戜滑鎻愪緵浜哷infer_after_finetune.py`鏉ュ疄鐜板熀浜庣敤鎴疯嚜宸卞井璋冨緱鍒扮殑妯″瀷杩涜鎺ㄧ悊銆傚熀浜庢鏂囦欢锛岀敤鎴峰彲浠ュ熀浜庡井璋冨悗鐨勬ā鍨嬶紝瀵规寚瀹氱殑鏁版嵁闆嗚繘琛屾帹鐞嗭紝寰楀埌鐩稿簲鐨勮瘑鍒粨鏋溿�傚鏋滃悓鏃剁粰瀹氫簡鎶勬湰锛屽垯浼氬悓鏃惰绠桟ER銆傚湪寮�濮嬫帹鐞嗗墠锛岀敤鎴峰彲浠ユ寚瀹氬涓嬪弬鏁版潵淇敼鎺ㄧ悊閰嶇疆锛�
+* `data_dir`锛氭暟鎹泦鐩綍銆傜洰褰曚笅搴旇鍖呮嫭闊抽鍒楄〃鏂囦欢`wav.scp`鍜屾妱鏈枃浠禶text`(鍙��)銆傚鏋渀text`鏂囦欢瀛樺湪锛屽垯浼氱浉搴旂殑璁$畻CER锛屽惁鍒欎細璺宠繃銆�
+* `output_dir`锛氭帹鐞嗙粨鏋滀繚瀛樼洰褰�
+* `batch_size`锛氭帹鐞嗘椂鐨刡atch澶у皬
+* `ctc_weight`锛氶儴鍒嗘ā鍨嬪寘鍚獵TC妯″潡锛屽彲浠ヨ缃鍙傛暟鏉ユ寚瀹氭帹鐞嗘椂锛孋TC妯″潡鐨勬潈閲�
+* `decoding_model_name`锛氭寚瀹氱敤浜庢帹鐞嗙殑妯″瀷鍚�
+
+浠ヤ笅鍙傛暟涔熷彲浠ヨ繘琛岃缃�備絾鏄鏋滄病鏈夌壒鍒殑闇�姹傦紝鍙互蹇界暐锛岀洿鎺ヤ娇鐢ㄦ垜浠粰瀹氱殑榛樿鍊硷細
+`modelscope_model_name`锛氬井璋冩椂浣跨敤鐨勫垵濮嬫ā鍨�
+`required_files`锛氫娇鐢╩odelscope鎺ュ彛杩涜鎺ㄧ悊鏃堕渶瑕佺敤鍒扮殑鏂囦欢
\ No newline at end of file
diff --git a/docs_cn/papers.md b/docs_cn/papers.md
new file mode 100644
index 0000000..34a8150
--- /dev/null
+++ b/docs_cn/papers.md
@@ -0,0 +1,4 @@
+# 璁烘枃
+
+- [Universal ASR: Unifying Streaming and Non-Streaming ASR Using a Single Encoder-Decoder Model](https://arxiv.org/abs/2010.14099), arXiv preprint arXiv:2010.14099, 2020.
+- [Paraformer: Fast and Accurate Parallel Transformer for Non-autoregressive End-to-End Speech Recognition](https://arxiv.org/abs/2206.08317), INTERSPEECH 2022.
\ No newline at end of file
diff --git a/funasr/bin/build_trainer.py b/funasr/bin/build_trainer.py
index c13f91b..5ef736a 100644
--- a/funasr/bin/build_trainer.py
+++ b/funasr/bin/build_trainer.py
@@ -34,8 +34,22 @@
return args, ASRTask
-def build_trainer(modelscope_dict, data_dir, output_dir, train_set="train", dev_set="validation", distributed=False,
- dataset_type="small", lr=None, batch_bins=None, max_epoch=None, mate_params=None):
+def build_trainer(modelscope_dict,
+ data_dir,
+ output_dir,
+ train_set="train",
+ dev_set="validation",
+ distributed=False,
+ dataset_type="small",
+ batch_bins=None,
+ max_epoch=None,
+ optim=None,
+ lr=None,
+ scheduler=None,
+ scheduler_conf=None,
+ specaug=None,
+ specaug_conf=None,
+ param_dict=None):
mode = modelscope_dict['mode']
args, ASRTask = parse_args(mode=mode)
# ddp related
@@ -94,8 +108,18 @@
args.output_dir = output_dir
args.gpu_id = args.local_rank
args.config = finetune_config
+ if optim is not None:
+ args.optim = optim
if lr is not None:
args.optim_conf["lr"] = lr
+ if scheduler is not None:
+ args.scheduler = scheduler
+ if scheduler_conf is not None:
+ args.scheduler_conf = scheduler_conf
+ if specaug is not None:
+ args.specaug = specaug
+ if specaug_conf is not None:
+ args.specaug_conf = specaug_conf
if max_epoch is not None:
args.max_epoch = max_epoch
if batch_bins is not None:
diff --git a/funasr/utils/modelscope_param.py b/funasr/utils/modelscope_param.py
index 5d6bffb..9ff196a 100644
--- a/funasr/utils/modelscope_param.py
+++ b/funasr/utils/modelscope_param.py
@@ -1,25 +1,35 @@
-
class modelscope_args():
- def __init__(self,
- task: str = "",
- model: str = "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
- data_path: str = None,
- output_dir: str = None,
- model_revision: str = None,
- dataset_type: str = "small",
- batch_bins: int = 2000,
- max_epoch: int = None,
- lr: float = None,
- ):
- self.task = task
- self.model = model
- self.data_path = data_path
- self.output_dir = output_dir
- self.model_revision = model_revision
- self.dataset_type = dataset_type
- self.batch_bins = batch_bins
- self.max_epoch = max_epoch
- self.lr = lr
-
-
-
\ No newline at end of file
+ def __init__(self,
+ task: str = "",
+ model: str = "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
+ data_path: str = None,
+ output_dir: str = None,
+ model_revision: str = None,
+ dataset_type: str = "small",
+ batch_bins: int = 2000,
+ max_epoch: int = None,
+ accum_grad: int = None,
+ keep_nbest_models: int = None,
+ optim: str = None,
+ lr: float = None,
+ scheduler: str = None,
+ scheduler_conf: dict = None,
+ specaug: str = None,
+ specaug_conf: dict = None,
+ ):
+ self.task = task
+ self.model = model
+ self.data_path = data_path
+ self.output_dir = output_dir
+ self.model_revision = model_revision
+ self.dataset_type = dataset_type
+ self.batch_bins = batch_bins
+ self.max_epoch = max_epoch
+ self.accum_grad = accum_grad
+ self.keep_nbest_models = keep_nbest_models
+ self.optim = optim
+ self.lr = lr
+ self.scheduler = scheduler
+ self.scheduler_conf = scheduler_conf
+ self.specaug = specaug
+ self.specaug_conf = specaug_conf
--
Gitblit v1.9.1