Skip to main content
일본어 텍스트에는 문맥에 따라 발음이 달라질 수 있는 한자, 숫자, 기호, 단위가 자주 포함됩니다.
이러한 텍스트를 그대로 음성으로 변환할 경우, 의도와 다른 발음이 생성되는 문제가 발생할 수 있습니다.
이를 개선하기 위해 Supertone Text-to-Speech는 일본어를 위한 노말라이즈드 텍스트(normalized text) 기능을 제공합니다.
원본 텍스트와 함께 발음을 기준으로 정규화된 텍스트를 함께 입력하면, 보다 명확하고 자연스러운 음성을 생성할 수 있습니다.
이 가이드는 노말라이즈드 텍스트가 왜 필요한지, 언제 사용하면 좋은지, 그리고 이를 효과적으로 생성하는 방법을 설명합니다.

Why Normalized Text Is Needed

일본어의 문자 표현과 실제 발음은 항상 일대일로 대응하지 않습니다. 한자는 여러 가지 읽는 법을 가질 수 있고, 숫자는 문맥에 따라 다르게 발화되며, 기호나 단위는 말로 풀어서 읽히는 경우가 많습니다. 이러한 특성 때문에 TTS 시스템이 원문 텍스트만으로 항상 정확한 발음을 추론하기는 어렵습니다. 노말라이즈드 텍스트는 이러한 간극을 해소하기 위해, 문장의 의미는 유지하면서 어떻게 발화되어야 하는지를 명시적으로 전달합니다.

How It Works

음성을 생성할 때 다음 두 가지를 함께 제공합니다.
  • 한자와 가나가 섞인 자연스러운 일본어 원문 텍스트
  • 발음을 기준으로 변환된 노말라이즈드 텍스트
TTS 엔진은 이 두 입력을 함께 사용합니다.
원문 텍스트는 의미와 문맥을 유지하고, 노말라이즈드 텍스트는 발음을 안내하는 역할을 합니다.
노말라이즈드 텍스트가 제공되지 않으면, 시스템은 원문 텍스트만을 사용해 음성을 생성합니다.

When You Should Use Normalized Text

노말라이즈드 텍스트는 다음과 같은 경우에 특히 유용합니다.
  • 숫자나 퍼센트가 포함된 문장
  • 길이, 무게 등 단위 표현
  • 기호나 약어가 포함된 텍스트
  • 여러 읽는 법을 가진 한자
  • 일본어와 영어가 혼합된 표현
내레이션, 안내 음성, 오디오북, 캐릭터 음성 등 발음 정확도가 중요한 경우에는 사용을 강력히 권장합니다.
간단한 일상 대화 수준의 문장에서는 필수는 아닙니다.

Generating Normalized Text with LLMs

대부분의 워크플로우에서는 TTS API를 호출하기 전에 LLM을 사용해 노말라이즈드 텍스트를 먼저 생성합니다. 아래는 일본어 텍스트를 발음 기준으로 노말라이즈하기 위한 권장 프롬프트입니다.
이 프롬프트는 TTS 요청에 바로 사용할 수 있는 구조화된 JSON 출력을 생성하도록 설계되었습니다.
You will receive a Japanese sentence that may contain kanji, numbers, symbols, and units.
For the given input, provide:
- the original text (natural Japanese text using standard kanji–kana mixed notation, without furigana)
- the normalized text, converted according to the rules below.

Important:
- You must respond only with pure JSON format.
- Do not include any explanations or additional text.
- In original_text, do not include furigana (ruby annotations).

Response Format

{
  "original_text": "[natural Japanese Text]",
  "normalized_text": "[converted Text]"
}

Transcription Conversion Rules
1. Convert all kanji into hiragana using context-appropriate readings.
2. Keep katakana as is.
3. Preserve punctuation exactly as written.
4. Convert Arabic numerals into hiragana.
5. Expand units and English abbreviations into full katakana forms.
6. Apply natural phonological changes such as gemination and sound alternations.

Conversion Examples

{
  "original_text": "今日はどんな一日だったの?",
  "normalized_text": "きょうはどんないちにちだったの?"
}

{
  "original_text": "今日は10%オフだよ。身長は170cm、体重は60kgだって!",
  "normalized_text": "きょうはじゅっパーセントオフだよ。しんちょうはひゃくななじゅっセンチメートル、たいじゅうはろくじゅっキログラムだって!"
}