> ## 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.

# 高度な機能

> ヒングリッシュのコードスイッチングとテキストノーマライザーを使い、専門的なコンテンツを Sonic がどう話すかを制御します。

Sonic はほとんどのトランスクリプトをそのまま処理できます。以下の機能は、複数言語が混在する音声や、書き言葉の表記の読み上げ方をより細かく制御したい場合を対象としています。

## ヒングリッシュ

Sonic は、1 回の生成の中でヒンディー語と英語のコードスイッチング（ヒングリッシュ）をサポートしています。トランスクリプトを通常の書き言葉の形式（デーヴァナーガリー文字、ラテン文字、またはその混在）で渡すと、モデルは文の途中で自然に言語を切り替えます。

```python theme={null}
from cartesia import Cartesia

client = Cartesia(api_key="your-api-key")
response = client.tts.generate(
    model_id="sonic-3.6",
    transcript="आपका order confirm हो गया है। Delivery expected by Friday.",
    voice="a0e99841-438c-4a64-b679-ae501e7d6091",
    language="hi",
)
audio = response.read()
```

### ローマ字表記のヒンディー語とインド系言語のテキスト

Sonic は、ラテン文字で書かれたヒンディー語やその他のインド系言語（ヒングリッシュやその他の翻字テキスト）を読み上げることができ、Sonic 3.6 ではローマ字表記のトランスクリプトへの追従性が大幅に向上しています。

ローマ字表記のテキストは自然に入力するとおりに書き、英単語は標準的なスペルのままにしてください：

```text theme={null}
Aapka order confirm ho gaya hai. Delivery kal shaam tak hogi.
```

テキストがローマ字表記であっても、`language` フィールドにはトランスクリプトの言語（ヒングリッシュの場合は `hi`）を設定してください。

品質は、トランスクリプト内での文字体系の混在の仕方によって異なります：

| 文字体系の組み合わせ | 例 | `language` | `normalization` |
| - | - | - | - |
| デーヴァナーガリー文字のみ | `आपका औडर आ गया है।` | `hi` | `hi-IN` |
| 英語のみ | `Your order has arrived.` | `en` または `hi` | `en-IN` |
| ローマ字表記のヒンディー語のみ | `Aapka order aa gaya hai.` | `hi` | `en-IN` |
| ローマ字表記のヒンディー語 + 英語 | `Aapka order confirm ho gaya hai.` | `hi` | `en-IN` |
| デーヴァナーガリー文字 + 英語の借用語 | `आपका order confirm हो गया है।` | `hi` | `hi-IN` |
| デーヴァナーガリー文字 + ローマ字表記のヒンディー語 | `आपका order aa gaya hai.` | サポート対象外 | — |
| 3 種類すべての文字体系 | `आपका order confirm ho gaya है।` | サポート対象外 | — |

英語のみのトランスクリプトでは、言語として `en` と `hi` のどちらも使えます。文に含まれるインド系の単語（人名、地名、製品用語など）が多いほど、`hi` の設定のほうがそれらを正しく発音します。

> [!TIP]
>
> これらの設定を試して、コンテンツに最適な組み合わせを見つけてください。`language` と `normalization` はどちらも生成ごとに設定するため、統合全体で 1 つの組み合わせを選ぶのではなく、トランスクリプトごとに変えることができます。

### 実例

これらのフィールドは、生成のそれぞれ異なる部分を制御します：

* `language` または `locale` は、トランスクリプトの言語と、必要に応じて地域を指定します。地域付きのロケールを指定すると、音声がそのアクセントをサポートしている場合は対応するアクセントが選択されます。サポートしていない場合、音声はその言語のデフォルトのアクセントを使用します。どちらのフィールドも、`en` のような言語コードと `en-GB` のようなロケールコードを受け付けます。どちらか一方だけを設定し、両方は設定しないでください。
* `accent` は、ロケールに基づくアクセントの選択を上書きします。音声がサポートするアクセントのいずれかと一致する必要があります。[詳しくはこちら](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/multilingual-voices.md#add-a-deliberate-accent)。
* `normalization` は、日付、時刻、数値の読み方を設定します。`auto`（デフォルト）、`off`、または言語コードやロケールコードを使用します。

#### ヒンディー語の音声と英語での数字の読み上げ

ヒンディー語のトランスクリプト内にある OTP や確認コードは、英語式に 1 桁ずつ読み上げるべきです。`4821` はヒンディー語の数として読むのではなく、「four eight two one」と読みます。

```json theme={null}
{
  "model_id": "sonic-3.6",
  "transcript": "आपका OTP 4821 है।",
  "voice": "a0e99841-438c-4a64-b679-ae501e7d6091",
  "locale": "hi",
  "normalization": "en-IN",
  "output_format": { "container": "mp3", "sample_rate": 44100, "bit_rate": 128000 }
}
```

#### ローマ字表記のヒンディー語と英語での読み上げ

最も利用の多い組み合わせです。ヒングリッシュのトランスクリプトをヒンディー語のインドアクセントで話しつつ、日付、時刻、数字はインド英語の規則に従って読み上げます。

```json theme={null}
{
  "model_id": "sonic-3.6",
  "transcript": "Aapka order 14/08/2026 ko deliver hoga, confirmation code 4821 hai.",
  "voice": "a0e99841-438c-4a64-b679-ae501e7d6091",
  "locale": "hi-IN",
  "normalization": "en-IN",
  "output_format": { "container": "mp3", "sample_rate": 44100, "bit_rate": 128000 }
}
```

## ロケールコード

`en-GB` などのロケールコードは [`locale`](https://docs.cartesia.ai/ja-jp/api-reference/tts/bytes#body-locale-one-of-0) で渡します。

### 言語の代わりにロケールを使うべきなのはどんなときですか？

Sonic 3.6 以降では、[`locale`](https://docs.cartesia.ai/ja-jp/api-reference/tts/bytes#body-locale-one-of-0) を使用してください。従来の [`language`](https://docs.cartesia.ai/ja-jp/api-reference/tts/bytes#body-language-one-of-0) フィールドも、既存の統合のために引き続きサポートされています。どちらも基本の言語コードと地域付きのロケールコードを受け付けますが、両方を設定することはできません。値によって地域ごとの動作が決まります。`en` は地域を指定しませんが、`en-GB` は音声がサポートしている場合に英国アクセントを選択し、英国のテキスト正規化の規則を使用します。音声がその地域のアクセントをサポートしていない場合は、デフォルトの英語アクセントが使われます。

読み上げ規則を上書きするには、`normalization` を別途設定します。たとえば、英国アクセントをサポートする音声で `locale: "en-GB"` と `normalization: "en-US"` を指定すると、そのアクセントが選択され、日付と数値は米国の規則で読まれます。

ロケールに基づくアクセントの選択を上書きするには、[`accent`](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/multilingual-voices#using-a-multilingual-voice) を使用します。

### どのロケールがサポートされていますか？

[Sonic 3.6 の言語サポート](https://docs.cartesia.ai/ja-jp/build-with-cartesia/tts-models/latest.md#language-support)にある任意の基本言語コード、または以下の地域付きロケールコードのいずれかを渡せます：

<table>
  <thead>
    <tr>
      <td>基本言語</td>
      <td>サポートされているロケール</td>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>英語（`en`）</td>
      <td>`en-GB`, `en-US*`, `en-IN`,`en-IE`,`en-ZA`,`en-NZ`,`en-SG`,`en-AU`, `en-CA`</td>
    </tr>

    <tr>
      <td>スペイン語（`es`）</td>
      <td>`es-ES*`, `es-MX`, `es-US` </td>
    </tr>

    <tr>
      <td>フランス語（`fr`）</td>
      <td>`fr-FR*`, `fr-CA`</td>
    </tr>

    <tr>
      <td>オランダ語（`nl`）</td>
      <td>`nl-NL*`, `nl-BE`</td>
    </tr>

    <tr>
      <td>ポルトガル語（`pt`）</td>
      <td>`pt-PT`, `pt-BR*`</td>
    </tr>

    <tr>
      <td>ブルガリア語（`bg`）</td>
      <td>`bg-BG`</td>
    </tr>

    <tr>
      <td>ベンガル語（`bn`）</td>
      <td>`bn-IN`</td>
    </tr>

    <tr>
      <td>チェコ語（`cs`）</td>
      <td>`cs-CZ`</td>
    </tr>

    <tr>
      <td>デンマーク語（`da`）</td>
      <td>`da-DK`</td>
    </tr>

    <tr>
      <td>ドイツ語（`de`）</td>
      <td>`de-DE`</td>
    </tr>

    <tr>
      <td>ギリシャ語（`el`）</td>
      <td>`el-GR`</td>
    </tr>

    <tr>
      <td>フィンランド語（`fi`）</td>
      <td>`fi-FI`</td>
    </tr>

    <tr>
      <td>グジャラート語（`gu`）</td>
      <td>`gu-IN`</td>
    </tr>

    <tr>
      <td>ヘブライ語（`he`）</td>
      <td>`he-IL`</td>
    </tr>

    <tr>
      <td>ヒンディー語（`hi`）</td>
      <td>`hi-IN`</td>
    </tr>

    <tr>
      <td>クロアチア語（`hr`）</td>
      <td>`hr-HR`</td>
    </tr>

    <tr>
      <td>ハンガリー語（`hu`）</td>
      <td>`hu-HU`</td>
    </tr>

    <tr>
      <td>インドネシア語（`id`）</td>
      <td>`id-ID`</td>
    </tr>

    <tr>
      <td>イタリア語（`it`）</td>
      <td>`it-IT`</td>
    </tr>

    <tr>
      <td>日本語（`ja`）</td>
      <td>`ja-JP`</td>
    </tr>

    <tr>
      <td>ジョージア語（`ka`）</td>
      <td>`ka-GE`</td>
    </tr>

    <tr>
      <td>カンナダ語（`kn`）</td>
      <td>`kn-IN`</td>
    </tr>

    <tr>
      <td>韓国語（`ko`）</td>
      <td>`ko-KR`</td>
    </tr>

    <tr>
      <td>マラヤーラム語（`ml`）</td>
      <td>`ml-IN`</td>
    </tr>

    <tr>
      <td>マラーティー語（`mr`）</td>
      <td>`mr-IN`</td>
    </tr>

    <tr>
      <td>マレー語（`ms`）</td>
      <td>`ms-MY`</td>
    </tr>

    <tr>
      <td>ノルウェー語（`no`）</td>
      <td>`no-NO`</td>
    </tr>

    <tr>
      <td>オディア語（`or`）</td>
      <td>`or-IN`</td>
    </tr>

    <tr>
      <td>パンジャーブ語（`pa`）</td>
      <td>`pa-IN`</td>
    </tr>

    <tr>
      <td>ポーランド語（`pl`）</td>
      <td>`pl-PL`</td>
    </tr>

    <tr>
      <td>ルーマニア語（`ro`）</td>
      <td>`ro-RO`</td>
    </tr>

    <tr>
      <td>ロシア語（`ru`）</td>
      <td>`ru-RU`</td>
    </tr>

    <tr>
      <td>スロバキア語（`sk`）</td>
      <td>`sk-SK`</td>
    </tr>

    <tr>
      <td>スウェーデン語（`sv`）</td>
      <td>`sv-SE`</td>
    </tr>

    <tr>
      <td>タミル語（`ta`）</td>
      <td>`ta-IN`</td>
    </tr>

    <tr>
      <td>テルグ語（`te`）</td>
      <td>`te-IN`</td>
    </tr>

    <tr>
      <td>タイ語（`th`）</td>
      <td>`th-TH`</td>
    </tr>

    <tr>
      <td>タガログ語（`tl`）</td>
      <td>`tl-PH`</td>
    </tr>

    <tr>
      <td>トルコ語（`tr`）</td>
      <td>`tr-TR`</td>
    </tr>

    <tr>
      <td>ウクライナ語（`uk`）</td>
      <td>`uk-UA`</td>
    </tr>

    <tr>
      <td>ウルドゥー語（`ur`）</td>
      <td>`ur-IN`</td>
    </tr>

    <tr>
      <td>ベトナム語（`vi`）</td>
      <td>`vi-VN`</td>
    </tr>

    <tr>
      <td>中国語（`zh`）</td>
      <td>`zh-CN`</td>
    </tr>
  </tbody>
</table>

英語、スペイン語、フランス語、オランダ語、ポルトガル語の基本言語コードを渡すと、Cartesia は上の表でアスタリスク（`*`）が付いたロケールを使用します。

## 正規化をオフにする

`normalization` を `"off"` に設定すると、自動正規化がスキップされます。テキストを自分で事前正規化する場合、記号に独自の読み上げが必要な場合（たとえば `#` を「number」と読ませる場合）、またはすべて大文字の単語を 1 文字ずつではなく単語として読ませたい場合にオフにします。

正規化をオフにしても、明示的なタグやその他の入力検証は引き続き機能します：

* [SSML タグ](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/ssml-tags.md)と[生成コントロール](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/volume-speed-emotion.md)
* [発音辞書](https://docs.cartesia.ai/ja-jp/build-with-cartesia/capability-guides/custom-pronunciations.md)
* トランスクリプトのバッファリング
* 入力検証：セキュリティと安定性の理由から、悪意のある可能性がある文字列はブロックされることがあります

正規化はリクエスト単位で設定します。トランスクリプトの大部分は正規化したいが一部分だけは正規化したくない場合は、その部分を読み上げる形に書き下し（正規化が必要だったトランスクリプト内の他の表記もあわせて書き下します）、正規化をオフにしてリクエストを送信してください。


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