For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme

テキスト読み上げ

テキストから自然な読み上げ音声を生成する方法を紹介します。

tts-1、tts-1-hd、gpt-4o-mini-tts は非推奨のモデルで、2027 年 1 月 6 日に提供を終了します。gpt-realtime-2.1-mini に移行するには、Realtime API を使用してください。移行に伴い、API の利用手順が変わります。gpt-realtime-2.1-mini は /v1/audio/speech では使用できません。既存のアプリケーションでは、提供終了まで、以下の手順で引き続き Speech API を利用できます。詳しくは提供終了のお知らせをご覧ください。

Audio API の speech エンドポイントは、GPT-4o mini TTS(テキスト読み上げ)モデルを使用します。11 種類の音声が組み込まれており、次のような用途に利用できます。

  • ブログ記事の読み上げ
  • 複数の言語での読み上げ音声の生成
  • ストリーミングによるリアルタイムの音声出力

alloy の音声サンプルをお聴きください。

OpenAI の使用に関するポリシーに従い、読み上げ音声が人間の声ではなく AI が生成したものであることを、エンドユーザーに明示する必要があります。

クイックスタート

speech エンドポイントには、主に次の 3 つの入力を指定します。

  1. 使用するモデル
  2. 読み上げるテキスト
  3. 読み上げに使用する音声

リクエストの例を示します。

入力テキストからの読み上げ音声の生成
from pathlib import Path
from openai import OpenAI

client = OpenAI()
speech_file_path = Path(__file__).parent / "speech.mp3"

with client.audio.speech.with_streaming_response.create(
    model="gpt-4o-mini-tts",
    voice="coral",
    input="Today is a wonderful day to build something people love!",
    instructions="Speak in a cheerful and positive tone.",
) as response:
    response.stream_to_file(speech_file_path)

デフォルトでは、エンドポイントは読み上げ音声を MP3 形式で出力します。対応する出力形式の中から任意の形式を指定することもできます。

テキスト読み上げモデル

既存の Speech API 連携で gpt-4o-mini-tts を使用する場合、プロンプトで次のような話し方の特徴を指定できます。

  • アクセント
  • 感情表現の幅
  • イントネーション
  • 声まね
  • 話す速さ
  • 口調
  • ささやき声

ほかにも tts-1 と tts-1-hd というテキスト読み上げモデルがあります。tts-1 は応答が速い一方、音質は tts-1-hd より低くなります。

音声の選択肢

TTS エンドポイントでは、テキストの読み上げに使用する声を 13 種類の組み込み音声から選べます。OpenAI.fm では、OpenAI API の最新のテキスト読み上げモデルを使った対話型デモで、それぞれの声を聴いて試せます。現在、これらの音声は英語に最適化されています。

  • alloy
  • ash
  • ballad
  • coral
  • echo
  • fable
  • nova
  • onyx
  • sage
  • shimmer
  • verse
  • marin
  • cedar

音質を重視する場合は、marin または cedar をおすすめします。

利用できる音声はモデルによって異なります。tts-1 と tts-1-hd で利用できる音声は、alloy、ash、coral、echo、fable、onyx、nova、sage、shimmer に限られます。

Realtime API で利用できる音声は、この一覧と少し異なります。現在利用できる音声は、リアルタイム会話ガイドで確認してください。

音声のリアルタイムストリーミング

Speech API は、チャンク転送エンコーディングを使った音声のリアルタイムストリーミングに対応しています。ファイル全体の生成が完了して利用可能になるのを待たずに、音声を再生できます。

入力テキストの読み上げ音声をスピーカーに直接ストリーミング
import asyncio

from openai import AsyncOpenAI
from openai.helpers import LocalAudioPlayer

openai = AsyncOpenAI()


async def main() -> None:
    async with openai.audio.speech.with_streaming_response.create(
        model="gpt-4o-mini-tts",
        voice="coral",
        input="Today is a wonderful day to build something people love!",
        instructions="Speak in a cheerful and positive tone.",
        response_format="pcm",
    ) as response:
        await LocalAudioPlayer().play(response)


if __name__ == "__main__":
    asyncio.run(main())

応答時間を最短にするには、レスポンス形式に wav または pcm を指定することをおすすめします。

対応する出力形式

デフォルトのレスポンス形式は mp3 ですが、opus や wav などの形式も利用できます。

  • MP3:一般的な用途に適したデフォルトのレスポンス形式です。
  • Opus:低遅延で、インターネット上のストリーミングや通話に適しています。
  • AAC:デジタル音声の圧縮形式で、YouTube、Android、iOS でよく使われます。
  • FLAC:可逆圧縮形式で、音声を原音のまま保存したいオーディオ愛好家に好まれています。
  • WAV:非圧縮の WAV 音声です。デコードの負荷を避けられるため、低遅延が求められるアプリケーションに適しています。
  • PCM:WAV に似ていますが、ヘッダーを含まず、24 kHz の生のサンプル(符号付き 16 ビット、リトルエンディアン)のみを格納します。

対応言語

TTS モデルの対応言語は、おおむね Whisper モデルと同じです。Whisper は以下の言語に対応しています。読み上げ音声は英語に最適化されていますが、これらの言語でも良好な結果が得られます。

アフリカーンス語、アラビア語、アルメニア語、アゼルバイジャン語、ベラルーシ語、ボスニア語、ブルガリア語、カタルーニャ語、中国語、クロアチア語、チェコ語、デンマーク語、オランダ語、英語、エストニア語、フィンランド語、フランス語、ガリシア語、ドイツ語、ギリシャ語、ヘブライ語、ヒンディー語、ハンガリー語、アイスランド語、インドネシア語、イタリア語、日本語、カンナダ語、カザフ語、韓国語、ラトビア語、リトアニア語、マケドニア語、マレー語、マラーティー語、マオリ語、ネパール語、ノルウェー語、ペルシャ語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、セルビア語、スロバキア語、スロベニア語、スペイン語、スワヒリ語、スウェーデン語、タガログ語、タミル語、タイ語、トルコ語、ウクライナ語、ウルドゥー語、ベトナム語、ウェールズ語。

これらの言語で読み上げ音声を生成するには、希望する言語でテキストを入力してください。

カスタム音声

話者の同意を録音した音声と、同じ話者の音声サンプルを使って、承認済みのカスタム音声を作成できます。利用資格、録音要件、同意の際に読み上げる文言、API リクエストについては、カスタム音声をご覧ください。

音声の作成

カスタム音声の作成の手順に従ってください。

音声生成時のカスタム音声の使用

音声を生成する際に、作成した音声の ID を指定してください。音声生成の例をご覧ください。

関連ガイド

リアルタイム処理と音声の概要

音声エージェント、翻訳、文字起こし、音声生成など、用途に合った方法を選べます。

オーディオと音声の基礎概念

音声モダリティ、音声処理タスク、ストリーミング、リクエストベースの API について確認できます。