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

テキスト読み上げ

テキストを自然な話し声に変換する方法を学びます。

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

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

alloy の音声サンプルです。

OpenAI の使用に関するポリシーでは、 エンドユーザーが聞いている TTS 音声は人間の声ではなく、 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 で出力しますが、サポートされている形式であれば、どの形式でも出力するように設定できます。

テキスト読み上げモデル

高度なリアルタイムアプリケーションには、OpenAI の最新かつ最も信頼性の高いテキスト読み上げモデルである gpt-4o-mini-tts を使用してください。プロンプトを使って、次のような話し方の要素を制御できます。

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

ほかにも、テキスト読み上げモデルとして tts-1tts-1-hd があります。tts-1 モデルは tts-1-hd モデルよりも低レイテンシですが、品質は劣ります。

音声の選択肢

TTS エンドポイントには 13 種類の組み込み音声が用意されており、テキストをどのような声で読み上げるかを選べます。 OpenAI API の最新テキスト読み上げモデルを試せるインタラクティブなデモ OpenAI.fm で、これらの音声を聞いて試してみてください。音声は現在、英語向けに最適化されています。

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

最高の品質を得るには、marin または cedar の使用をおすすめします。

利用できる音声はモデルによって異なります。tts-1tts-1-hd モデルで利用できる音声は、alloyashcoralechofableonyxnovasageshimmer に限られます。

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 ですが、opuswav などの形式も利用できます。

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

サポートされている言語

TTS モデルの対応言語は、おおむね Whisper モデルに準じています。Whisper は以下の言語をサポートしており、音声は英語向けに最適化されているものの、これらの言語でも良好な性能を発揮します。

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

これらの言語で音声を生成するには、希望する言語のテキストを入力します。

カスタム音声

話者の同意表明の録音と、それに対応する 音声サンプルから、承認済みのカスタム音声を作成します。利用資格、録音要件、 同意文、API リクエストについては、カスタム音声を参照してください。

音声の作成

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

音声生成での声の使用

音声を生成する際に、作成した音声の ID を渡してください。 音声生成の例を参照してください。

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

音声エージェント、翻訳、文字起こし、音声生成に適した方法を選びます。

オーディオと音声のコンセプト

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