전화와 AI를 잇는 용어 설명
AI 대화 엔진에 전화를 붙일 때 나오는 말을 짧게 풀었습니다. 글 안에서 물음표가 붙은 말을 누르면 같은 설명이 열립니다.
전화망
통신사 회선과 통화 음성이 오가는 규격입니다.
SIP 트렁크SIP trunk
RTPReal-time Transport Protocol
통화 음성을 작은 꾸러미로 나눠 실시간으로 나르는 규격입니다. 꾸러미마다 순서 번호와 시각이 붙어 있어 받는 쪽이 순서를 맞추고 흔들림을 잽니다.
RFC 3550이 정한 규격입니다. 전화 음성은 보통 20ms 분량씩 한 꾸러미로 보냅니다(RFC 3551의 기본값). RTP는 꾸러미가 제때 도착한다는 것을 보장하지 않으므로, 받는 쪽은 몇 꾸러미를 모아 두었다가 고르게 재생합니다. 이 모아 두는 시간이 지연의 한 몫입니다.
G.711
일반 전화 음성의 표준 부호화 방식입니다. 1초에 8,000번 표본을 뜨고 표본마다 8비트를 쓰므로 64kbit/s입니다.
ITU-T가 정한 규격으로, 전화망의 기본 음질이 이 방식입니다. μ-law와 A-law 두 가지가 있고, 인터넷 전화에서는 각각 PCMU, PCMA라는 이름으로 부릅니다(RFC 3551). 1초에 8,000번 표본을 뜬다는 것이 무엇을 뜻하는지는 8kHz 전화 음질에 적었습니다.
코덱codec
소리를 숫자로 바꾸고 다시 소리로 되돌리는 방식입니다. 전화망은 G.711을 쓰고, 양쪽이 다른 코덱을 쓰면 중간에서 변환합니다.
코덱마다 담는 대역과 쓰는 전송량이 다릅니다. 전화망의 G.711은 64kbit/s로 8kHz 음질을 나르고, 인터넷 회의용 코덱은 더 넓은 대역을 더 적은 전송량으로 나르기도 합니다. 음성인식 엔진이 요구하는 형식과 전화망의 형식이 다르면 그 사이에서 변환하는 일이 생기는데, 변환은 음질을 더하지 못합니다.
8kHz 전화 음질narrowband
일반 전화는 1초에 8,000번 표본을 뜹니다. 표본화 주파수의 절반인 4kHz 위의 소리는 담기지 않아, 숨소리나 마찰음처럼 높은 성분이 많은 소리가 흐려집니다.
음성인식 엔진에 전화 음성을 넣을 때 이 조건을 알고 있어야 합니다. 8kHz 음성을 16kHz로 늘려도 없던 소리가 생기지는 않습니다. 녹음 파일로 시험한 인식률과 실제 전화로 시험한 인식률이 다른 이유가 여기 있습니다.
DTMFdual-tone multi-frequency, 버튼 신호
전화기 버튼을 누를 때 나는 두 주파수의 소리입니다. 인터넷 전화에서는 소리 대신 별도 신호로 실어 보내는 규격(RFC 4733)을 씁니다.
압축 코덱이 버튼 소리를 정확히 전달하지 못할 수 있어서 소리와 별도로 신호를 보냅니다. AI 전화에서는 “말 대신 번호를 눌러 주세요” 단계와, 카드번호처럼 말로 하기 조심스러운 입력에 씁니다.
호 전환call transfer
진행 중인 통화를 다른 번호로 넘기는 동작입니다. AI 전화에서 '상담원 연결'이 이것입니다.
넘기는 쪽이 두 통화를 이어 주고 빠지는 방식과, 통화에 남아 있다가 끊는 방식이 있습니다. 넘길 번호가 회선 밖(다른 회사의 전화기)에 있으면 전환하는 동안 회선을 한 통 더 쓰는 구성이 흔하므로, 동시 통화 수를 셀 때 넘기는 비율을 넣어 계산합니다.
음성 처리
말을 듣고, 끝을 잡고, 끊고, 말하는 처리입니다.
STTspeech-to-text, 음성인식
말소리를 글자로 바꾸는 기술입니다. 통화에서는 음성을 짧게 잘라 실시간으로 넘기는 스트리밍 방식을 씁니다.
전화 음성은 8kHz 전화 음질이라 녹음 파일과 조건이 다릅니다. 처리한 음성 길이로 요금을 매기는 서비스가 많고, 짧은 요청에도 최소 단위로 계산하는 서비스가 있습니다. 외부 서비스로 쓰려면 인터넷이 필요하고, 폐쇄망에서는 내부에 설치하는 형태여야 합니다.
TTStext-to-speech, 음성합성
글자를 목소리로 바꾸는 기술입니다. 문장을 다 만든 뒤 재생하는 방식과, 만들어지는 대로 바로 내보내는 스트리밍 방식이 있습니다.
스트리밍 방식이면 AI가 답을 정한 뒤 첫 소리가 나오기까지의 시간이 줄어듭니다. 자주 쓰는 안내 문장은 한 번 만든 음성을 저장해 두고 다시 쓰면 합성 비용이 줄어듭니다. 읽어 준 글자 수로 요금을 매기는 서비스가 많습니다.
VADvoice activity detection, 음성 구간 검출
소리 가운데 사람 말이 있는 구간과 없는 구간을 가르는 처리입니다. 끝점 검출과 끼어들기가 이 판단 위에서 움직입니다.
배경 소음, 기침, 짧은 맞장구를 말로 볼지 아닐지가 여기서 갈립니다. 너무 민감하면 소음에 반응하고, 둔하면 말을 놓칩니다. 실제 전화 녹음으로 맞춰야 하는 값입니다.
끝점 검출endpointing
상대의 말이 끝났다고 판단하는 처리입니다. 보통 말 뒤에 이어지는 침묵의 길이로 판단합니다. 짧게 잡으면 말을 끊고, 길게 잡으면 답이 늦어집니다.
설계자가 정하는 값 가운데 응답 시간에 가장 크게 걸리는 값입니다. “네”, “아니오”처럼 짧은 대답을 받는 구간은 짧게, 주소나 사연을 듣는 구간은 길게 두는 식으로 구간마다 다르게 둡니다.
끼어들기barge-in
AI가 말하는 도중 상대가 말하면 재생을 멈추고 듣기로 넘어가는 동작입니다. 어디까지 읽었는지를 대화 엔진에 알려야 대화가 이어집니다.
멈출지 말지는 VAD의 판단과, 엔진이 그 구간에 끼어들기를 허용했는지로 정합니다. 금액 안내나 동의 확인처럼 끝까지 들려줘야 하는 구간은 엔진이 끼어들기를 끌 수 있습니다. AI 자신의 목소리가 전화기에서 되돌아오는 소리를 사람 말로 오인하지 않는 처리가 전제입니다.
지연latency
상대가 말을 마친 뒤 AI 목소리가 들리기까지 걸리는 시간입니다. 전화망 전송, 끝점 검출의 침묵 대기, 음성인식, 대화 엔진, 음성합성의 시간이 더해집니다.
음성 전송 자체의 편도 지연에 대해 국제 권고 ITU-T G.114는 150ms까지를 대부분의 용도에 받아들일 만한 범위로, 400ms를 넘으면 일반적인 망 설계에서 받아들이기 어려운 범위로 봅니다. AI 전화에서는 여기에 생각하는 시간이 더해지므로, 어느 구간이 얼마나 걸리는지 나눠서 재야 줄일 곳이 보입니다.
구성
대화 엔진과 전화망 사이에 무엇이 놓이는지에 관한 말입니다.
LLMlarge language model, 대규모 언어 모델
글을 읽고 글로 답하는 AI 모델입니다. 전화 AI에서는 음성인식이 만든 글자를 받아 다음 할 말을 정하는 역할을 맡습니다.
LLM은 전화망을 모릅니다. 전화를 걸고 받는 일, 음성을 글자로 바꾸는 일, 글자를 목소리로 바꾸는 일은 각각 다른 구성 요소가 맡고, 그 사이를 잇는 것이 보이스 게이트웨이입니다. 답을 한 번에 다 만들지 않고 만들어지는 대로 내보내는 방식을 쓰면 첫 소리까지의 시간이 줄어듭니다.
보이스 게이트웨이voice gateway
전화망과 AI 대화 엔진 사이에서 음성과 신호를 양쪽 형식으로 바꿔 주는 소프트웨어입니다. 전화망 쪽은 SIP와 RTP, 엔진 쪽은 글자와 메시지입니다.
통화 음성을 짧게 잘라 음성인식에 넘기고, 엔진이 준 글자를 음성합성으로 읽어 주고, 끼어들기와 버튼 입력과 상담원 연결을 처리합니다. 앨리스코퍼레이션의 AI 보이스 게이트웨이가 이 자리에 들어가는 제품입니다.
WebSocket
서버와 프로그램 사이에 연결 하나를 열어 두고 양방향으로 메시지를 주고받는 규격(RFC 6455)입니다. 음성 조각과 지시를 실시간으로 흘리는 데 흔히 씁니다.
요청할 때마다 연결을 새로 여는 방식과 달리 연결을 유지하므로, 음성처럼 끊임없이 흐르는 데이터를 나르기에 맞습니다. 음성인식과 음성합성 서비스의 스트리밍 접속 방식으로도 널리 쓰입니다.
폐쇄망air-gapped network, 온프레미스
외부 인터넷과 끊어 둔 내부 네트워크입니다. 외부 서비스로 제공되는 음성인식·음성합성은 여기서 쓸 수 없어, 내부에 설치하는 형태가 필요합니다.
금융·공공기관 전산실이 흔한 예입니다. 통신사 회선은 외부 인터넷이 아니라 통신사와 직접 이어지는 구간으로 들어오고, 그 경계의 보안 장비 설정은 기관의 보안 정책에 따릅니다. 녹음 파일도 내부 저장소에 둡니다.
AI 보이스 게이트웨이, 이런 것도 되나요?
대상이 누구이고 어떤 업무인지 한두 줄이면 됩니다.
견적은 업무 내용을 확인한 뒤에 드립니다.