gTTSとは?
gTTSはオープンソースのPythonライブラリ兼コマンドラインツールで、Google翻訳の音声合成エンドポイントを使ってテキストをMP3音声に変換します。出力先はファイル・ファイルライクオブジェクト・標準出力など柔軟に選べます。Pierre Nicolas DuretteによりMITライセンスで公開され、PyPIで最もダウンロードされているTTSパッケージの1つ(執筆時、週約17.5万件)。たった3行のPythonで文字列をMP3にしたいとき、まず行き着きやすいツールです。
ただし、gTTSはGoogle Cloud Text-to-Speechとは別物です。gTTSはGoogle翻訳の「聞く」ボタンと同じ非公開バックエンドを利用しています。この違いは、gTTSが得意なこと・苦手なこと・他手段を選ぶべき場面すべてに関わってきます。

gTTSはどんなときに使う?
gTTSは無料かつ高速なプロトタイプ作成、テキスト→MP3のワンライナー、マルチ言語デモ、趣味や授業用・アクセシビリティスクリプト、Googleドキュメントの書き出し読み上げなどに向いています。一方で、信頼性やSLA保証、音声クローン、SSML、多彩な声や表現、ストリーミングや商用条件の明確化が必要ならgTTSは不向きです。
gTTSはどう動作する?
gTTS自身はローカルで音声を合成せず、Google翻訳の「聞く」と同じバックエンドにリクエストを送り、生成されたMP3をダウンロードして返します。そのためインターネット接続が必須(オフライン不可)で、音声は手元ではなくGoogleサーバー側で生成されます。このエンドポイントは非公式でGoogleやGoogle Cloudの正式サービスではなく、仕様変更により予告なく動作しなくなる可能性があります。
インストール
bash
pip install gTTS
gTTSはPython 3.7以上が必要で、macOS・Windows・Linuxに対応しています。現在のPyPIリリースは2.5.4(2024年11月)。Debian系(Raspberry Pi OS含む)ではpipパッケージはgTTS、aptはpython3-gttsと大文字/小文字が異なる点に注意。新しいOSでpip install時に外部管理エラーが出たら、仮想環境にインストールしてください。
基本的な使い方
最小限のサンプル:
python
from gtts import gTTS
tts = gTTS("Hello, world.")tts.save("hello.mp3")
コマンドラインから:
bash
gtts-cli "hello" --output hello.mp3
言語やアクセントの選択
python
tts = gTTS("Bonjour le monde", lang="fr")tts.save("bonjour.mp3")
gTTSは地域サブタグもtldパラメータで指定できます。例えば
tld="co.uk"ならイギリス英語、tld="ca"ならカナダ仏語寄りのアクセントに—リクエストを異なるGoogle翻訳ドメインへ飛ばすことで変わります。
スローモード
python
tts = gTTS("Read this slowly.", lang="en", slow=True)tts.save("slow.mp3")
この機能がgTTSで可能な音声制御のすべてです。ピッチや細かな速度調整、声の選択・SSMLなどには対応していません。
ディスクではなくバッファへ出力
python
from io import BytesIOfrom gtts import gTTS
buf = BytesIO()gTTS("Stream me").write_to_fp(buf)buf.seek(0)# now feed buf into pydub, ffmpeg, a web response, etc.
前処理と長文対応
gTTSの強みはトークナイザです。任意の長さのテキストを100文字前後に自動分割し、自然な抑揚を保ったまま連結し、省略語や小数点、記号にも対応します。カスタム前処理で製品名などの読み方を指定することもできます。
gTTSのメリットは?
gTTS(Google Text-to-Speech)は軽量で導入しやすく、既存のPythonワークフローに組み込みやすい点から開発者に支持されています。MP3生成やファイル・標準出力への書き出しなどの自動化も柔軟です。約60言語と多様な方言をサポートしており、シンプルな多言語ユースケースに向きます。gtts-cli経由でシェル連携ができ、トークナイザや前処理で略語・数字の置換処理も可能。Python APIが極力シンプルなので、JupyterノートブックやFlask、Discord botなどにも手軽に音声機能を追加できます。
gTTSのデメリットは?
gTTSはシンプルで扱いやすい反面、最新のAI音声と比べると制約が目立ちます。音声はGoogle翻訳標準のTTS出力なので実用性はありますが、最新のニューラル音声のような自然さや感情表現・リアルさには劣ります。言語ごとに声は1種類のみで、SSML対応やピッチ・速度の細かな制御は不可。MP3をすべてダウンロードしてから再生する方式のためストリーミングできず、その分の待ち時間も発生します。各操作はネットワーク越しになるのでオフラインでは使えず、ネットワークが不安定な環境にも向きません。
gTTSの開発者向け制約は?
1. 非公開エンドポイントのレート制限
「Hello world」から一歩進んだ段階でまずぶつかりがちなポイントです。gTTSも上流サービスも利用上限は公開していませんが、実際には1IPあたり毎時数万文字程度が限度とみられ、それを超えるとHTTP 429(制限超過)が返されます。複数ユーザーの音声生成を1台のサーバーでさばく場合、この上限に引っかかりやすくなります。
2. エンドポイントは予告なく変更
gTTSはバージョン管理された公開APIではなく、Google翻訳内部のルートを経由しているため、Google側がリクエスト形式やレスポンスを突然変更し、gTTSが動かなくなることがあります。管理者が対応してくれれば
pip install -U gTTS で復旧できますが、趣味ならともかく、夜間バッチなどを含む本番運用には向きません。
3. メンテナンス体制
このプロジェクトは近年もリリース自体はありますが、課題対応は遅めで、主要メンテナーは1人だけです。一部のヘルスチェックツールでは「非アクティブ」と判定されることもあります。MITのフリーライブラリとしては一般的な状況ですが、商用プロダクトで強く依存する際は注意が必要です。
4. 商用・利用規約の曖昧さ
gTTSはGoogle Translateのフロント側を利用しているため、生成音声の商用ライセンスが明確ではありません。ライブラリ自体はMITですが、音声データは正式なTTS APIの規約の対象外です。法務上クリアな回答が必要なケースには不向きです。
5. 機密データが外部送信される
すべての入力文字列はGoogleのサーバーに送信されます。社内の資料や顧客情報などを読み上げる場合は、情報ガバナンスの観点から十分な確認が必要です。
gTTSとGoogle Cloud Text-to-Speechの違いは?
gTTSとGoogle Cloud Text-to-Speechは混同されがちですが、別サービスです。主な違いは次の通りです。
本番でGoogleの音声が必須なら、gTTSではなくGoogle Cloud TTSを選びましょう。
本格TTS APIへ移行すべきタイミングは?
gTTSから本格的なTTS APIへ移行するタイミングは、音声品質・信頼性・カスタマイズ性の重要度によって変わります。gTTSはプロトタイプや個人/教育用途には最適ですが、有料サービス開始や音声品質の担保、SLAによる低遅延が求められる本番運用では、プロ向けサービスの導入を検討すべきです。多様な声や音声クローン、SSML、細かな読み分けや明確な商用ライセンスが必要な場合も移行が適しています。試作段階から本番移行する頃に、こうした機能の必要性が高まりがちです。
gTTSとSpeechifyのAPI、どちらを選ぶ?
SpeechifyのTTS APIは公式サポートつきの有料サービスで、ニューラル音声や豊富な声種、SSML、明示的な商用許諾が契約上保証されています。gTTSのレート制限・音声品質・規約の曖昧さに悩んでいる場合は、移行を検討する価値があります。
FAQ
gTTSは無料で使えますか?
はい、gTTSはMITライセンスの無料Pythonライブラリですが、業務・商用利用にはSpeechify APIなどの有料サービスが向いています。
gTTSはオフラインで使えますか?
いいえ。gTTSは常にインターネット接続が必要です。同様にSpeechify APIもクラウド提供です。
gTTSは商用製品で利用できますか?
gTTSで生成した音声の商用利用は、非公開エンドポイントに依存しているためグレーな部分がありますが、Speechify APIは商用ライセンスが明記されています。
gTTSで声を変えられますか?
できません。gTTSは各言語につき1種類の声のみですが、Speechify APIは多数のニューラル音声に対応しています。
gTTSはSSML対応していますか?
いいえ。gTTSはSSMLやピッチ・速度の細かな制御には対応していませんが、Speechify APIならSSMLをフルサポートしています。
gTTSがHTTP 429エラーを返す理由は?
Google翻訳側の非公開レートリミットを超過しているためです。これは、多くの開発者がSpeechify APIなど公式SLAつきサービスへ移行する主な理由の1つでもあります。
gTTSとGoogle Cloud TTSは同じ製品ですか?
いいえ。gTTSは非公式なGoogle翻訳エンドポイントを使い、Google Cloud TTSは別料金の正式サービスです(Speechify APIもニューラル音声に対応した有料の代替案です)。
本番向けPython TTSライブラリのおすすめは?
gTTSは試作には最適ですが、本番用途では多くの開発者がSpeechify APIのような有料サービスを選択しています。
gTTSで声のクローンはできますか?
できません。音声クローンはgTTS非対応ですが、Speechify APIなら利用できます。
gTTSのストリーミング再生方法は?
gTTSはリアルタイムストリーミングに対応しておらず、生成が完了したMP3のみを返します。低遅延が求められる用途にはSpeechify APIなどの利用を検討してください。

