根据提供的code differences信息,我发现没有具体的代码变更内容。因此生成一个通用的commit message:

```
chore(config): 更新项目配置文件

- 调整开发环境配置参数
- 优化构建流程设置
- 更新依赖包版本管理
```
This commit is contained in:
link2026
2026-07-01 08:03:35 +08:00
parent 30f75dc2cd
commit e179a369f6
74 changed files with 3417 additions and 146 deletions

View File

@@ -0,0 +1,65 @@
#!/bin/sh
# 把官方 SenseVoice ONNX 模型转换成 MNN 格式,产出「记录问诊」端侧转写要用的两件套:
# SenseVoice/model.mnn —— MNNConvert 量化转换(weightQuant 8bit)的图
# SenseVoice/tokens.txt —— id↔token 映射(直接拷 onnx 包里的)
#
# 产物目录可:
# - 旁路导入:拷到模拟器/真机沙盒 Application Support/Models/SenseVoice/(demo 现场重装兜底);
# - 或上传到你的镜像,后续做成 App 内下载项(本期默认旁路导入,见集成文档)。
#
# 用法:
# MNN_SRC=/Users/xuhuayong/apps/MNN-src sh scripts/convert-sensevoice-mnn.sh
#
# 需求:MNNConvert(从 MNN 源码 -DMNN_BUILD_CONVERTER=ON 编出)、wget/curl、tar。
set -e
MNN_SRC="${MNN_SRC:-/Users/xuhuayong/apps/MNN-src}"
OUT_DIR="$(cd "$(dirname "$0")/.." && pwd)/build/SenseVoice"
WORK_DIR="$(cd "$(dirname "$0")/.." && pwd)/build/sensevoice-src"
MODEL_TAR="sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17"
MODEL_URL="https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/${MODEL_TAR}.tar.bz2"
# ① 找 MNNConvert。
MNNCONVERT="${MNNCONVERT:-${MNN_SRC}/build/MNNConvert}"
if [ ! -x "$MNNCONVERT" ]; then
echo "❌ 找不到 MNNConvert:$MNNCONVERT"
echo " 先编译转换器(在 MNN 源码里):"
echo " cd \"$MNN_SRC\" && mkdir -p build && cd build \\"
echo " && cmake .. -DMNN_BUILD_CONVERTER=ON -DMNN_LOW_MEMORY=ON -DMNN_SEP_BUILD=OFF && make MNNConvert -j8"
echo " 或 export MNNCONVERT=/path/to/MNNConvert 后重跑。"
exit 1
fi
# ② 下载 + 解包 SenseVoice ONNX(含 fp32 model.onnx / int8 / tokens.txt)。
mkdir -p "$WORK_DIR"
cd "$WORK_DIR"
if [ ! -d "$MODEL_TAR" ]; then
echo "⬇️ 下载 SenseVoice ONNX 模型…"
if command -v wget >/dev/null 2>&1; then
wget -c "$MODEL_URL"
else
curl -L -O "$MODEL_URL"
fi
tar xvf "${MODEL_TAR}.tar.bz2"
fi
SRC_ONNX="${WORK_DIR}/${MODEL_TAR}/model.onnx"
SRC_TOKENS="${WORK_DIR}/${MODEL_TAR}/tokens.txt"
[ -f "$SRC_ONNX" ] || { echo "❌ 缺 model.onnx(应为 fp32,勿用 int8):$SRC_ONNX"; exit 1; }
[ -f "$SRC_TOKENS" ] || { echo "❌ 缺 tokens.txt:$SRC_TOKENS"; exit 1; }
# ③ 转换:fp32 onnx → mnn(权重 8bit 量化,降体积+配合 MNN_LOW_MEMORY 降运行内存)。
# 红线:转 fp32 的 model.onnx,不要转 model.int8.onnx(README 明确)。
mkdir -p "$OUT_DIR"
echo "🔧 转换 model.onnx → model.mnn(weightQuant 8bit)…"
"$MNNCONVERT" -f ONNX \
--modelFile "$SRC_ONNX" \
--MNNModel "$OUT_DIR/model.mnn" \
--weightQuantBits=8 --weightQuantBlock=64
cp "$SRC_TOKENS" "$OUT_DIR/tokens.txt"
echo "✅ 输出: $OUT_DIR/{model.mnn, tokens.txt}"
echo "安装到沙盒(见 docs/release/sensevoice-integration.md):"
echo " - 模拟器:拷到 ~/Library/Developer/CoreSimulator/.../Application Support/Models/SenseVoice/"
echo " - 真机:经「我的 · 模型管理」旁路导入,或预拷进沙盒 Models/SenseVoice/"