Intelligent Technology's Technical Blog

株式会社インテリジェントテクノロジーの技術情報ブログです。

音声合成Webサービス「VoiceText Web API」を試す

こんにちは、石尾です。

先日、「「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ページに記載されているように商用利用はできなくなっています。
「本サービスで作成した音声データの商用利用、二次利用及び配布する行為は禁止されております。」