根据提供的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,52 @@
#!/bin/sh
# 构建 sherpa-mnn.xcframework(端侧 SenseVoice ASR,跑在 MNN 后端),供「记录问诊」离线转写用。
# 产物:Frameworks/sherpa-mnn.xcframework(device arm64 + simulator),被 .gitignore 不入库。
#
# 这是「全代码已就位、构建/真机验证由你来跑」中的构建步骤(详见 docs/release/sensevoice-integration.md)。
# App 侧 SenseVoiceBridge.mm 用 __has_include(<sherpa-mnn/c-api/c-api.h>) 探测:
# - 未接入(当前默认)→ 编为桩,问诊自动回退系统端侧识别(SFSpeech),不影响编译/运行;
# - 接入本脚本产物 + 设好 HEADER_SEARCH_PATHS → 自动切到真实 SenseVoice。
#
# 用法:
# MNN_SRC=/Users/xuhuayong/apps/MNN-src sh scripts/build-sherpa-mnn-xcframework.sh
#
# 需求:已 clone MNN 源码(含 apps/frameworks/sherpa-mnn)、CMake、Xcode。约 15-40 分钟。
set -e
MNN_SRC="${MNN_SRC:-/Users/xuhuayong/apps/MNN-src}"
SHERPA_DIR="${MNN_SRC}/apps/frameworks/sherpa-mnn"
APP_FRAMEWORKS="$(cd "$(dirname "$0")/.." && pwd)/Frameworks"
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
[ -d "$SHERPA_DIR" ] || { echo "❌ 找不到 sherpa-mnn:$SHERPA_DIR(检查 MNN_SRC)"; exit 1; }
# ① 准备 MNN 静态库供 sherpa-mnn 链接。
# sherpa-mnn 的 build-ios.sh 用 MNN_LIB_DIR 找 libMNN.a + 头文件。
# 这里复用本项目的 MNN device/sim 构建产物;若尚未构建,先跑 scripts/build-mnn-xcframework.sh。
# 注意:sherpa 的 build-ios.sh 默认还会编 simulator x86_64,Apple Silicon 上通常用不到——
# 如只在 arm64 Mac/真机验证,可在 sherpa 的 build-ios.sh 里去掉 simulator_x86_64 段,加快构建。
if [ -z "${MNN_LIB_DIR}" ]; then
echo " 未显式指定 MNN_LIB_DIR,默认用 MNN_SRC 内的构建产物目录。"
echo " 若 sherpa cmake 报找不到 MNN,请先构建 MNN(scripts/build-mnn-xcframework.sh)"
echo " 并 export MNN_LIB_DIR=指向含 libMNN.a + include 的目录。"
export MNN_LIB_DIR="${MNN_SRC}/project/ios/build"
fi
echo "MNN_LIB_DIR=${MNN_LIB_DIR}"
# ② 调 sherpa-mnn 自带的 iOS 构建(已含 libtool 合并 + create-xcframework + 拷头到 Headers/)。
cd "$SHERPA_DIR"
sh build-ios.sh
[ -d "$SHERPA_DIR/sherpa-mnn.xcframework" ] || { echo "❌ 构建未产出 sherpa-mnn.xcframework"; exit 1; }
# ③ 拷进 App 的 Frameworks/(供 Xcode 链接 + HEADER_SEARCH_PATHS 指向其 Headers/)。
mkdir -p "$APP_FRAMEWORKS"
rm -rf "$APP_FRAMEWORKS/sherpa-mnn.xcframework"
cp -R "$SHERPA_DIR/sherpa-mnn.xcframework" "$APP_FRAMEWORKS/"
echo "✅ 输出: $APP_FRAMEWORKS/sherpa-mnn.xcframework"
echo "下一步(Xcode,见 docs/release/sensevoice-integration.md):"
echo " 1) 把 sherpa-mnn.xcframework 拖进 target 的 Frameworks, Libraries, and Embedded Content(Do Not Embed,静态库)"
echo " 2) 在 Build Settings → HEADER_SEARCH_PATHS 追加(recursive):"
echo " \$(PROJECT_DIR)/Frameworks/sherpa-mnn.xcframework/Headers"
echo " 3) 转换并安装 SenseVoice 模型:sh scripts/convert-sensevoice-mnn.sh"