**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 시스템(챗봇, 콜봇), 내레이션 제작, 스마트 스피커 응용 프로그램 등에서 합성 음성의 품질과 사용자 경험을 향상시키는 데 필수적인 표준 기술입니다.

+ Recent posts