サンプル・プログラムの実行例

サンプル・プログラム
VoiceTextWeb.php | サンプル・プログラム本体 |
解説:準備
42: //Voice Text Web APIキー
43: //https://cloud.voicetext.jp/webapi/api_keys/new にて登録のこと.
44: define('API_KEY', '*********************');
45:
WebAPI:VoiceText WebAPI
リクエストURL |
---|
https://api.voicetext.jp/v1/tts |
フィールド名 | 要否 | 内 容 |
---|---|---|
text | 必須 | 読み上げるテキスト。Unicodeで200文字以内。 |
speaker | 必須 | 話者名:日本語:show(男性) 日本語:haruka(女性) 日本語:hikari(女性) 日本語:takeru(男性) 日本語:santa(サンタ) 日本語:bear(凶暴なクマ) |
format | 任意 | 音声ファイルフォーマット:wav | ogg | aac wav(デフォルト) |
emotion | 任意 | 感情カテゴリの指定:happiness 喜 | anger 怒 | sadness 悲 話者 haruka、hikari、takeru、santa、bear にのみ使用できる。 |
emotion_level | 任意 | 感情レベル:1~4 2(デフォルト)> |
pitch | 任意 | 音の高低:50~200 100(デフォルト) |
pitch | 任意 | 音の高低:50~200 100(デフォルト) |
speed | 任意 | 話す速度:50~400 100(デフォルト) |
>volume | 任意 | 音量:50~200 100(デフォルト) |
解説:VoiceText WebAPIの呼び出し
175: /**
176: * 「Voice Text Web API」を用いてテキストを音声データに変換
177: * @param string $text テキスト
178: * @return object 音声データ
179: */
180: function text2voice($text) {
181: $post = array(
182: 'text' => $text,
183: 'speaker' => 'takeru', //話す人
184: 'emotion' => 'happiness', //感情
185: 'emotion_level' => 1, //感情レベル
186: 'pitch' => 100, //声の高低
187: 'speed' => 100, //話す速度
188: 'volume' => 100, //音量
189: 'format' => 'wav' //データ形式
190: );
191:
192: $url = VOICETEXTWEB_URL;
193: $ch = curl_init();
194: curl_setopt($ch, CURLOPT_URL, VOICETEXTWEB_URL);
195: curl_setopt($ch, CURLOPT_USERPWD, API_KEY);
196: curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
197: curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
198: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
199: curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
200: curl_setopt($ch, CURLOPT_HEADER, FALSE);
201: curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
202: curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
203: curl_setopt($ch, CURLOPT_POST, TRUE);
204: curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
205:
206: $data = curl_exec($ch);
207: curl_close($ch);
208:
209: return $data;
210: }
解説:音声出力
250: if ($data != NULL) {
251: $res = base64_encode($data);
252: $res = "<p><audio autoplay controls src=\"data:audio/wav;base64,{$res}\"></audio></p>";
253: }
ただし、Internet Explorer のみ対応していない。
300: //直接出力
301: if (($sour != '') && (getParam('mode', FALSE, -1) == 0)) {
302: header('Content-type: audio/x-wav');
303: print($data);
304:
305: //画面出力
306: } else {
307: //表示HTML作成
308: $HtmlBody = makeCommonBody($sour, $data, $errmsg, VOICETEXTWEB_URL);
309: //表示処理
310: echo $HtmlHeader;
311: echo $HtmlBody;
312: echo $HtmlFooter;
313: }
(2022年1月30日)PHP8対応,リファラ・チェック改良