들리지 않는 부분을 듣는 방법
인공 저능 디자이너 2
침묵은 신의 언어고 나머지는 모두 잘못된 번역이다.
— Thomas Keating
음성인터페이스는 비약적인 발전을 하고 있지만, 아직도 부족한 부분이 많습니다. 이번에는 ‘말을 못 알아듣는’ 많은 이유 중 인식에 대한 이야기를 해보려고 합니다. 마침 발견한 그럴듯한 인용구를 써보고 싶었거든요.
사람이 귀로 듣고 말하는 것은 흔하게 일어나는 일이라 모든 것이 한 번에 부드럽게 일어나는 일처럼 느껴지지만, 기계가 말을 알아듣는 과정은 생각보다 뚝딱거립니다. 어디부터가 소음이고 어디부터가 말인지 알아내는 것부터 시작해서, 음파를 디지털 신호로 변환하고, 가장 비슷한 글자로 변환하는 것, 확실히 알 수 없는 단어는 문장 안에서 가장 그럴듯한(확률이 높은) 조합으로 추측하는 과정 하나하나가 다 난관입니다.
그래서 지금은 사람이 낸 말소리의 뜻을 그럴듯하게 추측해내는 것에 연구가 집중되고 있는 것으로 알고 있습니다. 그렇다면 침묵은 어떻게 이해할까요?
일상 대화를 생각해보면 예상치 못한 난감한 질문을 받았을 때와 같이 당황하거나 생각이 필요할 때 갑자기 침묵에 잠기게 됩니다. 보통 사람들이 대화할 때 이런 상황을 마주치면 ‘내가 한 말에 기분이 상했나?’, ‘대화가 재미없어서 다른 생각을 하나?’ 같이 불편함을 느끼고는 합니다.
현대의 음성 인터페이스는, 소리를 듣는 구간과 처리하는 구간이 구분되어 있기 때문에, 언제까지고 침묵을 기다릴 수는 없습니다. 사용자가 시스템을 불러놓았는데 침묵이 계속된다면 오류 상황으로 인식하고 문제를 추측해야 합니다. 이런 침묵-오류는 말을 시작하기 전 침묵과, 말하는 도중의 침묵으로 나눌 수 있습니다.
말하기 전의 침묵
지금 말하면 된다는 피드백을 듣지 못했다
‘지금 말씀하시면 됩니다’와 같이 안내 피드백을 해주면 됩니다. 얼마든지 갑자기 다른 일에 집중해야 해서 활성화되는 피드백을 듣지 못하거나 말이 늦어질 수 있습니다, 하지만 어떤 경우에는 늦게 말을 시작한 사용자의 말소리와 겹쳐 문제가 발생하고는 합니다.
사용자가 뭐라고 말해야 할지 모른다.
불러놓고 보니 말로 표현하기가 어렵거나, 단어가 생각이 안나는 경우도 있습니다. 이 경우 사용자에게 도움말을 줍니다. 첫 번째는 소리로만 예시 문장을 들려주고, 이 오류가 반복되면 자세한 내용을 볼 수 있는 도움말 기능을 보여주는 방식으로 해결합니다.
음성 인터페이스 사용성 테스트를 해보면 많은 사람들이 뭐라고 말해야 할지 모르는 상태를 마주치게 됩니다. 이럴 때 ‘뭐라고 말해야 할지 모르겠다’라고 도움말 기능을 요청하면 좋겠지만, 실제로 이 기능을 직접 사용하는 경우는 대단히 적습니다. 상황에 맞게 자연스럽게 상기시켜주거나 도움말 기능으로 유도하는 것이 좋은 방법입니다. 단 도움말 기능을 소리로 줄줄 읽어주는 것은 피해야 합니다.
무언가 사건이 생겼다.
운전 중 문제가 생겨서 말을 하지 못할 수 있습니다. 이런 경우에는 대기하는 방법을 쓰기도 합니다. 그때까지의 진행상황을 저장하고 잠시 Paused 상태로 기다리는 것이죠. 다시 부르면 그 시점부터 다시 시작합니다.
말하는 도중의 침묵
기억을 되살리면서 말하는 경우
주소나 전화번호를 말할 때 죽 이어 말하는 것은 쉽지 않습니다. 자주 사용하는 것은 쉽게 말할 수 있지만 이런 경우 직접 말하기보다는 즐겨찾기 기능(‘사무실로 가자’, ‘엄마한테 전화해’)을 사용합니다. 익숙하지 않은 주소나 전화번호를 입력하도록 하는 것은 어렵지만 불필요한 기능은 아닙니다. 택시 운전자가 손님에게 주소를 듣고 내비게이션에 입력하는 상황을 생각해보세요. 물론 손님이 말한 것을 바로 입력할 수 있다면 좋겠지만 실제로 구현하기에는 난관이 많습니다.
익숙한 것이더라도 전화번호를 말할 때나, 주소를 말할 때 일상적인 문장보다는 단어 사이에 생기는 침묵의 간격이 더 길어질 수 있습니다. 여기까지는 기능에 따라 임계값을 조정하면 해결 가능하지요.
그런데 단기 기억을 더듬어가며 떠듬떠듬 말하는 경우에서는 어려운 문제가 발생합니다. 말소리 후에 이어지는 침묵이 말이 다 끝나서인지, 생각을 해서인지 알 수 없거든요(보통 음성 인터페이스는 내용이 아닌 음향 신호를 기준으로 끝점을 판단합니다). 기억이 잘 나지 않는 경우까지 고려해 기다리는 시간을 늘리면, 말 한마디 할 때마다 그만큼의 시간을 더 기다려야 합니다. 안 그래도 음성 인터페이스에서 대답이 느린 것이 문제인데(인간은 500ms 이하), 0.1초씩만 늘려도 큰 어색함을 느끼게 될 것입니다.
침묵을 이해하기
노자는 ‘비어있는 것’의 가치에 대해 말했다고 합니다. 그릇에 빈 공간이 없다면 쓸모가 없을 것이며, 방의 쓸모도 공간과 문, 창의 빈 공간에서 나온다는 식이죠. 대화에서 침묵은 오류보다는 더 많은 것을 의미합니다. 화자의 감정상태를 나타내기도 하고, ‘말문이 막힌’상황을 의미하기도 합니다. ‘감정’을 이해하는 음성 인터페이스는 침묵도 이해할 수 있어야 할 것입니다. 기계가 침묵을 이해하는 날은 언제 올까요?