`vendor/MetasequoiaImeEngine` submodule 改为 `engine/` 目录,导入的是 product-lock.json 原本钉住的提交 c810d201,逐文件核对过 blob,因此这是一次 搬迁而不是引擎升级。引擎自己的嵌套 submodule(googlepinyinime-rev、utfcpp、 miniaudio)按各自 gitlink 一并展开,来源与提交见 engine/UPSTREAM.md。 Windows 专门化裁掉了不属于本产品的部分:whisper.cpp 与本地推理 provider、 macOS 示例宿主、整个 dictionary/ 建库流水线、上游 CI 与 release-please 配置。 词库仍按 product-lock.json 在构建时取发布产物。 引擎不再进 product-lock.json:没有 gitlink 就没有可比对的东西,锁里写一个上游 commit 等于宣称这棵树仍等于上游,而第一个 Windows 专门化改动落地时这句话就假了。 verify-contracts / verify-checkout 随之移除,verify-published 保留。 CI 与工具链:引擎源码并入根 scripts/format.sh(删掉引擎自己的那份,避免两套排除 列表分叉);引擎 voice.yml 里的 silero_vad.onnx 摘要校验移到本仓 lock job; engine-bump-triage 工作流与其测试删除;gitsubmodule 的 dependabot 频率由 daily 改为 monthly。 README、README.en、AGENTS.md、CONTRIBUTING、docs/product-release.md 及各子目录 文档同步说明新的位置与边界。
Metasequoia Voice Input(水杉记言)
English | 简体中文
This standalone Windows host lives in engine/voice/platforms/windows/ and links the public voice targets. It is off by default and is not what the input method ships: the product's voice host is server/.
Build and run
Run from the engine/ directory with Visual Studio's C++ tools, CMake and vcpkg installed. Set VCPKG_ROOT to your vcpkg checkout first:
cmake -S voice -B build-voice -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows-static '-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$<$<CONFIG:Debug>:Debug>' -DVCPKG_MANIFEST_FEATURES=windows-app -DMSIME_VOICE_WINDOWS_APP=ON
cmake --build build-voice --config Release --parallel
New-Item -ItemType Directory -Force "$env:LOCALAPPDATA/MetasequoiaVoiceInput"
Copy-Item voice/assets/* "$env:LOCALAPPDATA/MetasequoiaVoiceInput" -Recurse -Force
Edit the copied config.toml with your own SiliconFlow token, then launch build-voice/platforms/windows/Release/MetasequoiaVoiceInput.exe. The assets directory is at voice/assets/, not beside this README.
Nothing in CI builds this host, so a change here is verified only by whoever makes it.
This host uses cloud recognition. Local Whisper was removed from the library entirely, so an old local_whisper value in a carried-over configuration does nothing.
Usage
- Hotkeys:
- RAlt pressed to start recording, release to stop recording and send text to active application
- RAlt + Space: Lock recording
- Ctrl + F9: Toggle recording
Configuration
Edit $env:LOCALAPPDATA\MetasequoiaVoiceInput\config.toml (create if not exists) to configure the application.
Below is a template:
# 自动语音识别(ASR)配置
[asr_api]
# API 基础地址
endpoint = "https://api.siliconflow.cn/v1/audio/transcriptions"
# 服务提供商(如:azure、openai、deepgram 等)
provider = "siliconflow"
# API 访问令牌
token = "<YOUR_OWN_TOKEN>"
# 文本润色配置
[polish_api]
# API 基础地址
endpoint = "https://api.siliconflow.cn/v1/chat/completions"
# 服务提供商(如:azure、openai、deepgram 等)
provider = "siliconflow"
# API 访问令牌
token = "<YOUR_OWN_TOKEN>"
# 基础设置
[settings]
# 偏好语言
language = "zh-cn"
# 触发时是否播放提示音
notification_sound = true
# 上屏前是否要先进行文本润色
polish_text = false
# This standalone host uses cloud recognition.
stt_provider = "cloud_siliconflow"
You can also change these config in settings window:
Notice
- Only implemented dark-mode UI now
License
GPL-3.0.


