Files
msime-windows/engine/voice/platforms/windows
fanlusky a7779d2b05 refactor(engine): 将 engine 从 submodule 内嵌为仓内一等组件
`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 及各子目录
文档同步说明新的位置与边界。
2026-09-12 03:40:48 +08:00
..

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.