GCP Text-to-Speech API を gcloud 環境から REST で呼び出して MP3 を生成する手順
目次
はじめに
「テキストデータから自然な音声ファイルを生成したい」——そんな要件を手軽に試したいとき、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」を検索し、「有効にする」をクリックします。

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

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-JP・en-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

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

6. Base64 デコードして MP3 ファイルを生成する
課題:レスポンスの audioContent は Base64 形式のため、そのままでは再生できない。
解決策:base64 --decode コマンドで MP3 ファイルに変換する。
base64 audio.txt --decode > synthesized-audio.mp3

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

まとめ: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 を使って画像認識を試す手順を解説します。






ディスカッション
コメント一覧
まだ、コメントがありません