인터페이스와 인공지능
본문 바로가기

용어 정리, 이슈/과학&기술

인터페이스와 인공지능

728x90

1. 인터페이스와 프로그램

인터페이스(interface)라는 말 컴퓨터를 사용하다 보면 한 번쯤 들어봤을 것이다. 일반적으로 인터페이스(interface)독립체(entity) 간의 접촉 및 상호연결(interconnection)을 뜻하며, 컴퓨터 분야에서는 특정한 대상들(사물과 사물, 사물과 인간) 사이의 경계에서 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜을 말한다. 컴퓨터 분야에서는 주로 하드웨어 인터페이스(hardware interface), 소프트웨어 인터페이스(software interface), 사용자 인터페이스(UI, user interface)로 분류한다.

인터페이스(interface)
하드웨어 인터페이스
(hardware interface)
소프트웨어 인터페이스
(software interface)
사용자 인터페이스
(UI, user interface)

1-1. 하드웨어 인터페이스

하드웨어 인터페이스(hardware interface)인간 등이 컴퓨터와 소통하기 위해서 물리적, 전기적으로 연결하는 인터페이스를 말한다. 이러한 특징 때문에 종종 정보 기기의 하드웨어 간 통신을 위해서 존재하는 입출력 포트의 전기적 연결 장치인 커넥터(connector)라고 부르기도 한다. SCSI와 같은 병렬 인터페이스 규격 등이 있으며, 우리가 흔히 사용하는 USB와 같은 버스(bus)도 하드웨어 인터페이스에 포함된다. 쉽게 말해 컴퓨터 등에 꼽거나 누를 수 있는 것들은 대부분 하드웨어 인터페이스라고 보면 된다.

하드웨어 인터페이스의 예

여기서 헷갈릴 만한 것이 있는데, 마우스는 클릭과 드래그를 통해, 키보드는 자판 입력을 통해 컴퓨터와 소통한다. 그럼 마우스와 키보드와 같은 입력 장치도 하드웨어 인터페이스에 해당할까? 완전히 틀렸다! 이들은 정확히 분류하자면 사용자 인터페이스의 한 종류라고 봐야한다. '분명히 꼽거나 누를 수 있는 것들'이 하드웨어 인터페이스라고 했는데, 눌러서 소통하는 입력장치는 왜 하드웨어 인터페이스가 아닌 것일까?

 

여기서 말하는 '꼽거나 누를 수 있는 것들'은 가장 기본적으로 연결 단계에서 직접적으로 연결하는 인터페이스들을 말한다. 그러니까 유선키보드나 유선마우스에서 직접적으로 컴퓨터 본체에 끼울 수 있는 포트 부분은 하드웨어 인터페이스라고 할 수 있지만, 그 외 본 기능을 하는 키보드 부분, 마우스 부분은 인간이 직접 컴퓨터와 신호를 주고 받는 수단이기 때문에 UI라고 보는 것이다.

 

1-2. 소프트웨어 인터페이스

1-2-1. 소프트웨어 인터페이스

소프트웨어 인터페이스(software interface)소프트웨어간 정보를 주고받기 위한(연결을 위한) 약속을 규정한 인터페이스다. 즉 소프트웨어 간의 정보(메시지) 종류 및 개수, 정보의 전달방식 등이 소프트웨어 인터페이스라고 보면 된다. 대표적으로 응용프로그램 프로그래밍 인터페이스(API)와 응용프로그램 이진 인터페이스(ADI)가 있으며, 이 둘의 특징을 살펴보며 소프트웨어 인터페이스의 특징을 살펴보겠다.

 

먼저, 흔히 API라고도 불리는 응용프로그램 프로그래밍 인터페이스응용프로그램간(컴퓨터 간 혹은 컴퓨터 프로그램 간)의 연결을 돕는 소스 코드 기반 인터페이스다. 이 API는 데이터 요청 양식, 인증, 호출 제한 등을 사용한 소통 방식으로 함수, 웹의 URL(http 등) 등으로 표시된다. 그래서 이런 API가 한 번 만들어지고 그것이 공유된다면, 다른 개발자가 그를 참고해 다양한 응용프로그램을 만들 수 있게 된다는 특징이 있다.

 

그 다음 ADI라고도 불리는 응용프로그램 이진 인터페이스는 응용 프로그램간(응용프로그램, 라이브러리, 응용프로그램 구성요소 등)의 연결을 돕는 이진 인터페이스다.바이너리 파일(이진 파일, 바이너리)에서 호환이 가능하다는 말이다.ADI 또한 한 번 만들어지고 공유되면 다른 개발자가 참고할 수 있다. 그럼 차이가 뭘까? 아래 표에 정리해봤다.

  API
(응용프로그램 프로그래밍 인터페이스)
ADI
(응용프로그램 이진 인터페이스)
기반체 소스 코드 기반 소프트웨어 인터페이스 이진 체계 기반 소프트웨어 인터페이스
연결 대상 범위 넓음(높은 수준) 좁음(낮은 수준)

이렇게 사람이 이미 만들어져 있는 다양한 레고 블록을 가지고 집을 짓는 것처럼 현대의 소프트웨어 개발은 이미 만들어져 있는 소프트웨어를 연결하여 자신이 원하는 소프트웨어를 제작하는 방식을 추구한다. 이 때 소프트웨어 간의 연결을 지원하는 것이 소프트웨어 인터페이스다. 이제 자주 쓰이는 API에 대해 더 깊이 설명하겠다.

 

1-2-2. SDK의 API와 오픈 API

개발자는 사용할 소프트웨어가 어떻게 구현되었는지 알지 못해도 인터페이스만 안다면 그 소프트웨어가 제공하는 기능을 사용하는데 아무런 불편함이 없다. 이러한 소프트웨어 인터페이스에는 대표적으로 소프트웨어 개발 키트(SDK, Software Development Kit) 포함된 API인터넷을 통해 특정 사이트가 제공하는 기능을 사용할 수 있도록 제공하는 오픈 API(open API)가 있다. 여기서 API와 SDK의 차이가 이해가 안되는 분들을 위해 한 문장 첨언하겠다. API는 다른 사람이 만들어 놓은 함수, SDK는 레고 블럭 세트라고 보면 된다.

API의 개념 (출처 : www.cleveroad.com/)

여기서 소프트웨어 개발 키드(SDK)는 말 그대로 소프트웨어 개발 도구 모음을 말한다. 일반적으로 SDK는 하드웨어 플랫폼, 운영체제(OS), 프로그래밍 언어 제작사 등이 제공하는 소프트웨어 개발 툴로써 이미 개발되어 안정화된 다양한 소프트웨어를 포함하고 있다. 또, 개발자에게 이들 소프트웨어에 대한 API를 제공하는데 보통 자사의 운영체제를 퍼뜨리기 위해서인 경우가 많다. 여하튼 그렇게 퍼뜨려진 API를 얻은 개발자는 소프트웨어 인터페이스인 API를 이해함으로써 SDK에 포함된 소프트웨어를 간단하게 자신의 소프트웨어에 가져다 사용할 수 있는 것이다. 현재에도 API를 패키지 형식으로 인터넷을 통해 공개하는 단체가 증가하고 있고, 이는 소프트웨어 개발의 편리성을 높이고 있다.

오픈 API의 예 (출처 : www.cleveroad.com/)

이러한 API는 사용 목적에 따라 오픈 API, 내부 API(Internal API), 파트너 API(partner API), 컴포시트 API(composite API)로 나누는데 그 중 오픈 API인터넷을 통해 다른 사이트의 기능과 정보를 활용할 수 있도록 지원하는 API다. 예를 들어 

 

 

1-3. 사용자 인터페이스(UI)

사용자 인터페이스(user interface)사용자(주로 인간)과 기계 사이에서 상호작용이 발생하는 공간이자 인터페이스를 말한다. 한때는 인간-컴퓨터 상호작용(HCI, Human-Computer Interaction)의 대상인 인간-컴퓨터 인터페이스(Human-Computer Interaction)의 한 종류라고 봤지만, 현대에는 인간-컴퓨터 상호작용(HCI)을 하는 인터페이스 중 하나라고 설명한다. 원래 컴퓨터는 시스템 활용의 효율성에 더 많은 관심을 두고 UI를 설계했기 때문에 과거에는 UI가 장치 중심으로 만들어졌지만, 시간이 지나며 컴퓨터의 성능이 높아지고, 일반인의 컴퓨터 사용 요구가 늘어남에 따라 UI는 사용자의 편리성을 중시한 사용자 중심 인터페이스로 발전한 것이다.

그래픽 사용자 인터페이스(GUI)와 터치 사용자 인터페이스(TUI)의 예시 (출처 : vectorstock)

앞서 설명했듯 컴퓨터의 입출력장치 등이 UI에 포함되며, 그 외 그래픽 사용자 인터페이스(GUI), 웹 기반 사용자 인터페이스(WUI), 터치 사용자 인터페이스(TUI), 텍스트 사용자 인터페이스(TUI), 명령어 줄 사용자 인터페이스(CLI), 음성 사용자 인터페이스(VUI) 등 다양한 장치, 다양한 분야에서  사용자와 기계가 소통할 수 있게 해주고 있다. 이 UI에 대한 자세한 설명은 이 글(https://mspproject2023.tistory.com/526)을 참고 바란다.

 

2. 인공지능으로 말하는 컴퓨터

2-1. 컴퓨터 UI의 과거와 현재

2-1-1. 컴퓨터와 인간의 소통 방식

인간과 컴퓨터의 소통 방식

우선, 입력장치(input device)사람이 사용하는 정보를 컴퓨터가 이해할 수 있는 형태의 정보로 변환시켜 주는 장치이며, 출력장치(output device)컴퓨터가 처리한 결과를 받아서 사용자가 볼 수 있는 형태로 변환시켜 주는 장치를 말한다. 그러니까 인간이 이해할 수 있는 정보를 입력장치를 통해 컴퓨터가 이해할 수 있게 코딩한 다음 컴퓨터가 그 코딩된 정보를 처리하고 인간에게 출력장치를 통해 디코딩해서 인간이 이해할 수 있는 정보를 제공한다. 이것이 컴퓨터와 인간이 소통하는 기본적인 방식이다. 여기서 컴퓨터 UI는 이러한 입출력장치를 이용해 프로그램이 사용자에게 보여주는 그림, 문자, 소리 정보프로그램을 조작하기 위한 키보드 입력이나 마우스 움직임 등을 말한다. 이러한 과정 속에서 인간의 경험이 좋다고 판단되면 UX 혹은 UE가 좋다고 평가하는 것이다.

 

2-1-2. 입출력장치의 역사

1725년, 종이에 구멍을 뚫어 직조기(loom)를 제어하는 천공카드(punched card, punch card)가 개발되었다.천공카드종이카드의 정해진 위치에 구멍을 뚫어 구멍의 유무에 따라 디지털 정보를 전달하고, 그에 대한 결과 값을 받는 입출력 장치를 말한다. 그러다 1832년, 러시아의 정치가에 의해 이 천공카드가 정보학에서 정보 저장용 및 정보 검색용으로 쓰이면 좋을 것 같다고 발표하며, 천공장치가 정보학 내 입력장치이자 기억장치로서의 역할을 하기 시작한다. 이후 1881년 프랑스 엔지니어에 의해 처음으로 이 천공카드를 사용해 하모늄 연주를 녹음하고 재생하는 방법을 개발해 실질적인 입출력장치, 저장장치의 역할을 하게 되기 시작했다.

 

19세기 말부터 20세기 초까지 사용된 휴스(Hughes)의 텔레프린터 (출처 : 위키피디아)

1870년대 초, 주식 시장의 텍스트 데이터를 동시에 타이핑하고 전신선을 통해 주식 시장의 텍스터 데이터를 주식 티커 기계로 전송해 즉시 복사해 쓸 수 있는 티커 테이프(ticker tape)에 표시하기 위해 사용되었다. 이 티커 기계가 바로 오늘날 컴퓨터 키보드의 원형이라고 볼 수 있다. 이러한 기계류를 흔히 텔레프린터(teleprinter)라고 부른다.

1933년에 발표된 지멘스 t37h(Siemens t37h) 텔레프린터. 쿼티가 보인다!

이 텔레프린터도 처음엔 피아노 모양이었지만 점차 모양이 바뀌게 되었다. 흔히 2차 세계 대전이나, 냉전 초기를 다루던 미디어에서 주로 여성들이 이렇게 생긴 자판을 두드리는 것을 본 적이 있을 것이다. 그 물건이 바로 흔히 타자기라고도 불리던 것으로, 오늘날의 컴퓨터 키보드와 꽤 비슷한 모양을 갖춰가고 있는 것을 보여준다.

1900년대에 허먼 홀러리스가 만든 타입 001 키펀치(Type 001 keypunch)

 

이 텔레프린터는 1900년대 초, 통계학자 허먼 홀러리스(Herman Hollerith, 1860~1929)가 45개의 기둥과 둥근 구멍을 사용해 천공 카드에 구멍을 뚫는 천공기(key punch)와 그 천공 카드의 데이터로 표를 제작하는 작표기(作表機, 도표 제작 장치)로 발전한다. 이후 그는 1933년까지도 다양한 종류의 작표기를 제작해 사람들에게 무언가를 눌려서 데이터를 저장하는 방식을 익숙하게 만들었다.

미 육군 탄도연구소(BRL)에 있었던 에니악(ENIAC) (출처 : 위키피디아)

1945년, 최초의 프로그래밍 가능한 전자 범용 디지털 컴퓨터인 전자식 숫자 적분 및 계산기(Electronic Numerical Integrator And Computer), 즉 에니악(ENIAC)이 개발되었다. 이 계산기는 18,000개의 진공관, 7,200개의 수정 다이오드(crystal diode), 1,500개의 전자계전기(relay), 70,000개의 저항기(resistor), 10,000개의 축전기(capacitor) 그리고 키펀치 장치 등으로 구성된 길이 25m, 높이 2.5m, 폭 1m,  무게 27~30톤에 달하는 거대한 계산기였다. 이 계산기의 입력장치로 위에서 설명했던 천공카드가 쓰였는데, 당연하겠지만 모니터 화면같은 것도 없었던 시절이라 컴퓨터 안에서 일어나고 있는 일을 눈으로 확인할 수 없었다. 단지 전구가 켜지고 꺼지는 것만 표시되어 기계의 상태를 감시(monitoring)할 수 있었고, 이 말이 곧 후대에 쓰일 모니터(monitor)의 직접적인 유래가 되었다.

 

펜실베니아 대학교에서 에니악을 만든 후, 1949년 엔지니어였던 J. 프레스퍼 에커트(J. Presper Eckert, 1919~1995)와 물리학자 존 모클리(John Mauchly, 1907~1980)는 상업 및 군사용 응용 프로그램을 위한 새로운 컴퓨터 디자인을 만들기 위해 EMC를 설립했다. 연구에 연구를 거듭한 결과 같은 해 미국 최초의 저장 프로그램이자 종종 세계 최초의 상업용 디지털 컴퓨터라고 여겨지는 새로운 계산기가 만들어졌는데, 바로 이진 자동 컴퓨터 비낙(BINAC)이었다. 추가로 에니악이 입력장치로 키펀치를 사용했다면, 이 비낙은 입력장치로 타자기(typewriter)를 사용한 것이다.

최초의 헬멧 마운티드 디스플레이 일렉트로큘러(출처 : RF cafe)

1962년, 휴즈 항공(1932~1997)은 TV 신호를 투명한 안경에 반사하는 소형 CRT 헬멧 마운티드 디스플레이인 일렉트로큘러(Electrocular)라는 출력장치를 공개했다. 원래는 조종사의 비행 헬멧과 결합되어 보호용 바이저(protective visor)나 야간투시경, 좌표계 등을 표시하던 군용 출력장치였으며, 최초의 헤드 마운티드 디스플레이의 한 종류로 여겨진다.

 

여기서 HMD는 머리에 쓰는 디스플레이 장비로, 사람의 눈 바로 앞에 화면을 띄우고 주변의 실제 시야를 차단함으로써 화면 시청에 몰입감을 높일 수 있다. 다만 이 괴리감에 익숙하지 않은 뇌로 인해 발생하는 3D 멀미도 존재하는데, HMD계에서는 이러한 신체적 혼란을 극복하기 위해 다양한 연구와 개발을 진행하고 있다.

1964년 개발된 유니스코프 300(Uniscope 300) (출처 : computerhistory)

1964년, 스페리 코퍼레이션(Sperry Corporation, 1910~1986)이 유니스코프 300을 출시했는데, 이 컴퓨터에 브라운관 디스플레이(CRT 디스플레이)가 내장되어 있었다. 브라운관 디스플레이는 진정한 의미에서의 컴퓨터 모니터라고 볼 수는 없었지만, CRT 모니터 기술의 선구자격의 작품으로 보고 있어 사실상 모니터의 조상이라고 여겨진다.

최초의 마우스로 여겨지는 더글러스 엥겔바트의 (출처 : 브리타니아)

1968년, 미국의 엔지니어 더글러스 엥겔바트(Douglas Engelbart, 1925~2013)는 스탠포드 연구소(Stanford Research Institute, 1946~1970)에서 다른 엔지니어들과 함께 세계 최초의 마우스를 만들었다. 이 마우스는 직교한 2개의 바퀴와 전후좌우의 움직임을 측정해 표시하는 드롭 포인트로 구성되어 있었다.

세로형 모니터를 처음 도입한 제록스 알토(Xreox Alto)

1973년, 제록스 팰로앨토(Xerox PARC, 1970~2002)에서 개발한 컴퓨터 제록스 알토(Xerox Alto)에는 최초의 컴퓨터 모니터가 포함되어 있었다. 이 모니터는 최초로 브라운관 기술을 사용한 단색 디스플레이였다.

1984년 애플 매킨토시에서 발표한 마우스 (출처 : 핀터레스트)

1968년에 개발된 마우스는 1984년, 애플컴퓨터의  매킨토시가 출시되며 매킨토시의 표준 입력장치로 사용하면서 널리 보급되기 시작하며 빛을 볼 수 있었다. 그러면서, MS Windows와 같은 GUI 환경 운영체제를 지원하는 컴퓨터의 보급이 일반화되면서 마우스는 컴퓨터 사용에 없으면 안 될 필수 입력 장치가 되었다.

1981년, 애플컴퓨터의 매킨토시가 출시되면서 기존에 좁은 분야에서 쓰이던 키보드라는 입력장치가 상용화되었다. 이 중 1986년에 발표된 모델 M은 현재 사용하고 있는 101개 키를 가진 키보드였으며, 이전엔 없었던 Ctrl, Alt와 같은 조합키, 기능(function), 화살표 키(방향키)와 같이 컴퓨터 사용의 편리성을 위한 별도의 키들이 추가되어 현대의 다양한 컴퓨터 키보드의 직접적인 원형이라고 볼 수 있다. 이 키보드는 컴퓨터에 자료를 직접 입력하고 그 결과를 모니터를 통해 직접 볼 수 있었기 때문에 컴퓨터를 이용한 작업 시간을 크게 단축시킬 수 있었다. 이후 현재 게임 전용 키보드나 인체 공학 키보드, 좌부 분리형 키보드, 마우스 일체형 키보드와 같은 다양한 형태의 물리적 키보드가 등장하고 있고, 그 외 스마트폰, 태블릿과 같이 터치스크린 방식으로 작동하는 기기도 등장했으며, 음성 인식 기술을 이용해 손을 사용하지 않는 기기들로 발전되고 있다. 

1990년대 중반에 나온 독립형 LCD 모니터들

1990년대 중반, 최초의 독립형 LCD 모니터가 상용화되었는데, 이는 기존의 브라운관 모니터 시장을 갈아엎는 중대한 사건이었다. 기존의 CRT는 아날로그로 제어했다면, 이 LCD는 디지털로 제어를 한다는 것이 가장 큰 차이다. 이러한 LCD 모니터 시장은 현재까지도 전세계적으로 널리 퍼져 있는 시장이 되었고, 그렇게 CRT 모니터의 시대는 막을 내리게 된다.

포르테 VFX 1(좌측)과 소니 글라스트론(우측)

앞서 60년대에 이미 개발되었던 HMD는 여러 분야에서 상용화되었다. 1995년, 포르테 테크놀로지(Forte Technologies)는 게임 및 엔터테이먼트 응용 프로그램용 저가형 HMD인 VFX1을 출시했는데, 이 VFX1은 입체 디스플레이, 3축 헤드 트래킹, 스테레오 헤드폰을 갖춘 게임계 HMD의 선구자격 제품이었다. 비슷한 시기인 1997년, 소니 또한 비슷한 HMD였던 글라스트론(グラストロン)을 발표해 동서양 모두에서 이 HMD를 쓰고 게임을 할 수 있게 되었다.

 

이렇게 최근까지 계속 개발되어온 HMD는 각종 센서를 통해 사용자 시선의 움직임을 포착해 반응하는 기술을 탑재해서 3D 디스플레이나 가상현실 등의 응용에 매우 유용하게 사용된다.

2013년 발표된 구글 글래스 익스플로러 에디션 (출처 : 위키피디아)

2012년, 구글은 구글 글라스(Google Glass)라는 1997년부터 연구되어온 광학 HMD(OHMD)를 발표했다. 구글 글라스는 주변 시야를 차단하지 않은 상태에서 사용자가 출력된 정보를 볼 수 있게 해주는 출력장치이며, 웨어러블 컴퓨팅 기술에서 유용한 출력장치로 주목받고 있다.

 

이런 다양한 입출력장치를 이용한 UI의 발전으로 컴퓨터 게임, 멀티플레이어 게임, 모바일 게임, e-스포츠와 같은 다양한 컴퓨터 문화가 대중문화, 하위문화로 자리잡게 되는 큰 영향을 주었다. 오늘날에는 프로그램 기능의 개발과 동시에 사용자(user)가 프로그램을 편리하게 사용할 수 있는 인터페이스를 개발하는 것이 프로그램의 성공 여부를 결정한다. 즉, 좋은 인터페이스는 프로그램의 가치를 높이는 중요한 요소로 인정받게 된다는 말이다.

 

여기서 좋은 인터페이스란 사용자가 따로 사용 메뉴얼을 학습하지 않아도 쉽고 편리하게 프로그램이나 기기를 사용할 수 있게 하는 인터페이스를 말한다. 소비자는 특별한 기능의 차이가 없다면 잘 디자인된 좋은 UI를 가진 프로그램이나 이를 탑재한 기기를 선택할 것이다. 그러므로 프로그램을 개발할 경우, 기능뿐 아니라 사용자와의 대화 도구인 UI 개발에도 관심을 가져야한다.

 

사람은 오감을 통해 정보를 획득한다. 따라서 가장 사람에게 친근한 UI는 이 오감을 통해 정보를 제공할 수 있는 UI가 될 것이다. 또한 사람은 음성, 몸짓(손짓 등), 표정 다양한 방법으로 자신의 의사를 표현하는데 이러한 의사를 컴퓨터가 적절히 받아내고 처리하고 출력할 수 있는 각종 카메라, 마이크 등의 UI의 개발에도 크게 신경써야 한다.

 

2-1-3. UI와 로봇

다양한 IT 기술이 발전함에 따라 컴퓨터는 사람을 대신해 단순한 작업을 반복하는 기기에서 벗어나 사용자와 일상생활을 함께하는 동반자의 역할을 수행하는 객체로 진화했다. 이러한 객체를 흔히 우리는 로봇이라고 부르는데, 과거에는 대부분의 로봇이 생산 공장에서 단순 노동을 수행해왔다. 반면 오늘날에는 생산 공장에 있는 로봇 뿐 아니라, 사람들이 즐거워하는 오락게임을 제공하거나 호텔리어, 배달과 같은 서비스를 제공하는 로봇이 많아지고 있다. 이를 위해서는 로봇에 탑재된 컴퓨터 프로그램이나 각종 프로그램이 사용자들과 원활하게 소통할 수 있는 기능을 가져야 한다. 그래서 오늘날의 로봇들은 사람이 친숙하게 느끼도록 사람의 오감과 다양한 표현을 통해 대화할 수 있는 UI를 탑재하고 있다.

로봇 간호사 (출처 : TEdi)

로봇에게 입력되는 다양한 정보 중 특히 청각은 문자보다 직관적으로 인지하기 쉽고, 문자를 인지하기 어려운 사람들에게는 접근성이 뛰어난 매개체이기 때문에 사람과 소통할 때 굉장히 중요한 요소로 작용하는데, 인터넷 정보의 대부분이 문자로 제공되고 있다. 이러한 문자정보를 음성으로 변환하여 들려준다면 보다 많은 사람들이 정보를 인지하기 쉽게 될 것이다.이 때 필요한 기술이 음성 합성(speech synthesis) 기술 혹은 TTS(Text-To-Speech, 텍스트 음성 변환) 기술이다.

일반적인 TTS 시스템의 진행 방식

TTS인간을 포함한 텍스트 화자의 음성을 인위적으로 만든 것으로, 일반적인 언어 텍스트를 음성으로 변환한다. 이러한 목적을 위해 사용되는 컴퓨터 체계를 음성 컴퓨터(speech computer) 혹은 음성 합성기(speech synthesizer)라고 불리며 하드웨어나 소프트웨어 제품군 모두에서 구현된다. 참고로 이 TTS의 반대 과정은 음성 인식(speech recognition)이다.

TTS 시스템으로 대중과 소통했던 스티븐 호킹 박사

TTS는 먼저 사용자가 입력한 텍스트를 분해한 후, 단어로 나누고 음소로 나눈다. 그리고 이렇게 나누어진 요소에 발음기호를 할당해서 기호화된 언어 표현을 만들어 낸다. 다음 보다 자연스런 음성이 나오도록 운율 등의 음성을 조정해 실제 음성 데이터로 출력한다. 다시 말해서 문자가 입력되면 먼저 문자열 처리 과정이 진행된다. 입력된 문자열은 철자 변환, 형태소 분석, 구문 분석 등 다양한 방법으로 분석되고, 이후 문자와 매칭되는 발음기호를 찾고, 그 다음은 언어 특성에 따라 음절 운율을 찾아서 음성 조각을 생성하는 과정이 진행된다. 마지막으로 이 음성 조각이 순서대로 합성된 뒤 출력된다.

 

이러한 과정이 어렵기 때문에 프로그램 개발자들은 보통 이미 만들어진 TTS API 등을 사용해 새로운 인공지는 챗봇, 다양한 음성 합성 프로그램을 만들어 내고 있다.

 

3. 인공지능으로 소통하는 컴퓨터

3-1. 컴퓨터 인지 도구의 현재와 미래

한 때 우리는 마우스, 키보드를 이용한 명령어 및 텍스트 입력, 터치 스크린과 같은 화면 터치 위주의 UI가 첨단적이라고 여긴 적이 있다. 그러나 시대는 점차 이러한 기술들이 전통적인 UI라고 여기게끔 하는 다양한 UI가 등장하며 발전하고 있다. 이미 음성 인식, 동작 인식, 웨어러블 컴퓨터, 반려 로봇과 같은 색다르게 컴퓨터와 소통할 수 있는 UI를 이용한 다양한 제품군들이 등장했다.

락트인 증후군 환자가 BCI를 사용하는 방법 (출처 : nejm.org)

영화 <아바타>에서는 인간의 생각이 실시간으로 아바타에게 전송되어 자신의 아바타의 움직임을 조정한다. 마치 인간의 뇌가 그 아바타에게로 옮겨진 듯한 모습이었던 것이다. 그러나 사실 그 아바타는 기계에 불과했으며, 실제 그 생각을 하는 주체는 링크 유닛에 있었던 사람이다. 이러한 일이 현실에서 실제로 이루어지고 있다면 믿겠는가? 최근에는 머리에 여러 장치를 부착해서 사람의 뇌파를 인식하여 디지털로 변환시킨 다음 작동 명령을 내리는 뇌-컴퓨터 인터페이스(BCI, Brain-Computer Interface)라는 장치 덕택에 이런 일이 가능하게 되었다.

2013년, 일본 도쿄에서 웨어러블 장치 제작과 판매를 주업으로 하는 로그바(ログバー, logbar)가 설립되었다. 로그바가 2014년 발표한 링(Ring)은 반지를 낀 손가락을 움직이면 미리 약속된 동작에 따라 기기가 작동하는 웨어러블 장치다. 반지에 모션 센서가 있어서 움직임을 파악하고 그 결과를 분석해 명령으로 인지한다. 또한 반지를 낀 손가락으로 글자를 쓰면 이를 문자로 인지해서 컴퓨터의 텍스트 입력으로 사용할 수도 있다.

CTRL-labs가 만든 손목밴드(wristband). 남자가 오른 팔에 차고 있는 작은 팔찌형의 제품으로 큰 로봇 손을 조종한다. (출처 : CTRL-labs)

2015년, 콜롬비아 대학교 계산신경과학 박사(PhD) 과정을 수료한 토머스 레던(Thomas Reardon, 1969~)은 다른 신경과학자들과 함께 CTRL-labs를 설립했다. 이들은 손 근육이 보내는 전기 신호를 포착해 컴퓨터가 이해할 수 있는 입력신호로 변화하는 신경 인터페이스(neural interface) 장치인 손목밴드 장비를 개발했다. CRTL-labs가 만든 이 신경 인터페이스 기술을 응용해서 디지털 단말기까지 제어할 수 있다고 한다니 엄청난 발전이라고 할 수 있다.

 

관절과 손가락의 움직임을 파악하는 모션 인식 시스템 기반(출처 : Google AI blog)

위와 같이 BCI로 다양한 기술이 개발되었는데, BCI 말고도 새로운 기술들이 여럿 등장했다. 그 중 하나가 바로 모션인식(motion detection)이다. 이는 몸짓을 입력으로 활용하고자하는 기술인데, 스마트폰에 걸려온 전화를 특정 손 동작으로 받거나, 손 동작으로만 사진을 찍는 것이 이 기술을 활용한 예이다.모션 인식 UI는 키보드와 마우스를 완전히 대체하기느 어렵겠지만 로봇 조종이나 웨어러블 컴퓨터의 사용 등의 다양한 시스템을 활용하는데 매우 유용한 UI로 발전하는 중이다.

 

3-1. 공부하는 인공지능 그리고 음성을 인식하는 인공지능

그런데 위와 같이 컴퓨터에게 세상의 모든 경우에 대한 각 대상에 대한 모든 정보를 주려면 한도 끝도 없게 되어 인류가 멸망할 때까지도 이러한 기술을 만들 수 없었을 것이다. 이러한 상황을 막기 위해 대체로 떠오른 것이 기계로부터 만들어지는 지능, 시스템에 의해 만들어진 지능인 인공지능(AI, Artific Intelligence)이다. 이 인간의 행동을 모방할 수 있는 기술인 AI의 목표는 아래와 같다.

[인공지능의 목표]

인간과 같은 사고(thinking humanly)
논리적 행동(acting rationally)
논리적 사고(thinking rationally)

이러한 목표를 위해 각종 정보를 스스로 학습하는 AI는 사람과 표정이나 언어로 소통하며, 사람과 같은 사고와 행동이 가능한 단계를 잘 표현하며 점점 발전하고 있다.

 

앞서 TTS는 텍스트를 단순히 학습하여 그것을 음성으로 변환해주는 것이다. 이 TTS AI를 사용하는 기계와 소통하려면, 화자는 자신이 어떤 말을 하고 그것을 텍스트로 바꾸어서 이야기해야 하지만 진짜 대화는 할 수 없다.

TTS AI 로봇이 특정 텍스트를 그대로 말하는 경우
인간 : "밥 먹고 싶다" (음성)
인간 : 밥 먹고 싶다 (텍스트 변환)






로봇 : 밥 먹고 싶다 (텍스트 인식)
로봇 : "밥 먹고 싶다" (TTS)
TTS AI 로봇이 특정 텍스트를 다른 말로 번역하는 경우
인간 : "밥 먹고 싶다" (음성)
인간 : 밥 먹고 싶다 (텍스트 변환)






로봇 : 밥 먹고 싶다 (텍스트 인식)
로봇 : "'밥 먹고 싶다'는 영어로 'I want to eat something'이라고 합니다." (TTS)
TTS AI 로봇이 특정 텍스트를 듣고 그에 맞는 대답을 하는 경우
인간 : "밥 먹고 싶다" (음성)
인간 : 밥 먹고 싶다 (텍스트 변환)



로봇 : 밥 먹고 싶다 (텍스트 인식)
로봇 : "점심 때는 푸짐한 한정식 어떤가요?" (TTS)

위의 3가지 경우 모두 인간은 자신의 말을 텍스트로 직접 번역해서 그것을 로봇에게 인식을 시켜야 한다. 이는 꽤 번거로운 작업이 될 뿐 아니라 항상 그 로봇에게 텍스트를 전달해 줄 기계도 들고다녀야 하기에 여간 힘든게 아니다. 그래서 등장한 것이 VUI(Voice-User Interface), 즉 음성 UI다. 이 VUI는 신체를 기기에 접촉시키지 않고도 기기나 소프트웨어 기능을 실행하고 제어할 수 있다. 즉, 컴퓨터 시스템이 탑재된 다양한 기기들에 터치 패널이나 키보드와 같은 입출력 장치를 더하는 대신 VUI만 탑재해 주면 되어 간편하다. 이런 장점 때문에 이미 애플의 시리, KT의 기가지니, 삼성전자의 빅스비, 구글의 어시스턴트, 네이버의 클로바. 카카오의 i와 같은 음성 인식 비서가 등장했으며, 미래의 다양한 웨어러블 기기에는 음성 인식이 핵심 UI가 될 전망이다.

 

AI 시대를 맞아 VUI 등이 탑재된 AI 스피커는 이제 단순한 콘텐츠를 즐기는 수준에서 가정용 IoT기기를 제어하거나, 앱에 탑재되어 정보 검색, 감성 대화, 송금 등의 다양한 기능을 쓸 수 있는 시대의 문을 열었다. 이러한 VUI는 컴퓨터나 스마트폰을 쓰기 어려워하는 디지털 소외계츠에도 쉽게 디지털 기기를 사용해서 원하는 정보를 활용할 수 있게 돕는 등 다양한 시스템에 탑재되어 일상생활을 더욱 편리하게 하는데 사용될 것으로 보인다.

반응형