このチュートリアルでは、音声合成マークアップ言語(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 認証情報の設定
Provide authentication credentials to your application code by setting the
environment variable GOOGLE_APPLICATION_CREDENTIALS
. This
variable applies only to your current shell session. If you want the variable
to apply to future shell sessions, set the variable in your shell startup file,
for example in the ~/.bashrc
or ~/.profile
file.
Linux または macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
For example:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
For PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
For example:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
For command prompt:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
ライブラリのインポート
このチュートリアルでは、次のシステム ライブラリとクライアント ライブラリを使用します。
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 を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。