brunch

You can make anything
by writing

C.S.Lewis

by 손톱을 먹은 쥐 Jun 09. 2021

음성 인터페이스를 디자인하는 방법

인공 저능 디자이너 1

그밖에 구상 단계에 머물렀던 계획으로 다음과 같은 것들이 있었다.... 인공 저능, 결혼한 기계, 반 잉여가치 경제학, <물 타체>의 형이상학, 비 민사 소송법 등.

- 움베르토 에코, 세상의 바보들에게 웃으면서 화내는 방법


현재 음성 인터페이스를 디자인하는 일을 하고 있습니다. 음성 인터페이스를 가진 소프트웨어의 UX (VUX)를 디자인한다는 것은 대화를 설계하는 일입니다. 우연히 하게 된 일이긴 하지만 어렸을 때 RPG 게임을 하면 마을의 모든 NPC들에게 대화가 바뀌지 않을 때까지 말을 걸고 다녔던 것에서 지금 하고 있는 일의 뿌리를 찾을 수 있을지 모르겠네요.


요즘 '인공 지능'이라고 말할 때 가지는 이미지의 신기함에 비해, 현업에서 느끼는 인공지능은 대단히 소박합니다. 정말로 '충분한 수준'의 인공지능이 나온다면 대화를 설계하는 것이 아니라 캐릭터를 만드는 일이 될 테니까요. 그러면 디자이너보다는 작가를 고용해야 하지 않을까요? 앞으로 UX 디자이너의 역할에 대해서도 써볼 기회가 있었으면 합니다. 


음성 인터페이스 디자인은 상호작용이라는 면에서 일반적인 인터페이스 디자인과 비슷한 면도 많습니다. 하지만, 음성 인터페이스 특성상 겪게 된 어려움과 헤맸던 기록들을 남겨두려고 합니다. 이제 훌륭한 사람들이 이론을 정립하고 답을 찾아낸 것도 있고, 기술도 발전하고 있으니 맞지 않는 부분도 있습니다. 이어지는 것은 그동안 겪어왔던-이제는 아닌 것도 있는-어려움에 대한 푸념 같은 글입니다. 일단 한번 적어 놓아야 다음 단계의 질문을 할 수 있을 것  같아서요.




확률형 인터페이스

게임에서 나오는 확률형 아이템은 (낮은 확률임에도 불구하고) 열망을 불러일으킵니다. 욕도 먹지만 성공했을 때 희열을 안겨주기도 하지요. 하지만 일반적인 인터페이스에 확률을 넣는다면 어떨까요?

게임 시작 버튼을 눌러 시작해주세요. (5%의 확률로 캐릭터가 삭제될 수 있습니다.)

음성 인터페이스는 확률을 따릅니다. 입력된 소리를 분석하고 가장 '그럴듯한' 결과를 내놓죠. 통제된 환경에서는 99%가 넘는 인식률을 보일 수 있지만, 실제 사용 환경은 다릅니다. 노이즈는 물론이고, 문장의 표현 방법, 목소리 크기, 말하는 속도와 시점 등 무수한 요소가 영향을 줍니다. 물론 훌륭한 사람들이 이미 해결책을 만들어 두었습니다. 노이즈를 줄이고(노이즈 제거), 어떤 표현도 이해(자연어 처리)할 수 있으며, 어떤 시점에 말해도 들을 수 있도록(Barge-in)했습니다. 이런 노력에도 불구하고 인식률이 떨어지는 것은 막을 수 없습니다.


이 뿐만이 아닙니다. 단계가 늘어날수록 확률은 더 떨어지게 됩니다. 예를 들어, 95% 인식률인 엔진이 있다고 가정해 봅시다. 이 인식 엔진을 가지고 만들어진 송금하기 앱으로 100만 원을 보내는 과정을 생각해 봅시다.

1. 받는 사람과 금액 입력 ("한수영한테 100만 원 보내줘")
2. 확인 후 송금 ("그래")

우리는 95% 확률로 인식을 성공적으로 수행하는 엔진을 가지고 있었지만, 위 과정(2단계)에서 문제없이 성공할 확률은 약 90%입니다(0.95*0.95). 물론 인식한 내용이 확실하다고 판단하고 (Confidence score가 높음) 마지막 확인 과정을 거치지 않을 수도 있겠지만, 송금과 같이 실수했을 때 손해가 큰 경우에는 확인 과정이 없으면 사용자가 불안해하게 됩니다. 결과적으로는 실수를 줄이기 위해 확인 과정을 거쳐야 하지만, 이를 위해 대화가 많아지면 그만큼 오류가 생길 확률도 올라가게 되는 딜레마가 있습니다.



너무 익숙해서 익숙하지 않은

Natural User Interface는 Natural - User Interface 가 아닌 Natural User - Interface라는 말이 있습니다. 인간이 배우지 않고도 사용할 수 있는 인터페이스라는 뜻이지요. 언뜻 들으면 대단히 큰 장점을 가지는 방법으로 보이지만, 보통은 오히려 큰 단점이 됩니다. 


사용자가 새로운 것을 배우도록 할 때보다 이미 익숙해진 버릇을 바꾸는 것이 더 어렵습니다. 그런데 보통 인간에게 말하기는 정말 쉽고 익숙한 행동입니다. 음성 인터페이스가 인간과 달리 불완전하게 말을 이해하는 이상, 인간은 기계에게 말하는 방법을 배워야 합니다. 그리고 '인간 같지는 않다'라고 받아들이게 되면 사용자는 오히려 너무 어색하게 말하게 되기도 합니다. 자연스럽게 말하는 것을 알아듣도록 학습돤 모델이 대응하지 못하게 되기도 합니다.

*안드로이드와 연애하면서 기계처럼 말하게 된 사람이 나오는 단편 만화가 있었는데 찾을 수가 없네요.



너무 간단해서 어렵다

User: 바나나랑 포도를 먹고 싶어
System: 바나나, 사과를 먹고 싶으시군요
User: 아니 아니, 바나나랑 포도.
System: 아 이제 알겠어요. 아니, 바나나, 그리고 포도를 먹고 싶다고 하신 거죠?

사람과의 대화에서도 잘못 알아듣는 경우는 흔하게 발생합니다. 그럴 때는 바로 아니라고 하고 바로잡으면 되죠. 말은 불완전하지만, 대화는 그것을 해소시켜 줍니다. 하지만 이런 오해의 해소 과정이 인간에게 단순한 것과는 달리 음성 인터페이스에서는 어렵습니다.

 

끼어들기(Barge-in) 기능이 없는 경우 시스템이 알아들을 수 있기 전에 말해버리는 오류가 가장 많이 발생하는 부분은 예/아니오 를 대답하는 시점입니다. 사람은 시스템의 행동이 맞는지 아닌지 빠르게 판단을 내리고 바로 대답하지만, 시스템 입장에서는 자신의 말이 끝나기도 전에 응답이 지나가버린 셈이 됩니다. 그러면 오인식이나 시간 내 입력이 없는(타임아웃) 오류가 발생하고 사용자는 답답해하지요. 답답한 사용자는 더 빨리 여러 번 대답하고 시스템은 더 알아들을 수 없는 악순환에 빠지게 됩니다.

Barge-in 기능은 이런 오류에 대해 효과적인 대처법이 되지만 아직 완벽하지는 않고, 여전히 '인간 입장에서만 간단한' 문제들이 오류를 발생시킵니다.



할 수 있으니까 하는 기능들

볼륨 최대로!

 - 루시우 코헤이아 도스 산토스

차량 내에서 음성 인터페이스는 몇 가지 장점을 가지고 있습니다. 사용자의 위치가 크게 바뀌지 않아 마이크에 입력되는 단계에서 노이즈를 상당히 걸러낼 수 있고, 운전에 집중해야 해서 터치 인터페이스 사용이 어렵기 때문에, 터치에 비해 우위를 가지는 기능들이 있습니다. 하지만 물리적인 버튼이 손가락 근처에 배치되어 있기 때문에 어떤 기능들은 굳이 음성으로 조작할 이유가 없는 것이 됩니다. 대표적인 것으로 음량 조절 기능을 들 수 있습니다. 핸들에 올려둔 손가락으로 볼륨을 쉽게 조절할 수 있어 굳이 다른 방법을 사용할 이유가 없는데다 일단 음성 인터페이스를 활성화하는 경우에 재생되던 노래가 중단됩니다. 또 볼륨을 어느 정도 높일지 말로 표현하기 애매하고, 노래 음량을 들어가며(피드백) 조절할 수 없습니다.


물론 만든 사람들이 생각이 부족해 이런 기능을 넣지는 않았을 것입니다. 어떤 시스템에 음성 인터페이스가 추가되는 경우, 손으로 조작할 수 있는 것은 음성으로도 가능해야 한다는 기준을 가지고 개발되기도 합니다. 기능 좀 추가한다고 큰 문제가 생기지 않는다면 넣어두는 것이 안전하겠죠.


하지만 음성 인터페이스를 적용하는 데 좋은 시작은 아니라고 생각합니다. 이런 경우엔 기존 시스템의 트리 구조를 그대로 따라 조작하게 되고, 이것은 음성 인터페이스가 시스템의 다른 입력장치로서 동작하는 것입니다. 이런 방법으로는 불편하고 불확실한 인터페이스가 될 뿐입니다.


*다만, 시각장애인을 고려했을 때 음성 인터페이스로 사용 가능한 기능을 일부로 한정하는 것은 문제가 될 수 있습니다. 물론 이 경우에도 기존의 터치 인터페이스를 그대로 옮기는 것이 아닌 사용하는 입장에서 고민이 필요합니다.



먼 산을 바라보는 사용자들

저들의 말은 원래 첫음절이나 두 번째 음절에 대부분의 뜻이 함축되어 있다

 - 이달타르


음성 인터페이스를 가지고 사용성 테스트를 하면 대화 중간에 먼 산을 바라보는 것을 볼 수 있습니다. 사용자의 말과 시스템의 말 사이에 생기는 시차의 어색함 때문에 생기는 현상입니다. 사람의 대화는 상당히 빠른 속도로 (*언어에 상관없이 응답이 겹치거나 0.5 초 이상 지연되지 않음) 오고 갑니다. 대화하는 과정을 돌이켜 보면, 상대의 첫마디만 들어도 이미 어떤 이야길 할 것인지 알게 되기도 하고, 상대의 말이 끝나기도 전에 대답을 생각해 놓기도 합니다. 


하지만 보통의 음성 인터페이스는 말이 모두 끝난 뒤 그것을 해석하는 과정을 거칩니다. 간단하게 과정을 나열하면 다음과 같습니다.

1. 사용자의 말소리를 감지하여 녹음을 시작합니다.
2. 일정 시간 동안 소리가 이어지지 않으면 발화가 끝났다고 판단하고 녹음을 끝냅니다.
3. 녹음된 파형을 텍스트로 변환합니다.
4. 변환된 텍스트의 의미를 알아냅니다.
5. 결과를 출력합니다.
6. 마이크를 열고 사용자 응답을 기다립니다. (사용자의 응답이 필요한 기능인 경우)

엔진 최적화, 하드웨어 스펙에 힘입에 빠른 처리가 된다고 해도, 필요한 단계를 거치면 어느 정도 시차가 발생합니다. 0.3초 이내면 괜찮다고도 하지만, 그보다 짧아야 쾌적함이 느껴집니다. 편의점에서 물 한 병을 주면서 계산해달라고 했는데 잠시 정적이 흐르는 상황을 생각해보세요.


*T. Stivers, N. J. Enfield, P. Brown, C. Englert, M. Hayashi, T. Heinemann, G. Hoymann, F. Rossano, J. P. De Ruiter, K.-E. Yoon, and others, “Universals and cultural variation in turntaking in conversation,” Proceedings of the National Academy of Sciences, vol. 106, no. 26, pp. 10 587–10 592, 2009.



뭐라고 말했는지는 알지만 무슨 뜻인지는 모릅니다

흰 하늘 찢고 고름 섞인 개구리 양심!
 
- 다리 다섯 달린 두억시니

다른 인터페이스와 마찬가지로 음성 인터페이스에서 오류에 대한 피드백은 중요합니다. 하지만 오류 피드백을 정확히 하는 것은 어렵습니다. *Meyers et al.(2018)는 음성 인터페이스에서 사용자가 마주치는 오류를 네 가지로 분류했습니다. 

1. Unfamiliar Intent: 사용자가 NLP가 구문 분석할 수 없는 방식으로 말하거나 VUI 시스템이 지원하지 않는 기능을 실행하려고 하는 오류
2. NLP Error: NLP가 참가자의 말을 "잘못 들었" 거나 그들의 발언을 잘못된 의도에 매핑할 때 발생하는 오류
3. Failed Feedback: 피드백이 명확하지 않거나 참가자에게 목표를 달성하는 데 필요한 정보를 제공하지 않는 오류
4. System Error: VUI 시스템 아키텍처의 결함에서 비롯된 오류


그런데 실제 사용하는 과정에서 발생하는 '발화 시점을 잘못 말하는 오류'와 조합되면서 어떤 오류인지 알 수 없는 상황이 발생합니다.

A. 사용자가 제대로 말했지만, 발화 시점 오류로 일부 발화가 입력되지 않아 인식 오류 발생

B. 사용자가 시스템이 알아들을 수 없는 발화를 함.

A 상황은 사용자가 시점을 잘 맞춰서 똑같이 반복해서 말하도록 해야 하고 B 상황에서는 다른 방식으로 말하도록 유도해야 합니다. 하지만 시스템은 두 가지 모두 1번 오류로 판단할 수밖에 없고 적절한 피드백을 주기 어렵습니다.


이 경우 도움을 주는 것이 인식된 내용을 텍스트로 사용자에게 보여주는 것입니다. 하지만, 운전 중이라거나 디스플레이가 없는 시스템은 이 방법을 사용할 수 없습니다.


그리고, 대부분의 사용자는 음성 시스템에서 오류가 발생하면 시스템이 '내 말을 못 알아듣는다'라고 생각합니다. 이렇게 생각하는 사용자는 같은 명령어를 반복해서 시도하며, 더 크게 말하거나 발음을 더 또박또박 말합니다.(이런 현상을 Hyperarticulation이라고 부릅니다). 내가 올바른 명령어를 알지 못한다고 생각하는 사용자는 계속 표현을 바꿔가면서 시도합니다. 


음성 인터페이스의 사용성 평가를 할 때, 잘못된 명령어를 반복해서 말하는 사용자가 많다면 '당연히 알아들어야 할' 것이라고 생각하는 표현이 동작하지 않는 상황으로, 시스템이 인식할 수 있는 표현에 추가하는 수정이 필요합니다. 

반대로 사용자가 대부분 표현을 바꿔가면서 말한다면 사용자들은 갈피를 잡지 못하고 혼란을 느끼고 있는 것이므로 말할 수 있는 방식에 대해 좀 더 가이드해 주는 방법을 고민해 보아야 할 것입니다.


*Chelsea Myers, Anushay Furqan, Jessica Nebolsky, Karina Caro, and Jichen Zhu. 2018. Patterns for How Users Overcome Obstacles in Voice User Interfaces. In Proc. CHI '18. ACM, New York, NY, USA, Article 6, 7 pages.

작가의 이전글 머리말
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari