From 9edd083411a82617897bc68645a8b592a459325f Mon Sep 17 00:00:00 2001 From: yaotutu <957810668@qq.com> Date: Wed, 30 Jul 2025 10:41:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20Sherpa-ONNX=20?= =?UTF-8?q?Paraformer=20=E6=A8=A1=E5=9E=8B=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 sherpa_onnx_local.py 中添加 model_type 参数,支持 paraformer 和 sense_voice 两种模型类型 - 在 config.yaml 中添加 SherpaParaformerASR 配置示例 - 添加详细的 Paraformer 使用文档 (docs/sherpa-paraformer-guide.md) - 保持向后兼容,默认使用 sense_voice 模型 这个改动允许用户在低性能设备(如 RK3566)上使用更轻量的 Paraformer 模型, 相比 SenseVoice (894MB),Paraformer-small (78MB) 可以提供 4-6 倍的识别速度提升。 --- docs/sherpa-paraformer-guide.md | 268 ++++++++++++++++++ main/xiaozhi-server/config.yaml | 10 + .../core/providers/asr/sherpa_onnx_local.py | 32 ++- 3 files changed, 300 insertions(+), 10 deletions(-) create mode 100644 docs/sherpa-paraformer-guide.md diff --git a/docs/sherpa-paraformer-guide.md b/docs/sherpa-paraformer-guide.md new file mode 100644 index 00000000..8b9e7321 --- /dev/null +++ b/docs/sherpa-paraformer-guide.md @@ -0,0 +1,268 @@ +# Sherpa-ONNX Paraformer 模型使用指南 + +本文档介绍如何在小智 ESP32 服务器中使用 Paraformer 模型进行中文语音识别。Paraformer 有多个版本,本指南重点介绍适合低性能设备(如 RK3566)的小尺寸版本。 + +## 为什么选择 Paraformer? + +Paraformer 是阿里达摩院开发的语音识别模型系列,支持多种语言和尺寸。对于性能较低的设备(如 RK3566),我们推荐使用中文小尺寸版本: + +- **多种尺寸可选**:从 78MB 的小模型到 600MB+ 的大模型 +- **速度快**:优化的模型结构,推理速度快 +- **资源占用灵活**:可根据设备性能选择合适的版本 + +## Paraformer 模型特点 + +- **多语言支持**:除中文外,还有英文、日文等版本 +- **支持 INT8 量化**:通过量化技术减小模型体积 +- **CPU 友好**:即使在纯 CPU 环境下也能高效运行 +- **低延迟**:适合实时对话场景 + +**注意**:本指南主要介绍中文版本(paraformer-zh 系列),这是小智 ESP32 项目的主要使用场景。 + +## 如何找到合适的模型 + +### 模型来源渠道 + +1. **GitHub Releases(推荐)** + - [Sherpa-ONNX 官方发布页](https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models) + - 优点:模型经过验证,格式标准,下载稳定 + - 缺点:需要科学上网 + +2. **ModelScope(阿里巴巴)** + - [ModelScope 搜索](https://modelscope.cn/models?name=sherpa-onnx&page=1) + - 优点:国内访问快,无需科学上网 + - 缺点:部分模型格式不标准,需要仔细筛选 + +3. **HuggingFace** + - [HuggingFace 搜索](https://huggingface.co/models?search=sherpa-onnx) + - 优点:模型丰富,社区活跃 + - 缺点:需要科学上网,下载速度慢 + +### 判断模型是否可用 + +**必须满足以下条件**: + +1. **文件格式要求** + ``` + 模型目录/ + ├── model.int8.onnx # INT8 量化的 ONNX 模型(必需) + ├── tokens.txt # 词汇表文件(必需) + └── README.md # 说明文档(可选) + ``` + +2. **模型类型识别** + - 文件名包含 `paraformer`:使用 `model_type: paraformer` + - 文件名包含 `sense-voice`:使用 `model_type: sense_voice` + - 不确定时查看 README 或模型说明 + +3. **验证方法** + ```bash + # 下载后解压查看文件 + tar -tf downloaded-model.tar.bz2 | grep -E "(model\.int8\.onnx|tokens\.txt)" + + # 如果两个文件都存在,模型可用 + ``` + +### 搜索技巧 + +1. **GitHub 搜索关键词** + - `sherpa-onnx-paraformer-zh`(中文 Paraformer) + - `sherpa-onnx-sense-voice`(多语言 SenseVoice) + +2. **ModelScope 搜索** + - 搜索 `sherpa-onnx` + - 筛选作者 `pengzhendong`(经过验证的模型) + +3. **识别不可用的模型** + - ❌ 只有 `.pt` 或 `.pth` 文件(PyTorch 格式) + - ❌ 只有 `.bin` 文件(未转换的二进制) + - ❌ 缺少 `tokens.txt` + - ✅ 包含 `model.int8.onnx` 和 `tokens.txt` + +## 模型下载 + +### 推荐的 Paraformer 模型 + +#### 1. Paraformer-zh-small(推荐) +- **大小**:约 78MB +- **适用场景**:低性能设备,纯中文场景 +- **下载地址**: + ```bash + # GitHub 官方下载 + wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-small-2024-03-09.tar.bz2 + + # 国内镜像加速 + wget https://ghproxy.com/https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-small-2024-03-09.tar.bz2 + + # 解压 + mkdir -p models + tar -xf sherpa-onnx-paraformer-zh-small-2024-03-09.tar.bz2 -C models/ + ``` + +#### 2. Paraformer-zh(标准版) +- **大小**:约 230MB +- **适用场景**:性能充足时,追求更高准确度 +- **下载地址**: + ```bash + wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2 + ``` + +### 其他可用的 Paraformer 模型 + +在 [Sherpa-ONNX Releases](https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models) 页面可找到: +- **中文版本**:搜索 "paraformer-zh" +- **英文版本**:搜索 "paraformer-en" +- **多语言版本**:搜索 "paraformer-trilingual"(中英日) + +## 配置方法 + +在 `config.yaml` 中配置对应的 ASR 模块: + +### 1. 在 config.yaml 中添加 Paraformer 配置 + +```yaml +ASR: + SherpaParaformerASR: + type: sherpa_onnx_local + model_dir: models/sherpa-onnx-paraformer-zh-small-2024-03-09 + output_dir: tmp/ + model_type: paraformer # 必须指定为 paraformer +``` + +### 2. 在 .config.yaml 中启用 + +```yaml +selected_module: + ASR: SherpaParaformerASR # 使用 Paraformer 模型 +``` + +## Paraformer 不同版本对比 + +| 版本 | 模型大小 | 内存占用 | 推理速度 | 准确度 | 推荐场景 | +| ------------------- | -------- | -------- | -------- | ------ | ---------- | +| paraformer-zh-small | ~78MB | ~200MB | 快 | 良好 | 低性能设备 | +| paraformer-zh | ~230MB | ~500MB | 中等 | 优秀 | 标准设备 | +| paraformer-zh-large | ~600MB | ~1.2GB | 较慢 | 最佳 | 高性能设备 | + +## 实测性能数据 + +### RK3566 设备实测(2GB 内存) + +使用 **paraformer-zh-small** 模型的实际表现: + +| 测试项目 | 数据 | +|---------|------| +| 模型加载时间 | ~3秒 | +| 30字中文识别 | **~0.5秒** | +| 60字中文识别 | ~0.8秒 | +| 内存占用(空闲) | ~180MB | +| 内存占用(识别中) | ~220MB | +| CPU 占用(识别时) | **四核瞬时跑满** | + +**测试环境**: +- 设备:RK3566 开发板 +- 内存:2GB DDR4 +- 系统:Debian 11 +- Python:3.9 + +**性能优势**: +- ✅ 0.5秒完成30字识别,响应迅速 +- ✅ 内存占用低,2GB 设备运行流畅 +- ✅ 虽然识别瞬间 CPU 跑满,但持续时间短,不影响整体体验 + +**性能特点**: +- 识别过程中 CPU 四核会瞬时跑满(纯 CPU 推理) +- 由于识别速度快(0.5秒),CPU 高负载时间很短 +- 对比 SenseVoice(894MB)在同设备上需要 2-3 秒,Paraformer-small(78MB)提升了 **4-6 倍**的识别速度 + +## 常见问题 + +### 1. 模型文件缺失错误 + +如果看到 "模型文件下载失败" 错误,请手动下载模型文件并确保以下文件存在: +- `model.int8.onnx` - 量化后的 ONNX 模型文件 +- `tokens.txt` - 词汇表文件 + +### 2. RK3566 NPU 加速 + +目前 Sherpa-ONNX 暂不支持 RK3566 NPU 加速(正在努力攻克中),但 INT8 量化模型已经能在 CPU 上高效运行。 + +### 3. 模型选择建议 + +- **RK3566 等嵌入式设备**:使用 paraformer-zh-small +- **树莓派、迷你主机**:使用 paraformer-zh +- **性能充足的设备**:使用 paraformer-zh-large +- **需要极致性能**:考虑使用在线 ASR 服务(如豆包、阿里云) + +### 4. 下载失败处理 + +**GitHub 下载慢或失败**: +- 使用代理工具 +- 使用 GitHub 加速服务 +- 从 ModelScope 下载同名模型 + +**ModelScope 下载失败**: +- 检查网络连接 +- 使用手动下载方式 +- 尝试其他模型源 + +### 5. 模型版本更新 + +定期检查新版本: +```bash +# 查看最新的 Paraformer 模型 +curl -s https://api.github.com/repos/k2-fsa/sherpa-onnx/releases | grep paraformer-zh +``` + +## 实战示例 + +### 快速测试模型是否可用 + +```python +#!/usr/bin/env python3 +# test_model.py - 测试下载的模型是否可用 + +import os +import sys + +def check_model(model_dir): + """检查模型文件是否完整""" + required_files = ['model.int8.onnx', 'tokens.txt'] + missing = [] + + for file in required_files: + path = os.path.join(model_dir, file) + if not os.path.exists(path): + missing.append(file) + else: + size = os.path.getsize(path) / 1024 / 1024 # MB + print(f"✓ {file}: {size:.1f} MB") + + if missing: + print(f"✗ 缺少文件: {', '.join(missing)}") + return False + + # 检查模型类型 + if 'paraformer' in model_dir.lower(): + print("→ 模型类型: paraformer") + elif 'sense-voice' in model_dir.lower(): + print("→ 模型类型: sense_voice") + else: + print("→ 模型类型: 未知(默认使用 sense_voice)") + + return True + +if __name__ == "__main__": + model_dir = sys.argv[1] if len(sys.argv) > 1 else "models/sherpa-onnx-paraformer-zh-small-2024-03-09" + if check_model(model_dir): + print(f"\n✅ 模型 {model_dir} 可以使用!") + else: + print(f"\n❌ 模型 {model_dir} 不完整,请重新下载!") +``` + +## 参考链接 + +- [Sherpa-ONNX 官方仓库](https://github.com/k2-fsa/sherpa-onnx) +- [Sherpa-ONNX 模型下载](https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models) +- [Paraformer 论文](https://arxiv.org/abs/2206.08317) +- [k2-fsa 组织主页](https://github.com/k2-fsa) \ No newline at end of file diff --git a/main/xiaozhi-server/config.yaml b/main/xiaozhi-server/config.yaml index 8e6b2790..a2317fef 100644 --- a/main/xiaozhi-server/config.yaml +++ b/main/xiaozhi-server/config.yaml @@ -271,9 +271,19 @@ ASR: api_key: none output_dir: tmp/ SherpaASR: + # Sherpa-ONNX 本地语音识别(需手动下载模型) type: sherpa_onnx_local model_dir: models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17 output_dir: tmp/ + # 模型类型:sense_voice (多语言) 或 paraformer (中文专用) + model_type: sense_voice + SherpaParaformerASR: + # 中文语音识别模型,可以运行在低性能设备(需手动下载模型,例如RK3566-2g) + # 详细配置说明请参考:docs/sherpa-paraformer-guide.md + type: sherpa_onnx_local + model_dir: models/sherpa-onnx-paraformer-zh-small-2024-03-09 + output_dir: tmp/ + model_type: paraformer DoubaoASR: # 可以在这里申请相关Key等信息 # https://console.volcengine.com/speech/app diff --git a/main/xiaozhi-server/core/providers/asr/sherpa_onnx_local.py b/main/xiaozhi-server/core/providers/asr/sherpa_onnx_local.py index 9e5ade80..c34909b2 100644 --- a/main/xiaozhi-server/core/providers/asr/sherpa_onnx_local.py +++ b/main/xiaozhi-server/core/providers/asr/sherpa_onnx_local.py @@ -40,6 +40,7 @@ class ASRProvider(ASRProviderBase): self.interface_type = InterfaceType.LOCAL self.model_dir = config.get("model_dir") self.output_dir = config.get("output_dir") + self.model_type = config.get("model_type", "sense_voice") # 支持 paraformer self.delete_audio_file = delete_audio_file # 确保输出目录存在 @@ -73,16 +74,27 @@ class ASRProvider(ASRProviderBase): raise with CaptureOutput(): - self.model = sherpa_onnx.OfflineRecognizer.from_sense_voice( - model=self.model_path, - tokens=self.tokens_path, - num_threads=2, - sample_rate=16000, - feature_dim=80, - decoding_method="greedy_search", - debug=False, - use_itn=True, - ) + if self.model_type == "paraformer": + self.model = sherpa_onnx.OfflineRecognizer.from_paraformer( + paraformer=self.model_path, + tokens=self.tokens_path, + num_threads=2, + sample_rate=16000, + feature_dim=80, + decoding_method="greedy_search", + debug=False, + ) + else: # sense_voice + self.model = sherpa_onnx.OfflineRecognizer.from_sense_voice( + model=self.model_path, + tokens=self.tokens_path, + num_threads=2, + sample_rate=16000, + feature_dim=80, + decoding_method="greedy_search", + debug=False, + use_itn=True, + ) def read_wave(self, wave_filename: str) -> Tuple[np.ndarray, int]: """ From b6ee2dee686b48b2c6ea9380c7b5c305c8a5d45e Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Thu, 31 Jul 2025 13:34:17 +0800 Subject: [PATCH 2/2] Delete docs/sherpa-paraformer-guide.md --- docs/sherpa-paraformer-guide.md | 268 -------------------------------- 1 file changed, 268 deletions(-) delete mode 100644 docs/sherpa-paraformer-guide.md diff --git a/docs/sherpa-paraformer-guide.md b/docs/sherpa-paraformer-guide.md deleted file mode 100644 index 8b9e7321..00000000 --- a/docs/sherpa-paraformer-guide.md +++ /dev/null @@ -1,268 +0,0 @@ -# Sherpa-ONNX Paraformer 模型使用指南 - -本文档介绍如何在小智 ESP32 服务器中使用 Paraformer 模型进行中文语音识别。Paraformer 有多个版本,本指南重点介绍适合低性能设备(如 RK3566)的小尺寸版本。 - -## 为什么选择 Paraformer? - -Paraformer 是阿里达摩院开发的语音识别模型系列,支持多种语言和尺寸。对于性能较低的设备(如 RK3566),我们推荐使用中文小尺寸版本: - -- **多种尺寸可选**:从 78MB 的小模型到 600MB+ 的大模型 -- **速度快**:优化的模型结构,推理速度快 -- **资源占用灵活**:可根据设备性能选择合适的版本 - -## Paraformer 模型特点 - -- **多语言支持**:除中文外,还有英文、日文等版本 -- **支持 INT8 量化**:通过量化技术减小模型体积 -- **CPU 友好**:即使在纯 CPU 环境下也能高效运行 -- **低延迟**:适合实时对话场景 - -**注意**:本指南主要介绍中文版本(paraformer-zh 系列),这是小智 ESP32 项目的主要使用场景。 - -## 如何找到合适的模型 - -### 模型来源渠道 - -1. **GitHub Releases(推荐)** - - [Sherpa-ONNX 官方发布页](https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models) - - 优点:模型经过验证,格式标准,下载稳定 - - 缺点:需要科学上网 - -2. **ModelScope(阿里巴巴)** - - [ModelScope 搜索](https://modelscope.cn/models?name=sherpa-onnx&page=1) - - 优点:国内访问快,无需科学上网 - - 缺点:部分模型格式不标准,需要仔细筛选 - -3. **HuggingFace** - - [HuggingFace 搜索](https://huggingface.co/models?search=sherpa-onnx) - - 优点:模型丰富,社区活跃 - - 缺点:需要科学上网,下载速度慢 - -### 判断模型是否可用 - -**必须满足以下条件**: - -1. **文件格式要求** - ``` - 模型目录/ - ├── model.int8.onnx # INT8 量化的 ONNX 模型(必需) - ├── tokens.txt # 词汇表文件(必需) - └── README.md # 说明文档(可选) - ``` - -2. **模型类型识别** - - 文件名包含 `paraformer`:使用 `model_type: paraformer` - - 文件名包含 `sense-voice`:使用 `model_type: sense_voice` - - 不确定时查看 README 或模型说明 - -3. **验证方法** - ```bash - # 下载后解压查看文件 - tar -tf downloaded-model.tar.bz2 | grep -E "(model\.int8\.onnx|tokens\.txt)" - - # 如果两个文件都存在,模型可用 - ``` - -### 搜索技巧 - -1. **GitHub 搜索关键词** - - `sherpa-onnx-paraformer-zh`(中文 Paraformer) - - `sherpa-onnx-sense-voice`(多语言 SenseVoice) - -2. **ModelScope 搜索** - - 搜索 `sherpa-onnx` - - 筛选作者 `pengzhendong`(经过验证的模型) - -3. **识别不可用的模型** - - ❌ 只有 `.pt` 或 `.pth` 文件(PyTorch 格式) - - ❌ 只有 `.bin` 文件(未转换的二进制) - - ❌ 缺少 `tokens.txt` - - ✅ 包含 `model.int8.onnx` 和 `tokens.txt` - -## 模型下载 - -### 推荐的 Paraformer 模型 - -#### 1. Paraformer-zh-small(推荐) -- **大小**:约 78MB -- **适用场景**:低性能设备,纯中文场景 -- **下载地址**: - ```bash - # GitHub 官方下载 - wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-small-2024-03-09.tar.bz2 - - # 国内镜像加速 - wget https://ghproxy.com/https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-small-2024-03-09.tar.bz2 - - # 解压 - mkdir -p models - tar -xf sherpa-onnx-paraformer-zh-small-2024-03-09.tar.bz2 -C models/ - ``` - -#### 2. Paraformer-zh(标准版) -- **大小**:约 230MB -- **适用场景**:性能充足时,追求更高准确度 -- **下载地址**: - ```bash - wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-paraformer-zh-2023-09-14.tar.bz2 - ``` - -### 其他可用的 Paraformer 模型 - -在 [Sherpa-ONNX Releases](https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models) 页面可找到: -- **中文版本**:搜索 "paraformer-zh" -- **英文版本**:搜索 "paraformer-en" -- **多语言版本**:搜索 "paraformer-trilingual"(中英日) - -## 配置方法 - -在 `config.yaml` 中配置对应的 ASR 模块: - -### 1. 在 config.yaml 中添加 Paraformer 配置 - -```yaml -ASR: - SherpaParaformerASR: - type: sherpa_onnx_local - model_dir: models/sherpa-onnx-paraformer-zh-small-2024-03-09 - output_dir: tmp/ - model_type: paraformer # 必须指定为 paraformer -``` - -### 2. 在 .config.yaml 中启用 - -```yaml -selected_module: - ASR: SherpaParaformerASR # 使用 Paraformer 模型 -``` - -## Paraformer 不同版本对比 - -| 版本 | 模型大小 | 内存占用 | 推理速度 | 准确度 | 推荐场景 | -| ------------------- | -------- | -------- | -------- | ------ | ---------- | -| paraformer-zh-small | ~78MB | ~200MB | 快 | 良好 | 低性能设备 | -| paraformer-zh | ~230MB | ~500MB | 中等 | 优秀 | 标准设备 | -| paraformer-zh-large | ~600MB | ~1.2GB | 较慢 | 最佳 | 高性能设备 | - -## 实测性能数据 - -### RK3566 设备实测(2GB 内存) - -使用 **paraformer-zh-small** 模型的实际表现: - -| 测试项目 | 数据 | -|---------|------| -| 模型加载时间 | ~3秒 | -| 30字中文识别 | **~0.5秒** | -| 60字中文识别 | ~0.8秒 | -| 内存占用(空闲) | ~180MB | -| 内存占用(识别中) | ~220MB | -| CPU 占用(识别时) | **四核瞬时跑满** | - -**测试环境**: -- 设备:RK3566 开发板 -- 内存:2GB DDR4 -- 系统:Debian 11 -- Python:3.9 - -**性能优势**: -- ✅ 0.5秒完成30字识别,响应迅速 -- ✅ 内存占用低,2GB 设备运行流畅 -- ✅ 虽然识别瞬间 CPU 跑满,但持续时间短,不影响整体体验 - -**性能特点**: -- 识别过程中 CPU 四核会瞬时跑满(纯 CPU 推理) -- 由于识别速度快(0.5秒),CPU 高负载时间很短 -- 对比 SenseVoice(894MB)在同设备上需要 2-3 秒,Paraformer-small(78MB)提升了 **4-6 倍**的识别速度 - -## 常见问题 - -### 1. 模型文件缺失错误 - -如果看到 "模型文件下载失败" 错误,请手动下载模型文件并确保以下文件存在: -- `model.int8.onnx` - 量化后的 ONNX 模型文件 -- `tokens.txt` - 词汇表文件 - -### 2. RK3566 NPU 加速 - -目前 Sherpa-ONNX 暂不支持 RK3566 NPU 加速(正在努力攻克中),但 INT8 量化模型已经能在 CPU 上高效运行。 - -### 3. 模型选择建议 - -- **RK3566 等嵌入式设备**:使用 paraformer-zh-small -- **树莓派、迷你主机**:使用 paraformer-zh -- **性能充足的设备**:使用 paraformer-zh-large -- **需要极致性能**:考虑使用在线 ASR 服务(如豆包、阿里云) - -### 4. 下载失败处理 - -**GitHub 下载慢或失败**: -- 使用代理工具 -- 使用 GitHub 加速服务 -- 从 ModelScope 下载同名模型 - -**ModelScope 下载失败**: -- 检查网络连接 -- 使用手动下载方式 -- 尝试其他模型源 - -### 5. 模型版本更新 - -定期检查新版本: -```bash -# 查看最新的 Paraformer 模型 -curl -s https://api.github.com/repos/k2-fsa/sherpa-onnx/releases | grep paraformer-zh -``` - -## 实战示例 - -### 快速测试模型是否可用 - -```python -#!/usr/bin/env python3 -# test_model.py - 测试下载的模型是否可用 - -import os -import sys - -def check_model(model_dir): - """检查模型文件是否完整""" - required_files = ['model.int8.onnx', 'tokens.txt'] - missing = [] - - for file in required_files: - path = os.path.join(model_dir, file) - if not os.path.exists(path): - missing.append(file) - else: - size = os.path.getsize(path) / 1024 / 1024 # MB - print(f"✓ {file}: {size:.1f} MB") - - if missing: - print(f"✗ 缺少文件: {', '.join(missing)}") - return False - - # 检查模型类型 - if 'paraformer' in model_dir.lower(): - print("→ 模型类型: paraformer") - elif 'sense-voice' in model_dir.lower(): - print("→ 模型类型: sense_voice") - else: - print("→ 模型类型: 未知(默认使用 sense_voice)") - - return True - -if __name__ == "__main__": - model_dir = sys.argv[1] if len(sys.argv) > 1 else "models/sherpa-onnx-paraformer-zh-small-2024-03-09" - if check_model(model_dir): - print(f"\n✅ 模型 {model_dir} 可以使用!") - else: - print(f"\n❌ 模型 {model_dir} 不完整,请重新下载!") -``` - -## 参考链接 - -- [Sherpa-ONNX 官方仓库](https://github.com/k2-fsa/sherpa-onnx) -- [Sherpa-ONNX 模型下载](https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models) -- [Paraformer 论文](https://arxiv.org/abs/2206.08317) -- [k2-fsa 组织主页](https://github.com/k2-fsa) \ No newline at end of file