자동 음성 인식(ASR) 또는 음성 텍스트 변환

자동 음성 인식(ASR) 또는 음성 텍스트 변환은 사람의 음성을 디코딩하고 이를 디지털화된 텍스트로 변환하는 프로세스와 소프트웨어를 결합한 것입니다.

자동 음성 인식이란?

자동 음성 인식(ASR)은 사람의 음성을 입력 데이터로 받아들여 읽기 쉬운 텍스트로 변환합니다. ASR은 손을 사용하지 않고 텍스트 메시지를 작성하는 데 도움을 주고 머신의 이해를 지원하기 위한 프레임워크를 제공합니다. 인간의 언어를 검색 및 분석할 수 있게 됨에 따라 개발자들이 감성 분석(Sentiment Analysis)과 같은 고급 분석 기술을 도출할 수 있게 되었습니다.

ASR은 자연어로 머신과 소통할 수 있게 해주는 대화형 AI 애플리케이션 파이프라인의 첫 번째 단계입니다. 일반적인 대화형 AI 애플리케이션은 오디오를 처리하고 전사하는 단계를 수행하기 위해, 즉 질문을 이해(의미 도출)하고 답변(텍스트)을 생성하고 이 답변을 사람에게 다시 말하기 위해 세 가지 하위 시스템을 사용합니다. 이 단계들이 실행되려면 여러 딥 러닝 솔루션이 함께 작동해야 합니다. 첫째, ASR을 사용하여 원시 오디오 신호를 처리하고 텍스트를 전사합니다. 둘째, 자연어 처리(NLP)를 사용하여 전사된 텍스트(ASR 출력)에서 의미를 도출합니다. 셋째, 음성 합성 또는 텍스트 음성 변환(TTS)을 사용하여 텍스트를 토대로 사람 음성을 인공적으로 생성합니다. 이러한 각 단계마다 하나 이상의 딥 러닝 모델을 구축하여 사용해야 하기 때문에 이 다단계 프로세스를 최적화하는 것은 복잡한 작업입니다.

ASR을 사용하는 이유는?

음성 비서와 챗봇부터 질문에 답변하여 고객의 셀프서비스를 지원하는 시스템에 이르기까지, 음성 인식과 대화형 AI의 응용 사례는 날마다 늘어나고 있습니다. ASR 또는 대화형 AI를 솔루션에 적용하고 있는 산업은 금융, 의료 등 실로 광범위합니다. 음성 텍스트 변환은 우리 실생활에서 다음과 같은 다양한 사례에 응용될 수 있습니다.

  • 수술이나 항공기 조종처럼 '손을 많이 쓰는' 직업에 종사하는 사람들이 일을 하면서 메모하고 지시를 내릴 수 있습니다.
  • 운전할 때처럼 키보드 사용이 힘들거나 위험한 경우, 사용자는 음성으로 명령을 내리거나 메시지를 받아쓰게 할 수 있습니다.
  • 음성 인식 전화 응답 시스템은 사용자의 메뉴 탐색 없이 복잡한 요청을 처리할 수 있습니다.
  • 장애가 있어 다른 입력 수단을 사용할 수 없는 사람들은 음성으로 컴퓨터 및 기타 자동화된 시스템과 상호 작용할 수 있습니다.
  • 자동 전사는 사람이 전사하는 것보다 빠를 뿐만 아니라 비용이 적게 듭니다.
  • 대부분의 경우 음성 인식은 타이핑보다 빠릅니다. 평균적으로 사람은 분당 150개 단어를 말할 수 있지만 타이핑 속도는 분당 고작 40개 단어 수준이며 키패드가 작은 스마트폰에서는 이 속도가 훨씬 더 떨어집니다.
  • 이제 스마트폰과 데스크탑 컴퓨터는 음성 텍스트 변환 기능을 보편적으로 제공합니다. 의료, 법률, 교육 등의 분야에서 특수 목적에 응용될 수도 있습니다. 적용 사례가 대세가 되고 가정과 자동차 및 사무실에서 장치를 통해 사용되면서 학계와 업계에서 이 분야에 대한 연구가 폭발적으로 늘어났습니다.

ASR의 작동 원리는?

ASR은 자연어 처리에서 어려운 작업에 속합니다. 잡음이 있고 분할되지 않은 입력 데이터에서 레이블 시퀀스를 예측하기 위하여 음성 분할, 음향 모델링, 언어 모델링과 같은 일련의 하위 작업으로 구성되기 때문입니다. ASR에서 딥 러닝은 음소(음성 생성에 사용되는 소리의 최소 단위)를 식별할 때 더 높은 정확도를 제공하기 때문에 은닉 마르코프 모델, 가우시안 혼합 모델과 같은 기존의 통계적 방식을 대체하게 되었습니다. 딥 러닝 연결 시간 분류(CTC)가 도입되면서 데이터를 사전에 분할할 필요가 없어졌고 이를 통해 신경망은 바로 ASR 등의 시퀀스 레이블링 작업을 위한 엔드투엔드 훈련을 받을 수 있게 되었습니다.

일반적인 ASR CTC 파이프라인에는 다음과 같은 단계가 포함됩니다.

  • 특징 추출: 첫 번째 단계는 입력 오디오에서 유용한 오디오 특징을 추출하고 잡음과 기타 관련 없는 정보를 무시하는 것입니다. 멜 주파수 켑스트럴 계수(MFCC) 기법이 스펙트로그램 또는 멜 스펙트로그램에서 오디오 스펙트럼 특징을 포착합니다.

Text-to-speech.

  • 음향 모델: 스펙트로그램은 딥 러닝 기반 음향 모델로 전달되어 각 타임 스텝에서 문자의 확률을 예측하는 데 사용됩니다. 훈련 과정에서 음향 모델은 목표 언어를 사용하는 수백 시간 분량의 오디오 및 전사로 구성된 데이터 세트(LibriSpeech ASR 코퍼스, Wall Street Journal, TED-LIUM 코퍼스, Google AudioSet)를 학습합니다. 음향 모델 출력에는 단어가 어떻게 발음되는지에 따라 반복된 문자가 포함될 수 있습니다.
  • 디코딩: 디코더와 언어 모델은 맥락을 기반으로 문자들을 단어 시퀀스로 변환합니다. 단어들은 다음 단계로 전달되기 전에 구와 문장으로 버퍼링되고 적절하게 구두점이 삽입될 수 있습니다.
    • 그리디(argmax): 디코더에서 가장 단순한 전략입니다. 전달받은 것의 의미를 고려하지 않고 각 타임 스텝에서 가장 확률이 높은 문자(템포럴 소프트맥스 출력층)가 선택됩니다. 그런 다음 반복되는 문자는 삭제되거나 병합되고 빈 토큰은 폐기됩니다.
    • 언어 모델을 사용하면 맥락을 추가하여 음향 모델의 실수를 수정할 수 있습니다. 빔 탐색(beam search) 디코더는 소프트맥스 출력의 상대확률을 맥락상 특정 단어가 나타날 가능성과 비교 검토합니다. 즉, 음향 모델이 들었다고 생각하는 것과 다음 단어가 될 가능성이 있는 것을 결합하여 실제 말해진 내용을 판단하려고 합니다.

딥 러닝과 GPU로 ASR 가속화하기

연결 시간 분류(CTC)와 같은 혁신적 기술은 ASR이 딥 러닝을 활용하게 되는 데 중요한 역할을 했습니다. ASR에 많이 사용되는 딥 러닝 모델로는 Wav2letter, Deepspeech, LAS 등이 있으며, 좀 더 최근에 NVIDIA 리서치가 개발한 Jasper는 딥 러닝을 활용하여 음성 애플리케이션을 개발하는 데 사용되는 툴킷입니다. Kaldi는 딥 러닝 모듈에 더해 기존 방식도 지원하는 C++ 툴킷입니다.

GPU는 수백 개의 코어로 구성되어 있어 수천 개의 스레드를 병렬로 처리할 수 있습니다. 신경망은 수많은 동일 뉴런에서 생성되기 때문에 본질적으로 병렬성이 매우 높습니다. 이러한 병렬성은 자연스럽게 GPU로 매핑됩니다. GPU는 CPU만 사용하는 훈련에 비해 월등히 높은 연산 속도를 제공합니다. 예를 들어, GPU 가속 Kaldi 솔루션은 실행 속도가 실시간 오디오보다 3,500배 빠르고 CPU만 사용하는 옵션보다는 10배 더 빠릅니다. 이런 성능으로 인해 GPU는 딥 러닝 모델의 훈련과 추론을 실행하는 플랫폼으로 선호되고 있습니다.

The difference between a CPU and GPU.

업계 응용 사례

헬스케어

의료 부문의 난제 중 하나는 의료 서비스를 쉽게 이용할 수 있도록 만드는 것입니다. 병원에 전화하면 연결까지 한참 기다리는 일이 흔하고, 심사청구 담당자에게 연결되는 것도 마찬가지일 때가 많습니다. 챗봇 훈련을 위한 대화형 AI 구현은 의료 분야에서 부상 중인 기술로, 의료 전문가의 부족을 해결하고 환자에게 소통의 장을 열어줄 수 있습니다.

NGC의 NVIDIA Clara Guardian과 NVIDIA Fleet Command로 스마트 병원 강화하기라는 블로그에서는 환자로부터 입력 쿼리를 수신하고, 의도와 관련 슬롯을 추출하여 쿼리를 해석하며, 자연스러운 음성으로 응답을 실시간 산출하는 가상 환자 도우미 클라이언트 애플리케이션을 구축하는 방법을 알아볼 수 있습니다.

금융 서비스

금융 서비스 회사들은 대화형 AI를 통해 더 나은 챗봇과 AI 비서를 개발하고 있습니다.

소매

챗봇 기술은 고객 문의를 정확하게 분석하고 응답이나 추천을 생성하기 위해 소매 애플리케이션에 일반적으로 사용됩니다. 이를 통해 고객 여정을 간소화하고 매장 운영의 효율성을 개선할 수 있습니다.

NVIDIA GPU 가속 대화형 AI 도구

대화형 AI로 서비스를 제공하는 것은 힘든 일처럼 보일 수 있지만, NVIDIA는 현재 이런 프로세스를 더 쉽게 구현할 수 있도록 Neural Modules(줄여서 NeMo)와 NVIDIA Riva라는 신기술을 비롯하여 여러 가지 도구를 제공하고 있습니다. 시간 절약을 위해 사전 훈련된 ASR 모델, 훈련 스크립트, 성능 결과 등도 NGC 소프트웨어 허브에서 구할 수 있습니다.

NVIDIA NeMo는 파이토치 기반의 툴킷으로, 대화형 AI를 위한 AI 애플리케이션을 개발할 때 사용합니다. NeMo는 모듈식 심층 신경망 개발을 지원하므로, 모듈을 연결하고 구성 요소를 혼합 및 결합하여 빠르게 실험을 완료할 수 있습니다. NeMo 모듈은 보통 데이터 레이어, 인코더, 디코더, 언어 모델, 손실 함수 또는 활성화 결합 방법을 나타냅니다. NeMo는 ASR, NLP, TTS 각각에 재사용할 수 있는 구성 요소를 활용하여 복잡한 신경망 아키텍처와 시스템을 쉽게 구축할 수 있도록 합니다. 또한 NVIDIA GPU Cloud(NGC)에서 대화형 AI를 위한 NeMo 리소스를 찾을 수 있습니다. 여기에는 사전 훈련된 모델, 훈련 또는 평가를 위한 스크립트 그리고 개발자가 자체 데이터 세트를 이용해 여러 알고리즘을 실험하고 전이 학습을 실행할 수 있게 해주는 NeMo 엔드투엔드 애플리케이션 등이 포함됩니다.

전체 ASR 파이프라인의 구현 및 도메인 적응을 용이하게 하기 위해 NVIDIA는 도메인 특화 – NeMo ASR 애플리케이션을 개발했습니다. NeMo로 개발된 이 애플리케이션을 사용하면 개발자가 사전 훈련된(음향 및 언어) ASR 모델을 자체 데이터로 훈련하거나 파인 튜닝할 수 있습니다. 이를 통해 개발자는 점진적으로 자체 데이터에 기반하여 더 나은 성능을 발휘하는 ASR 모델을 개발할 수 있습니다.

NVIDIA NeMo also comes with an extendable collection of models for ASR, NLP, and TTS.

NVIDIA Riva대화형 AI 작업을 수행하기 위한 여러 파이프라인을 제공하는 애플리케이션 프레임워크입니다.

NVIDIA Riva Server.

NVIDIA GPU 가속 엔드투엔드 데이터 사이언스

CUDA 를 기반으로 하는 오픈 소스 소프트웨어 라이브러리인 NVIDIA RAPIDS 제품군을 사용하면 판다스(Pandas) 및 Scikit-learn API와 같은 익숙한 인터페이스를 계속 사용하면서 엔드투엔드 데이터 사이언스 및 분석 파이프라인을 전적으로 GPU에서 실행할 수 있습니다.

End-to-end data science and analytics pipelines entirely on GPUs.

NVIDIA GPU 가속 딥 러닝 프레임워크

GPU 가속 딥 러닝 프레임워크는 맞춤형 심층 신경망을 유연하게 설계하고 훈련할 수 있는 기능과 파이썬, C/C++와 같이 일반적으로 사용되는 프로그래밍 언어를 위한 인터페이스를 제공합니다. MXNet, 파이토치, 텐서플로 등과 같이 널리 사용되는 딥 러닝 프레임워크는 고성능 멀티 GPU 가속 훈련을 제공하기 위해 NVIDIA GPU 가속 라이브러리를 사용합니다.

Widely used deep learning frameworks.

다음 단계

더 자세한 내용은 아래 블로그, 코드 샘플, 웨비나 등을 참조해 주세요.

더 알아보기:

  • GPU 가속 데이터센터는 더 적은 서버, 더 작은 공간, 더 낮은 전력 소비로도 전례 없는 성능을 제공할 수 있습니다. NVIDIA GPU Cloud(NGC)는 방대한 소프트웨어 라이브러리를 무료로 제공할 뿐만 아니라, GPU를 최대한 활용하는 고성능 컴퓨팅(HPC) 환경을 구축하는 데 유용한 여러 도구를 제공합니다.
  • NVIDIA Deep Learning Institute(DLI)는 강사 주도형 실습 교육을 통해 문서 분류 등의 텍스트 분류 작업을 위한 트랜스포머 기반 자연어 처리 모델을 구축하는 데 필요한 기본적인 도구와 기법을 소개하고 있습니다.