Python音声合成API リアルタイムアプリケーションに

Cartesia Python SDKでテキストを音声に変換。WAVの保存、アプリケーションへの音声ストリーミング、リアルタイム音声エージェントへのSonicの接続ができます。
speech.py
audio = client.tts.generate(
    transcript="Hello, world.",
    model_id="sonic-3.6",
    voice=voice_id,
    output_format=wav_format,
)
audio.write_to_file("speech.wav")

最初の音声合成リクエスト

Cartesia Python SDKで原稿をWAV音声に変換します。パッケージをインストールし、APIキーを設定して、サーバーでサンプルを実行してください。

SDKをインストールする

仮想環境でPython 3.9以降を使ってください。

ターミナル
python -m pip install --upgrade cartesia

APIキーを設定する

Playgroundでキーを作成します。下の仮の値を置き換え、キーはサーバーで管理してください。

macOS / Linux
export CARTESIA_API_KEY="your-api-key"

PowerShellを使う場合$env:CARTESIA_API_KEY="your-api-key"

最初の音声を生成する

この英語音声のサンプルを speech.py として保存します。ターミナルで実行し、speech.wav を開いて聴いてください。

ターミナル
python speech.py

原稿を変更するか、Playgroundで別の音声IDを選ぶと、違う結果を聴けます。

出力ファイル
speech.wav
音声形式
44.1 kHz, 16-bit PCM
speech.py
import os
from cartesia import Cartesia

with Cartesia(api_key=os.environ["CARTESIA_API_KEY"]) as client:
    audio = client.tts.generate(
        model_id="sonic-3.6",
        transcript="Hello from your Python application.",
        voice="db6b0ed5-d5d3-463d-ae85-518a07d3c2b4",
        output_format={
            "container": "wav",
            "encoding": "pcm_s16le",
            "sample_rate": 44100,
        },
    )
    audio.write_to_file("speech.wav")

アプリへの音声の届け方を選ぶ

適した通信方式は、文章が準備できるタイミングと、応答の再生方法によって変わります。

音声を保存する

通信方式
HTTP
出力
WAVまたはMP3

完成した原稿を音声に変換し、後で再生するために保存できます。上の例は、プレーヤーが読めるヘッダーを持つWAVファイルを作成します。

音声出力リファレンスを読む(英語)

文章が届くたびに話す

通信方式
WebSocket
出力
raw音声チャンク

LLMが書く文章の断片を送り、Sonicが生成する音声チャンクを受け取ります。指定した音声形式に設定済みのプレーヤーへ、そのチャンクを渡してください。

ストリーミングの例を作る(英語)

完成した原稿の音声をストリーミングする

文章がすべてそろっている場合は、with_streaming_response でHTTP応答をチャンク単位で読み込めます。

LLMの応答など、生成中に新しい文章が届く場合はWebSocketストリーミングを使ってください。

キーはサーバーで管理する

Pythonバックエンドでリクエストを処理し、ウェブ、モバイル、電話システム側で再生を担当できます。

01

Pythonサーバー

環境変数からAPIキーを読み込みます。リクエストごとに声、モデル、音声設定を選んでください。

02

Sonic

文章を音声に変換します。音声の応答を受け取るか、追加の入力に備えてWebSocketを開いておきます。

03

アプリケーション

音声を保存するかプレーヤーに渡します。エンコーディングとサンプルレートを応答に合わせてください。

スクリプトから本番サービスへ

APIリクエストの成功は出発点です。聞き手が使うアプリケーションに必要な周辺の動作を実装してください。

Pythonの構成に合わせる

スクリプトやバックグラウンド処理には同期クライアントを使えます。FastAPIなどの非同期サービスではAsyncCartesiaを使ってください。処理が終わったらクライアントを閉じ、保存先や再生サービスに音声を渡します。

聴く体験全体をテストする

タイムアウトとレート制限への処理を設定します。本番の声で実際に近い原稿をテストしてください。会話では、音声が聞こえるまでを測り、割り込みで待機中の再生が止まることを確認します。ネットワークとプレーヤーも聞こえ方に影響します。

エンタープライズ向けのセキュリティ。クラウドからローカルまで。

  • HIPAA準拠のバッジ

    HIPAA準拠

  • SOC 2 Type 2のバッジ

    SOC 2 Type 2

  • GDPRのバッジ

    GDPR

  • PCIのバッジ

    PCI

Python音声合成についてのよくある質問

Pythonでテキストを音声に変換するにはどうすればよいですか?

cartesiaをインストールし、サーバー環境にCARTESIA_API_KEYを設定してCartesiaクライアントを作成します。原稿、モデル、音声ID、出力形式を指定してclient.tts.generateを呼び出し、write_to_fileで保存してください。このページのサンプルはspeech.wavを作成します。完全なリクエストはPythonサンプルをご覧ください。

必要なPythonのバージョンとSDKは何ですか?

公式SDKにはPython 3.9以降が必要です。python -m pip install --upgrade cartesiaでインストールします。WebSocketにはpython -m pip install "cartesia[websockets]"を使ってください。古い例を変更する場合は、インストール済みのバージョンをSDKドキュメントと照合してください。

生成音声をWAVやMP3で保存できますか?

はい。TTSエンドポイントはWAV、MP3、raw音声に対応しています。生成前にoutput_formatでコンテナと対応する設定を選んでください。このページの例はWAVです。MP3が必要なら、その形式を選びます。拡張子を変えるだけでは音声は変換されません。

PythonでLLMの応答を音声にストリーミングするにはどうすればよいですか?

文章が部分ごとに届く場合はWebSocketを使います。共通の生成コンテキストで文章の断片を送り、返ってくる音声チャンクを順に受け取ります。アプリケーションには音声のバッファリングと再生が別途必要です。WebSocket APIで、会話アプリケーション向けの継続とキャンセルを確認できます。

音声合成にはHTTPとWebSocketのどちらを使えばよいですか?

完成したナレーションや通知など、原稿がすでにある場合はHTTPを使います。HTTPでも音声を順次受信できます。文章を追加で送る、または継続中の会話を管理する場合はWebSocketを使います。入力と出力のストリーミングは別の選択で、HTTP応答の使い方はファイル保存だけではありません。

非同期PythonやFastAPIでも使えますか?

はい。非同期アプリケーションではAsyncCartesiaを使い、API呼び出しをawaitします。非同期のサンプルで、生成、ファイル出力、ストリーミングを確認できます。返された音声を応答やプレーヤーに接続し、ライフサイクルの終了時にクライアントを閉じてください。

Cartesia APIキーはどこに保存すべきですか?

長期有効のキーは、サーバーの環境変数や導入環境のシークレット管理サービスに保存してください。コミットしたりブラウザーのコードに送ったりしないでください。ブラウザーから直接接続する場合は、バックエンドからアクセストークンAPIを使い、範囲を限定した短期トークンを作成します。

Python TTSの声と言語はどう選べばよいですか?

Playgroundで声を試し、そのIDをリクエストに渡します。原稿に合わせてlanguageまたはlocaleのどちらか一方を設定してください。自分の原稿の名前、数字、略語をテストします。すべての声が同じアクセントに対応すると考えず、言語と声の設定はリクエストリファレンスを確認してください。

本番ではどのSonicモデルIDを使えばよいですか?

現在のSonicドキュメントからモデルを選び、アプリケーションでテストしてください。sonic-3.6には安定版スナップショットの更新が適用されます。公開済みの日付付きスナップショットを使うと、新しいリリースの評価中も動作を固定できます。更新後に比較できるよう、モデルIDをテスト結果と一緒に記録してください。

raw PCMに専用の再生設定が必要なのはなぜですか?

raw PCMには再生方法を示すファイルヘッダーがありません。プレーヤーには、リクエストと同じサンプルレートとエンコーディングが必要です。不一致があると、ノイズ、無音、速度の異常につながります。まずWAVで生成音声を個別に確認し、その後raw音声のストリーミング再生をテストしてください。

Python TTSを本番で使う前に何を実装すべきですか?

認証失敗、レート制限、ネットワークエラー、タイムアウトを処理してください。SDKの再試行とタイムアウトを用途に合わせ、再生中の割り込みをテストします。利用者の話題が変わった後に待機中の音声を再生しないようにしてください。ネットワークと再生バッファーを含め、文章が準備できてから音声が聞こえるまでを測定します。

今すぐ始める

専門家に相談する。

音声体験の開発にCartesiaをどう活用できるか、私たちのチームにご相談ください。

営業に問い合わせる

開発を始める。

APIでモデルにアクセスし、数分で音声エージェントを本番環境に導入できます。

Cartesiaを試す