IBM Watson の Text to Speech は、テキストを読み上げてくれる音声合成サービスです。深い言語知識と信号処理技術により自然な音声を合成してくれて、日本語を含め複数の言語に対応しています。そこで今回は、IBM Watson の Text to Speech で日本語のテキストを読み上げさせる手順をまとめてみました。
(2019年1月5日更新)APIの認証方式が変わったため記事を更新しました。以前と比べてAPIの認証手順が簡単になっています。
5秒で試せる Text to Speech
Text to Speech のデモサイトで Input Text を「Japanese(ja-JP)」に選択して「Speak」ボタンをクリックすれば、サンプルの日本語テキストを読み上げてくれます、利用登録も必要ありません。(Google Chrome、Firefox 以外のブラウザでは動作しない場合があります)
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 のコンソールにログインして、画面左上の「カタログ」をクリックします。
左メニューの「AI」をクリックします。(ライト・アカウントでログインした場合は、初期状態でライトプランのみ表示するようにサービスカタログが「label:ライト」でフィルタされています)
「Text to Speech」をクリックします。(名前が似ている Speech to Text は "音声を" テキストに変換してくれるサービスです。 間違えないようにしましょう)
デプロイする地域/ロケーションの選択で「東京」を選択し、「作成」をクリックします。
以上で Text to Speech サービスが作成されました。
API鍵 の確認
Text to Speech API を使うための API鍵を確認します。
左メニューの「管理」をクリックし、資格情報に表示されている「API鍵」をメモしておきます。(「資格情報を表示」をクリックすると実際の API鍵が表示されます)
Text to Speech API へのリクエスト実行
以上で準備が整いましたので、日本語テキストを Text to Speech API をに送信して音声ファイルに変換します。
リクエストの書式は次の通りです。
--header "Content-Type: application/json" \
--header "Accept: audio/mp3" \
--data '{"text": "東京の今日の天気は晴れ、最高気温は25度、最低気温は19度の予報です。"}' \
--output sample.mp3 \
"https://gateway-tok.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=ja-JP_EmiVoice"
curl -X POST -u "apikey:{API鍵}"
先ほどメモした API鍵 を指定します。例えば API鍵 が「secret」の場合は、「curl -X POST -u apikey:secret」になります。
--header "Content-Type: application/json"
JSON形式でテキストを送信しますので、コンテンツタイプは JSON を指定します。
--header "Accept: audio/mp3"
出力する音声ファイルのフォーマットを指定します。
--data '{"text": "<テキスト>"}' \
JSON形式で text フィールドに音声ファイルに変換するテキストを入力します。長いテキストの場合は JSONファイルにして「--data @<JSONファイルのパス>」としても良いでしょう。
--output sample.mp3
出力する音声ファイルの名前や保存先を指定します。例えば出力した音声ファイルを /home/foo/sample.mp3 に保存したい場合は、「--output /home/foo/sample.mp3」になります。
"https://gateway-tok.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 で読み上げてもらった音声です。どちらも個性がありますね(^^)
(2018年7月22日追加)Google Cloud Text-to-Speechの 日本語 WaveNet voices を使って読み上げてもらった音声です。
おわりに
同じ音声合成サービスの Google Cloud Text-to-Speech と比較すると、Watson Text to Speech は使い方がシンプルなのが魅力です。30分もあればアカウントの作成から音声ファイルへの変換まで出来てしまいます。ぜひ試してみてはいかがでしょうか。
コメント