본 글은 "음성인식 Ai의 미래"라는 책을 기반으로 작성되었습니다.
아침에 가장 먼저 하는 행동은 바로 알람 끄기다.
예전 같았으면 알람 시계를 두 개(혹은 그 이상)를 사서 5분 간격으로 설정해 두고 일어났지만, 이제는 휴대폰 알람이 울리면 꿈쩍도 하지 않고 이렇게 외친다. "빅스비, 5분 뒤에 깨워줘" 그러면 휴대폰 속 빅스비는 이렇게 말한다. "네~에 정확히 5분 뒤에 알람을 울릴게요." 그리고 1초의 오차도 없이 5분 뒤에 알람을 울린다.
아침에 어떤 옷을 입어야 할지 고민될 때 "빅스비, 오늘 날씨 알려줘" 라 말하면, "오늘 날씨는 XX도이며, 바람은 적어 포근한 날씨입니다. 미세먼지가 심하니 마스크를 꼭 착용하세요." 그리고 오늘 주가가 어떠할지 알기 위해서 "해외증시 알려줘"라고 하면 "현재 다우 지수는 25,409.36포인트 나스닥 지수는 8,567.37 포인트네요."라고 말해준다.
또 "3월 3일 9시에 미팅 예약해 줘"라고 입력한 뒤 "3월 3일 오늘 스케줄 알려줘"라고 말하면, 오늘 오전 9시에 미팅이 있습니다"라고 대답을 해준다.
예전이었으면 네이버 들어가서 증시 검색하고 해외 증시 알아봐야 하겠지만, 바쁜 시간 말로 해결할 수 있는 이 인공지능 비서가 이렇게 큰 도움이 될 수 없다.
이런 음성인식을 매우 편하게 쓰기도 하고, 정말 아이언맨이 사용하는 자비스처럼 완벽하게 사용할 수 없는지 의문이 들기도 하지만, 음성인식이라는 기술 자체가 얼마나 어렵고 첨단 기술인지 알고 나면 이 정도 활용할 수 있는 것만으로도 감사할 덕분이다.
일단 음성인식 자체도 컴퓨터 논리 체계를 기반으로 만들었으니 간단히 파이썬으로 대화 프로그램을 만들어 보았다. 아주 초보적이지만 이런 체계를 기반으로 음성인식 또한 발전해 나갔다.
컴퓨터가 질문을 던진다 "너는 나를 사랑하고 있니?" 그것에 대한 대답으로 "사랑해"라고 대답하면, "나도 너를 사랑해"라고 대답을 해준다. 만일 같은 질문에 대한 대답으로 "아니, 사랑하지 않아"라고 말하면, "그럼 우리 헤어져"라고 말한다. 그 외에 대답을 얼버무리면 "확실하게 다시 말해줘"라고 응답을 한다.
매우 단순해 보이지만 코딩식 사고를 기반으로 이 프로그램을 확장시켜보면 음성인식이 얼마나 어려우며, 어떻게 잘 활용할 수 있을지 알 수 있다. 질문은 "너는 나를 사랑하고 있니?"이지만, 대답은 무궁무진하게 달라질 수 있다. 사랑한다는 긍정의 표현도 "사랑해, 죽을 만큼", "너 밖에 없지", "당연하지" 이런 식으로 할 수 도 있다. 위 프로그램으로 진행할 경우 "사랑해"라는 세 글자 이외에 다른 대답을 적으면 컴퓨터는 인식하지 못하고 이렇게 외친다. "확실하게 다시 말해줘"라고...
만일 부정의 경우 "아니"라는 단어가 들어갈 경우 "그럼 우리 헤어져"라는 응답을 갖고 가도록 프로그래밍한다고 하자, 만일 내가 "아니, 사랑이라는 단어로는 담을 수 없을 정도로 사랑해"라고 말을 할 경우, 컴퓨터가 뱉을 대답은 "그럼 우리 헤어져"다.
이런 반응을 벗어나기 위해서 어떻게 프로그래밍하면 될까? "아니", "없"이라는 부정어가 중복이니 긍정으로 인식하여 대답하게 하면 될까?
이 단순한 대화에서만 봐도 인간의 논리 사고가 얼마나 복잡하고 빠르게 진행되고 있는지를 알 수 있다.
더욱 음성인식에 대해서 궁금하다면 <당신이 알고 싶은 음성인식 AI의 미래>라는 책을 통해 접근하면 이해하기가 한결 수월하다.
이 책은 음성인식 기술이 어떻게 발전해 왔는지부터 차근차근 설명해준다. 1960년대 인공지능의 아버지라 불리는 <마음의 사회>를 저서한 마빈 민스키의 내용부터 현재 인공지능 음성인식의 대표 주자인 애플의 "시리", 아마존의 "알렉사"가 어떻게 개발되었으며, 앞으로 어떻게 발전해 나갈 수 있을지에 대해서 설명해 준다.
위의 파이썬을 통한 코딩을 통해서 문자 인식도 매우 어렵다고 생각을 했는데 음성 인식은 한층 더 어렵다.
왜냐하면 문자는 누가 키보드로 쓰건 동일하게 인식이 되지만, 음성은 사람마다 다르기 때문에, 또한 상황에 따라 다르기 때문에 컴퓨터가 인식하기 매우 어렵다. Take라는 단어와 Shower가 붙으면, "떨어지는 물을 통해 몸에 붙은 불순물을 제거하는 행위"이고, Take medicine 이 되면 "약을 입을 통해서 식도, 위 등으로 이동시키는 행위"를 의미하기 때문이다. 또한 "아버지가방에들어가신다."라는 문장에서 아버지가 방에 들어가시는 건지, 아버지 가방에 (누군가가) 들어가시는 것인지를 구분할 수 있어야 적절한 반응이 나올 수 있다. (책에는 Recognize speech와 Wreck a nice beach로 설명되어 있으나 이해를 돕기 위해 변형) Take라는 단어에서 수학적으로 동사 + 목적어라는 논리로 이해를 가져가고, 뒤에 오는 목적어에 따라 동사의 의미를 달리 한다 라고 코딩을 한다고 한들, 아버지가방에.. 라는 예시처럼 문장을 어떻게 이해하고 끊어 읽어야 할지 어떻게 구분한다는 것인가? 컴퓨터가 어디까지 이해를 하고 있어야 한다는 말인가. 문맥, 분위기 파악이 안 되면 사람들끼리는 "눈치 없는 인간"이라고 혼나지만, "눈치 없는 인공지능"을 어떻게 교육시킨다 말인가?
이러한 질문에 대한 해답이 자세히 적혀 있는 책이다.
앞으로 인공지능 비서를 더 잘 활용하고 싶다면 인공지능 비서가 알아듣기 쉽게 설명해 주어야 하지 않을까? 눈치 없는 비서라고 혼낼 수도 없고, 어쩌면 부하직원보다 더 세밀하고 조심스럽게 다루어야 인간에게 도움이 되는 존재로 그 가능성을 뽑아낼 수 있지 않을까 싶다.