サンプル・プログラムの実行例
サンプル・プログラム
VoiceTextWeb.php | サンプル・プログラム本体 |
解説:準備
0042: //Voice Text Web APIキー
0043: //https://cloud.voicetext.jp/webapi/api_keys/newにて登録のこと.
0044: define('API_KEY', '*********************');
0045:
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の呼び出し
0175: /**
0176: * 「Voice Text Web API」を用いてテキストを音声データに変換
0177: * @param string $textテキスト
0178: * @return object 音声データ
0179: */
0180: function text2voice($text) {
0181: $post = array(
0182: 'text' => $text,
0183: 'speaker' => 'takeru', //話す人
0184: 'emotion' => 'happiness', //感情
0185: 'emotion_level' => 1, //感情レベル
0186: 'pitch' => 100, //声の高低
0187: 'speed' => 100, //話す速度
0188: 'volume' => 100, //音量
0189: 'format' => 'wav' //データ形式
0190: );
0191:
0192: $url = VOICETEXTWEB_URL;
0193: $ch = curl_init();
0194: curl_setopt($ch, CURLOPT_URL, VOICETEXTWEB_URL);
0195: curl_setopt($ch, CURLOPT_USERPWD, API_KEY);
0196: curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
0197: curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
0198: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
0199: curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
0200: curl_setopt($ch, CURLOPT_HEADER, FALSE);
0201: curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
0202: curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
0203: curl_setopt($ch, CURLOPT_POST, TRUE);
0204: curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
0205:
0206: $data = curl_exec($ch);
0207: curl_close($ch);
0208:
0209: return $data;
0210: }
解説:音声出力
0250: if ($data != NULL) {
0251: $res = base64_encode($data);
0252: $res = "<p><audio autoplay controls src=\"data:audio/wav;base64,{$res}\"></audio></p>";
0253: }
ただし、Internet Explorer のみ対応していない。
0300: //直接出力
0301: if (($sour != '') && (getParam('mode', FALSE, -1) == 0)) {
0302: header('Content-type: audio/x-wav');
0303: print($data);
0304:
0305: //画面出力
0306: } else {
0307: //表示HTML作成
0308: $HtmlBody = makeCommonBody($sour, $data, $errmsg, VOICETEXTWEB_URL);
0309: //表示処理
0310: echo $HtmlHeader;
0311: echo $HtmlBody;
0312: echo $HtmlFooter;
0313: }
(2022年1月30日)PHP8対応,リファラ・チェック改良