← 블로그로 돌아가기

VoiceScroll은 내 목소리를 서버로 보낼까? 실제로 일어나는 일

프라이버시온디바이스 음성인식데이터 프라이버시

말하는 동안 계속 듣고 있는 앱이라면 한 가지는 꼭 물어볼 만합니다. 그 음성이 실제로 어디로 가는가입니다. 텔레프롬프터는 짧은 음성 명령과 달리 촬영하는 내내 마이크가 켜져 있으니, 이 답이 더 중요합니다.

짧은 답

iPhone과 iPad에서는 VoiceScroll의 음성인식이 기기 밖으로 나가는 일이 없습니다. 가끔도, 폴백으로도 아닙니다. 앱이 온디바이스 처리를 강제하며, 오디오를 서버로 보내는 코드 경로 자체가 없습니다. Android에서도 VoiceScroll은 서버 기반 인식기를 고르지 않습니다. 기기에서 그 언어를 인식하려면 오디오를 밖으로 내보내야만 한다면, 앱은 조용히 그렇게 하는 대신 그 언어를 이 기기에서는 쓸 수 없다고 알립니다.

"온디바이스"가 실제로 뜻하는 것

음성인식은 두 방식으로 동작할 수 있습니다. 클라우드 인식은 음성을 서버로 스트리밍해 그곳에서 텍스트로 변환한 뒤 돌려받습니다. 온디바이스 인식은 모델을 기기 안에서 직접 돌려서, 음성이 이해되기 위해 폰을 벗어날 필요가 아예 없습니다. 트레이드오프는 보통 정확도와 언어 커버리지입니다. 클라우드 모델이 대체로 더 크기 때문인데, 이미 자신이 쓴 대본을 읽는 텔레프롬프터 용도라면 온디바이스로도 충분히 정확하고, 촬영 현장의 네트워크 상태에 좌우되지도 않습니다.

iPhone·iPad: 예외 없이 온디바이스만

iOS에서 VoiceScroll의 음성인식 요청은 온디바이스 처리를 요구하도록 설정되어 있습니다. 네트워크가 마침 연결되어 있다고 해서 앱이 조용히 이를 무시할 수 있는 "선호 설정"이 아니라, 요청 자체에 박혀 있는 강제 조건입니다. 특정 언어의 온디바이스 모델이 기기에 없으면, 앱은 조용히 서버로 전환하는 대신 모델을 내려받아야 한다고 안내합니다. 이는 VoiceScroll의 두 음성인식 엔진(기존 엔진과 iOS 26에서 도입된 새 엔진) 모두에 동일하게 적용됩니다.

Android: 온디바이스만, 그리고 짚어둘 한계 하나

Android의 음성 API는 iOS와 다르게 동작합니다. Android에도 엄격하게 기기 안에서만 도는 인식 API가 있지만, VoiceScroll을 그 하나로만 좁히면 다른 제공자를 통해 실제로 오프라인 인식이 되는 기기를 배제하게 됩니다. 그래서 앱은 더 넓은 인식 서비스 집합을 유지한 채, 오프라인이 아닌 것을 전부 거부합니다. 온라인으로만 동작하는 제공자는 후보 목록에서 아예 빠지며, 처음 고를 때도 세션 도중 폴백 체인에서도 마찬가지입니다. 모든 요청에 오프라인 우선이 고정돼 있습니다. 기기에서 그 언어가 원격으로만 제공된다면, 앱은 서버로 바꿔서 되게 만드는 대신 시작을 막고 이유를 설명하는 음성 설정 시트를 엽니다.

과거 버전에는 솔직히 짚고 넘어갈 진짜 허점이 있었습니다. 그때 앱은 온디바이스를 선호했을 뿐 원격 경로를 거부하지는 않았습니다. 시작 타임아웃, 무응답 감시, 미지원 언어 오류 등으로 선두 오프라인 인식기가 세션 도중 죽으면, 폴백 체인이 온라인 제공자에 닿을 수 있었고 오프라인 플래그를 끈 채 요청을 다시 만들어 남은 촬영분을 화면에 아무 표시 없이 Google 음성 서비스로 넘겼습니다. 1.10.1 버전에서 수정되었습니다. 이제 앱이 인식기를 고르는 모든 자리에서 온라인 제공자가 배제되어, failover 체인이 떨어질 곳 자체가 없습니다.

그리고 분명히 해둘 한계가 있습니다. VoiceScroll이 엄격한 API 하나가 아니라 그 넓은 집합을 쓰기 때문에, 모든 요청에 고정하는 오프라인 우선은 그 인식 서비스들이 무시할 수 있는 힌트이지 플랫폼 보장이 아닙니다. 온라인 제공자를 배제하고 그 플래그를 고정하는 것이 앱이 Android에서 쥘 수 있는 가장 강하게 쥘 수 있는 수단입니다. 이것은 앱 차원의 보장이며, iOS가 할 수 있는 단정적 약속과는 다릅니다.

대본 텍스트는 어떨까

음성과 별개로 대본 텍스트도 수집되거나 업로드되지 않습니다. 대본은 기기에 로컬로 저장되고, VoiceScroll은 사용에 계정을 요구하지 않으므로 대본이 연결될 서버 쪽 프로필 자체가 없습니다. 영상을 녹화할 때도 마찬가지로, 영상과 오디오는 기기 내 파일로 저장될 뿐 어디로도 스트리밍되지 않습니다.

VoiceScroll이 아니어도, 어떤 앱이든 이렇게 확인하세요

텔레프롬프터에만 해당하는 이야기는 아닙니다. 평소에 나를 계속 듣는 앱이라면 다음을 확인해 볼 만합니다.

  • 개인정보 처리방침이나 앱 설명에 "온디바이스"라는 구체적인 표현이 있는지 찾아보세요. 기술적 근거 없이 "개인정보를 소중히 여깁니다"라고만 적혀 있다면 보통 아무 의미가 없습니다.
  • 네트워크를 끈 상태에서도 앱이 동작하는지 확인하세요. 동작한다면 실제로 로컬에서 처리된다는 강한 신호입니다.
  • 로컬에서 인식할 수 없을 때 앱이 무엇을 하는지 보세요. 그 언어를 거절하고 그 사실을 말하는 것도, 폴백하면서 그 사실을 알리는 것도 둘 다 정당합니다. 말없이 서버로 넘기는 것만은 정당하지 않습니다.

결론

iPhone과 iPad에서는 음성이 기기를 벗어나지 않습니다. 예외가 없습니다. Android에서도 VoiceScroll은 서버 기반 인식기를 고르지 않고, 기기가 원격으로만 처리할 수 있는 언어는 거절합니다. 다만 Android에서 그것은 플랫폼 차원이 아니라 앱 차원의 보장입니다. 어느 쪽이든 대본은 수집되지 않고, 이 모든 걸 나와 연결할 계정 자체가 없습니다.

자주 묻는 질문

VoiceScroll이 내 목소리를 서버로 보내나요?

iPhone·iPad에서는 절대 아닙니다. 앱이 온디바이스 인식을 강제하며 서버로 가는 경로 자체가 없습니다. Android에서도 VoiceScroll은 서버 기반 인식기를 고르지 않습니다. 기기가 선택한 언어를 원격으로만 처리할 수 있다면, 서버로 전환하는 대신 그 언어를 여기서는 쓸 수 없다고 알립니다.

VoiceScroll이 내 대본을 수집하거나 업로드하나요?

아니요. 대본은 기기에 로컬로 저장되고, 앱이 계정을 요구하지 않으므로 대본이 연결될 서버 쪽 프로필도 없습니다.

예전 버전이 안내 없이 Google 서버를 쓴 적이 있다고 들었는데, 지금도 그런가요?

과거 버전에 실제로 있었던 버그입니다. 그때 앱은 온디바이스를 선호했을 뿐 원격 경로를 거부하지 않아서, 오프라인 인식기가 세션 도중 실패하면 폴백이 남은 세션을 화면 표시 없이 Google 음성 서비스로 넘길 수 있었습니다. 1.10.1 버전에서 수정되었습니다. 이제 앱이 인식기를 고르는 모든 자리에서 온라인 제공자가 배제되어, 세션이 폴백할 곳이 없습니다.

Android의 온디바이스 인식은 iPhone만큼 강한 보장인가요?

그렇지는 않고, 이 차이는 정확히 짚어둘 만합니다. iOS에서는 온디바이스 요구가 인식 요청 자체에 설정되고 시스템이 강제합니다. Android에서는 인식이 별도의 인식 서비스를 거치기 때문에, VoiceScroll은 온라인 전용 제공자를 배제하고 모든 요청에 오프라인 우선을 못박습니다. 다만 그 우선순위는 해당 서비스가 무시할 수 있는 힌트입니다. 앱이 쥘 수 있는 가장 강하게 쥘 수 있는 수단이지 플랫폼 차원의 약속은 아닙니다.

VoiceScroll을 무료로 사용해 보세요

말하는 속도에 맞춰 자동 스크롤되는 음성 기반 텔레프롬프터.