
실시간 음성 AI 에이전트 구현 5분컷
요약
OpenAI가 상용 음성 인식 모델인 GPT 실시간 버전을 출시하며, 기존의 느리고 복잡했던 5단계(음성-텍스트-AI-텍스트-음성) 과정을 단일 모델로 통합했습니다. 이 기술은 WebRTC를 활용하여 지연 시간을 300ms 수준으로 줄였으며, 사용자의 말에 실시간으로 응답하고 웹사이트와 상호작용하는 에이전트 구현을 가능하게 합니다.
핵심 포인트
- GPT 실시간 버전 출시로 음성 AI의 패러다임 변화 예고
- 기존 5단계 과정(STT-AI-TTS)을 단일 모델로 통합하여 지연 시간 대폭 감소
- WebRTC 기반으로 사람과 유사한 수준의 초저지연 상호작용 구현
- 에이전트가 웹사이트와 직접 상호작용하는 도구 호출 기능 시연
Video: 실시간 음성 AI 에이전트 구현 5분컷
Channel: 노마드 코더 Nomad Coders
Duration: 7m 44s
Source: subtitle (auto, ko)
Transcript:
음성 AI 에이전트가 웹을 장악할 것이며, 오늘 우리는 그러한 에이전트를 만들어 볼 것입니다. OpenAI는 자사의 첫 번째 상용 음성 인식 모델인 GPT 실시간 버전을 출시했습니다 . 저는 이것이 우리가 인공지능과 상호작용하고 애플리케이션에 통합하는 방식을 바꿀 것이라고 생각합니다. 오늘날 우리가 인공지능과 소통하는 방식은 형편없다. 제가 그 이유를 보여드리겠습니다. 당신이 말하면 음성-텍스트 변환 모델이 당신이 정확히 무슨 말을 했는지 파악해야 합니다. 해당 텍스트는 GPT와 같은 인공지능으로 전송됩니다. 인공지능이 사용자 의 문장을 읽고 답변을 작성한 다음 , 텍스트 음성 변환 모델이 해당 답변을 다시 오디오로 변환합니다. 그러고 나면 그 소리가 들립니다. 음성-텍스트-인공지능-텍스트-음성 변환. 다섯 걸음, 각 걸음 사이에 0.5초에서 1초 정도의 침묵이 있습니다. 그리고 그러한 지연이 바로 지금까지 모든 음성 비서가 어색하게 느껴졌던 이유입니다. 하지만 이러한 문제점에도 불구하고, 1억 5천만 명의 사용자를 보유한 핀테크 기업 클라르나에서는 이미 AI가 700명의 고객 서비스 상담원의 업무를 대신하고 있습니다.
에어 인디아는 이미 하루에 4만 건의 문의를 처리하고 있으며, 그중 97%는 사람이 직접 처리하지 않고 있습니다. 뱅크 오브 아메리카의 AI 비서인 에리카는 작년에 6억 7600만 건의 상호 작용을 처리했습니다. 음성 기술이 승리하고 있으며, 이제 막 시작일 뿐입니다. 당신은 전혀 예상치 못한 곳에서 그것을 보게 될 것입니다 . GPT 실시간 기술을 사용하면 음성-텍스트-인공지능-텍스트-음성 변환의 5단계 과정이 사라집니다. GPT 실시간은 하나의 모델이지, 다섯 개가 아닙니다. 오디오가 입력되고, 오디오가 출력됩니다. 녹취록도 없고, 중간에 텍스트도 없고 , 답변을 다시 음성으로 변환하는 두 번째 모델도 없습니다. 이 모델은 사용자의 목소리를 오디오로 인식합니다. 그것은 당신의 말을 직접적으로 이해합니다. 그리고 그것은 자기 자신의 목소리로 되받아칩니다. 그리고 이는 API 요청을 통해 이루어지는 것이 아닙니다. 그렇게 하면 너무 느릴 것입니다. 대신 Zoom과 Google Meet에 사용되는 WebRTC 기술을 이용해 모델에게 전화를 겁니다.
전화는 계속 연결되어 있습니다. 당신이 말하면, 그것은 듣고, 실시간으로 응답합니다. 시작부터 끝까지 300밀리초밖에 걸리지 않습니다 . 참고로, 사람이 대화에서 반응하는 데 평균 200밀리초가 걸립니다 . GPT 실시간 처리 속도는 사람보다 약간 느릴 뿐입니다. 다른 파이프라인은 2~4초가 걸렸습니다. 그리고 그 모델은 말만 하는 게 아닙니다. 실시간으로 도구를 호출할 수 있습니다. 말하는 도중에도 버튼을 누르고, 양식을 작성하고, 검색하고, 구매할 수 있는 도구입니다. 제가 만든 데모 앱을 보여드리겠습니다. 오늘 여러분은 이 앱을 만드는 방법을 배우게 될 것입니다. 이것은 여행 예약 사이트 앱입니다. 양식은 다음과 같습니다: 출발지, 도착지, 날짜, 승객 수, 호텔. 양식을 작성하는 것은 인터넷에서 가장 지루한 일이다. 그래서 음성 비서를 시작하는 버튼을 모서리에 배치했습니다 . 에이전트는 웹사이트와 상호 작용할 수 있는 도구를 가지고 있습니다. 한 번 누르면 마이크가 켜지고, 바로 말하기 시작하면 됩니다.
저기, 제 말 들리세요? 네, 아주 잘 들립니다. 오늘 어떻게 도와드릴까요? 저것 좀 들어 봐. 로봇 음성도 없고, 지연도 없습니다. 자, 이것 좀 보세요. 저는 다음 주 금요일에 리스본에서 마라케시로 비행기를 타고 갔다가 일요일에 돌아오고 싶습니다. 성인 두 명이 창가 좌석에 앉아 메디나에 있는 4성급 리아드에서 같은 날짜에 묵는 데 1박에 200달러 미만이 들었습니다 . 알았어요. 메디나에 위치한 4성급 리아드와 창가 좌석으로 여행 일정이 모두 확정되었습니다. 언제든 검색하실 준비가 되어 있습니다 형태를 잘 살펴보세요. 리스본, 마라케시, 금요일, 일요일, 성인 2명, 창가 객실, 메디나, 4성급 호텔, 200달러. 전체 양식을 한 문장으로 작성하세요. 저는 생각을 바꿀 수 있어요. 사실, 성인 세 명이라고 해야겠네요. 성인 세 명으로 업데이트했습니다. 검색할 준비가 되셨으면 알려주세요. 그리고 호텔에서 하룻밤 더 묵겠습니다. 고객님의 호텔 숙박 일정을 하루 더 연장하여 월요일에 다시 방문하도록 했습니다. 다양한 옵션을 살펴볼 준비가 되셨나요 ?
좋아요, 지금 검색해 보세요. 검색 결과가 나왔습니다. 완벽한 짝을 찾으시길 바랍니다. 이게 무슨 뜻인지 아시겠어요? 이제 모든 웹사이트는 보조 조종사를 둘 수 있습니다. 규모가 아무리 작은 회사라도 콜센터를 운영할 수 있습니다 . 전 세계 모든 어린이가 24시간 실시간으로 개인 과외 선생님을 가질 수 있습니다. 이거 정말 말도 안 돼! 자, 이제 코드가 어떻게 생겼는지 보여드리겠습니다. 저는 여러분께 중요한 부분, 즉 음성 에이전트 코드만 보여드리겠습니다. 그 외 모든 사항은 아래 설명에 있는 GitHub 링크를 참조하세요. 하지만, 좋아요와 구독을 누르기 전까지는 해당 링크를 클릭할 수 없습니다 . 시작합시다. 모델에게 전화를 걸려면 먼저 수화기를 잡아야 합니다. 우리는 동료 간의 연결을 만듭니다. 그것이 바로 WebRTC 호출 자체입니다. 줌과 동일한 기술입니다. 이러한 호출은 오디오, 비디오 또는 JSON, 텍스트 등 무엇이든 데이터 채널을 통해 전송할 수 있습니다 . 줌에서는 내 카메라 와 마이크를 보내면 상대방의 카메라와 마이크를 다시 받게 됩니다.
저희는 통화만 하면 되니까 마이크만 보내주시면 됩니다. 브라우저에 마이크 권한을 요청하고, 마이크를 통화에 연결합니다 . 그런 다음 데이터 채널을 엽니다. 이것이 우리가 이벤트를 주고받는 방식입니다. 마이크는 말하기용이고, 데이터 채널은 그 외의 모든 용도입니다 . 이제 실제로 모델을 조정해야 합니다. 저희는 제안서를 작성합니다 . 그것은 단지 우리의 관계를 설명하는 글일 뿐입니다. 우리는 그 텍스트를 우리 서버로 보내고, 우리 서버가 보내온 응답을 답변으로 설정합니다. 지금 통화가 시작되었습니다. 그런데 왜 먼저 우리 서버로 보내는 걸까요? 저희 서버에 OpenAI API 키가 있기 때문입니다 . 브라우저는 그렇지 않습니다. 저희 서버는 브라우저에서 보낸 제안을 읽고, OpenAI API 키를 추가한 후, OpenAI로 전달하고 , OpenAI의 응답을 다시 브라우저로 보냅니다. 답도 텍스트입니다. 이는 OpenAI 측의 연결 관계를 설명합니다 . 브라우저가 해당 파일을 읽으면 저희 서버의 작업은 완료됩니다.
오디오는 브라우저와 OpenAI 간에 직접 전송됩니다. 그게 서버 전체입니다. 핸들러는 15줄입니다. 전화선이 열리면 모델에게 누구인지 알려줍니다. 채널이 열리면 세션 업데이트 메시지를 보냅니다. 우리는 에이전트에게 시스템 프롬프트를 제공하고, 모델이 말할 때 사용할 음성을 선택합니다. 저희는 Marine을 사용하고 있습니다. 다음으로 전사 모델이 있습니다. 그건 단순히 말풍선에만 해당되는 거예요. 그리고 상담원이 사용하는 도구, 즉 양식 작성 도구와 검색 제출 도구에 대한 설명입니다. 각각은 이름, 설명 및 스키마를 가지고 있습니다. 스키마는 각 도구가 어떤 종류의 데이터를 사용하는지 모델에 알려줍니다. 모든 필드에는 설명이 있습니다. 그렇게 해서 모델은 각 필드의 의미를 알게 됩니다. 모델의 음성을 듣고 모델이 도구를 호출하려는 시점을 파악하려면, 반환되는 오디오 와 데이터 채널의 이벤트, 이렇게 두 가지를 처리해야 합니다. 먼저 페이지에 오디오 요소를 추가합니다 . 그런 다음 모델이 오디오를 전송할 때마다 해당 요소가 스트림을 가리키도록 하여 브라우저가 오디오를 재생하도록 합니다.
도구 관련해서는 데이터 채널을 통해 소식을 접합니다. 메시지가 도착할 때마다 메시지 유형이 함수 호출 인자 완료인지 확인합니다. 모델이 우리 도구 중 하나를 호출해야 한다고 판단할 때 해당 함수가 실행됩니다 . 모델 이름이 '폼 채우기'인 경우, 폼을 채우는 작업이 실행되어 폼 뒤에 있는 React 상태가 업데이트됩니다. 만약 ' 검색 제출'이라고 호출되면, 검색을 실행하여 페이지를 결과 보기로 전환합니다. 자, 잠시 멈춰서 생각해 보세요 . 상담원은 버튼을 클릭하고, 입력란을 채우고, 페이지를 탐색하고, 장바구니에 상품을 추가하고 , 양식을 제출할 수 있습니다. 함수를 작성할 수 있는 모든 기능은 에이전트가 호출할 수 있습니다. 그 가능성을 상상해 보세요. 도구를 실행한 후에는 모델이 제대로 작동했음을 알아야 합니다. 그래서 우리는 모든 것이 잘 진행되었다는 내용의 함수 호출 출력 유형의 이벤트를 반환합니다 . 채팅 말풍선의 경우 동일한 데이터 채널에서 다른 유형의 이벤트도 수신합니다. 우리는 입력 오디오 전사 델타를 사용하여 사용자가 말하는 동안 부분적인 텍스트를 얻고 , 입력 오디오 전사 완료 정보를 사용하여 사용자가 말하는 것을 멈추는 시점을 파악합니다.
그때 최종 성적표를 받게 됩니다. 인공지능도 마찬가지입니다. 음성이 재생되는 동안 부분 텍스트에 대한 오디오 녹취록 변경 사항을 출력하고, 재생이 완료되면 최종 녹취록에 대한 오디오 녹취록 완료 메시지를 출력합니다. 완료. 자, 이제 비용에 대해 알아보겠습니다. GPT 실시간 처리는 무료는 아니지만, 그렇다고 비싼 것도 아닙니다 . 통화 1분당 대략 10~15센트 정도입니다 . 그리고 시스템 프롬프트에서 변경되지 않는 부분은 거의 무료로 캐시되는데, 백만 토큰당 40센트 정도입니다. 따라서 대규모로 시행할 경우, 이는 한 시간 동안 사람 한 명을 고용하는 것보다 저렴합니다. 자, 잠시 생각해 보세요 . 음성 에이전트는 웹에 새롭게 추가된 기능입니다. 양식이 대화로 이어집니다. 대시보드가 질문이 된다. 사용자에게 말을 거는 앱. 이제 처음으로 기존에 보유하고 있는 모든 제품에 대한 코파일럿을 구축할 수 있습니다 . 단 한 번의 API 호출만으로 가능합니다. 저희 AI 에이전트 마스터클래스에서는 이미 Crew AI, OpenAI 에이전트 SDK, LangGraph, Google SDK 및 클라우드 SDK를 다뤘습니다.
실시간 기능이 정말 멋지다고 생각하신다면, 다음번에 실시간 기능에 대한 무료 보너스 영상을 제작할지 댓글로 알려주세요 . 더 깊이 들어가 보겠습니다. 실제 백엔드에 연결된 실제 음성 상담원을 구축하고, SIP를 사용하여 실제 전화번호까지 연결할 수도 있습니다. 다음 시간에 그 부분에 대해 더 자세히 이야기해 보겠습니다 안녕.
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube 노마드 코더 (개발)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기