Text-to-Speech
텍스트-음성 변환(TTS)은 신경망 음향 모델, 보코더, 오디오 토큰 모델을 사용해 어시스턴트와 접근성 기능을 위한 자연스러운 음성을 텍스트에서 생성합니다.
음성 합성이라고도 하는 텍스트 음성 변환(TTS)은 텍스트를 음성 오디오로 변환합니다. TTS 시스템은 각 단어의 발음과 각 소리의 길이, 문장 내에서 음높이와 강세가 변하는 방식을 결정한 다음 파형을 생성합니다. 초기 시스템은 녹음된 음성 조각을 이어 붙이거나 통계 모델로 오디오를 생성했으며, 결과가 인공적으로 들렸습니다. 딥러닝이 이를 바꾸었습니다. DeepMind의 WaveNet은 2016년에 샘플 단위로 원시 오디오를 생성했고, 2017년 Google의 Tacotron 2는 전문가 녹음의 4.58점에 근접한 5점 만점에 4.53점의 평균 의견 점수를 기록했습니다. 현재 시스템은 여러 언어와 음성으로 말하고, 몇 초 분량의 오디오로 음성을 복제하며, 어조에 관한 지시도 따릅니다. 이러한 기능은 스크린 리더, 음성 비서, 오디오북 및 대화형 AI를 지원합니다. TTS는 음성-텍스트 변환의 반대 방향에 해당합니다.
텍스트 음성 변환의 작동 방식#
모든 시스템은 텍스트 프런트엔드에서 시작합니다. 텍스트 정규화는 숫자, 날짜, 통화, 약어를 단어로 풀어 써서 "Dr. Lee paid $3.50"을 "Doctor Lee paid three dollars and fifty cents"로 바꾸며, 자소-음소 변환은 시제에 따라 발음이 달라지는 "read"와 같은 단어를 포함해 발음을 선택합니다. 많은 모델은 각 소리의 길이, 음높이, 에너지인 운율도 예측합니다. 이후 오디오를 생성하는 주요 방식은 다음 두 가지입니다.
- 음향 모델과 보코더: 음향 모델은 시간에 따른 주파수별 에너지 분포를 간결하게 나타내는 멜 스펙트로그램을 예측하고, 신경망 보코더가 이를 파형으로 변환합니다. Tacotron 2는 한 프레임씩 자기회귀 방식으로 스펙트로그램을 예측했습니다. FastSpeech는 음소별 길이를 바탕으로 스펙트로그램을 병렬 예측하여 자기회귀 트랜스포머보다 270배 빠르게 생성합니다. HiFi-GAN 보코더는 V100 GPU 하나에서 실시간보다 167.9배 빠르게 22.05 kHz 오디오를 합성합니다. Voicebox와 F5-TTS도 플로 매칭을 사용해 비자기회귀 방식으로 멜 스펙트로그램을 예측하고 보코더에 전달합니다.
- 오디오 토큰 언어 모델: Microsoft의 VALL-E는 음성을 신경망 오디오 코덱의 이산 토큰으로 처리하고, LLM이 텍스트를 생성하는 방식과 유사하게 트랜스포머 언어 모델로 토큰을 생성합니다. 본 적 없는 화자의 3초 녹음을 프롬프트로 제공하면 해당 음성으로 말을 이어 갑니다.
VITS와 같은 엔드투엔드 모델은 음향 모델과 보코더를 하나의 네트워크로 결합해 단일 단계로 학습하며, 멀티모달 모델인 GPT-4o와 같은 모델은 별도의 TTS 단계를 거치지 않고 응답의 일부로 음성을 직접 생성합니다.
텍스트 음성 변환과 관련 용어 비교#
- 음성-텍스트 변환: 음성 오디오를 텍스트로 받아쓰는 반대 방향의 작업입니다. 음성 비서는 두 작업을 연결합니다. 음성-텍스트 변환으로 사용자의 말을 받아쓰고, 대규모 언어 모델이 답변을 작성한 다음 TTS가 이를 음성으로 출력합니다.
- 음성 복제: 짧은 참조 오디오 클립을 사용하거나 해당 화자의 녹음으로 미세 조정하여 특정 인물의 음성을 구현하는 TTS입니다. 동의 없이 사용하면 오디오 딥페이크를 생성합니다.
- 음성 변환: 녹음된 음성을 입력으로 받아 단어와 전달 방식은 유지하면서 화자의 정체성을 바꿉니다. TTS는 텍스트에서 시작합니다.
실제 적용 사례#
- 접근성: 스크린 리더는 시각 장애인과 저시력 사용자를 위해 인터페이스 요소와 문서를 음성으로 읽어 줍니다. 목소리를 잃은 사람은 메시지를 입력하면 합성 음성이 대신 말해 줍니다.
- 음성 비서 및 에이전트: 고객 서비스 에이전트, 차량 내 비서, 스마트 스피커는 생성된 답변을 음성으로 출력합니다. 답변의 나머지 부분을 작성하는 동안 첫 구절의 오디오를 스트리밍하는 경우가 많습니다.
- 오디오북, 더빙, 이러닝: 출판사와 교육 과정 제작자는 긴 텍스트를 일관된 음성과 여러 언어로 낭독합니다.
- 내비게이션: 턴바이턴 경로 안내를 통해 운전자가 도로에 시선을 집중할 수 있습니다.
컴퓨터 비전과 함께 사용하면 TTS는 시각 장애인에게 주변 상황을 알려 주는 보조 기기처럼 물리적 세계를 음성으로 설명할 수 있습니다. 다음 코드는 거리 사진에 Ultralytics YOLO26 객체 감지를 실행하고 Google 번역의 텍스트 음성 변환 서비스용 Python 라이브러리인 gTTS로 결과를 읽어 줍니다.
from collections import Counter
from gtts import gTTS
from ultralytics import YOLO
# Detect objects in a street photo with YOLO26
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Count detections per class and turn them into a sentence
counts = Counter(result.names[int(c)] for c in result.boxes.cls)
sentence = "I can see " + ", ".join(f"{n} {name}" for name, n in counts.items())
# Synthesize the sentence and save it as an MP3 file
gTTS(text=sentence, lang="en").save("detections.mp3")저장된 detections.mp3은 감지된 각 클래스와 개수를 나열하는 문장을 읽어 줍니다. gTTS는 텍스트를 Google 서버로 전송하므로 스크립트를 실행하려면 인터넷 연결이 필요합니다.
음성 품질 측정#
- 평균 의견 점수(MOS): 청취자는 자연스러움을 1~5점으로 평가하며, 실제 화자의 녹음이 기준 상한을 정합니다.
- 명료도: 음성 인식 모델이 합성된 오디오를 전사하며, 입력 텍스트와 비교한 단어 오류율로 단어가 잘못 출력되거나 생략 또는 반복되는 빈도를 확인합니다. 제로샷 TTS에서 Voicebox의 단어 오류율은 1.9%로, VALL-E의 5.9%보다 낮았습니다.
- 화자 유사도: 복제된 음성의 경우 생성 오디오와 참조 오디오에서 추출한 화자 임베딩 간 코사인 유사도로 음성이 얼마나 비슷한지 측정합니다.
- 실시간 계수(RTF): 합성 시간을 오디오 길이로 나눈 값입니다. F5-TTS는 10초 분량의 음성을 1.5초 만에 생성하여 RTF 0.15를 보고했습니다.










