온디바이스 음성 인식, iOS와 안드로이드는 뭐가 다른가

음성을 텍스트로 바꾸는 기능은 이제 운영체제에 기본으로 들어 있습니다. 키보드의 마이크 버튼, 받아쓰기, 자막 자동 생성 같은 것들이 전부 같은 엔진을 씁니다.

그런데 기기 안에서 처리된다는 말이 두 운영체제에서 같은 뜻은 아닙니다. 앱을 만들거나 도구를 고를 때 이 차이가 실제 결과를 가릅니다.

왜 굳이 기기 안에서 처리하나

서버로 보내는 편이 정확도는 높습니다. 그럼에도 기기 처리를 택하는 이유는 세 가지입니다.

네트워크가 필요 없습니다. 지하철이나 비행기에서도 동작합니다.

음성이 기기를 떠나지 않습니다. 녹음 내용이 민감하거나, 개인정보 처리 고지를 단순하게 유지하고 싶을 때 결정적입니다.

비용이 들지 않습니다. 서버형 API는 처리 시간만큼 과금됩니다. 사용자가 많아질수록 부담이 커집니다.

iOS 쪽 구조

애플은 Speech 프레임워크로 음성 인식을 제공합니다. 원래는 서버 처리가 기본이었고, 기기 내 처리는 언어와 기기가 지원할 때만 켜질 수 있는 선택지였습니다.

핵심은 언어별로 지원 여부가 다르다는 점입니다. 기기에 해당 언어 모델이 내려받아져 있어야 오프라인 인식이 됩니다. 사용자가 그 언어를 한 번도 쓴 적이 없으면 모델이 없을 수 있고, 이때는 조용히 서버 경로로 넘어가거나 실패합니다.

앱을 만든다면 기기 내 처리가 가능한지 먼저 확인하고, 불가능할 때의 동작을 명시적으로 정해두어야 합니다. 이 확인을 건너뛰면 어떤 사용자는 되고 어떤 사용자는 안 되는지 알 수 없는 상태가 됩니다.

안드로이드 쪽 구조

안드로이드는 SpeechRecognizer를 통해 인식 기능을 제공합니다. 실제 엔진은 기기 제조사와 설치된 앱에 따라 달라집니다. 대부분은 구글 앱이 제공하는 엔진을 쓰지만, 제조사가 자체 엔진을 얹는 경우도 있습니다.

여기서 파편화 문제가 생깁니다. 같은 코드가 기기마다 다른 엔진 위에서 돌기 때문에 결과와 지원 범위가 일정하지 않습니다. 오프라인 인식 지원 여부를 조회하는 API도 안드로이드 버전에 따라 달라져, 구버전과 신버전을 각각 처리해야 합니다.

실제로 이 지점은 앱 크래시의 흔한 원인이기도 합니다. 신버전 API만 가정하고 짜면 구버전 기기에서 앱이 시작하자마자 죽습니다.

두 플랫폼 비교

iOS안드로이드
APISpeech 프레임워크SpeechRecognizer
엔진 제공자애플 단일구글 또는 제조사
오프라인 지원언어별 모델 필요엔진·버전별 상이
일관성높음낮음 (파편화)
지원 조회비교적 명확버전별 분기 필요

서버 기반과 비교하면

온디바이스 엔진은 서버형보다 작은 모델을 씁니다. 그 차이가 어디서 드러나는지 알아두면 기대치를 맞추기 쉽습니다.

짧고 명확한 발화는 거의 차이가 없습니다. 명령어, 검색어, 한두 문장은 실용적인 수준으로 나옵니다.

긴 연속 발화에서 벌어집니다. 문장 부호가 빠지고, 화자가 바뀌어도 구분되지 않으며, 문맥에 따라 달라지는 동음이의어에서 오인식이 늘어납니다.

고유명사와 전문 용어는 양쪽 다 약하지만 온디바이스가 더 약합니다. 모델에 담긴 어휘가 적기 때문입니다.

잡음 환경에서 차이가 가장 큽니다. 카페나 강의실 녹음처럼 배경음이 섞인 파일은 서버형이 확실히 낫습니다.

앱에서 쓸 때 챙길 것

기능을 붙이기 전에 정해두어야 할 것들이 있습니다.

엔진이 없을 때 무엇을 보여줄지를 먼저 정하세요. 조용히 실패하면 사용자는 앱이 고장 났다고 판단합니다. 이 기기에서는 사용할 수 없다고 명확히 알리는 편이 낫습니다.

긴 파일은 시간이 걸린다는 사실을 알리세요. 진행률 없이 기다리게 하면 대부분 앱을 닫습니다.

결과를 고칠 수 있게 하세요. 인식은 반드시 틀립니다. 고칠 수 없는 결과물은 쓸모가 줄어듭니다.

이런 제약을 감안하고 온디바이스로 가는 앱들이 있습니다. Loop Note는 기기에 저장된 파일에 한해 내장 엔진으로 자막을 만드는 방식을 택했습니다 (Google Play). 정확도를 일부 포기하는 대신 파일이 외부로 나가지 않고 오프라인에서 동작합니다. 도구별 선택지는 음성 텍스트 변환 도구 비교에 정리해 뒀습니다.

정리

온디바이스 음성 인식은 만능이 아닙니다. 정확도를 최우선으로 둔다면 서버형이 여전히 낫습니다. 다만 오프라인 동작, 개인정보, 비용이라는 세 조건이 걸리는 상황에서는 다른 선택지가 마땅히 없습니다. 두 플랫폼의 구현 차이를 알고 시작하면 예상 밖의 실패를 크게 줄일 수 있습니다.

ko