diff --git a/README.md b/README.md index b07c26560..ec1689f32 100644 --- a/README.md +++ b/README.md @@ -309,7 +309,7 @@ asset is published. - 2026/07/19: **v1.3.18 on PyPI** — CLI SRT/TSV subtitle output now requests sentence timestamps and loads punctuation when needed, so `funasr audio.wav --output-format srt --output-dir ./subs` writes segmented subtitle cues instead of one full-text block. Install with `python -m pip install -U "funasr==1.3.18"`. [Release ->](https://github.com/modelscope/FunASR/releases/tag/v1.3.18) - 2026/07/18: **v1.3.16 on PyPI** — client-driven realtime endpoints for Fun-ASR-Nano. Start one WebSocket session, stream PCM, and send `COMMIT` for each utterance without loading server-side VAD; short utterances finalize and timestamps remain monotonic across commits. Install with `pip install --upgrade funasr`, then run `funasr-realtime-server --endpoint-mode client`. [Guide →](examples/industrial_data_pretraining/fun_asr_nano/docs/realtime_demo.md) - 2026/07/18: **llama.cpp runtime v0.1.7** — prebuilt Windows CUDA package for SenseVoiceSmall (`funasr-llamacpp-windows-x64-cuda.zip`) plus Linux / macOS / Windows CPU packages. Download the GGUF model, then run `llama-funasr-sensevoice ... --backend cuda` on supported NVIDIA GPUs. [Release →](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.1.7) -- 2026/06/20: **llama.cpp / GGUF runtime** — run SenseVoice / Paraformer / Fun-ASR-Nano on CPU & edge as a single self-contained binary (a whisper.cpp-style alternative), built-in FSMN-VAD, no Python at runtime. Prebuilt binaries for Linux / macOS / Windows + **q8 quantized models (~half the size, same accuracy)**. [runtime/llama.cpp/](./runtime/llama.cpp/) · [Releases](../../releases) +- 2026/06/20: **llama.cpp / GGUF runtime** — run SenseVoice / Paraformer / Fun-ASR-Nano on CPU & edge as a single self-contained binary (a whisper.cpp-style alternative), built-in FSMN-VAD, no Python at runtime. Prebuilt binaries for Linux / macOS / Windows + **q8 quantized models (~half the size, same accuracy)**. [runtime/llama.cpp/](./runtime/llama.cpp/) · [Releases](https://github.com/modelscope/FunASR/releases) - 2026/06/21: **v1.3.12** on PyPI — rolling fixes (qwen3-asr language codes, glm_asr, vLLM repetition_penalty). `pip install --upgrade funasr` - 2026/05/24: **vLLM Inference Engine** — 2-3x faster LLM decoding for Fun-ASR-Nano. Streaming WebSocket service with VAD + Speaker Diarization. [Guide →](docs/vllm_guide.md) · [Realtime WS tuning →](docs/vllm_guide.md#67-production-concurrency-and-multi-process-deployment) · [API stability checklist →](docs/vllm_guide.md#production-api-stability-checklist) - 2026/05/24: **Dynamic VAD** — adaptive silence threshold (default on). Short sentences stay intact, long segments get auto-split. [Details →](docs/vllm_guide.md#附录dynamicstreamingvad) diff --git a/examples/industrial_data_pretraining/monotonic_aligner/README_zh.md b/examples/industrial_data_pretraining/monotonic_aligner/README_zh.md index 8ddb202a2..68155ecb6 100644 --- a/examples/industrial_data_pretraining/monotonic_aligner/README_zh.md +++ b/examples/industrial_data_pretraining/monotonic_aligner/README_zh.md @@ -1,4 +1,4 @@ -(简体中文|[English](./README.md)) +(简体中文|[示例目录](../)) # 语音识别 diff --git a/examples/industrial_data_pretraining/paraformer-zh-spk/README_zh.md b/examples/industrial_data_pretraining/paraformer-zh-spk/README_zh.md index 54a9401ed..2e1426503 100644 --- a/examples/industrial_data_pretraining/paraformer-zh-spk/README_zh.md +++ b/examples/industrial_data_pretraining/paraformer-zh-spk/README_zh.md @@ -1,4 +1,4 @@ -(简体中文|[English](./README.md)) +(简体中文|[示例目录](../)) FunASR开源了大量在工业数据上预训练模型,您可以在 [模型许可协议](https://github.com/modelscope/FunASR/blob/main/MODEL_LICENSE)下自由使用、复制、修改和分享FunASR模型,下面列举代表性的模型,更多模型请参考 [模型仓库](https://github.com/modelscope/FunASR/tree/main/model_zoo)。 @@ -433,4 +433,4 @@ result = model(wav_path) print(result) ``` -更多例子请参考 [样例](https://github.com/modelscope/FunASR/tree/main/runtime/python/onnxruntime) \ No newline at end of file +更多例子请参考 [样例](https://github.com/modelscope/FunASR/tree/main/runtime/python/onnxruntime) diff --git a/examples/industrial_data_pretraining/paraformer_streaming/README_zh.md b/examples/industrial_data_pretraining/paraformer_streaming/README_zh.md index 54a9401ed..2e1426503 100644 --- a/examples/industrial_data_pretraining/paraformer_streaming/README_zh.md +++ b/examples/industrial_data_pretraining/paraformer_streaming/README_zh.md @@ -1,4 +1,4 @@ -(简体中文|[English](./README.md)) +(简体中文|[示例目录](../)) FunASR开源了大量在工业数据上预训练模型,您可以在 [模型许可协议](https://github.com/modelscope/FunASR/blob/main/MODEL_LICENSE)下自由使用、复制、修改和分享FunASR模型,下面列举代表性的模型,更多模型请参考 [模型仓库](https://github.com/modelscope/FunASR/tree/main/model_zoo)。 @@ -433,4 +433,4 @@ result = model(wav_path) print(result) ``` -更多例子请参考 [样例](https://github.com/modelscope/FunASR/tree/main/runtime/python/onnxruntime) \ No newline at end of file +更多例子请参考 [样例](https://github.com/modelscope/FunASR/tree/main/runtime/python/onnxruntime) diff --git a/model_zoo/modelscope_models_zh.md b/model_zoo/modelscope_models_zh.md index e6e087fa2..14d49be8e 100644 --- a/model_zoo/modelscope_models_zh.md +++ b/model_zoo/modelscope_models_zh.md @@ -6,7 +6,7 @@ 您可以在本协议的条件下自由使用、复制、修改和分享FunASR模型。在使用、复制、修改和分享FunASR模型时,您应当标明模型来源和作者信息。您应当在[FunASR软件]中保留相关模型的名称。完整的模型许可证请参见 [模型许可协议](https://github.com/modelscope/FunASR/blob/main/MODEL_LICENSE) ## 模型用法 -模型用法参考[文档](funasr/quick_start_zh.md) +模型用法参考[文档](../runtime/quick_start_zh.md) ## 模型仓库 这里我们提供了在不同数据集上预训练的模型。模型和数据集的详细信息可在 [ModelScope](https://www.modelscope.cn/models?page=1&tasks=auto-speech-recognition)中找到. diff --git a/model_zoo/readme.md b/model_zoo/readme.md index e4c31b651..320a2e27e 100644 --- a/model_zoo/readme.md +++ b/model_zoo/readme.md @@ -15,7 +15,7 @@ Here we provided several pretrained models on different datasets. The details of #### Paraformer -FunASR has open-sourced a large number of pre-trained models on industrial data. You are free to use, copy, modify, and share FunASR models under the [Model License Agreement](./MODEL_LICENSE). Below are some representative models, for more models please refer to the [Model Zoo](). +FunASR has open-sourced a large number of pre-trained models on industrial data. You are free to use, copy, modify, and share FunASR models under the [Model License Agreement](../MODEL_LICENSE). Below are some representative models, for more models please refer to the [Model Zoo](https://github.com/modelscope/FunASR/tree/main/model_zoo). (Note: 🤗 represents the Huggingface model zoo link, ⭐ represents the ModelScope model zoo link) diff --git a/model_zoo/readme_zh.md b/model_zoo/readme_zh.md index bb794185d..2da684392 100644 --- a/model_zoo/readme_zh.md +++ b/model_zoo/readme_zh.md @@ -6,7 +6,7 @@ 您可以在本协议的条件下自由使用、复制、修改和分享FunASR模型。在使用、复制、修改和分享FunASR模型时,您应当标明模型来源和作者信息。您应当在[FunASR软件]中保留相关模型的名称。完整的模型许可证请参见 [模型许可协议](https://github.com/modelscope/FunASR/blob/main/MODEL_LICENSE) ## 模型用法 -模型用法参考[文档](funasr/quick_start_zh.md) +模型用法参考[文档](../runtime/quick_start_zh.md) ## 模型仓库 这里我们提供了在不同数据集上预训练的模型。模型和数据集的详细信息可在 [ModelScope](https://www.modelscope.cn/models?page=1&tasks=auto-speech-recognition)中找到. @@ -24,4 +24,3 @@ | paraformer-zh-streaming
( [⭐](https://modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online/summary) [🤗]() ) | 语音识别,实时 | 60000小时,中文 | 220M | | paraformer-zh-streaming-small
( [⭐](https://www.modelscope.cn/models/iic/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8404-online/summary) [🤗]() ) | 语音识别,实时 | 60000小时,中文 | 220M | | paraformer-en
( [⭐](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-en-16k-common-vocab10020/summary) [🤗]() ) | 语音识别,非实时 | 50000小时,英文 | 220M | - diff --git a/runtime/docs/aliyun_server_tutorial.md b/runtime/docs/aliyun_server_tutorial.md index 5cd47c244..c578d191d 100644 --- a/runtime/docs/aliyun_server_tutorial.md +++ b/runtime/docs/aliyun_server_tutorial.md @@ -59,6 +59,5 @@ -上图表示已经成功申请了云服务器,后续可以根据FunASR runtime-SDK部署文档进行一键部署([点击此处](./SDK_tutorial_cn.md)) - +上图表示已经成功申请了云服务器,后续可以根据FunASR runtime-SDK部署文档进行一键部署([点击此处](./SDK_tutorial_zh.md)) diff --git a/runtime/grpc/Readme.md b/runtime/grpc/Readme.md index 016e396e9..6976c7700 100644 --- a/runtime/grpc/Readme.md +++ b/runtime/grpc/Readme.md @@ -38,7 +38,7 @@ cd /cfs/user/burkliu/work2023/FunASR/funasr/runtime/grpc ``` ### 4. Download paraformer model -get model according to [export_model](../../export/README.md) +get model according to [export_model](../docs/benchmark_onnx_cpp.md) or run code below as default ```shell diff --git a/tests/test_markdown_relative_links.py b/tests/test_markdown_relative_links.py new file mode 100644 index 000000000..b414e512b --- /dev/null +++ b/tests/test_markdown_relative_links.py @@ -0,0 +1,62 @@ +import re +import urllib.parse +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +LINK_PATTERN = re.compile( + r"(?]*href=[\"']([^\"']+)[\"'])", + re.IGNORECASE, +) +SKIP_DIRS = {".git", ".venv", "venv", "node_modules", "site", "third_party"} + + +def _iter_markdown_files(): + for path in ROOT.rglob("*.md"): + if path.is_symlink(): + continue + if not any(part in SKIP_DIRS for part in path.parts): + yield path + + +def _is_external_or_anchor(url): + return url.startswith( + ( + "#", + "http://", + "https://", + "mailto:", + "tel:", + "javascript:", + "data:", + ) + ) + + +def test_relative_markdown_links_point_to_existing_paths(): + missing = [] + + for markdown_path in _iter_markdown_files(): + text = markdown_path.read_text(encoding="utf-8", errors="ignore") + for match in LINK_PATTERN.finditer(text): + raw_url = (match.group(1) or match.group(2) or "").strip() + url = raw_url.split()[0].strip("<>") + if not url: + missing.append(f"{markdown_path.relative_to(ROOT)} -> empty link") + continue + if _is_external_or_anchor(url): + continue + + target = urllib.parse.unquote(url.split("#", 1)[0]) + if not target: + continue + + candidate = ( + ROOT / target.lstrip("/") + if target.startswith("/") + else markdown_path.parent / target + ) + if not candidate.exists(): + missing.append(f"{markdown_path.relative_to(ROOT)} -> {raw_url}") + + assert missing == []