Watson Text to Speech の使い方 日本語テキストを読み上げさせてみよう

Watson Text to Speech の使い方 日本語テキストを読み上げさせてみよう
あぱーブログ
2018年5月25日  カテゴリー:WEB  タグ: , ,
Pocket
LINEで送る

IBM Watson の Text to Speech は、テキストを読み上げてくれる音声合成サービスです。深い言語知識と信号処理技術により自然な音声を合成してくれて、日本語を含め複数の言語に対応しています。そこで今回は、IBM Watson の Text to Speech で日本語のテキストを読み上げさせる手順をまとめてみました。

5秒で試せる Text to Speech

Text to Speech のデモサイトで Input Text を「Japanese(ja-JP)」に選択して「Speak」ボタンをクリックすれば、サンプルの日本語テキストを読み上げてくれます、利用登録も必要ありません。(Google Chrome、Firefox 以外のブラウザでは動作しない場合があります)

Watson Text to Speech のデモサイト

IBM Cloudライト・アカウントの登録

Watson Text to Speech は、IBM Cloud(以前は Bluemix と呼ばれていました)のサービスのひとつです。そのため Text to Speech API を直接使うには IBM Cloud の利用登録が必要になります。

IBM Cloud には、「ライト・アカウント」というクレジットカード登録不要で Watson など主要なサービスを一定範囲内で使うことができるアカウントありますので、まずはじめにこちらを登録します。

登録は IBM Cloudライト・アカウントのページ から行います。登録に必要な入力項目は、メールアドレス、氏名、電話番号だけです。

ライト・アカウントの登録画面

Text to Speech サービスの作成

IBM Cloudライト・アカウントの登録が終わったら、IBM Cloud のコンソールにログインして、画面左上の「カタログ」をクリックします。

IBM Cloud のコンソール画面

左メニューのいちばん下の「Watson」をクリックします。(ライト・アカウントでログインした場合は、初期状態でライトプランのみ表示するようにサービスカタログが「label:ライト」でフィルタされています)

ライト・アカウントで使える Watson API が表示されますので、「Text to Speech」をクリックします。(名前が似ている Speech to Text は "音声を" テキストに変換してくれるサービスです。 間違えないようにしましょう)

デプロイする地域/ロケーションの選択で「米国南部」を選択し、「作成」をクリックします。(ライト・アカウントでは地域を「米国南部」に選択する必要があります)

サービス資格情報の確認

Text to Speech サービスを作成するとサービス資格情報も作成されます。(サービス資格情報は Text to Speech API の利用認証に使います)

資格情報の「表示」をクリックして、表示された「username」と「password」をメモしておきます。

Text to Speech API へのリクエスト実行

以上で準備が整いましたので、日本語テキストを Text to Speech API をに送信して音声ファイルに変換します。

リクエストの書式は次の通りです。

curl -X POST -u {username}:{password} \
--header "Content-Type: application/json" \
--header "Accept: audio/mp3" \
--data "{\"text\":\"東京の今日の天気は晴れ、最高気温は25度、最低気温は19度の予報です。\"}" \
--output sample.mp3 \
"https://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=ja-JP_EmiVoice"

curl -X POST -u {username}:{password}
 先ほどメモしたサービス資格情報の username と password を指定します。例えば username が「foo」、password が「secret」の場合は、「curl -X POST -u foo:secret」になります。

--header "Content-Type: application/json"
 JSON形式でテキストを送信しますので、コンテンツタイプは JSON を指定します。

--header "Accept: audio/mp3"
 出力する音声ファイルのフォーマットを指定します。

--data "{\"text\":\"<テキスト>\"}" \
 JSON形式で text フィールドに音声ファイルに変換するテキストを入力します。長いテキストの場合は JSONファイルにして「--data @<JSONファイルのパス>」としても良いでしょう。

--output sample.mp3
 出力する音声ファイルの名前やパスを指定します。

"https://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=ja-JP_EmiVoice"
 リクエストの送信先 Text to Speech API のURLです。voice パラメータで言語を指定します、日本語の場合は「voice=ja-JP_EmiVoice」になります。

 
対応している音声フォーマットや言語のパラメータは公式ドキュメントをご参照ください。
公式ドキュメント:Text to Speech The HTTP REST interface | IBM Cloud 資料

読み上げてもらった音声サンプル

Watson Text to Speech で読み上げてもらった音声がこちらです。

こちらは同じテキストを Google Cloud Text-to-Speech で読み上げてもらった音声です。どちらも個性がありますね(^^)

おわりに

同じ音声合成サービスの Google Cloud Text-to-Speech と比較すると、Watson Text to Speech は使い方がシンプルなのが魅力です。30分もあればアカウントの作成から音声ファイルへの変換まで出来てしまいます。ぜひ試してみてはいかがでしょうか。

スポンサーリンク
Pocket
LINEで送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です