こんにちは、石尾です。
先日、「「VoiceText Web API」(β版) の提供を開始」というニュースが目に止まりました。昔、音声合成の機能を調査した際に、VoiceTextというツールがあったことを思い出しました。
VoiceTextは、HOYAサービス株式会社が提供している音声合成のソフトウェアです。http://voicetext.jp/
「VoiceText Web API」は、同会社がVoiceTextをWebサービスとして提供したサービスです。
前回調査した際は、試さないまま終わってしまったので、少しだけ試してみました。
試してみる
はじめるページを元に試します。利用登録を行い、APIキーを取得します。
「YOUR_API_KEY」を取得したAPIキーに変更して、curlコマンドを実行します。「おはようございます」の音声ファイルtest.wavファイルが出力されます。
curl "https://api.voicetext.jp/v1/tts" -o "test.wav" -u "YOUR_API_KEY:" -d "text=おはようございます" -d "speaker=hikari"
※Windowsのコマンドプロンプトで実行すると、Shift-JIS形式でリクエストするため、出力されたtest.wavファイルは、次のようになってしまいます。
{"error":{"message":"internal server error"}}
音声変換するtext項目を英字「good morning」とすると、test.wavファイルが正常に出力されます。
curl "https://api.voicetext.jp/v1/tts" -o "test.wav" -u "YOUR_API_KEY:" -d "text=good morning" -d "speaker=hikari"
各パラメータは、APIマニュアルに記載されています。
PHPで試してみる
PHPで、実際に利用するイメージで次のようなサンプルを試しました。
file_get_contents()関数で、Webサービスにアクセスして、wavファイルをレスポンスとして返します。日本語「おはようございます」の音声ファイルtest.wavをダウンロードします。
<?php $result = file_get_contents( 'https://YOUR_API_KEY:@api.voicetext.jp/v1/tts', false, stream_context_create( array( 'http' => array( 'method' => 'POST', 'header' => implode( "\r\n", array( 'Content-Type: application/x-www-form-urlencoded' ) ), 'content' => http_build_query( array( 'text' => 'おはようございます', 'speaker' => 'hikari' ) ) ) ) ) ); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="test.wav"'); echo $result; ?>
最後に
音声機能をシステムに取り込む場合、そのライブラリへの依存(実行環境やサイズ、バージョン変更時の運用など)を検討する必要がありますが、このようなWebサービスであれば、利用しやすいと感じています。
また、APIライブラリがこの記事執筆中にも更新されています。β版から正式版になることも近いと感じています。
ただ、VoiceText Web APIのTOPページに記載されているように商用利用はできなくなっています。
「本サービスで作成した音声データの商用利用、二次利用及び配布する行為は禁止されております。」