**SSML(Speech Synthesis Markup Language)**은 텍스트 음성 변환(Text-to-Speech, TTS) 출력의 특징을 세밀하게 제어하기 위해 고안된 XML 기반의 마크업 언어입니다.
일반 텍스트만 TTS 엔진에 전달하면 정해진 방식대로 기계적으로 읽지만, SSML 태그를 사용하면 합성된 음성에 인간의 **운율(prosody)**이나 감정과 유사한 다양한 요소를 추가하거나 조정할 수 있습니다.
🔑 SSML의 주요 기능
SSML은 개발자나 콘텐츠 제작자가 텍스트를 단순한 음성 대신 더욱 자연스럽고 표현력이 풍부한 오디오로 만들 수 있도록 다음과 같은 핵심 제어 기능을 제공합니다.
| SSML 기능 | 태그 예시 | 설명 |
| 발화 구조 | <p>, <s>, <break> | 단락, 문장, 그리고 멈춤 시간(time="500ms")을 명시하여 끊어 읽기를 제어합니다. (GStreamer에서 원했던 '빈 시간 추가'와 유사한 기능) |
| 운율 조정 | <prosody> | 음성의 피치(높낮이), 속도(rate), **음량(volume)**을 세밀하게 조정하여 감정이나 강조를 표현합니다. |
| 발음 제어 | <say-as>, <sub> | 전화번호, 날짜, 통화와 같은 특수 문자열을 어떻게 읽을지 지정합니다. 또는 특정 단어의 일반적인 발음 대신 사용자 지정 발음을 지정합니다. |
| 음성 변경 | <voice> | 단일 SSML 문서 내에서 남성, 여성 등 다른 음성 또는 스타일로 바꾸어 대화나 역할극을 연출할 수 있습니다. |
| 오디오 삽입 | <audio> | 합성된 음성 출력과 함께 배경음악이나 **효과음(FX)**과 같은 사전 녹음된 오디오 파일을 삽입합니다. |
💡 SSML이 필요한 이유
SSML이 없다면 TTS 시스템은 오직 구두점(마침표, 쉼표 등)에만 의존하여 음성을 생성합니다.
예를 들어, "12:34"라는 텍스트가 있을 때, TTS는 상황에 따라 이것을 "열두 시 삼십사 분"으로 읽을 수도, "일 이 삼 사"로 읽을 수도 있습니다.
SSML을 사용하면:
<speak>현재 시간은
<say-as interpret-as="time">12:34</say-as>입니다.
</speak>
위와 같이 명확하게 지정하여 TTS 엔진이 혼동 없이 **"열두 시 삼십사 분"**이라고 읽게 만들 수 있습니다.
SSML은 대화형 AI 시스템(챗봇, 콜봇), 내레이션 제작, 스마트 스피커 응용 프로그램 등에서 합성 음성의 품질과 사용자 경험을 향상시키는 데 필수적인 표준 기술입니다.
'소프트웨어 > 상식' 카테고리의 다른 글
| Npcap : 윈도우용 패킷 캡처 라이브러리 (0) | 2025.09.22 |
|---|---|
| Active Directory(AD) (1) | 2025.09.21 |
| MQTT : 경량 게시-구독(Publish-Subscribe) 메시징 프로토콜 (0) | 2025.09.20 |
| RabbitMQ : 오픈소스 메시지 브로커 (0) | 2025.09.20 |
| Apache Kafka (1) | 2025.09.20 |