> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cartesia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# テキスト正規化

> 書き言葉を話し言葉に変換する方法の制御と、デバッグのヒント。

テキスト正規化は、書き言葉の表記を話し言葉の形式に変換します。たとえば `7:00 PM` は「seven PM」と読まれ、`(415) 555-1212` は 12 桁の数字列ではなく電話番号として読まれます。デフォルトでは、モデルが発話する前にすべての TTS リクエストで実行されます。

正規化は `normalization` フィールドで制御します：

* `auto`（デフォルト）：リクエストの `language` または `locale` の読み上げ規則を使用します
* `off`：ノーマライザーをスキップします
* `en` や `en-IN` などの言語コードまたはロケールコード：その言語または地域の読み上げ規則を使用します。[サポートされているロケール](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/advanced-capabilities.md#which-locales-are-supported)を参照してください。

ほとんどのトランスクリプトは事前の準備を必要としません。このページでは、ノーマライザーが処理する内容、現在の制限事項とその回避策、および正規化をオフにする方法について説明します。

## 正規化される内容

| カテゴリ | 入力例 | ステータス |
| - | - | - |
| 日付 | `04/20/2026` | 一般的な表記は自動的に正規化されます |
| 時刻 | `7:00 PM`、`14:30` | 一般的な表記は自動的に正規化されます。24 時間表記の時刻は、その言語の慣習どおりに読まれます（例：「fourteen thirty」） |
| 電話番号 | `(415) 555-1212` | 一般的な表記は自動的に正規化されます |
| 通貨 | `$19.99` | 一般的な表記は自動的に正規化されます |
| 単位 | `km` | 日常的に使われる単位は自動的に正規化されます |
| 数値 | `1,234,567` | 一般的な表記は自動的に正規化されます |
| 日付の範囲 | `1999-2000` | 正規化されません。[範囲は「to」を使って書いてください](#a-date-or-year-range-reads-out-wrong) |
| 分数 | `2/3` | 正規化されません。書き下してください（「two thirds」） |
| その他 | 数式、化合物、一般的でない単位（例：V、Pa） | 正規化されません。書き下してください（「volts, pascals」） |

**正規化される**カテゴリでは、リクエストの `language` または `locale` の慣習が使われます。**一般的な表記**は、[プロンプトのヒント](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/prompting-tips.md#recommendations)に示されている形式であれば正しく読まれます。一般的でない表記の場合は、フォールバックとして[事前正規化](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/prompting-tips.md#pre-normalization)してください。

## 既知の制限事項

### 日付や年の範囲が正しく読まれない

`1999-2000` や `Dec 5-Dec 12` のようなハイフンでつないだ範囲は、どの言語でも自動的には正規化されません。代わりに「to」を使って範囲を書いてください：

| 不確実 | 確実 |
| - | - |
| `The war lasted from 1999-2000.` | `The war lasted from 1999 to 2000.` |
| `Open Dec 5-Dec 12.` | `Open Dec 5 to Dec 12.` |
| `$10-15` | `10 to 15 dollars` |

### 業界固有の用語

業界によっては、その業界内では通じる一般的な略語があります（航空業界での `PAX` = 乗客など）。こうした略語は一般には使われないため、想定どおりに読まれるよう、これらの用語は事前正規化することをおすすめします。

### 略語

一般的なパターン（`Dr. Smith`、`123 Main St`）は通常正しく読まれます。あまり一般的でない敬称、略語、住所の形式（例：`STE`）は正しく読まれない場合があります。その場合は、読み上げてほしい形に書き下すか、繰り返し出てくる用語には[発音辞書](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/custom-pronunciations.md)を使用してください。

## 正規化をオフにする

高度な機能の[正規化をオフにする](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/advanced-capabilities.md#turning-normalization-off)を参照してください。

## 読み上げの問題のトラブルシューティング

1. **単語は正しいのに発音が違う場合**：[発音辞書](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/custom-pronunciations.md)を使用してください。
2. **表記が誤った単語に展開される場合**：ノーマライザーが処理できる形式で入力を書き直すか、トランスクリプトを事前正規化してください。
3. **それでも正しくない場合**：トランスクリプトを事前正規化し、[正規化をオフ](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/advanced-capabilities.md#turning-normalization-off)にしてください。これにより、読み上げる形を完全に制御できます。

トランスクリプトの書き方については、[プロンプトのヒント](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/prompting-tips.md)を参照してください。

## ノーマライザーの実例

### 事前正規化したテキストとノーマライザーのオフ

読み上げる形にすでに書き下した「テレプロンプター」用のトランスクリプト、記号の独自の読み上げ、単語として読ませたいすべて大文字の単語などに使います：

```json theme={null}
{
  "model_id": "sonic-3.6",
  "transcript": "Your total is nineteen dollars and ninety-nine cents.",
  "voice": "a0e99841-438c-4a64-b679-ae501e7d6091",
  "locale": "en",
  "normalization": "off",
  "output_format": { "container": "mp3", "sample_rate": 44100, "bit_rate": 128000 }
}
```

スキップされるのは自動ノーマライザーだけです。引き続き適用される内容については、[正規化をオフにする](#turning-normalization-off)を参照してください。

### 英国アクセントと米国の読み上げ規則

この例では、英国アクセントの音声 Gemma を使い、`normalization` で読み上げ規則を変更します。

```json theme={null}
{
  "model_id": "sonic-3.6",
  "transcript": "Your appointment is on 03/04/2026.",
  "voice": "62ae83ad-4f6a-430b-af41-a9bede9286ca",
  "locale": "en-GB",
  "normalization": "en-US",
  "output_format": { "container": "mp3", "sample_rate": 44100, "bit_rate": 128000 }
}
```

英国アクセントと米国の規則で読まれます（`03/04/2026` は March fourth と読まれます）。

### 1 つのトランスクリプト内で異なる読み上げ規則を使う

ある節はヒンディー語の読み上げ、別の節は英語の読み上げが必要な場合は、トランスクリプトを分割し、異なる `normalization` 値と**同じ音声**で 2 つのリクエストを送信します。こうすることでアクセントが一貫します。その後、クライアント側で音声を連結します：

```json Request 1 theme={null}
{
  "model_id": "sonic-3.6",
  "transcript": "Aapki appointment 15 tareekh ko hai.",
  "voice": "a0e99841-438c-4a64-b679-ae501e7d6091",
  "locale": "hi-IN",
  "normalization": "hi-IN",
  "output_format": { "container": "raw", "encoding": "pcm_s16le", "sample_rate": 44100 }
}
```

```json Request 2 theme={null}
{
  "model_id": "sonic-3.6",
  "transcript": "Please arrive by 2:30 PM on 08/15/2026.",
  "voice": "a0e99841-438c-4a64-b679-ae501e7d6091",
  "locale": "hi-IN",
  "normalization": "en-IN",
  "output_format": { "container": "raw", "encoding": "pcm_s16le", "sample_rate": 44100 }
}
```

[WebSocket API](https://docs.cartesia.ai/ja-jp/api-reference/tts/websocket.md) では、連続する生成の raw PCM チャンクをそのまま連結できます。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.