GCP Text-to-Speech API を gcloud 環境から REST で呼び出して MP3 を生成する手順

2026年6月6日

はじめに

「テキストデータから自然な音声ファイルを生成したい」——そんな要件を手軽に試したいとき、GCP の Text-to-Speech API は数行のコマンドで音声データを生成できる強力なサービスです。本記事では、gcloud SDK 環境(Docker コンテナまたは Cloud Shell)を使って Text-to-Speech API を REST で呼び出し、MP3 ファイルを生成するまでの手順を解説します。

音声合成を自前実装せずに API で済ませたいエンジニアや、GCP の AI サービスを初めて触ってみたい方に参考になる内容です。

Text-to-Speech API とは

Text-to-Speech API は、テキストデータを音声データ(MP3 / OGG / WAV)に変換する GCP のマネージドサービスです。主な特徴は以下のとおりです。

  • 日本語・英語など多数の言語に対応
  • 男性・女性・ニュートラルなど音声の性別を選択可能
  • WaveNet / Standard の2種類の音声品質から選択できる
  • REST API または gcloud CLI から利用可能

前提環境

カテゴリツール・技術役割
実行環境gcloud SDK コンテナ(または Cloud Shell)gcloud CLI・curl コマンドの実行環境
GCP サービスText-to-Speech APIテキストから音声ファイルを生成
認証サービスアカウント JSON キーAPI 呼び出しの認証情報

Text-to-Speech API を使って MP3 を生成する手順

1. Text-to-Speech API を有効化する

課題:デフォルト状態では Text-to-Speech API が無効になっている。
解決策:GCP コンソールの「API とサービス」から有効化する。

GCP コンソールの「API とサービス」→「ライブラリ」で「Text-to-Speech」を検索し、「有効にする」をクリックします。

GCP コンソールで Text-to-Speech API を有効化している画面

2. サービスアカウントを作成して JSON キーを取得する

課題:REST API を呼び出すには認証情報が必要。
解決策:GCP コンソールでサービスアカウントを作成し、秘密鍵を含む JSON ファイルをダウンロードする。

サービスアカウントと JSON キーの作成手順は、前回の記事「Raspberry Pi の Node-RED から Google スプレッドシートにデータを書き込む設定手順」のサービスアカウント作成セクションと同じ手順で行います。ダウンロードした JSON ファイルを service-account-file.json という名前で gcloud 環境に配置してください。

3. 認証情報の環境変数を設定する

JSON キーのパスを GOOGLE_APPLICATION_CREDENTIALS 環境変数に設定します。

export GOOGLE_APPLICATION_CREDENTIALS=/home/YOUR_USERNAME/service-account-file.json
GOOGLE_APPLICATION_CREDENTIALS に JSON キーのパスを設定するコマンド

4. 音声合成リクエスト JSON を作成する

課題:Text-to-Speech API に渡すパラメータ(テキスト・言語・音声設定)を JSON で定義する必要がある。
解決策:3つの設定項目(入力テキスト・言語コード・音声設定)を request.json にまとめる。

以下の内容で request.json を作成します。

{
  "input": {
    "text": "この音声はGCPのテストです。"
  },
  "voice": {
    "languageCode": "ja-JP",
    "name": "ja-JP-Standard-A",
    "ssmlGender": "FEMALE"
  },
  "audioConfig": {
    "audioEncoding": "MP3"
  }
}
  • text: 音声に変換したいテキストを記載します
  • languageCode: 言語コード(例: ja-JPen-US
  • name: 音声モデル名(GCP の 音声一覧リファレンスを参照)
  • ssmlGender: MALE / FEMALE / NEUTRAL から選択

5. API を呼び出してレスポンスを取得する

以下の curl コマンドで Text-to-Speech API にリクエストを送ります。

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
  -H "Content-Type: application/json; charset=utf-8" \
  -d @request.json \
  https://texttospeech.googleapis.com/v1/text:synthesize
curl で Text-to-Speech API を呼び出してレスポンスを取得した画面

レスポンスの audioContent フィールドに Base64 エンコードされた音声データが返ります。この値をコピーして audio.txt に保存します。

レスポンスの audioContent をコピーする様子

6. Base64 デコードして MP3 ファイルを生成する

課題:レスポンスの audioContent は Base64 形式のため、そのままでは再生できない。
解決策:base64 --decode コマンドで MP3 ファイルに変換する。

base64 audio.txt --decode > synthesized-audio.mp3
base64 デコードで MP3 ファイルを生成するコマンド

生成された synthesized-audio.mp3 を Windows のデスクトップに移動して再生すると、request.json に設定したテキストが読み上げられます。

生成された MP3 ファイルをメディアプレーヤーで再生している様子

まとめ:GCP Text-to-Speech API で音声合成を手軽に試す方法

本記事で解説した手順をまとめます。

  • GCP コンソールで Text-to-Speech API を有効化し、サービスアカウントの JSON キーを用意する
  • GOOGLE_APPLICATION_CREDENTIALS 環境変数に JSON キーのパスを設定することで認証できる
  • request.json に入力テキスト・言語コード・音声設定を定義して curl で POST するだけで音声データが得られる
  • レスポンスの audioContent は Base64 形式のため、base64 --decode で MP3 に変換する必要がある

次回は、同じ gcloud 環境から Vision API を使って画像認識を試す手順を解説します。