Cloud Text-to-Speech を使用すると、単語や文を自然な人間の音声の base64 でエンコードされた音声データに変換できます。その後、base64 のデータをデコードすることで、音声データを MP3 のような再生可能な音声ファイルに変換できます。Cloud Text-to-Speech API は、入力を生のテキストまたは音声合成マークアップ言語(SSML)として受け入れます。
このドキュメントでは、Cloud TTS を使用してテキストまたは SSML 入力から音声ファイルを作成する方法について説明します。また、音声合成や SSML などのコンセプトについて熟知していない場合は、Cloud TTS の基本の記事で確認することもできます。
これらのサンプルを使用するには、Google Cloud CLI をインストールして初期化しておく必要があります。gcloud CLI の設定については、Cloud TTS に対する認証を行うをご覧ください。
テキストを合成音声に変換する
次のコードサンプルは、文字列を音声データに変換する方法を示しています。
音声合成の出力はさまざまな方法で構成できます。たとえば、ユニークな音声を選択することや、ピッチの出力、音量、発話速度、サンプルレートを調節することが可能です。
プロトコル
詳細については、text:synthesize API エンドポイントをご覧ください。
テキストから音声を合成するには、text:synthesize エンドポイントに対して HTTP POST リクエストを送信します。POST リクエストの本文内の voice 構成セクションで、合成する声の種類を指定します。さらに、input セクションの text フィールドで合成するテキストを指定し、audioConfig セクションで作成する音声の種類を指定します。
次のコード スニペットでは、合成リクエストを text:synthesize エンドポイントに送信し、その結果を synthesize-text.txt という名前のファイルに保存します。PROJECT_ID は実際のプロジェクト ID で置き換えます。
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: <var>PROJECT_ID</var>" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'input':{ 'text':'Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.' }, 'voice':{ 'languageCode':'en-gb', 'name':'en-GB-Standard-A', 'ssmlGender':'FEMALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-text.txt
Cloud Text-to-Speech API は合成された音声を、base64 でエンコードされたデータとして JSON 出力に格納して返します。synthesize-text.txt ファイルの JSON 出力は、次のコード スニペットのようになります。
{
"audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.."
}
Cloud Text-to-Speech API の結果を MP3 音声ファイルにデコードするには、synthesize-text.txt ファイルと同じディレクトリから次のコマンドを実行します。
cat synthesize-text.txt | grep 'audioContent' | \ sed 's|audioContent| |' | tr -d '\n ":{},' > tmp.txt && \ base64 tmp.txt --decode > synthesize-text-audio.mp3 && \ rm tmp.txt
Go
Cloud TTS 用のクライアント ライブラリをインストールして使用する方法については、Cloud TTS クライアント ライブラリをご覧ください。詳細については、Cloud TTS Go API リファレンス ドキュメントをご覧ください。
Cloud TTS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Cloud TTS 用のクライアント ライブラリをインストールして使用する方法については、Cloud TTS クライアント ライブラリをご覧ください。詳細については、Cloud TTS Java API リファレンス ドキュメントをご覧ください。
Cloud TTS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TTS 用のクライアント ライブラリをインストールして使用する方法については、Cloud TTS クライアント ライブラリをご覧ください。詳細については、Cloud TTS Node.js API リファレンス ドキュメントをご覧ください。
Cloud TTS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TTS 用のクライアント ライブラリをインストールして使用する方法については、Cloud TTS クライアント ライブラリをご覧ください。詳細については、Cloud TTS Python API リファレンス ドキュメントをご覧ください。
Cloud TTS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の Cloud TTS リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の Cloud TTS リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Cloud TTS リファレンス ドキュメントをご覧ください。
SSML を合成音声に変換する
音声合成リクエストで SSML を使用すると、自然な人間の音声に似た音声を生成できます。具体的には、SSML では、音声出力で発声中の休止をどのように表すか、音声で日付、時刻、頭字語、略語がどのように発音されるかなどを細かく制御できます。
Cloud Text-to-Speech API でサポートされている SSML 要素の詳細については、SSML リファレンスをご覧ください。
プロトコル
詳細については、text:synthesize API エンドポイントをご覧ください。
SSML から音声を合成するには、text:synthesize エンドポイントに対して HTTP POST リクエストを送信します。POST リクエストの本文内の voice 構成セクションで、合成する声の種類を指定します。さらに、input セクションの ssml フィールドで合成する SSML を指定し、audioConfig セクションで作成する音声の種類を指定します。
次のコード スニペットでは、合成リクエストを text:synthesize エンドポイントに送信し、その結果を synthesize-ssml.txt という名前のファイルに保存します。PROJECT_ID は実際のプロジェクト ID で置き換えます。
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: <var>PROJECT_ID</var>" \ -H "Content-Type: application/json; charset=utf-8" --data "{ 'input':{ 'ssml':'<speak>The <say-as interpret-as=\"characters\">SSML</say-as> standard is defined by the <sub alias=\"World Wide Web Consortium\">W3C</sub>.</speak>' }, 'voice':{ 'languageCode':'en-us', 'name':'en-US-Standard-B', 'ssmlGender':'MALE' }, 'audioConfig':{ 'audioEncoding':'MP3' } }" "https://texttospeech.googleapis.com/v1/text:synthesize" > synthesize-ssml.txt
Text-to-Speech API は合成された音声を、base64 でエンコードされたデータとして JSON 出力に格納して返します。synthesize-ssml.txt ファイルの JSON 出力は、次のコード スニペットのようになります。
{
"audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.."
}
Text-to-Speech API の結果を MP3 音声ファイルにデコードするには、synthesize-ssml.txt ファイルと同じディレクトリから次のコマンドを実行します。
cat synthesize-ssml.txt | grep 'audioContent' | \ sed 's|audioContent| |' | tr -d '\n ":{},' > tmp.txt && \ base64 tmp.txt --decode > synthesize-ssml-audio.mp3 && \ rm tmp.txt
Go
Cloud TTS 用のクライアント ライブラリをインストールして使用する方法については、Cloud TTS クライアント ライブラリをご覧ください。詳細については、Cloud TTS Go API リファレンス ドキュメントをご覧ください。
Cloud TTS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Cloud TTS 用のクライアント ライブラリをインストールして使用する方法については、Cloud TTS クライアント ライブラリをご覧ください。詳細については、Cloud TTS Java API リファレンス ドキュメントをご覧ください。
Cloud TTS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TTS 用のクライアント ライブラリをインストールして使用する方法については、Cloud TTS クライアント ライブラリをご覧ください。詳細については、Cloud TTS Node.js API リファレンス ドキュメントをご覧ください。
Cloud TTS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TTS 用のクライアント ライブラリをインストールして使用する方法については、Cloud TTS クライアント ライブラリをご覧ください。詳細については、Cloud TTS Python API リファレンス ドキュメントをご覧ください。
Cloud TTS に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の Cloud TTS リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の Cloud TTS リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Cloud TTS リファレンス ドキュメントをご覧ください。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成し、実際のシナリオで Cloud TTS のパフォーマンスを評価してみてください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット 300 ドル分を差し上げます。
Cloud TTS の無料トライアル