모범 사례
모범 사례
전달 방식, 발음, 감정을 제어하고 음성용 텍스트를 최적화하는 방법을 알아보세요.
이 가이드에서는 ElevenLabs 모델을 사용해 텍스트 음성 변환 결과물을 개선하는 기법을 소개합니다. 이러한 방법을 실험하여 필요에 가장 적합한 방식을 찾아보세요.
제어
더욱 향상된 출력 제어 기능을 제공하기 위해 _Director’s Mode_를 적극적으로 개발하고 있습니다.
_Director’s Mode_와 같은 고급 기능이 출시되기 전까지, 이 기법들을 활용하면 세밀한 결과를 실용적으로 얻을 수 있습니다.
일시 정지
Eleven v4 및 Eleven v3는 SSML break 태그를 지원하지 않습니다. 일시 정지를 제어하려면 Eleven v4 프롬프팅 섹션에 설명된 기법을 사용하세요.
최대 3초까지 자연스러운 일시 정지를 위해 <break time="x.xs" />를 사용하세요.
한 번의 생성에 break 태그를 너무 많이 사용하면 불안정해질 수 있습니다. AI가 더 빠르게 말하거나 추가 소음 또는 오디오 아티팩트를 생성할 수 있습니다. 이 문제를 해결하기 위해 노력하고 있습니다.
- 일관성: 자연스러운 말의 흐름을 유지하려면
<break>태그를 일관되게 사용하세요. 과도하게 사용하면 불안정해질 수 있습니다. - 음성별 동작: 음성마다 일시 정지를 다르게 처리할 수 있으며, 특히 “uh” 또는 “ah” 같은 필러 사운드로 학습된 음성은 차이가 클 수 있습니다.
<break>의 대안으로는 짧은 일시 정지에 대시(- 또는 —)를, 망설이는 어조에 줄임표(…)를 사용할 수 있습니다. 하지만 일관성은 떨어집니다.
발음
Eleven v4의 IPA
Eleven v4(eleven_v4)는 국제 음성 기호(IPA)를 기본적으로 더 잘 지원하므로, 이름, 기술 용어 및 특별한 처리가 필요한 기타 단어의 발음을 더 정밀하게 제어할 수 있습니다. IPA 발음은 이전 모델보다 일관적이지만, 결과는 음성과 구문에 따라 달라질 수 있습니다. 프로덕션에서 사용하기 전에 선택한 음성으로 중요한 발음을 테스트하는 것이 좋습니다.
XML 스타일의 phoneme 태그가 필요한 이전 모델과 달리, Eleven v4는 텍스트에서 IPA 기호를 슬래시로 감싸면 이를 이해합니다.
IPA 표기는 다음과 같아야 합니다.
- 시작과 끝을 슬래시(
/)로 감쌀 것 - 표준 IPA 기호를 사용할 것
- 문자열 파라미터로 전달할 때는 큰따옴표로 감쌀 것
코드 예시
하나의 텍스트 문자열에 여러 IPA 표기를 포함할 수 있습니다.
모범 사례
- 국제 음성 기호 차트의 표준 IPA 기호를 사용하세요.
- 여러 음절 단어에는 강세 기호를 포함하세요. 주강세(ˈ)와 부강세(ˌ)를 사용합니다.
- 선택적으로 적용하세요. 발음 제어가 필요한 특정 단어 또는 구문만 감싸세요.
- 사용하는 음성으로 테스트하세요. 음성마다 IPA를 약간 다르게 해석할 수 있습니다.
문제 해결
발음이 여전히 올바르지 않음
IPA 사전을 사용해 IPA 표기가 정확한지 확인하세요. 여러 음절 단어에는 강세 기호(주강세는 ˈ, 부강세는 ˌ)를 포함하세요. 일부 음성은 다른 음성보다 IPA를 더 정확하게 해석할 수 있으므로 여러 음성으로 테스트해 보세요.
동일한 IPA에서 결과가 일관되지 않음
IPA 발음은 이전 모델보다 일관적이지만, 결과는 여전히 음성과 구문에 따라 달라질 수 있습니다. 프로덕션에서 사용하기 전에 선택한 음성으로 중요한 발음을 테스트하는 것이 좋습니다. 일관된 결과가 필요하다면 여러 번 생성한 뒤 가장 좋은 결과를 선택하세요.
v2 모델용 phoneme 태그
v2 모델에서는 SSML phoneme 태그를 사용해 발음을 지정하세요. 지원되는 알파벳에는 CMU Arpabet 및 국제 음성 기호(IPA)가 포함됩니다.
Phoneme 태그는 eleven_flash_v2 모델에서만 호환됩니다.
v2 모델에서 일관되고 예측 가능한 결과를 얻으려면 CMU Arpabet 사용을 권장합니다. IPA도 효과적일 수 있지만, 일반적으로 CMU Arpabet이 더 안정적인 성능을 제공합니다.
Phoneme 태그는 개별 단어에만 작동합니다. 특정 방식으로 발음하고 싶은 이름과 성이 있다면 각 단어에 대해 phoneme 태그를 만들어야 합니다.
정확한 발음을 유지하려면 여러 음절 단어에 올바른 강세를 표시하세요.
Alias 태그
Phoneme 태그를 지원하지 않는 모델의 경우 단어를 좀 더 발음에 가깝게 표기해 볼 수 있습니다. 대문자, 대시, 아포스트로피 또는 한 글자나 여러 글자를 작은따옴표로 감싸는 등 다양한 방법을 사용할 수도 있습니다.
예를 들어 “trapezii” 같은 단어는 “ii” 부분을 더 강조하기 위해 “trapezIi”로 표기할 수 있습니다.
텍스트에서 단어를 직접 바꿀 수도 있고, 발음 사전을 사용할 때 다른 단어 또는 구문으로 발음을 지정하고 싶다면 alias 태그를 사용할 수도 있습니다. Phoneme 태그를 지원하지 않는 Multilingual v2로 생성하는 경우에 유용합니다. ElevenCreative Studio, 더빙 스튜디오 및 API를 통한 음성 합성에서 발음 사전을 사용할 수 있습니다.
예를 들어 텍스트에 AI가 처리하기 어려울 수 있는 특이한 발음의 이름이 포함되어 있다면, 원하는 발음을 지정하는 alias 태그를 사용할 수 있습니다.
텍스트에서 약어가 등장할 때마다 항상 특정 방식으로 발음되도록 하려면 alias 태그로 이를 지정할 수 있습니다.
발음 사전
ElevenCreative Studio 및 더빙 스튜디오 같은 일부 도구에서는 발음 사전을 만들고 업로드할 수 있습니다. 이를 통해 캐릭터명이나 브랜드명 같은 특정 단어의 발음 또는 약어를 읽는 방식을 지정할 수 있습니다.
발음 사전은 음성 기호 또는 단어 대체를 사용해 단어 쌍과 그 발음을 지정한 어휘집 또는 사전 파일을 업로드할 수 있도록 하여 이 기능을 제공합니다.
프로젝트에서 이러한 단어 중 하나가 발견되면 AI 모델은 지정된 대체 표현을 사용해 해당 단어를 발음합니다.
발음 사전 파일을 제공하려면 프로젝트 설정을 열고 TXT 또는 .PLS 형식의 파일을 업로드하세요. 프로젝트에 사전을 추가하면 새 사전 파일을 사용해 다시 변환해야 하는 프로젝트 부분을 자동으로 다시 계산하고, 이를 미변환 상태로 표시합니다.
현재는 phoneme 또는 alias 태그를 사용해 대체 표현을 지정하는 발음 사전만 지원합니다.
Phoneme과 alias는 모두 그래핌이라고 하는 검색 대상 단어 또는 구문과, 이를 대체할 표현을 지정하는 규칙 집합입니다. 검색은 대소문자를 구분합니다. 발음 사전에서 대체할 단어를 확인할 때는 사전을 처음부터 끝까지 검사하며, 가장 처음 발견된 대체 표현만 사용됩니다.
발음 사전 예시
다음은 “Apple”의 발음을 지정하는 phoneme과 “UN”을 “United Nations”로 대체하는 alias를 포함한 CMU Arpabet 및 IPA 발음 사전 예시입니다.
발음 사전 .pls 파일을 생성할 수 있는 몇 가지 오픈 소스 도구가 있습니다.
- Sequitur G2P - 데이터에서 발음 규칙을 학습하고 음성 전사를 생성할 수 있는 오픈 소스 도구입니다.
- Phonetisaurus - CMUdict 같은 기존 사전으로 학습된 오픈 소스 G2P 시스템입니다.
- eSpeak - 텍스트에서 phoneme 전사를 생성할 수 있는 음성 합성기입니다.
- CMU Pronouncing Dictionary - 음성 전사가 포함된 사전 구축 영어 사전입니다.
감정
서술적 맥락이나 명시적인 대화 태그를 통해 감정을 전달하세요. 이 방식은 AI가 재현할 어조와 감정을 이해하는 데 도움이 됩니다.
명시적인 대화 태그는 맥락에만 의존하는 것보다 더 예측 가능한 결과를 제공하지만, 모델은 여전히 감정 전달 가이드를 소리 내어 말합니다. 원하지 않는 경우 오디오 편집기를 사용해 후반 작업에서 제거할 수 있습니다.
속도
오디오 속도는 음성을 만드는 데 사용된 오디오의 영향을 크게 받습니다. 음성을 만들 때 부자연스럽게 빠른 말하기 같은 속도 문제를 방지하려면 더 길고 연속적인 샘플을 사용하는 것이 좋습니다.
생성된 오디오의 속도를 제어하려면 속도 설정을 사용할 수 있습니다. 이를 통해 생성된 음성의 속도를 높이거나 낮출 수 있습니다. 속도 설정은 웹사이트와 API의 텍스트 음성 변환, ElevenCreative Studio 및 Agents Platform에서 사용할 수 있습니다. 음성 설정에서 찾을 수 있습니다.
기본값은 1.0이며, 속도가 조정되지 않음을 의미합니다. 1.0 미만의 값은 음성을 최소 0.7까지 느리게 만듭니다. 1.0 초과의 값은 음성을 최대 1.2까지 빠르게 만듭니다. 극단적인 값은 생성된 음성의 품질에 영향을 줄 수 있습니다.
자연스럽고 서술적인 스타일로 작성해 속도를 제어할 수도 있습니다.
팁
일반적인 문제
일시 정지가 일관되지 않음: 일시 정지에
<break time=“x.xs” />문법을 사용했는지 확인하세요.- 발음 오류: 정확한 발음을 위해 CMU Arpabet 또는 IPA phoneme 태그를 사용하세요.
감정 불일치: 감정을 안내할 서술적 맥락 또는 명시적인 태그를 추가하세요. 후반 작업에서 감정 안내 텍스트를 반드시 제거하세요.
출력 개선 팁
원하는 속도나 감정을 얻기 위해 다른 표현을 실험해 보세요. 복잡한 음향 효과의 경우 프롬프트를 더 작고 순차적인 요소로 나누고 결과를 수동으로 결합하세요.
창의적 제어
사용자에게 더욱 향상된 출력 제어 기능을 제공하기 위해 “Director’s Mode”를 적극적으로 개발하고 있으며, 그동안 창의성과 정밀도를 극대화할 수 있는 몇 가지 기법을 소개합니다.
텍스트 정규화
전화번호, 우편번호, 이메일과 같은 복잡한 항목에 텍스트 음성 변환을 사용하면 발음이 부정확할 수 있습니다. 이는 특정 항목이 학습 세트에 없거나, 작은 모델이 해당 항목의 발음 방식을 일반화하지 못하기 때문인 경우가 많습니다. 이 가이드에서는 이러한 차이가 발생하는 경우와 올바르게 발음하도록 하는 방법을 설명합니다.
숫자, 날짜 및 기타 복잡한 텍스트 요소의 발음을 개선하기 위해 모든 TTS 모델에서 정규화가 기본적으로 활성화되어 있습니다.
모델마다 입력을 다르게 읽는 이유는 무엇인가요?
일부 모델은 숫자와 구문을 더 사람답게 읽도록 학습되었습니다. 예를 들어 Eleven Multilingual v2 모델은 “$1,000,000”이라는 구문을 “one million dollars”로 올바르게 읽습니다. 하지만 Eleven Flash v2.5 모델은 같은 구문을 “one thousand thousand dollars”로 읽습니다.
그 이유는 Multilingual v2 모델이 더 큰 모델이어서 사람 청취자에게 더 자연스러운 방식으로 숫자를 읽는 방법을 더 잘 일반화할 수 있는 반면, Flash v2.5 모델은 훨씬 작은 모델이므로 그러지 못하기 때문입니다.
일반적인 예시
텍스트 음성 변환 모델은 다음 항목에서 어려움을 겪을 수 있습니다.
- 전화번호(“123-456-7890”)
- 통화(“$47,345.67”)
- 캘린더 일정(“2024-01-01”)
- 시간(“9:23 AM”)
- 주소(“123 Main St, Anytown, USA”)
- URL(“example.com/link/to/resource”)
- 단위 약어(“Terabyte” 대신 “TB”)
- 단축키(“Ctrl + Z”)
완화 방법
학습된 모델 사용
이를 완화하는 가장 간단한 방법은 Eleven Multilingual v2 모델처럼 숫자와 구문을 더 사람답게 읽도록 학습된 TTS 모델을 사용하는 것입니다. 하지만 저지연이 중요한 사용 사례(예: 대화형 에이전트)가 있는 경우처럼 항상 가능한 것은 아닙니다.
LLM 프롬프트에 정규화 적용
LLM을 사용해 TTS용 텍스트를 생성하는 경우 프롬프트에 정규화 지침을 추가할 수 있습니다.
명확하고 구체적인 프롬프트 사용
LLM은 구조화되고 명시적인 지침에 가장 잘 반응합니다. 프롬프트에서 텍스트를 음성으로 읽기 쉬운 형식으로 변환하기를 원한다는 점을 명확히 지정해야 합니다.
다양한 숫자 형식 처리
모든 숫자를 같은 방식으로 읽지는 않습니다. 숫자 유형별로 어떻게 읽어야 하는지 고려하세요.
- 기수: 123 → “one hundred twenty-three”
- 서수: 2nd → “second”
- 금액: $45.67 → “forty-five dollars and sixty-seven cents”
- 전화번호: “123-456-7890” → “one two three, four five six, seven eight nine zero”
- 소수 및 분수: “3.5” → “three point five”, “⅔” → “two-thirds”
- 로마 숫자: “XIV” → “fourteen”(제목인 경우 “the fourteenth”)
약어 제거 또는 확장
명확성을 위해 일반적인 약어는 확장해야 합니다.
- “Dr.” → “Doctor”
- “Ave.” → “Avenue”
- “St.” → “Street”(단, “St. Patrick”은 그대로 유지)
프롬프트에서 명시적으로 확장을 요청할 수 있습니다.
모든 약어를 완전한 구어 형태로 확장하세요.
모두 적용하기
이 프롬프트는 대부분의 사용 사례에 적합한 출발점이 됩니다.
전처리에 정규 표현식 사용
코드를 사용해 LLM에 프롬프트를 전달하는 경우, 모델에 텍스트를 제공하기 전에 정규 표현식을 사용해 텍스트를 정규화할 수 있습니다. 이는 더 고급 기법이며 정규 표현식에 대한 일부 지식이 필요합니다. 다음은 몇 가지 간단한 예시입니다.
Eleven v4 프롬프팅
이 섹션은 Eleven v4를 위한 내용입니다. 아래 기법 중 다수는 Eleven v3에도 적용됩니다. 전반적으로 Eleven v4는 Eleven v3보다 거의 모든 경우에서 더 나은 결과를 제공하는 업그레이드입니다. 직접 차이를 확인할 수 있도록 v4로 전환한 뒤 자체 음성과 콘텐츠로 테스트해 보실 것을 강력히 권장합니다. 일부 특수한 경우에는 다른 모델이 더 적합할 수 있지만, 대부분의 사용자에게는 v4가 더 나은 선택일 것입니다.
음성 복제, 액센트 처리, 변형 모델 및 비교 등 모델의 변경 사항은 Eleven v4를 참조하세요.
Eleven v4와 Eleven v3는 SSML break 태그를 지원하지 않습니다. 오디오 태그, 문장 부호(줄임표), 텍스트 구조를 사용해 휴지와 속도를 제어하세요.
음성 선택
음성은 여전히 중요합니다. 속삭임, 외침, 특정 전달 방식처럼 이미 학습 데이터에 있는 표현은 모델이 재현하기 더 쉽습니다. 해당 데이터에 없는 표현을 요청하는 일은 더 어렵습니다. Eleven v4는 이전 모델보다 오디오 태그를 더 안정적으로 따르며, 음성이 해당 표현 방식으로 학습되지 않은 경우에도 마찬가지입니다. 한 번도 속삭인 적 없는 음성도 [whispering]을 따를 수 있고, 한 번도 외친 적 없는 음성도 [shouting]을 따를 수 있습니다. 다만 안정성이 떨어질 수 있으며 결과가 최적이 아닐 수 있습니다. 초기 테스트에서는 상당히 잘 작동하는 것으로 보입니다. 원하는 음성과 구체적인 사용 사례로 직접 테스트해 보실 것을 강력히 권장합니다.
오디오 태그
오디오 태그(예: [whispering], [shouting], [laughing])를 사용하면 전달 방식을 세밀하게 제어할 수 있으며, Eleven v4는 이전 모델보다 한층 더 섬세하게 처리합니다. 아직 완벽하지는 않으며, 모델이 태그 지시를 얼마나 안정적으로 따르는지 계속 개선하고 있습니다. 이는 지속적으로 투자 중인 분야이며 계속 발전할 것입니다.
원하는 바를 명확하게 표현하면 큰 도움이 됩니다. Eleven v4는 음성 전달 스타일과 음향 효과를 모두 생성하도록 학습되었기 때문에, 태그가 전달 지시가 아닌 음향 효과 요청으로 해석되거나 그 반대가 될 때가 있습니다. 원하는 음성 특성을 명확히 설명하는 태그(예: 음향 신호로 해석될 수 있는 표현 대신 [low, gravelly voice])를 작성하면 모델이 의도한 결과를 더 잘 제공합니다. 사용 사례에 맞는 태그와 표현을 테스트해 보시길 권장하며, 이 부분도 계속 개선될 예정입니다.
표현 방식이 이미 음성의 학습 데이터에 있을 때 태그가 더 잘 적용됩니다. Eleven v4는
[whispering] 또는 [shouting]처럼 해당 음성이 학습되지 않은 태그도 따를 수 있지만,
결과가 최적이 아닐 수 있습니다.
음성 관련
다음 태그는 음성 전달 방식과 감정 표현을 제어합니다.
[laughs],[laughs harder],[starts laughing],[wheezing][whispers][sighs],[exhales][sarcastic],[curious],[excited],[crying],[snorts],[mischievously]
음향 효과
환경음과 효과를 추가하세요.
[gunshot],[applause],[clapping],[explosion][swallows],[gulps]
고유 및 특수 태그
창의적인 애플리케이션을 위한 실험적 태그입니다.
[strong X accent](X를 원하는 액센트로 바꾸세요)[sings],[woo],[fart]
일부 실험적 태그는 음성에 따라 일관성이 떨어질 수 있습니다. 프로덕션에서 사용하기 전에 충분히 테스트하세요.
문장 부호
문장 부호는 v4의 전달 방식에 큰 영향을 미칩니다.
- 줄임표 (…) 는 휴지와 무게감을 더합니다
- 대문자 사용 은 강조를 높입니다
- 일반 문장 부호 는 자연스러운 말하기 리듬을 제공합니다
단일 화자 예시
태그는 의도적으로 사용하고 음성의 성격에 맞추세요. 명상적인 음성은 외치면 안 되며, 흥분된 음성은 설득력 있게 속삭이지 못합니다.
표현력 있는 독백
역동적이고 유머러스한 표현
고객 서비스 시뮬레이션
다중 화자 대화
v4는 다중 음성 프롬프트를 효과적으로 처리할 수 있습니다. 각 화자에게 보이스 라이브러리의 고유한 음성을 할당해 현실적인 대화를 만들어 보세요.
대화 쇼케이스
글리치 코미디
겹치는 타이밍
입력 개선
ElevenLabs UI에서 “Enhance” 버튼을 클릭하면 입력 텍스트에 맞는 오디오 태그를 자동으로 생성할 수 있습니다. 내부적으로는 다음 프롬프트를 사용해 LLM이 입력 텍스트를 개선합니다.
팁
태그 조합
복잡한 감정 전달을 위해 여러 오디오 태그를 조합할 수 있습니다. 다양한 조합을 실험하여 음성에 가장 적합한 방식을 찾아보세요.
음성 매칭
태그를 음성의 성격 및 학습 데이터에 맞추세요. 진지하고 전문적인 음성은 [giggles] 또는
[mischievously] 같은 장난스러운 태그에 잘 반응하지 않을 수 있습니다.
텍스트 구조
텍스트 구조는 v4 출력에 큰 영향을 줍니다. 최상의 결과를 위해 자연스러운 말하기 패턴, 적절한 문장 부호, 명확한 감정적 맥락을 사용하세요.
실험
이 목록 외에도 효과적인 태그가 더 많이 있을 수 있습니다. 설명적인 감정 상태와 행동을 실험하여 구체적인 사용 사례에 맞는 방법을 찾아보세요.
예시
성우 연기
장문 내레이션
Eleven v3 프롬프팅
Eleven v4 프롬프팅의 기법은 음성 선택, 오디오 태그, 문장 부호, 다중 화자 대화를 포함해 Eleven v3에도 적용됩니다.
프로페셔널 음성 복제(PVC)는 Eleven v3에 완전히 최적화되어 있지 않아 이전 모델과 비교해 복제 품질이 낮을 수 있습니다. PVC는 v4에서 지원되므로, 프로페셔널 음성 복제나 보이스 라이브러리의 음성을 사용하려면 대신 Eleven v4를 사용해 보시길 권장합니다.