コマンドラインを使用してテキストから音声を作成する
このドキュメントでは、コマンドラインを使用して Text-to-Speech にリクエストを送信するプロセスについて説明します。Text-to-Speech の基本コンセプトについて詳しくは、Text-to-Speech の基本をご覧ください。
始める前に
Text-to-Speech API にリクエストを送信する前に、以下の操作を完了しておく必要があります。詳細については、始める前にのページをご覧ください。
- GCP プロジェクトで Text-to-Speech を有効にする。
- Text-to-Speech の課金が有効になっていることを確認する。
-
After installing the Google Cloud CLI, configure the gcloud CLI to use your federated identity and then initialize it by running the following command:
gcloud init
テキストを音声に変換する
テキストを音声に変換するには、https://texttospeech.googleapis.com/v1/text:synthesize
エンドポイントに対して HTTP POST リクエストを実行します。POST コマンドの本文内の voice
構成セクションで、合成する声の種類を指定します。さらに、input
セクションの text
フィールドで合成するテキストを指定し、audioConfig
セクションで作成する音声の種類を指定します。
コマンドラインで次の REST リクエストを実行して、Text-to-Speech でテキストから音声を合成します。このコマンドは、
gcloud auth application-default print-access-token
コマンドを使用してリクエストの承認トークンを取得します。リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの英数字の ID。
HTTP メソッドと URL:
POST https://texttospeech.googleapis.com/v1/text:synthesize
リクエストの本文(JSON):
{ "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" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project:PROJECT_ID " \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://texttospeech.googleapis.com/v1/text:synthesize"PowerShell(Windows)
リクエスト本文を
request.json
という名前のファイルに保存して、次のコマンドを実行します。$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID " }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://texttospeech.googleapis.com/v1/text:synthesize" | Select-Object -Expand Content次のような JSON レスポンスが返されます。
{ "audioContent": "//NExAASCCIIAAhEAGAAEMW4kAYPnwwIKw/BBTpwTvB+IAxIfghUfW.." }
上記の REST コマンドの JSON 出力には、合成された音声が base64 エンコード形式で格納されています。
audioContent
フィールドの内容をsynthesize-output-base64.txt
という新しいファイルにコピーします。新しいファイルは次のようになります。//NExAARqoIIAAhEuWAAAGNmBGMY4EBcxvABAXBPmPIAF//yAuh9Tn5CEap3/o ... VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
synthesize-output-base64.txt
ファイルの内容をsynthesized-audio.mp3
という名前の新しいファイルにデコードします。base64 のデコード方法について詳しくは、Base64 でエンコードされた音声コンテンツのデコードをご覧ください。base-64 エンコード形式のコンテンツのみをテキスト ファイルにコピーします。
base64 コマンドライン ツールで
-d
フラグを使用してソーステキスト ファイルをデコードします。
$ base64
SOURCE_BASE64_TEXT_FILE -d >DESTINATION_AUDIO_FILE base-64 エンコード形式のコンテンツのみをテキスト ファイルにコピーします。
base64 コマンドライン ツールを使用してソース テキスト ファイルをデコードします。
$ base64 --decode
SOURCE_BASE64_TEXT_FILE >DESTINATION_AUDIO_FILE base-64 エンコード形式のコンテンツのみをテキスト ファイルにコピーします。
certutil
コマンドを使用して、ソース テキスト ファイルをデコードします。
certutil -decode
SOURCE_BASE64_TEXT_FILE DESTINATION_AUDIO_FILE synthesized-audio.mp3
の内容を音声アプリケーションまたは音声デバイスで再生します。また、Chrome ブラウザでsynthesized-audio.mp3
を開いて、ファイルが含まれているフォルダ(たとえば、file://my_file_path/synthesized-audio.mp3
)に移動して音声を再生することもできます。
クリーンアップ
Google Cloud Platform で不必要な課金を避けるため、Google Cloud コンソールを使用して、不要なプロジェクトを削除します。
次のステップ