VoiceScroll 会把我的声音发送到服务器吗?实际情况是这样
目录
任何一款在你说话时持续监听的应用,都值得问一个问题:那段音频到底去了哪里?提词器和短暂的语音指令不一样,麦克风在整个录制过程中都是打开的,所以这个答案更重要。
简短的答案
在 iPhone 和 iPad 上,VoiceScroll 的语音识别默认留在你的设备上:应用强制要求设备端处理,不会自行切换到服务器,即使作为兜底方案也不会。唯一的例外是在线识别,它在你自己开启之前一直是关闭的。开启后,设备上没有识别模型的语言会交给 Apple 的服务器识别,并且需要联网;已安装模型的语言仍然在设备上识别。在 Android 上,VoiceScroll 默认请求设备端识别,不会自行选择服务器端的识别引擎。如果你的设备只能靠把音频发出去才能识别所选语言,应用会告诉你,而不是悄悄那样做。对于这种语言,你可以试试在线识别,它会把你的音频发送给 Google,并且需要联网。
"设备端"到底是什么意思
语音识别可以用两种方式运行。云端识别把你的音频流式传输到服务器,由服务器完成转写再把文字传回来。设备端识别把模型直接跑在本地,你的声音不需要离开手机就能被理解。代价通常是准确度和语言覆盖,云端模型往往更大,但对于本来就在读你自己写的脚本的提词器来说,设备端识别的准确度通常已经够用,而且不依赖拍摄现场的网络状况。
iPhone、iPad:默认只用设备端
在 iOS 上,VoiceScroll 的语音识别请求默认被配置为必须使用设备端处理。这不是一个"偏好设置",不会因为网络恰好可用就被应用悄悄绕过,而是写死在请求本身里的硬性要求。这个默认行为在 VoiceScroll 的两套识别引擎上都成立:经典引擎,以及 iOS 26 引入的新引擎。如果某种语言在你的设备上没有对应的设备端模型,应用会告诉你,而不是悄悄切换到服务器,你可以下载模型,也可以开启在线识别。是否使用在线识别在会话开始时就已确定,所以会话不会在中途转到服务器。
Android:默认只用设备端,以及一个需要说明的限度
Android 的语音 API 和 iOS 的工作方式不同。Android 确实有一个严格只在设备端运行的识别 API,但把 VoiceScroll 收窄到只用它,就会失去某些设备上实际能识别的离线路径。所以应用保留更宽的识别服务集合,同时在默认情况下拒绝一切不是离线的东西。只能联网工作的提供方会被完全排除在候选列表之外,首次选择和会话中途的故障转移链上都一样,并且每一次请求都被钉死为优先离线。如果某个语言在你的手机上只能远程提供,应用会拦下开始,并打开说明原因的语音设置面板,而不是自行切到服务器让它跑起来。这个面板里也可以为该语言试试在线识别,它会把音频发送给 Google,并且需要联网。
过去的版本在这里确实有一个值得坦白说明的漏洞。当时的应用只是优先设备端,并没有拒绝远程路径:当排在最前面的离线识别引擎在会话中途挂掉时,可能是启动超时、无转写的看门狗,或者不支持该语言的错误,故障转移链有可能落到联网的提供方上,把请求以关闭离线标志的方式重建,然后在屏幕上不作任何提示的情况下,把这一条的剩余部分交给 Google 的语音服务。这个问题已在 1.10.1 版本中修复。现在应用挑选识别引擎的每一处都会排除联网的提供方,故障转移链已经无处可落。2026 年 9 月 Android 新增的在线识别则不同:它要你自己开启才会生效,只用于手机无法离线识别的语言,并且在会话开始前就已确定,会话中途不会切换到服务器。
还有一个需要挑明的限度:因为 VoiceScroll 用的是那个更宽的集合,而不是只用严格的那一个 API,所以它钉在每次请求上的离线优先,只是那些识别服务可以忽略的提示,而不是平台层面的保证。排除联网提供方并钉死这个标志,是应用在 Android 上能握住的最强杠杆。这是应用层面的保证,而不是 iOS 那种可以下断言的承诺。
脚本本身呢
除了音频之外,你的脚本文本同样不会被收集或上传。唯一的例外是 iPhone 和 iPad 上的在线识别:这时脚本中被判断为其他语言的词语(用作识别提示)会随音频一起发送给 Apple。脚本保存在设备本地,VoiceScroll 使用时也不需要账号,所以根本不存在一个能把你的脚本关联起来的服务器端账户。如果你录制视频,情况也一样:视频和音频只会写入设备上的文件,不会被传输到任何地方。
不只是 VoiceScroll,任何应用你都可以这样检查
这不是提词器专属的问题,对任何经常监听你的应用,都值得检查一下:
- 在隐私政策或应用介绍里找"设备端"这类具体表述。只说"我们非常重视你的隐私"而没有任何技术性说明,通常没有实际意义。
- 试试断网后应用还能不能用。如果能,这就是识别确实在本地进行的一个有力信号。
- 看应用在无法本地识别时做什么。拒绝该语言并说明,或者在兜底时告知你,这两种都站得住脚。不告诉你就切到服务器,才是不行的。
结论
在 iPhone 和 iPad 上,默认情况下你的声音不会离开设备;只有在你开启在线识别后,设备上没有识别模型的语言才会交给 Apple 的服务器识别。在 Android 上,VoiceScroll 默认请求设备端识别,不会自行选择服务器端的识别引擎,不过在 Android 上这是应用层面的保证,而不是平台层面的。对于你的设备只能远程处理的语言,应用会告诉你,而不是切换到服务器;你也可以自己选择试试在线识别,它会把这段音频发送给 Google。无论哪种情况,你的脚本都不会被收集,也没有账号把这一切和你关联起来。
常见问题
VoiceScroll 会把我的声音发送到服务器吗?
在 iPhone、iPad 上默认不会:应用强制要求设备端识别,不会自行切换到服务器。例外是在线识别,它在你自己开启之前一直关闭:开启后,只有设备上没有识别模型的语言会交给 Apple 的服务器识别,并且需要联网。在 Android 上,VoiceScroll 默认请求设备端识别,不会自行选择服务器端的识别引擎:如果你的设备只能远程处理所选语言,应用会告诉你,而不是切换到服务器。对于这种语言,你可以试试在线识别,它会把你的音频发送给 Google,并且需要联网。
VoiceScroll 会收集或上传我的脚本吗?
不会。脚本保存在设备本地,应用也不需要账号,所以不存在会关联你脚本的服务器端账户。唯一的例外是 iPhone 和 iPad 上的在线识别:这时脚本中被判断为其他语言的词语(用作识别提示)会随音频一起发送给 Apple。
听说旧版本有时会在不告知的情况下使用 Google 的服务器,现在还是这样吗?
那是过去版本里真实存在的一个问题。当时应用只是优先设备端,并没有拒绝远程路径,所以离线识别在会话中途失败时,故障转移可能把剩余部分在无任何屏幕提示的情况下交给 Google 的语音服务。它已在 1.10.1 版本中修复:现在应用挑选识别引擎的每一处都会排除联网提供方,会话已经无处可兜底。2026 年 9 月 Android 新增的在线识别则不同:它默认关闭,要你自己开启,只用于手机无法离线识别的语言,并且在会话开始前就已确定,会话中途不会切换到服务器。
Android 上的设备端识别,和 iPhone 上一样是强保证吗?
并不完全一样,这个差别值得说准确。默认情况下,在 iOS 上,设备端的要求写在识别请求本身,由系统强制执行。在 Android 上,识别要经过独立的识别服务,所以 VoiceScroll 默认排除只能联网的提供方,并把每次请求都钉为优先离线,但这个优先只是那些服务可以忽略的提示。它是应用能握住的最强杠杆,而不是平台层面的承诺。