가이드

일반 텍스트를 SSML로 변환하는 방법

일반 텍스트와 음성 설정을 입력하면 음성 합성에 사용할 SSML 마크업을 만들 수 있습니다. 결과는 오디오가 아니라 구조화된 마크업입니다.

도구 SSML 생성기

SSML 마크업을 준비하는 상황

일반 텍스트를 음성 합성용 SSML 마크업으로 준비할 때 이 도구를 사용할 수 있습니다. 결과는 소리 자체가 아니라 음성 합성 엔진에 전달할 구조화된 텍스트입니다. 따라서 안내 방송 원고, 내레이션 문장, 읽기 자료처럼 글을 음성 합성 단계에 넘기려는 경우에 알맞습니다. 입력 문장과 함께 음성 이름을 지정할 수 있습니다. 말하기 속도도 조절할 수 있습니다. 음의 높이도 선택할 수 있습니다. 음량도 설정할 수 있습니다.

이 기능은 일반 텍스트를 SSML 형태로 정리하는 데 초점을 둡니다. 변환 뒤에는 마크업의 문장 구조를 살펴보면 됩니다. 한 줄 원고는 하나의 문장 단위로 묶일 수 있습니다. 문단 사이를 분명히 하려면 빈 줄을 넣을 수 있습니다. 특수문자가 원고에 들어 있어도 마크업 안에서 처리될 수 있는 형태로 바뀝니다. 다만 결과가 사용하려는 음성 합성 엔진에서 그대로 허용되는지는 별도로 확인해야 합니다.

사용 전에 원고의 문장을 정리하세요. 줄바꿈이 필요한 곳을 정하세요. 문단을 나눌 곳에는 빈 줄을 둘 수 있습니다. 음성 이름을 따로 정하지 않을지도 결정하세요. 속도는 듣기 목적에 맞춰 고르세요. 높이는 원하는 말투에 맞춰 선택하세요. 음량은 청취 환경을 고려해 정하세요. 설정을 비워 두는 경우에는 기본 음성 이름이 적용됩니다.

텍스트와 음성 설정 입력 절차

  1. 음성 합성에 사용할 일반 텍스트를 입력합니다. 예를 들어 안내 문장이나 내레이션 원고를 그대로 넣을 수 있습니다. 입력은 선택 사항입니다. 그러나 입력란이 비어 있으면 다음 단계에서 확인할 내용이 달라집니다.

  2. 원고의 줄바꿈을 점검합니다. 내용이 있는 각 줄은 문장 요소로 묶일 수 있습니다. 문단을 나누려면 두 번의 줄바꿈을 사용합니다. 한 번의 줄바꿈과 두 번의 줄바꿈은 결과 구조에서 다르게 취급될 수 있으므로, 원하는 문단 위치에 빈 줄을 배치하세요. 원고에 XML에서 의미가 생길 수 있는 특수문자가 있다면 별도로 마크업을 작성하지 말고 일반 텍스트로 입력합니다. 입력된 문자는 마크업에 들어가기 전에 XML 규칙에 맞게 이스케이프됩니다.

  3. 음성 이름을 지정합니다. 음성 이름을 입력하지 않으면 default가 기본값으로 사용됩니다. 사용하려는 음성 합성 환경에서 인식할 이름을 선택해야 합니다. 이름을 지정하는 것과 실제 음성을 재생하는 것은 다른 단계입니다.

  4. 속도를 선택합니다. 느린 쪽에는 x-slowslow가 있습니다. 기준 선택값은 medium입니다. 빠른 쪽에는 fastx-fast가 있습니다. 원고를 또렷하게 읽히게 하려면 속도 선택을 먼저 검토하세요.

  5. 높이를 정합니다. 낮은 선택값은 x-lowlow입니다. 가운데 선택값은 medium입니다. 높은 선택값은 highx-high입니다. 높이는 말하기 속도와 별도로 정할 수 있습니다.

  6. 음량을 고릅니다. 선택값에는 silent, x-soft, soft, medium, loud, x-loud가 있습니다. 음량 선택은 속도나 높이의 선택과 구분됩니다.

  7. 변환을 실행합니다. 반환된 결과에서 SSML 마크업이 생성되었는지 확인합니다. 입력한 문장이 문장 요소 안에 들어갔는지 살펴봅니다. 빈 줄을 넣었다면 문단 요소가 나뉘었는지도 확인합니다. 선택한 음성 이름과 말하기 설정이 결과에 반영될 자리를 함께 검토합니다.

  8. 결과를 다음 음성 합성 단계에 사용하기 전에 엔진의 지원 범위를 확인합니다. 이 도구가 만드는 것은 마크업입니다. 마크업을 실제 소리로 바꾸는 일은 별도의 음성 합성 엔진에서 이루어집니다.

반환된 마크업의 의미와 확인 범위

결과에 SSML 마크업이 들어 있으면 일반 텍스트가 음성 합성용 구조로 정리된 것입니다. 결과를 오디오 재생 화면으로 해석하면 안 됩니다. 이 도구의 산출물은 녹음 파일이 아닙니다. 실제 발화는 마크업을 넘겨받는 음성 합성 엔진의 단계에서 다뤄집니다.

속도와 높이의 인식된 선택값은 상대적인 백분율 값으로 변환됩니다. 인식된 음량 선택값은 숫자 수준으로 변환됩니다. 목록에 없는 속도는 medium 속도로 대체됩니다. 목록 밖의 높이는 medium 높이로 대체됩니다. 인식되지 않는 음량은 medium 음량으로 대체됩니다. 그러므로 결과에서 기대한 조절이 보이지 않으면 입력한 선택값의 철자를 먼저 확인하세요.

문장 구조도 결과를 읽는 단서가 됩니다. 내용이 있는 줄은 문장 요소로 묶입니다. 두 번의 줄바꿈은 문단 요소를 나누는 기준입니다. 원고의 특수문자는 XML 규칙에 맞게 이스케이프된 형태로 나타날 수 있습니다. 이 처리는 입력 문장을 마크업 안에 넣을 때의 표현 방식과 관련됩니다.

입력란이 비어 있거나 공백만 있으면 성공 상태로 반환될 수 있습니다. 그렇더라도 오류 표시가 포함되고 생성된 음성 마크업은 제공되지 않습니다. 이 경우 결과가 정상적인 변환물인지 판단하기 전에 원고에 실제 문자가 있는지 확인하세요. 변환 결과가 보여도 사용하려는 엔진에서 허용된다고 단정하지 마세요. 엔진별 지원 여부는 해당 환경의 안내와 함께 점검해야 합니다.

사용 예시

회의 안내에 사용할 한 줄 문장을 음성 합성 엔진용 마크업으로 준비하려고 합니다.

회의 안내 문장인 회의는 오후 세 시에 시작합니다.를 입력하고 음성 이름은 default, 속도는 medium, 높이는 high, 음량은 loud로 선택한 뒤 변환을 실행합니다.

한 줄 문장이 문장 요소로 묶인 SSML 마크업이 반환됩니다. 결과에는 지정한 음성 이름과 속도, 높이, 음량을 나타내는 설정 구조가 포함될 수 있습니다.

제한 사항

  • 결과는 SSML 마크업이며 오디오 녹음 파일이 아닙니다. 사용하려는 음성 합성 엔진의 허용 범위는 따로 확인해야 합니다.

자주 발생하는 오류

  • 입력란에 공백만 남기면 오류 표시가 포함된 성공 결과가 반환될 수 있습니다. 변환할 문장을 실제 문자로 입력한 뒤 다시 실행하세요.

자주 묻는 질문

빈 텍스트도 변환할 수 있나요?

입력 내용이 비어 있거나 공백뿐이면 성공 상태가 반환될 수 있지만 오류 표시가 포함되며 음성 마크업은 생성되지 않습니다. 실제 문장을 입력해야 합니다.

음성 이름을 생략하면 어떤 값이 사용되나요?

음성 이름을 입력하지 않은 경우에는 기본 음성 이름인 default가 사용됩니다. 별도 이름을 입력하면 그 이름이 지정됩니다.

지원되지 않는 말하기 설정은 어떻게 처리되나요?

지원 목록 밖의 속도, 높이 또는 음량을 사용하면 해당 설정이 각각 medium으로 대체됩니다. 속도와 높이는 상대적인 백분율 값으로, 음량은 숫자 수준으로 변환됩니다.

도구

SSML 생성기