このチュートリアルでは、音声合成マークアップ言語(SSML)を使用して住所のテキスト ファイルを読み上げる方法を説明します。SSML タグで文字列をマークアップして、Text-to-Speech から合成音声をカスタマイズできます。
平文 | 平文の SSML レンダリング |
---|---|
123 Street Ln |
<speak>123 Street Ln</speak> |
1 Number St |
<speak>1 Number St</speak> |
1 Piazza del Fibonacci |
<speak>1 Piazza del Fibonacci</speak> |
目的
SSML と Text-to-Speech クライアント ライブラリを使用して、Text-to-Speech に合成音声リクエストを送信します。
費用
費用の詳細は、Text-to-Speech の料金ページをご覧ください。
始める前に
- Google Cloud コンソールで Text-to-Speech 用のプロジェクトを作成してください。
- このチュートリアルでは、Java、Node.js、Python を使用できます。Java を使用する場合は、Maven をダウンロードし、インストールしてください。Node.js を使用する場合は、npm をダウンロードしてください。
コードサンプルをダウンロードする
コードサンプルをダウンロードするには、使用するプログラミング言語の Google Cloud GitHub サンプルのクローンを作成します。
Java
このチュートリアルでは、Google Cloud Platform Java サンプル リポジトリの texttospeech/cloud-client/src/main/java/com/example/texttospeech/
ディレクトリのコードを使用します。
このチュートリアルのコードをダウンロードし、そのコードに移動するには、次のコマンドをターミナルから実行します。
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/texttospeech/cloud-client/src/main/java/com/example/texttospeech/
Node.js
このチュートリアルでは、Google Cloud Platform Node.js サンプル リポジトリの texttospeech
ディレクトリのコードを使用します。
このチュートリアルのコードをダウンロードし、そのコードに移動するには、次のコマンドをターミナルから実行します。
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd texttospeech/
Python
このチュートリアルでは、Google Cloud Platform Python サンプル リポジトリの texttospeech/snippets
ディレクトリのコードを使用します。
このチュートリアルのコードをダウンロードし、そのコードに移動するには、次のコマンドをターミナルから実行します。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd samples/snippets
クライアント ライブラリをインストールする
このチュートリアルでは、Text-to-Speech クライアント ライブラリを使用します。
Java
このチュートリアルでは、次の依存関係を使用します。
Node.js
ターミナルから、次のコマンドを実行します。
npm install @google-cloud/text-to-speech
Python
ターミナルから、次のコマンドを実行します。
pip install --upgrade google-cloud-texttospeech
Google Cloud Platform 認証情報を設定する
環境変数 GOOGLE_APPLICATION_CREDENTIALS
を設定して、アプリケーション コードに認証情報を指定します。この変数は、現在のシェル セッションにのみ適用されます。この変数を新しいシェル セッションに適用する場合は、シェル起動ファイル(~/.bashrc
ファイルや ~/.profile
ファイルなど)で変数を設定します。
Linux または macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
KEY_PATH
は、認証情報が含まれる JSON ファイルのパスに置き換えます。
例:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
PowerShell の場合:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
KEY_PATH
は、認証情報が含まれる JSON ファイルのパスに置き換えます。
例:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
コマンド プロンプトの場合:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
KEY_PATH
は、認証情報が含まれる JSON ファイルのパスに置き換えます。
ライブラリのインポート
このチュートリアルでは、次のシステム ライブラリとクライアント ライブラリを使用します。
Java
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Java API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Node.js API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Python API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Text-to-Speech API を使用する
次の関数は、SSML でタグ付けされた文字列と MP3 ファイルの名前を受け取ります。SSML でタグ付けされたテキストは、合成音声の生成に使用されます。パラメータとして指定された MP3 ファイル名で合成音声が保存されます。
SSML 入力全体を 1 つの音声でしか読み込めません。音声は VoiceSelectionParams
オブジェクトで設定できます。
Java
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Java API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Node.js API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Python API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
合成音声をカスタマイズする
次の関数は、テキスト ファイルの名前を受け取り、そのファイルの内容を SSML でタグ付けされたテキストの文字列に変換します。
Java
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Java API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Node.js API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Text-to-Speech 用のクライアント ライブラリをインストールして使用する方法については、Text-to-Speech クライアント ライブラリをご覧ください。詳細については、Text-to-Speech Python API のリファレンス ドキュメントをご覧ください。
Text-to-Speech で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
すべてをまとめる
このプログラムは次の内容を入力に使用します。
123 Street Ln, Small Town, IL 12345 USA 1 Jenny St & Number St, Tutone City, CA 86753 1 Piazza del Fibonacci, 12358 Pisa, Italy
上記のテキストを text_to_ssml()
に渡すと、次のタグ付きテキストが生成されます。
<speak>123 Street Ln, Small Town, IL 12345 USA <break time="2s"/>1 Jenny St & Number St, Tutone City, CA 86753 <break time="2s"/>1 Piazza del Fibonacci, 12358 Pisa, Italy <break time="2s"/></speak>
コードの実行
合成音声のオーディオ ファイルを生成するには、コマンドラインから次のコードを実行します。
Java
Linux または macOS
java-docs-samples/texttospeech/cloud-client/
ディレクトリから、コマンドラインで次のコマンドを実行します。
$ mvn clean package
Windows
java-docs-samples/texttospeech/cloud-client/
ディレクトリから、コマンドラインで次のコマンドを実行します。
$ mvn clean package
Node.js
Linux または macOS
hybridGlossaries.js
ファイルの、コメントアウトされた変数 TODO (developer)
のコメント化を解除します。
下のコマンドで、projectId は Google Cloud プロジェクト ID に置き換えます。nodejs-docs-samples/texttospeech
ディレクトリから、コマンドラインで次のコマンドを実行します。
$ node ssmlAddresses.js projectId
Windows
hybridGlossaries.js
ファイルの、コメントアウトされた変数 TODO (developer)
のコメント化を解除します。
下のコマンドで、projectId は Google Cloud プロジェクト ID に置き換えます。nodejs-docs-samples/texttospeech
ディレクトリから、コマンドラインで次のコマンドを実行します。
$env: C:/Node.js/node.exe C: ssmlAddresses.js projectId
Python
Linux または macOS
python-docs-samples/texttospeech/snippets
ディレクトリから、コマンドラインで次のコマンドを実行します。
$ python ssml_addresses.py
Windows
python-docs-samples/texttospeech/snippets
ディレクトリから、コマンドラインで次のコマンドを実行します。
$env: C:/Python3/python.exe C: ssml_addresses.py
出力を確認する
このプログラムは、合成音声の example.mp3 音声ファイルを出力します。
Java
java-docs-samples/texttospeech/cloud-client/resources/
ディレクトリに移動します。resources
ディレクトリで example.mp3 ファイルを確認します。
Node.js
nodejs-docs-samples/texttospeech/resources/
ディレクトリに移動します。resources
ディレクトリで example.mp3 ファイルを確認します。
Python
python-docs-samples/texttospeech/snippets/resources
に移動します。resources
ディレクトリで example.mp3 ファイルを確認します。
次の音声クリップを聴いて example.mp3 ファイルが同じように聞こえることを確認します。
トラブルシューティング
コマンドラインで GOOGLE_APPLICATION_CREDENTIALS 環境変数を設定し忘れると、エラー メッセージが表示されます。
The Application Default Credentials are not available.
存在しないファイルの名前を
text_to_ssml()
に渡すと、次のエラー メッセージが出力されます。IOError: [Errno 2] No such file or directory
None を含む ssml_text パラメータを
ssml_to_audio()
に渡すと、次のエラー メッセージが出力されます。InvalidArgument: 400 Invalid input type. Type has to be text or SSML
正しいディレクトリでコードを実行していることを確認してください。
次のステップ
- 他の SSML タグを確認する。
- SSML を Translation と Vision で使用する方法を学習する。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud Platform アカウントに課金されないようにするには、プロジェクトが不要であれば Google Cloud コンソールを使用して削除します。
プロジェクトを削除する
- Google Cloud コンソールでプロジェクト ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログ ボックスで、プロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。