VoiceText Web API
リクエストを投げるだけでMP3にしてくれるというナイスなサービスを見つけたのでやってみます。
ただ二次利用の規約が微妙なので、どこまで使っていいかわからないんですよね。
本サービスで作成した音声データの商用利用、二次利用及び配布する行為は禁止されております。
(3)本サービスで作成した音声データの商用利用、及び二次利用する行為(第三者へ再生を超えた保存目的での提供など)
例えばゆっくり実況のような用途には使えないように見えます。
なのでせっかく声を取得したとしてもほとんど使い道がないという。
あと既にPHPのライブラリがふたつもあるので一から実装する意味はないのですが、簡単なのでまあいいや。
<?php
// 設定
const API_URL = 'https://api.voicetext.jp/v1/tts';
const API_KEY = 'hoge:';
// 音声パラメータ https://cloud.voicetext.jp/webapi/docs/api
$post = [
'text' =>'こんにちは',
'speaker' =>'haruka', // show / haruka / hikari / takeru
'emotion' =>'happiness', // happiness / anger / sadness
'emotion_level'=>'1', // 1-2
'pitch' =>'100', // 50-200
'speed' =>'100', // 50-200
'volume' =>'100', // 50-200
];
// CURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, API_URL);
curl_setopt($ch, CURLOPT_USERPWD, API_KEY);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$data = curl_exec($ch);
curl_close($ch);
file_put_contents('hello.mp3', $data);
はい、びっくりするほど簡単でした。
まあレスポンスを全く見てないなど手抜き感満載ですが、どうせ公開するわけでもないしかまわないでしょう。
で、肝心の声質はというと、完全棒読みのゆっくりよりはずっと感情がこもっていますが、調声が可能なVOICEROIDにはやはり全く敵いません。
どちらにも振り切れてないからいまいち使いづらいというか、そもそも何処で使っていいのかよくわからない。