Files
OSGKeyboard/docs/index.html
T
rocky 7ae9dbcde7 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	docs/index.html
#	docs/sitemap.xml
2026-10-07 11:19:12 +08:00

917 lines
69 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-Hans" class="no-js" data-theme="light" data-lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="google-site-verification" content="dSXwWxBu_Du1fOFeKN8DV466uajnd_J6E2NVDd2wbrU">
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-H4WM522F4C"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-H4WM522F4C');
</script>
<title>OSGKeyboard|AI 语音输入法 · 嘴替输入法 · iPhone / iPad / Mac</title>
<meta
name="description"
content="OSGKeyboard 是面向 iPhone、iPad 与 Mac 的 AI 语音输入法,也是会学你语气的嘴替输入法:开口即文字,复制之后还能替你回复、建日程、写待办。默认端侧识别,核心功能无需账号,源码可见。"
data-zh-content="OSGKeyboard 是面向 iPhone、iPad 与 Mac 的 AI 语音输入法,也是会学你语气的嘴替输入法:开口即文字,复制之后还能替你回复、建日程、写待办。默认端侧识别,核心功能无需账号,源码可见。"
data-en-content="OSGKeyboard is an agentic keyboard and AI voice keyboard for iPhone, iPad, and Mac: on-device dictation, replies that sound like you, and actions on what you copy. No account required."
>
<meta
name="keywords"
content="语音输入法,嘴替输入法,AI 输入法,AI 语音键盘,Agentic keyboard,agentic 键盘,iPhone 语音输入法,Mac 语音输入,端侧语音识别,OSGKeyboard"
>
<meta name="robots" content="index, follow, max-image-preview:large">
<meta name="theme-color" content="#eff1f0">
<meta name="color-scheme" content="light dark">
<link rel="canonical" href="https://osg.osglab.com/">
<link rel="alternate" hreflang="zh-Hans" href="https://osg.osglab.com/">
<link rel="alternate" hreflang="en" href="https://osg.osglab.com/?lang=en">
<link rel="alternate" hreflang="x-default" href="https://osg.osglab.com/">
<link rel="icon" href="assets/app-icon.png?v=20260927b" type="image/png">
<link rel="apple-touch-icon" href="assets/app-icon.png?v=20260927b">
<meta property="og:type" content="website">
<meta property="og:site_name" content="OSGKeyboard">
<meta property="og:url" content="https://osg.osglab.com/">
<meta property="og:locale" content="zh_CN">
<meta property="og:locale:alternate" content="en_US">
<meta
property="og:title"
content="OSGKeyboard|AI 语音输入法 · 嘴替输入法"
data-zh-content="OSGKeyboard|AI 语音输入法 · 嘴替输入法"
data-en-content="OSGKeyboard — Agentic Keyboard & AI Voice Keyboard"
>
<meta
property="og:description"
content="开口即文字。会说你的话,会办你的事。默认端侧识别,核心功能无需账号。"
data-zh-content="开口即文字。会说你的话,会办你的事。默认端侧识别,核心功能无需账号。"
data-en-content="Say it. It's typed. Speaks like you, acts for you. On-device by default, no account required."
>
<meta property="og:image" content="https://osg.osglab.com/assets/og-card.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="OSGKeyboard:AI 语音输入法与嘴替输入法,运行在 iPad、Mac 与 iPhone 上">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://osg.osglab.com/assets/og-card.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap" rel="stylesheet">
<!-- v= 查询串用于缓存刷新:GitHub Pages 对静态资源有 10 分钟缓存窗口,改版本号强制浏览器取新文件 -->
<link rel="stylesheet" href="assets/site.css?v=20261002a">
<script>
// 首屏前确定主题,避免闪烁;无保存偏好时跟随系统。
// .js 类只在脚本可用时出现:所有「先隐藏、再动效显现」的初始态都挂在它下面,
// 无 JavaScript 的访客与爬虫看到的是完整静态页面。
(function () {
const root = document.documentElement;
const saved = localStorage.getItem("osg-site-theme");
const dark = window.matchMedia("(prefers-color-scheme: dark)").matches;
root.dataset.theme = saved || (dark ? "dark" : "light");
root.classList.replace("no-js", "js");
})();
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://osg.osglab.com/#website",
"url": "https://osg.osglab.com/",
"name": "OSGKeyboard",
"alternateName": ["OSGKeyboard 语音输入法", "OSGKeyboard 嘴替输入法"],
"inLanguage": ["zh-Hans", "en"]
},
{
"@type": "SoftwareApplication",
"@id": "https://osg.osglab.com/#app",
"name": "OSGKeyboard",
"alternateName": ["AI 语音输入法", "嘴替输入法", "Agentic keyboard", "AI voice keyboard"],
"operatingSystem": "iOS 26, iPadOS 26, macOS 15",
"applicationCategory": "UtilitiesApplication",
"applicationSubCategory": "Keyboard",
"softwareVersion": "2.1.0",
"description": "OSGKeyboard is an agentic keyboard and AI voice keyboard (语音输入法 / 嘴替输入法) for iPhone, iPad, and Mac: on-device dictation by default, an AI assistant with preview-before-insert, a learned personal style that sounds like you, agentic clipboard skills that act on what you copy, Chinese and English typing, providers configured with your own API key, and optional managed credits. Source available, not open source.",
"downloadUrl": "https://apps.apple.com/app/osgkeyboard/id6781553267",
"installUrl": "https://apps.apple.com/app/osgkeyboard/id6781553267",
"url": "https://osg.osglab.com/",
"image": "https://osg.osglab.com/assets/og-card.png",
"screenshot": "https://osg.osglab.com/assets/hero-devices.png",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"featureList": [
"On-device iOS speech recognition by default",
"Unified dictation and AI assistant with preview before insert",
"Voice editing of the last inserted text",
"Learned personal speaking style and personalized replies in three tones",
"Agentic clipboard skills: reply, summarize, translate, to-dos, events, notes, navigation",
"Chinese full pinyin and double pinyin typing",
"English autocomplete, autocorrect, and next-word suggestions",
"Monthly usage calendar and personal dictionary",
"Optional Sign in with Apple and managed credits on iOS and iPadOS",
"Cloud speech and AI with your own API key",
"Mac Option-key global dictation with local Qwen3 MLX on Apple Silicon",
"Optional iCloud sync"
],
"license": "https://github.com/hkgood/OSGKeyboard/blob/main/LICENSE"
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "什么是嘴替输入法?",
"acceptedAnswer": {
"@type": "Answer",
"text": "嘴替输入法是能替你把话说好的输入法:你随口说出想法,它在保留你个人语气的前提下整理成得体的文字。OSGKeyboard 会从你确认过的真实听写中学习说话风格,复制对方的消息后,会按你的口吻给出普通、正式、轻松趣味三条回复,点选即插入。"
}
},
{
"@type": "Question",
"name": "什么是 Agentic 键盘(Agentic keyboard)?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Agentic 键盘不只负责输入文字,还能理解内容并替你完成下一步。在 OSGKeyboard 中复制一段文字后,本地语义分析会在键盘顶栏按相关度列出可用操作,例如回复、总结、翻译、写待办、建日程或导航;待办与日程通过系统 EventKit 直接写入,推荐过程不会上传剪贴板原文。"
}
},
{
"@type": "Question",
"name": "和系统自带的语音输入有什么区别?",
"acceptedAnswer": {
"@type": "Answer",
"text": "系统听写只负责把语音转成文字。OSGKeyboard 作为 AI 语音输入法,在端侧识别之外,还提供长按向 AI 提问并先预览再插入、口述修改上一次输入、学习你语气的个性润色、剪贴板 Agentic 技能,以及全拼与多种双拼的中英打字;在 Mac 上按住 Option 即可全局听写。"
}
},
{
"@type": "Question",
"name": "必须注册 OSG 账号吗?",
"acceptedAnswer": {
"@type": "Answer",
"text": "不需要。使用端侧听写或自行配置的服务商时,无需 OSG 账号。通过 Apple 登录仅用于托管积分、积分购买、邀请奖励和账号资料管理。"
}
},
{
"@type": "Question",
"name": "录音会上传吗?",
"acceptedAnswer": {
"@type": "Answer",
"text": "使用默认的端侧识别时,录音不会上传。只有你明确选择自行配置的云端识别或托管积分云端识别时,音频才会离开设备,并发送至相应云端服务进行处理。"
}
},
{
"@type": "Question",
"name": "OSGKeyboard 是开源软件吗?",
"acceptedAnswer": {
"@type": "Answer",
"text": "不是。项目采用源码可见许可,允许个人学习与非商用本地使用;再分发、公开衍生版本和商业使用需要获得许可。"
}
}
]
}
]
}
</script>
</head>
<body>
<!-- 内联 SVG 图标库:SF 风格描边图标,currentColor 随主题变色,零外部依赖 -->
<svg class="svg-defs" aria-hidden="true" focusable="false">
<defs>
<symbol id="i-menu" viewBox="0 0 24 24"><path d="M4 7h16M4 12h16M4 17h16"/></symbol>
<symbol id="i-close" viewBox="0 0 24 24"><path d="M6 6l12 12M18 6L6 18"/></symbol>
<symbol id="i-moon" viewBox="0 0 24 24"><path d="M20 13.5A8 8 0 1 1 10.5 4a6.6 6.6 0 0 0 9.5 9.5Z"/></symbol>
<symbol id="i-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4.2"/><path d="M12 2.8v2M12 19.2v2M2.8 12h2M19.2 12h2M5.2 5.2l1.4 1.4M17.4 17.4l1.4 1.4M18.8 5.2l-1.4 1.4M6.6 17.4l-1.4 1.4"/></symbol>
<symbol id="i-plane" viewBox="0 0 24 24"><path d="M4.5 12.3 20.5 4l-4.8 16.5-4-5.9-7.2-2.3Z"/><path d="M11.7 14.6 20.5 4"/></symbol>
<symbol id="i-chip" viewBox="0 0 24 24"><rect x="7" y="7" width="10" height="10" rx="2"/><path d="M10 2.8V5M14 2.8V5M10 19v2.2M14 19v2.2M2.8 10H5M2.8 14H5M19 10h2.2M19 14h2.2"/><rect x="10.6" y="10.6" width="2.8" height="2.8"/></symbol>
<symbol id="i-user-off" viewBox="0 0 24 24"><circle cx="10" cy="7.8" r="3.4"/><path d="M4.2 20c.7-3.1 3-4.9 5.8-4.9 1.3 0 2.5.4 3.5 1.1M16.8 16.8l4 4M20.8 16.8l-4 4"/></symbol>
<symbol id="i-code" viewBox="0 0 24 24"><path d="M8.5 8 4 12l4.5 4M15.5 8 20 12l-4.5 4"/></symbol>
<symbol id="i-mic" viewBox="0 0 24 24"><rect x="9" y="3" width="6" height="11" rx="3"/><path d="M5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21M9 21h6"/></symbol>
<symbol id="i-translate" viewBox="0 0 24 24"><path d="M4 6.5h9M8.5 4.5v2c0 3.3-2.4 6.6-4.3 8M6 9.8c1 2.3 3.3 4.6 5.7 5.6"/><path d="M13 20l4.3-9 4.3 9M14.5 16.8h5.6"/></symbol>
<symbol id="i-spellcheck" viewBox="0 0 24 24"><path d="M4 15.5 7.6 6l3.6 9.5M5.5 12.5h4.2"/><path d="M13.5 15.8l2.4 2.4 4.6-5"/></symbol>
<symbol id="i-reply" viewBox="0 0 24 24"><path d="M9.5 10.5 4.5 15l5 4.5"/><path d="M4.5 15h9a6.5 6.5 0 0 0 6.5-6.5V6"/></symbol>
<symbol id="i-summarize" viewBox="0 0 24 24"><path d="M5 6.5h14M5 11h14M5 15.5h9M5 20h6"/></symbol>
<symbol id="i-task" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><path d="M8.4 12.3l2.4 2.4 4.8-5"/></symbol>
<symbol id="i-event" viewBox="0 0 24 24"><rect x="4" y="5.5" width="16" height="15" rx="2.5"/><path d="M4 10.2h16M8.5 3.2v3.3M15.5 3.2v3.3"/><path d="M8 14.2h2.4M13.6 14.2H16M8 17.4h2.4"/></symbol>
<symbol id="i-note" viewBox="0 0 24 24"><path d="M6.5 3.5H15l4 4v11a2 2 0 0 1-2 2H6.5a2 2 0 0 1-2-2v-13a2 2 0 0 1 2-2Z"/><path d="M14.8 3.8V8H19"/><path d="M8.5 12.5h7M8.5 16h4.5"/></symbol>
<symbol id="i-nav" viewBox="0 0 24 24"><path d="M12 3.5 18.8 20 12 16.6 5.2 20 12 3.5Z"/></symbol>
<symbol id="i-key" viewBox="0 0 24 24"><circle cx="8" cy="15.5" r="4.3"/><path d="M11.1 12.4 20 3.5M16.6 7l2.9 2.9M13.9 9.7l2.1 2.1"/></symbol>
<symbol id="i-coin" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><path d="M12 7.3v9.4M15.2 9.2c-.6-.9-1.8-1.4-3.2-1.4-1.7 0-3 .9-3 2.2 0 3 6.1 1.6 6.1 4.4 0 1.4-1.4 2.3-3.1 2.3-1.4 0-2.6-.5-3.2-1.5"/></symbol>
<symbol id="i-terminal" viewBox="0 0 24 24"><rect x="3" y="4.5" width="18" height="15" rx="2.5"/><path d="M7 9.5 10 12l-3 2.5M12.5 14.8H17"/></symbol>
<symbol id="i-arrow-out" viewBox="0 0 24 24"><path d="M7 17 17 7M9.2 7H17v7.8"/></symbol>
<symbol id="i-check" viewBox="0 0 24 24"><path d="M5 12.5l4.5 4.5L19 7.5"/></symbol>
</defs>
</svg>
<a
class="skip-link"
href="#main"
data-zh="跳到主要内容"
data-en="Skip to main content"
>跳到主要内容</a>
<header class="site-nav" id="siteNav">
<!-- 悬浮的亚克力导航条;底边一根细线显示页面滚动进度 -->
<nav class="nav-shell" aria-label="主导航" data-zh-label="主导航" data-en-label="Primary navigation">
<a class="brand" href="#top" aria-label="OSGKeyboard">
<img src="assets/app-icon.png?v=20260927b" width="32" height="32" alt="">
<span>OSGKeyboard</span>
</a>
<div class="nav-links" id="navLinks">
<!-- 滑动指示器:一颗小键帽,跟随悬停与当前阅读区块移动 -->
<span class="nav-indicator" aria-hidden="true"></span>
<a href="#story" data-zh="体验" data-en="Experience">体验</a>
<a href="#personal" data-zh="嘴替" data-en="Your voice">嘴替</a>
<a href="#skills" data-zh="技能" data-en="Skills">技能</a>
<a href="#privacy" data-zh="隐私" data-en="Privacy">隐私</a>
<a href="#platforms" data-zh="平台" data-en="Platforms">平台</a>
</div>
<div class="nav-actions">
<button
class="icon-button mobile-menu-button"
id="menuToggle"
type="button"
aria-expanded="false"
aria-controls="mobileNav"
aria-label="打开导航"
data-zh-label="打开导航"
data-en-label="Open navigation"
>
<svg class="i" aria-hidden="true"><use id="menuIconUse" href="#i-menu"/></svg>
</button>
<button class="language-button" id="languageToggle" type="button" aria-label="切换到英文">EN</button>
<button class="icon-button" id="themeToggle" type="button" aria-label="切换到深色模式">
<svg class="i" aria-hidden="true"><use id="themeIconUse" href="#i-moon"/></svg>
</button>
</div>
<span class="scroll-progress" aria-hidden="true"></span>
</nav>
<nav class="mobile-nav" id="mobileNav" aria-label="移动端导航" data-zh-label="移动端导航" data-en-label="Mobile navigation" hidden>
<a href="#story" data-zh="体验" data-en="Experience">体验</a>
<a href="#personal" data-zh="嘴替" data-en="Your voice">嘴替</a>
<a href="#skills" data-zh="技能" data-en="Skills">技能</a>
<a href="#privacy" data-zh="隐私" data-en="Privacy">隐私</a>
<a href="#platforms" data-zh="平台" data-en="Platforms">平台</a>
</nav>
</header>
<main id="main">
<!--
Hero:与整页同一块底板,跟随深浅主题。
动效层次:柔光缓慢漂移 → 图标键帽浮起、反光扫过 → 标题逐字浮现 → 三端主视觉随滚动「立起」 → 语音胶囊实时转写。
-->
<section class="hero" id="top">
<div class="hero-backdrop" aria-hidden="true">
<span class="aurora aurora-a"></span>
<span class="aurora aurora-b"></span>
<span class="aurora aurora-c"></span>
<span class="hero-rings"><i></i><i></i><i></i></span>
<span class="hero-spot"></span>
</div>
<div class="hero-inner">
<div class="hero-mark hero-in" style="--d:0s" aria-hidden="true">
<img src="assets/app-icon.png?v=20260927b" width="96" height="96" alt="">
</div>
<p class="launch-pill chip hero-in" style="--d:.08s">
<span class="launch-dot" aria-hidden="true"></span>
<span data-zh="OSGKeyboard 2.1 · 为 iOS / iPadOS 26 打造" data-en="OSGKeyboard 2.1 · Built for iOS and iPadOS 26">
OSGKeyboard 2.1 · 为 iOS / iPadOS 26 打造
</span>
</p>
<h1
class="hero-kicker hero-in"
style="--d:.14s"
data-zh="AI 语音输入法 · 嘴替输入法 · Agentic 键盘"
data-en="Agentic keyboard · AI voice keyboard for iPhone, iPad &amp; Mac"
>AI 语音输入法 · 嘴替输入法 · Agentic 键盘</h1>
<p class="hero-slogan">
<span class="slogan-main" data-split data-zh="开口即文字。" data-en="Say it. It’s typed.">开口即文字。</span>
<span class="slogan-sub" data-split data-zh="会说你的话,会办你的事。" data-en="Speaks like you. Acts for you.">会说你的话,会办你的事。</span>
</p>
<p
class="hero-copy hero-in"
style="--d:.7s"
data-zh="一把 AI 语音输入法:听写、问 AI、中英打字在同一个键盘完成。它是会学你语气的嘴替输入法,也是复制之后就能替你行动的 Agentic 键盘。默认端侧识别,核心功能无需账号。"
data-en="An agentic AI voice keyboard: dictation, AI answers, and bilingual typing in one place. It learns to write like you — and acts on what you copy. On-device by default, no account required."
>一把 AI 语音输入法:听写、问 AI、中英打字在同一个键盘完成。它是会学你语气的嘴替输入法,也是复制之后就能替你行动的 Agentic 键盘。默认端侧识别,核心功能无需账号。</p>
<div class="hero-actions hero-in" style="--d:.82s">
<a
class="store-badge magnetic"
href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267"
data-zh-href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267"
data-en-href="https://apps.apple.com/app/osgkeyboard/id6781553267"
rel="noopener"
>
<img
src="assets/badges/ios-zh.svg"
data-zh-src="assets/badges/ios-zh.svg"
data-en-src="assets/badges/ios-en.svg"
data-zh-alt="在 App Store 下载 OSGKeyboard"
data-en-alt="Download on the App Store"
alt="在 App Store 下载 OSGKeyboard"
width="171"
height="48"
>
</a>
<a class="keycap magnetic" href="https://testflight.apple.com/join/c2Bz4qK9" rel="noopener">
<svg class="i" aria-hidden="true"><use href="#i-plane"/></svg>
<span data-zh="TestFlight 公测" data-en="Join the TestFlight beta">TestFlight 公测</span>
</a>
<a class="keycap magnetic" href="https://github.com/hkgood/OSGKeyboard">
<svg class="i" aria-hidden="true"><use href="#i-code"/></svg>
<span data-zh="查看源码" data-en="View source">查看源码</span>
</a>
</div>
<ul class="hero-trust hero-in" style="--d:.94s" aria-label="产品承诺" data-zh-label="产品承诺" data-en-label="Product promises">
<li><svg class="i" aria-hidden="true"><use href="#i-chip"/></svg><span data-zh="端侧优先" data-en="On-device first">端侧优先</span></li>
<li><svg class="i" aria-hidden="true"><use href="#i-user-off"/></svg><span data-zh="核心功能无需账号" data-en="No account required">核心功能无需账号</span></li>
<li><svg class="i" aria-hidden="true"><use href="#i-code"/></svg><span data-zh="源码可见" data-en="Source available">源码可见</span></li>
</ul>
</div>
<figure class="hero-stage hero-in" style="--d:1s">
<!-- 三端主视觉:随滚动从后仰角度「立起」并放大到正视 -->
<div class="hero-devices">
<img
src="assets/hero-devices.png"
width="1600"
height="716"
data-zh-alt="OSGKeyboard 语音输入法在 iPad、Mac 与 iPhone 上同时使用"
data-en-alt="OSGKeyboard AI voice keyboard running on iPad, Mac, and iPhone at the same time"
alt="OSGKeyboard 语音输入法在 iPad、Mac 与 iPhone 上同时使用"
fetchpriority="high"
>
</div>
<!--
语音胶囊:复刻键盘里真实的麦克风胶囊状态——
待机绿色麦克风 → 轻点听写变红并显示 7 条声波 → 插入成功打勾;
长按问 AI 变青色 → 思考中转圈 → 给出回答。
-->
<div class="voice-capsule acrylic" aria-hidden="true">
<span class="capsule-mic">
<svg class="i cap-mic"><use href="#i-mic"/></svg>
<span class="capsule-wave" data-wave="7"></span>
<span class="capsule-spin"></span>
<svg class="i cap-check"><use href="#i-check"/></svg>
</span>
<span class="capsule-body">
<span class="capsule-tag">轻点听写</span>
<span class="capsule-line">帮我订周五晚上七点的位子,四个人</span><span class="caret"></span>
</span>
</div>
</figure>
<a class="scroll-cue" href="#story" aria-label="向下滚动" data-zh-label="向下滚动" data-en-label="Scroll down"><span></span></a>
</section>
<!-- 能力跑马灯:无限循环,悬停暂停;第二组仅用于无缝衔接,对读屏隐藏 -->
<div class="marquee" aria-label="核心能力" data-zh-label="核心能力" data-en-label="Core capabilities">
<div class="marquee-track">
<ul>
<li data-zh="语音输入法" data-en="Voice keyboard">语音输入法</li>
<li data-zh="嘴替输入法" data-en="Replies in your voice">嘴替输入法</li>
<li data-zh="Agentic 键盘" data-en="Agentic keyboard">Agentic 键盘</li>
<li data-zh="端侧识别" data-en="On-device recognition">端侧识别</li>
<li data-zh="长按问 AI" data-en="Hold to ask AI">长按问 AI</li>
<li data-zh="中英混输" data-en="Bilingual typing">中英混输</li>
<li data-zh="全拼与双拼" data-en="Pinyin &amp; double pinyin">全拼与双拼</li>
<li data-zh="剪贴板技能" data-en="Clipboard skills">剪贴板技能</li>
<li data-zh="Mac 全局听写" data-en="Mac global dictation">Mac 全局听写</li>
<li data-zh="无需账号" data-en="No account required">无需账号</li>
</ul>
<ul aria-hidden="true">
<li data-zh="语音输入法" data-en="Voice keyboard">语音输入法</li>
<li data-zh="嘴替输入法" data-en="Replies in your voice">嘴替输入法</li>
<li data-zh="Agentic 键盘" data-en="Agentic keyboard">Agentic 键盘</li>
<li data-zh="端侧识别" data-en="On-device recognition">端侧识别</li>
<li data-zh="长按问 AI" data-en="Hold to ask AI">长按问 AI</li>
<li data-zh="中英混输" data-en="Bilingual typing">中英混输</li>
<li data-zh="全拼与双拼" data-en="Pinyin &amp; double pinyin">全拼与双拼</li>
<li data-zh="剪贴板技能" data-en="Clipboard skills">剪贴板技能</li>
<li data-zh="Mac 全局听写" data-en="Mac global dictation">Mac 全局听写</li>
<li data-zh="无需账号" data-en="No account required">无需账号</li>
</ul>
</div>
</div>
<!--
滚动叙事:四幕「听写 → 问 AI → 像你一样回复 → 替你做」。
舞台随滚动钉住,滚动进度决定当前幕,手机里播放这一幕的真机录屏;
左侧文案是真实可索引的内容,右侧手机为装饰性演示(对读屏隐藏)。
-->
<section class="section story-section" id="story">
<div class="section-inner center-heading reveal">
<p class="eyebrow" data-zh="Agentic 语音输入法" data-en="The agentic voice keyboard">Agentic 语音输入法</p>
<h2 data-split data-zh="会听、会说,还会替你做事。" data-en="It listens, speaks like you, and gets things done.">会听、会说,还会替你做事。</h2>
<p
data-zh="一次真实的聊天,四个动作完成:语音输入法负责听写,AI 助手先预览再插入,嘴替输入法负责把话说好,Agentic 键盘负责下一步。向下滚动,看它怎样工作。"
data-en="One real conversation, four moves: the voice keyboard listens, the AI previews before it inserts, replies come out in your voice, and the agentic keyboard takes the next step. Scroll to watch it work."
>一次真实的聊天,四个动作完成:语音输入法负责听写,AI 助手先预览再插入,嘴替输入法负责把话说好,Agentic 键盘负责下一步。向下滚动,看它怎样工作。</p>
</div>
<div class="story" id="storyStage">
<div class="story-sticky">
<div class="story-layout">
<ol class="story-acts">
<li class="story-act is-active" data-act="0">
<span class="act-index">01</span>
<div class="act-body">
<p class="act-kicker" data-zh="语音输入法" data-en="Voice keyboard">语音输入法</p>
<h3 data-zh="开口,就是文字。" data-en="Speak, and it’s text.">开口,就是文字。</h3>
<p data-zh="轻点麦克风,端侧识别边说边上屏;录音默认不离开设备。说完还能口述修改刚才那句话。" data-en="Tap the mic and on-device recognition types as you talk; audio stays on the device by default. Revise the last sentence by voice if you change your mind.">轻点麦克风,端侧识别边说边上屏;录音默认不离开设备。说完还能口述修改刚才那句话。</p>
<span class="act-bar" aria-hidden="true"><i></i></span>
</div>
</li>
<li class="story-act" data-act="1">
<span class="act-index">02</span>
<div class="act-body">
<p class="act-kicker" data-zh="长按问 AI" data-en="Hold to ask AI">长按问 AI</p>
<h3 data-zh="先预览,再插入。" data-en="Preview first. Insert when ready.">先预览,再插入。</h3>
<p data-zh="长按麦克风直接向 AI 提问,回答流式显示在键盘里,确认后才进入输入框;仅当光标与上下文没变时才自动上屏。" data-en="Hold the mic to ask AI. The answer streams into the keyboard and reaches the text field only when you confirm — and only if the cursor and context haven’t changed.">长按麦克风直接向 AI 提问,回答流式显示在键盘里,确认后才进入输入框;仅当光标与上下文没变时才自动上屏。</p>
<span class="act-bar" aria-hidden="true"><i></i></span>
</div>
</li>
<li class="story-act" data-act="2">
<span class="act-index">03</span>
<div class="act-body">
<p class="act-kicker" data-zh="嘴替输入法" data-en="Replies in your voice">嘴替输入法</p>
<h3 data-zh="随口一说,发出去很得体。" data-en="Say it casually. Send it well.">随口一说,发出去很得体。</h3>
<p data-zh="复制对方的消息,嘴替输入法就按你的口吻备好普通、正式、轻松趣味三条回复,点一下即插入。回复偏好学自你确认过的真实表达。" data-en="Copy their message and it drafts three replies in your voice — ordinary, formal, and relaxed &amp; playful. Tap one to insert. It learns from writing you have confirmed.">复制对方的消息,嘴替输入法就按你的口吻备好普通、正式、轻松趣味三条回复,点一下即插入。回复偏好学自你确认过的真实表达。</p>
<span class="act-bar" aria-hidden="true"><i></i></span>
</div>
</li>
<li class="story-act" data-act="3">
<span class="act-index">04</span>
<div class="act-body">
<p class="act-kicker" data-zh="Agentic 键盘" data-en="Agentic keyboard">Agentic 键盘</p>
<h3 data-zh="看懂内容,替你行动。" data-en="It reads the room, then acts.">看懂内容,替你行动。</h3>
<p data-zh="复制一段带时间或地址的文字,本地语义分析判断下一步,键盘顶栏随即换成相关操作:回复、日程、待办、导航……点「日程」,即经 EventKit 写入日历。" data-en="Copy text with a time or an address and on-device analysis works out the next step — the top bar turns into relevant actions: Reply, Events, Tasks, Navigate… Tap Events and it lands in Calendar through EventKit.">复制一段带时间或地址的文字,本地语义分析判断下一步,键盘顶栏随即换成相关操作:回复、日程、待办、导航……点「日程」,即经 EventKit 写入日历。</p>
<span class="act-bar" aria-hidden="true"><i></i></span>
</div>
</li>
</ol>
<!--
真机画面:Apple 官方 iPhone 17 Pro 机框,屏幕里是模拟器中真实 OSGKeyboard 扩展的录屏
(不是 HTML 复刻)。site.js 按当前幕切换片段,并按语言 / 主题选用
assets/story/<幕>-<zh|en>-<light|dark>.mp4;无 JavaScript 时停在第一幕的首帧。
-->
<div class="story-device" aria-hidden="true">
<figure class="iphone">
<div class="iphone-screen">
<video class="iphone-clip is-on" data-clip="voice" muted playsinline preload="auto" poster="assets/story/voice-zh-light.jpg"></video>
<video class="iphone-clip" data-clip="ask" muted playsinline preload="metadata" poster="assets/story/ask-zh-light.jpg"></video>
<video class="iphone-clip" data-clip="reply" muted playsinline preload="metadata" poster="assets/story/reply-zh-light.jpg"></video>
<video class="iphone-clip" data-clip="agent" muted playsinline preload="metadata" poster="assets/story/agent-zh-light.jpg"></video>
</div>
<img class="iphone-bezel" src="assets/device/iphone-17-pro-silver.png" alt="" width="675" height="1380" decoding="async">
</figure>
</div>
</div>
</div>
</div>
</section>
<!-- 嘴替输入法:2.1 核心卖点,三块亚克力面板里是真实界面 -->
<section class="section personal-section" id="personal">
<div class="section-inner">
<div class="center-heading reveal">
<p class="eyebrow" data-zh="嘴替输入法" data-en="AI replies in your voice">嘴替输入法</p>
<h2 data-split data-zh="表达更清楚,语气还是你的。" data-en="Clearer writing. Still your voice.">表达更清楚,语气还是你的。</h2>
<p
data-zh="嘴替输入法从你确认过的真实输入中学习,而不是套用模板。所有偏好与词库只保存在本机。"
data-en="It learns from input you have actually confirmed — not from templates. Every preference and term stays on your device."
>嘴替输入法从你确认过的真实输入中学习,而不是套用模板。所有偏好与词库只保存在本机。</p>
</div>
<div class="personal-grid">
<article class="personal-card acrylic spot lift reveal">
<div class="personal-media media-inset">
<img
src="assets/whats-new/personal-style-card-zh.png"
data-zh-src="assets/whats-new/personal-style-card-zh.png"
data-en-src="assets/whats-new/personal-style-card-en.png"
data-zh-alt="润色风格页面中的「生成专属风格」卡片"
data-en-alt="The Generate Your Style card on the Polish Styles page"
alt="润色风格页面中的「生成专属风格」卡片"
loading="lazy"
decoding="async"
>
</div>
<h3 data-zh="专属说话风格" data-en="A style that sounds like you">专属说话风格</h3>
<p data-zh="累积 2,500 个有效听写字符即可生成;优先学习你反复出现的口述与明确修改,保存前需你确认。" data-en="Unlocks after 2,500 effective dictated characters. It prioritizes your recurring phrasing and explicit edits, and nothing is saved without your review.">累积 2,500 个有效听写字符即可生成;优先学习你反复出现的口述与明确修改,保存前需你确认。</p>
</article>
<article class="personal-card acrylic spot lift reveal" style="--d:.08s">
<div class="personal-media media-inset is-video">
<video
src="assets/whats-new/smart-reply-zh.mp4"
data-zh-src="assets/whats-new/smart-reply-zh.mp4"
data-en-src="assets/whats-new/smart-reply-en.mp4"
autoplay
muted
loop
playsinline
preload="metadata"
data-zh-label="嘴替输入法个性回复实机演示"
data-en-label="Personalized replies recorded on device"
aria-label="嘴替输入法个性回复实机演示"
></video>
</div>
<h3 data-zh="个性回复,三种语气" data-en="Replies in three tones">个性回复,三种语气</h3>
<p data-zh="普通、正式、轻松趣味,一键切换;回复偏好与听写偏好分别学习,选择反馈仅保留在本机。" data-en="Ordinary, formal, or relaxed &amp; playful — one tap apart. Reply and dictation preferences are learned separately, and choice feedback stays on device.">普通、正式、轻松趣味,一键切换;回复偏好与听写偏好分别学习,选择反馈仅保留在本机。</p>
</article>
<article class="personal-card acrylic spot lift reveal" style="--d:.16s">
<div class="personal-media media-inset">
<img
src="assets/whats-new/monthly-usage-zh.png"
data-zh-src="assets/whats-new/monthly-usage-zh.png"
data-en-src="assets/whats-new/monthly-usage-en.png"
data-zh-alt="首页当月听写字数日历卡片"
data-en-alt="Home monthly dictation-characters calendar card"
alt="首页当月听写字数日历卡片"
loading="lazy"
decoding="async"
>
</div>
<h3 data-zh="用量日历与个性词库" data-en="Usage calendar and personal terms">用量日历与个性词库</h3>
<p data-zh="当月听写字数一目了然;重复使用的名字与术语会进入个性词库,同时提升打字候选与语音识别。" data-en="See the month’s dictation at a glance. Names and terms you reuse join your personal dictionary, improving both typing candidates and recognition.">当月听写字数一目了然;重复使用的名字与术语会进入个性词库,同时提升打字候选与语音识别。</p>
</article>
</div>
</div>
</section>
<!-- Agentic 键盘:剪贴板技能 -->
<section class="section feature-section" id="skills">
<div class="section-inner split-layout">
<div class="feature-copy reveal">
<p class="eyebrow" data-zh="Agentic 键盘" data-en="Agentic keyboard">Agentic 键盘</p>
<h2 data-split data-zh="复制之后,它替你做。" data-en="Copy it. Consider it done.">复制之后,它替你做。</h2>
<p
data-zh="复制一段文字,本地语义分析会理解它该去哪——回复、总结、翻译、待办、日程、导航。键盘顶栏只按相关度列出用得上的技能,分析全程不上传剪贴板原文。"
data-en="Copy any text and on-device semantic analysis understands where it should go — reply, summarize, translate, tasks, events, navigation. The keyboard’s top bar lists only the skills that fit, ranked by relevance, and the analysis never uploads the clipboard text."
>复制一段文字,本地语义分析会理解它该去哪——回复、总结、翻译、待办、日程、导航。键盘顶栏只按相关度列出用得上的技能,分析全程不上传剪贴板原文。</p>
<div class="skill-chips" aria-label="内置技能" data-zh-label="内置技能" data-en-label="Built-in skills">
<span class="chip" style="--ci:0"><svg class="i" aria-hidden="true"><use href="#i-reply"/></svg><span data-zh="回复" data-en="Reply">回复</span></span>
<span class="chip" style="--ci:1"><svg class="i" aria-hidden="true"><use href="#i-summarize"/></svg><span data-zh="总结" data-en="Summary">总结</span></span>
<span class="chip" style="--ci:2"><svg class="i" aria-hidden="true"><use href="#i-translate"/></svg><span data-zh="翻译" data-en="Translate">翻译</span></span>
<span class="chip" style="--ci:3"><svg class="i" aria-hidden="true"><use href="#i-task"/></svg><span data-zh="待办" data-en="Tasks">待办</span></span>
<span class="chip" style="--ci:4"><svg class="i" aria-hidden="true"><use href="#i-event"/></svg><span data-zh="日程" data-en="Events">日程</span></span>
<span class="chip" style="--ci:5"><svg class="i" aria-hidden="true"><use href="#i-note"/></svg><span data-zh="备忘录" data-en="Notes">备忘录</span></span>
<span class="chip" style="--ci:6"><svg class="i" aria-hidden="true"><use href="#i-nav"/></svg><span data-zh="导航" data-en="Navigate">导航</span></span>
</div>
<ul class="quiet-list">
<li data-zh="待办与日程经原生 EventKit 写入,日历仅申请「仅写入」权限" data-en="To-dos and events write natively through EventKit; Calendar is write-only">待办与日程经原生 EventKit 写入,日历仅申请「仅写入」权限</li>
<li data-zh="剪贴板历史默认关闭,最多 15 条,仅存于本机" data-en="Clipboard history is off by default — 15 items max, stored only on device">剪贴板历史默认关闭,最多 15 条,仅存于本机</li>
<li data-zh="可创建自定义技能:名称、图标、提示词与可选快捷指令" data-en="Create custom skills with a name, icon, prompt, and an optional Shortcut">可创建自定义技能:名称、图标、提示词与可选快捷指令</li>
</ul>
</div>
<!--
技能演示:真实键盘扩展的录屏。依次复制会议通知、链接、清单和地址,
顶栏的技能胶囊随内容换成日程、打开 / 总结网页、待办 / 整理、导航等。
-->
<figure
class="device-stage reveal"
style="--d:.12s"
role="img"
aria-label="依次复制会议通知、网页链接、购物清单和地址,OSGKeyboard 顶栏的技能随内容换成日程、总结网页、待办、导航等"
data-zh-label="依次复制会议通知、网页链接、购物清单和地址,OSGKeyboard 顶栏的技能随内容换成日程、总结网页、待办、导航等"
data-en-label="Copying a meeting note, a link, a shopping list, and an address in turn — OSGKeyboard’s top bar swaps in Events, Summarize page, Tasks, Navigate, and more"
>
<div class="iphone">
<div class="iphone-screen">
<video class="iphone-clip is-on" data-clip="skills" muted playsinline loop preload="metadata" poster="assets/story/skills-zh-light.jpg"></video>
</div>
<img class="iphone-bezel" src="assets/device/iphone-17-pro-silver.png" alt="" width="675" height="1380" loading="lazy" decoding="async">
</div>
</figure>
</div>
</section>
<!-- 中英打字:不方便说话时的兜底能力;两个数字放在这里,与内容一一对应 -->
<section class="section feature-section" id="typing">
<div class="section-inner split-layout reverse">
<div class="feature-copy reveal">
<p class="eyebrow" data-zh="中英打字" data-en="Chinese and English typing">中英打字</p>
<h2 data-split data-zh="不方便说话时,打字同样顺手。" data-en="When speaking is not convenient, typing stays effortless.">不方便说话时,打字同样顺手。</h2>
<div class="mini-feature">
<h3><svg class="i" aria-hidden="true"><use href="#i-translate"/></svg><span data-zh="中文:输入方式由你选" data-en="Chinese: your scheme, your choice">中文:输入方式由你选</span></h3>
<p data-zh="全拼、自然码、小鹤、微软与搜狗双拼;模糊音、简拼排序、展开候选、数字与滑动选词、中英混输。" data-en="Full pinyin plus Ziranma, Xiaohe, Microsoft, and Sogou double pinyin — with fuzzy initials, candidate paging, number and swipe selection, and mixed input.">全拼、自然码、小鹤、微软与搜狗双拼;模糊音、简拼排序、展开候选、数字与滑动选词、中英混输。</p>
</div>
<div class="mini-feature">
<h3><svg class="i" aria-hidden="true"><use href="#i-spellcheck"/></svg><span data-zh="英文:补全、纠错、预测" data-en="English: complete, correct, predict">英文:补全、纠错、预测</span></h3>
<p data-zh="三格 QuickType、前缀补全、自动纠错、下一词建议、撤销纠错与句首自动大写。" data-en="Three-slot QuickType, prefix completion, autocorrect, next-word suggestions, undo, and sentence capitalization.">三格 QuickType、前缀补全、自动纠错、下一词建议、撤销纠错与句首自动大写。</p>
</div>
<div class="stat-row">
<div class="stat acrylic">
<strong data-count="5">5</strong>
<span data-zh="种中文输入方案:全拼与四种双拼" data-en="Chinese schemes: full pinyin plus four double pinyin">种中文输入方案:全拼与四种双拼</span>
</div>
<div class="stat acrylic">
<strong data-count="40000" data-prefix="≈">≈40,000</strong>
<span data-zh="离线英文词表,补全、纠错与预测" data-en="offline English words for completion, correction, and prediction">离线英文词表,补全、纠错与预测</span>
</div>
</div>
<p
class="feature-note"
data-zh="一个个性词库,同时参与中文候选、英文建议、语音偏置与润色保护。"
data-en="One personal dictionary feeds Chinese candidates, English suggestions, speech biasing, and polish protection."
>一个个性词库,同时参与中文候选、英文建议、语音偏置与润色保护。</p>
</div>
<figure
class="device-stage reveal"
style="--d:.12s"
role="img"
aria-label="在 OSGKeyboard 真实键盘上用全拼输入中文,候选栏实时给出词语"
data-zh-label="在 OSGKeyboard 真实键盘上用全拼输入中文,候选栏实时给出词语"
data-en-label="Typing English on the real OSGKeyboard keys, with QuickType suggestions above"
>
<div class="iphone">
<div class="iphone-screen">
<video class="iphone-clip is-on" data-clip="typing" muted playsinline loop preload="metadata" poster="assets/story/typing-zh-light.jpg"></video>
</div>
<img class="iphone-bezel" src="assets/device/iphone-17-pro-silver.png" alt="" width="675" height="1380" loading="lazy" decoding="async">
</div>
</figure>
</div>
</section>
<!--
隐私:整页唯一的烟熏亚克力面板。三种服务路径 + 可选账号 + 信任证明;
顶部徽记演示「数据留在设备内」。
-->
<section class="section privacy-section" id="privacy">
<div class="section-inner">
<div class="privacy-panel acrylic-smoke reveal">
<div class="center-heading">
<div class="device-emblem" aria-hidden="true">
<svg viewBox="0 0 160 160">
<circle class="emblem-orbit" cx="80" cy="80" r="66"/>
<g class="emblem-spin"><circle cx="80" cy="14" r="3.2"/><circle cx="146" cy="80" r="2.2"/></g>
<g class="emblem-spin emblem-spin-rev"><circle cx="80" cy="146" r="2.6"/><circle cx="14" cy="80" r="1.8"/></g>
<rect class="emblem-device" x="52" y="34" width="56" height="92" rx="14"/>
<g class="emblem-wave">
<rect x="62" y="72" width="4" height="16" rx="2"/>
<rect x="70" y="66" width="4" height="28" rx="2"/>
<rect x="78" y="60" width="4" height="40" rx="2"/>
<rect x="86" y="66" width="4" height="28" rx="2"/>
<rect x="94" y="72" width="4" height="16" rx="2"/>
</g>
</svg>
</div>
<p class="eyebrow" data-zh="隐私与选择" data-en="Privacy and choice">隐私与选择</p>
<h2 data-split data-zh="数据如何处理,由你决定。" data-en="You choose how your data is processed.">数据如何处理,由你决定。</h2>
<p
data-zh="默认优先使用端侧能力。需要云端识别或 AI 功能时,可配置自己的 API 密钥,或选择托管积分服务。"
data-en="On-device processing is the default. For cloud recognition or AI features, bring your own API key or use optional managed credits."
>默认优先使用端侧能力。需要云端识别或 AI 功能时,可配置自己的 API 密钥,或选择托管积分服务。</p>
</div>
<div class="service-paths">
<article class="smoke-card is-primary spot">
<span class="path-badge" data-zh="默认" data-en="Default">默认</span>
<svg class="i path-icon" aria-hidden="true"><use href="#i-chip"/></svg>
<h3 data-zh="端侧优先" data-en="On-device first">端侧优先</h3>
<p data-zh="iPhone 与 iPad 默认使用 Apple 设备端语音识别;搭载 Apple 芯片的 Mac 默认运行本地 Qwen3 MLX 模型。原始录音不离开设备。" data-en="iPhone and iPad use Apple’s on-device speech recognition by default; Apple Silicon Macs run a local Qwen3 MLX model. Raw audio never leaves the device.">iPhone 与 iPad 默认使用 Apple 设备端语音识别;搭载 Apple 芯片的 Mac 默认运行本地 Qwen3 MLX 模型。原始录音不离开设备。</p>
<span class="path-note" data-zh="无需 OSG 账号 · 音频留在设备" data-en="No OSG account · Audio stays on device">无需 OSG 账号 · 音频留在设备</span>
</article>
<article class="smoke-card spot">
<svg class="i path-icon" aria-hidden="true"><use href="#i-key"/></svg>
<h3 data-zh="自备服务商" data-en="Your own API key">自备服务商</h3>
<p data-zh="配置你选择的语音识别或 AI 服务商,请求直达服务商;凭证保存在系统钥匙串。" data-en="Configure the speech or AI provider you choose; requests go directly to them, and credentials stay in the system Keychain.">配置你选择的语音识别或 AI 服务商,请求直达服务商;凭证保存在系统钥匙串。</p>
<span class="path-note" data-zh="无需 OSG 账号" data-en="No OSG account">无需 OSG 账号</span>
</article>
<article class="smoke-card spot">
<svg class="i path-icon" aria-hidden="true"><use href="#i-coin"/></svg>
<h3 data-zh="托管积分" data-en="Managed credits">托管积分</h3>
<p data-zh="在 iPhone 与 iPad 上,可通过 Apple 登录使用托管语音与 AI,无需自行管理密钥。" data-en="On iPhone and iPad, optionally sign in with Apple to use managed speech and AI — no keys to manage.">在 iPhone 与 iPad 上,可通过 Apple 登录使用托管语音与 AI,无需自行管理密钥。</p>
<span class="path-note" data-zh="主动选择后启用 · 可注销账号" data-en="Explicit opt-in · Deletion available">主动选择后启用 · 可注销账号</span>
</article>
</div>
<!-- 可选账号与积分:原独立区块并入这里,与「托管积分」路径相邻 -->
<div class="account-row smoke-card" id="account">
<div>
<h3 data-zh="账号是选项,不是门槛。" data-en="An account is an option, not a gate.">账号是选项,不是门槛。</h3>
<p data-zh="本地听写和自备服务商始终可以独立使用,登录只在你需要托管积分时发生。" data-en="On-device dictation and your own providers always work on their own. Sign-in only happens when you want managed credits.">本地听写和自备服务商始终可以独立使用,登录只在你需要托管积分时发生。</p>
</div>
<ul class="quiet-list">
<li data-zh="首次引导以匿名凭证送 4 次免费体验,不创建账号、不消耗积分" data-en="First-run guidance includes 4 free guided trials via anonymous credentials — no account, no credits spent">首次引导以匿名凭证送 4 次免费体验,不创建账号、不消耗积分</li>
<li data-zh="Apple 登录即可领取符合条件的 1,000 积分注册奖励" data-en="Sign in with Apple to claim an eligible 1,000-credit welcome reward">Apple 登录即可领取符合条件的 1,000 积分注册奖励</li>
<li data-zh="邀请好友,双方均可获得积分奖励" data-en="Invite friends and you both earn credits">邀请好友,双方均可获得积分奖励</li>
<li data-zh="账号令牌不下发给键盘扩展;应用内可注销账号" data-en="Account tokens never reach the keyboard extension; deletion is available in-app">账号令牌不下发给键盘扩展;应用内可注销账号</li>
</ul>
</div>
<div class="privacy-proof smoke-card">
<div>
<strong data-count="0" data-from="99">0</strong>
<h3 data-zh="个第三方追踪 SDK。击键不上传;剪贴板访问需由你主动开启。" data-en="third-party tracking SDKs. Keystrokes are never uploaded, and clipboard access is opt-in.">
个第三方追踪 SDK。击键不上传;剪贴板访问需由你主动开启。
</h3>
</div>
<a class="keycap" href="privacy/">
<span data-zh="阅读完整隐私政策" data-en="Read the full privacy policy">阅读完整隐私政策</span>
<svg class="i" aria-hidden="true"><use href="#i-arrow-out"/></svg>
</a>
</div>
</div>
</div>
</section>
<!-- 平台:实机截图随语言与主题自动切换;稳定性标签挂在末尾 -->
<section class="section platforms-section" id="platforms">
<div class="section-inner">
<div class="center-heading reveal">
<p class="eyebrow" data-zh="iPhone 与 Mac 语音输入法" data-en="Voice keyboard for iPhone and Mac">iPhone 与 Mac 语音输入法</p>
<h2 data-split data-zh="在 iPhone、iPad 上输入,在 Mac 上听写。" data-en="Type on iPhone and iPad. Dictate on Mac.">在 iPhone、iPad 上输入,在 Mac 上听写。</h2>
</div>
<div class="platform-grid">
<article class="platform-card acrylic spot lift reveal">
<div class="media-inset">
<img
src="assets/screenshots/zh/light/iphone-home.png"
data-shot="iphone-home.png"
data-zh-alt="iPhone 上的 OSGKeyboard 首页"
data-en-alt="OSGKeyboard Home on iPhone"
alt="iPhone 上的 OSGKeyboard 首页"
loading="lazy"
decoding="async"
>
</div>
<span class="platform-label">iOS / iPadOS 26+</span>
<h3 data-zh="一把键盘,覆盖完整输入流程" data-en="A complete input workspace in one keyboard">一把键盘,覆盖完整输入流程</h3>
<p data-zh="听写、AI 助手、中文与英文输入、剪贴板技能、个人词典和可选 iCloud 同步。" data-en="Dictation, AI assistant, Chinese and English typing, clipboard skills, personal dictionary, and optional iCloud sync.">听写、AI 助手、中文与英文输入、剪贴板技能、个人词典和可选 iCloud 同步。</p>
</article>
<article class="platform-card acrylic spot lift reveal" style="--d:.1s">
<div class="media-inset">
<img
src="assets/screenshots/zh/light/mac-recording.png"
data-shot="mac-recording.png"
data-zh-alt="Mac 上的 OSGKeyboard 听写浮窗"
data-en-alt="OSGKeyboard dictation overlay on Mac"
alt="Mac 上的 OSGKeyboard 听写浮窗"
loading="lazy"
decoding="async"
>
</div>
<span class="platform-label">macOS 15+</span>
<h3 data-zh="按住 Option,开口即文字" data-en="Hold Option and speak">按住 Option,开口即文字</h3>
<p data-zh="全局热键加屏幕底部的实时听写浮窗;Apple 芯片 Mac 默认使用 Qwen3 MLX 本地模型,Apple 语音识别作为备用。" data-en="A global hotkey with a live dictation overlay at the bottom of the screen. Apple Silicon Macs use a local Qwen3 MLX model, with Apple Speech Recognition as fallback.">全局热键加屏幕底部的实时听写浮窗;Apple 芯片 Mac 默认使用 Qwen3 MLX 本地模型,Apple 语音识别作为备用。</p>
</article>
</div>
<p class="platform-footnote reveal">
<span data-zh="公开下载的 Mac DMG 是已签名并公证的历史版本 1.1;仓库中的 Mac 源码已演进至 2.2,最新功能请用 Xcode 26 从源码构建。" data-en="The signed, notarized Mac DMG available for download is the older version 1.1. The Mac source in the repository has moved on to 2.2 — build with Xcode 26 for the latest capabilities.">
公开下载的 Mac DMG 是已签名并公证的历史版本 1.1;仓库中的 Mac 源码已演进至 2.2,最新功能请用 Xcode 26 从源码构建。
</span>
</p>
<div class="reliability reveal" aria-label="稳定性" data-zh-label="稳定性" data-en-label="Reliability">
<span class="reliability-title" data-zh="稳定性同样是功能" data-en="Reliability is a feature">稳定性同样是功能</span>
<span class="chip" data-zh="内存阈值主动降级" data-en="Proactive memory relief">内存阈值主动降级</span>
<span class="chip" data-zh="MetricKit 本机诊断" data-en="On-device MetricKit diagnostics">MetricKit 本机诊断</span>
<span class="chip" data-zh="启动保护与中断恢复" data-en="Startup protection and recovery">启动保护与中断恢复</span>
<span class="chip" data-zh="CI 校验跨端配置" data-en="CI-checked configuration">CI 校验跨端配置</span>
</div>
</div>
</section>
<!-- FAQ:居中单栏,展开 / 收起带高度过渡;前三问定义产品品类,同时作为 FAQPage 结构化数据 -->
<section class="section faq-section" id="faq">
<div class="section-inner">
<div class="center-heading reveal">
<p class="eyebrow" data-zh="常见问题" data-en="FAQ">常见问题</p>
<h2 data-split data-zh="品类、隐私和限制,提前说清楚。" data-en="The category, privacy, and limits — answered up front.">品类、隐私和限制,提前说清楚。</h2>
</div>
<div class="faq-list acrylic reveal">
<details class="faq-item reveal">
<summary data-zh="什么是嘴替输入法?" data-en="What is a “zuiti” (speak-for-me) keyboard?">什么是嘴替输入法?</summary>
<p data-zh="嘴替输入法是能替你把话说好的输入法:你随口说出想法,它在保留你个人语气的前提下整理成得体的文字。OSGKeyboard 会从你确认过的真实听写中学习说话风格,复制对方的消息后,会按你的口吻给出普通、正式、轻松趣味三条回复,点选即插入。" data-en="“Zuiti” (嘴替) is Chinese internet slang for someone who says what you mean, better than you would. OSGKeyboard learns from dictation you have confirmed, then turns casual speech into polished text in your own tone. Copy a message and it drafts three replies — ordinary, formal, and relaxed &amp; playful — tap one to insert.">
嘴替输入法是能替你把话说好的输入法:你随口说出想法,它在保留你个人语气的前提下整理成得体的文字。OSGKeyboard 会从你确认过的真实听写中学习说话风格,复制对方的消息后,会按你的口吻给出普通、正式、轻松趣味三条回复,点选即插入。
</p>
</details>
<details class="faq-item reveal">
<summary data-zh="什么是 Agentic 键盘(Agentic keyboard)?" data-en="What is an agentic keyboard?">什么是 Agentic 键盘(Agentic keyboard)?</summary>
<p data-zh="Agentic 键盘不只负责输入文字,还能理解内容并替你完成下一步。在 OSGKeyboard 中复制一段文字后,本地语义分析会在键盘顶栏按相关度列出可用操作,例如回复、总结、翻译、写待办、建日程或导航;待办与日程通过系统 EventKit 直接写入,推荐过程不会上传剪贴板原文。" data-en="An agentic keyboard does more than enter text — it understands content and takes the next step for you. In OSGKeyboard, when you copy text, on-device semantic analysis lists the relevant actions in the keyboard’s top bar, such as reply, summarize, translate, create a task, add an event, or navigate. To-dos and events are written natively through EventKit, and suggestions never upload the clipboard text.">
Agentic 键盘不只负责输入文字,还能理解内容并替你完成下一步。在 OSGKeyboard 中复制一段文字后,本地语义分析会在键盘顶栏按相关度列出可用操作,例如回复、总结、翻译、写待办、建日程或导航;待办与日程通过系统 EventKit 直接写入,推荐过程不会上传剪贴板原文。
</p>
</details>
<details class="faq-item reveal">
<summary data-zh="和系统自带的语音输入有什么区别?" data-en="How is it different from built-in dictation?">和系统自带的语音输入有什么区别?</summary>
<p data-zh="系统听写只负责把语音转成文字。OSGKeyboard 作为 AI 语音输入法,在端侧识别之外,还提供长按向 AI 提问并先预览再插入、口述修改上一次输入、学习你语气的个性润色、剪贴板 Agentic 技能,以及全拼与多种双拼的中英打字;在 Mac 上按住 Option 即可全局听写。" data-en="Built-in dictation turns speech into text. As an AI voice keyboard, OSGKeyboard adds hold-to-ask AI with preview before insert, voice edits to your last insertion, a personal style that sounds like you, agentic clipboard skills, and Chinese and English typing with full and double pinyin. On Mac, hold Option to dictate anywhere.">
系统听写只负责把语音转成文字。OSGKeyboard 作为 AI 语音输入法,在端侧识别之外,还提供长按向 AI 提问并先预览再插入、口述修改上一次输入、学习你语气的个性润色、剪贴板 Agentic 技能,以及全拼与多种双拼的中英打字;在 Mac 上按住 Option 即可全局听写。
</p>
</details>
<details class="faq-item reveal">
<summary data-zh="必须注册 OSG 账号吗?" data-en="Do I need an OSG account?">必须注册 OSG 账号吗?</summary>
<p data-zh="不需要。使用端侧听写或自行配置的服务商时,无需 OSG 账号。通过 Apple 登录仅用于托管积分、积分购买、邀请奖励和账号资料管理。" data-en="No. You do not need an OSG account for on-device dictation or when using providers you configure yourself. Sign in with Apple is used only for managed credits, credit purchases, referral rewards, and profile management.">
不需要。使用端侧听写或自行配置的服务商时,无需 OSG 账号。通过 Apple 登录仅用于托管积分、积分购买、邀请奖励和账号资料管理。
</p>
</details>
<details class="faq-item reveal">
<summary data-zh="录音会上传吗?" data-en="Does my audio get uploaded?">录音会上传吗?</summary>
<p data-zh="使用默认的端侧识别时,录音不会上传。只有你明确选择自行配置的云端识别或托管积分云端识别时,音频才会离开设备,并发送至相应云端服务进行处理。" data-en="On-device recognition does not upload your recordings. Audio leaves the device only when you explicitly choose cloud recognition configured with your own API key or cloud recognition paid for with managed credits.">
使用默认的端侧识别时,录音不会上传。只有你明确选择自行配置的云端识别或托管积分云端识别时,音频才会离开设备,并发送至相应云端服务进行处理。
</p>
</details>
<details class="faq-item reveal">
<summary data-zh="为什么键盘需要“完全访问”?" data-en="Why does the keyboard need Full Access?">为什么键盘需要“完全访问”?</summary>
<p data-zh="开启“完全访问”后,键盘才能与主 App 共享设置、读取已保存的服务配置,并在你主动启用后访问剪贴板。此权限不代表 OSGKeyboard 会收集日常键入内容。" data-en="Full Access lets the keyboard share settings with the OSGKeyboard app, read saved provider configurations, and access the clipboard only after you opt in. We do not collect what you type during normal keyboard use.">
开启“完全访问”后,键盘才能与主 App 共享设置、读取已保存的服务配置,并在你主动启用后访问剪贴板。此权限不代表 OSGKeyboard 会收集日常键入内容。
</p>
</details>
<details class="faq-item reveal">
<summary data-zh="OSGKeyboard 是开源软件吗?" data-en="Is OSGKeyboard open source?">OSGKeyboard 是开源软件吗?</summary>
<p data-zh="不是。项目采用源码可见许可,允许个人学习与非商用本地使用;再分发、公开衍生版本和商业使用需要获得许可。" data-en="No. It uses a source-available license for personal learning and non-commercial local use. Redistribution, public derivative versions, and commercial use require permission.">
不是。项目采用源码可见许可,允许个人学习与非商用本地使用;再分发、公开衍生版本和商业使用需要获得许可。
</p>
</details>
<details class="faq-item reveal">
<summary data-zh="Mac 下载为什么是 1.1?" data-en="Why is the Mac download version 1.1?">Mac 下载为什么是 1.1?</summary>
<p data-zh="当前可下载、已签名并公证的 Mac 安装包为 1.1 版。仓库中的 Mac 版源码已演进至 2.2;如需最新功能,请在 macOS 上使用 Xcode 26 或更高版本自行构建。" data-en="The signed and notarized Mac installer currently available for download is version 1.1. The Mac source in the repository has moved on to 2.2; build it on macOS with Xcode 26 or later to use the latest capabilities.">
当前可下载、已签名并公证的 Mac 安装包为 1.1 版。仓库中的 Mac 版源码已演进至 2.2;如需最新功能,请在 macOS 上使用 Xcode 26 或更高版本自行构建。
</p>
</details>
</div>
</div>
</section>
<!-- 下载:一块大亚克力面板,图标键帽与首屏首尾呼应,背景声波沿路径流动 -->
<section class="section download-section" id="download">
<div class="section-inner">
<div class="download-panel acrylic spot reveal">
<div class="download-backdrop" aria-hidden="true">
<span class="aurora aurora-a"></span>
<span class="aurora aurora-b"></span>
<svg class="download-wave" viewBox="0 0 1200 200" preserveAspectRatio="none">
<path d="M0 100 C 100 100 120 40 200 40 S 300 160 400 160 S 500 20 600 20 S 700 180 800 180 S 900 60 1000 60 S 1100 100 1200 100"/>
<path d="M0 100 C 100 100 120 70 200 70 S 300 130 400 130 S 500 50 600 50 S 700 150 800 150 S 900 85 1000 85 S 1100 100 1200 100"/>
</svg>
</div>
<div class="download-copy">
<img class="download-mark" src="assets/app-icon.png?v=20260927b" width="64" height="64" alt="" loading="lazy">
<p class="eyebrow" data-zh="开口即文字" data-en="Say it. It’s typed.">开口即文字</p>
<h2 data-split data-zh="下一段文字,开口就能输入。" data-en="Your next sentence starts with your voice.">下一段文字,开口就能输入。</h2>
<p data-zh="先使用免费的端侧核心功能;需要时,再配置自己的 API 密钥或选择托管积分服务。" data-en="Start with the free, on-device core. Add your own API key or managed credits only when needed.">
先使用免费的端侧核心功能;需要时,再配置自己的 API 密钥或选择托管积分服务。
</p>
</div>
<div class="download-actions">
<a
class="store-badge magnetic"
href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267"
data-zh-href="https://apps.apple.com/cn/app/osgkeyboard/id6781553267"
data-en-href="https://apps.apple.com/app/osgkeyboard/id6781553267"
rel="noopener"
>
<img
src="assets/badges/ios-zh.svg"
data-zh-src="assets/badges/ios-zh.svg"
data-en-src="assets/badges/ios-en.svg"
data-zh-alt="在 App Store 下载 OSGKeyboard"
data-en-alt="Download on the App Store"
alt="在 App Store 下载 OSGKeyboard"
width="171"
height="48"
>
</a>
<a class="store-badge magnetic" href="https://github.com/hkgood/OSGKeyboard/releases/download/v1.1-mac/OSGKeyboard-1.1.dmg">
<img
src="assets/badges/macos-zh.svg"
data-zh-src="assets/badges/macos-zh.svg"
data-en-src="assets/badges/macos-en.svg"
data-zh-alt="下载 macOS 1.1 旧版本"
data-en-alt="Download macOS 1.1 (older version)"
alt="下载 macOS 1.1 旧版本"
width="171"
height="48"
>
</a>
<a
class="keycap magnetic"
href="https://github.com/hkgood/OSGKeyboard#从源码构建"
data-zh-href="https://github.com/hkgood/OSGKeyboard#从源码构建"
data-en-href="https://github.com/hkgood/OSGKeyboard/blob/main/README.en.md#build-from-source"
>
<svg class="i" aria-hidden="true"><use href="#i-terminal"/></svg>
<span data-zh="从源码构建" data-en="Build from source">从源码构建</span>
</a>
</div>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="footer-inner">
<span data-zh="OSGKeyboard 2.1.0 · AI 语音输入法 · 源码可见,非开源软件" data-en="OSGKeyboard 2.1.0 · AI voice keyboard · Source-available, not open source">
OSGKeyboard 2.1.0 · AI 语音输入法 · 源码可见,非开源软件
</span>
<div class="footer-links">
<a href="privacy/" data-zh="隐私政策" data-en="Privacy">隐私政策</a>
<a href="https://github.com/hkgood/OSGKeyboard/blob/main/LICENSE" data-zh="许可" data-en="License">许可</a>
<a href="https://github.com/hkgood/OSGKeyboard/issues" data-zh="支持" data-en="Support">支持</a>
<a href="https://github.com/hkgood/OSGKeyboard" data-zh="源码" data-en="Source">源码</a>
</div>
</div>
</footer>
<script src="assets/site.js?v=20261002a"></script>
</body>
</html>