讯飞文字转语音

摘要 讯飞文字转语音PHP示例

属于 :备忘 标签: 讯飞 发布于:2019-06-28 14:37:34

php示例

<?php
class tts_test {
	function tocurl($url, $header, $content){
		$ch = curl_init();
		if(substr($url,0,5)=='https'){
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在
		}
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
		$response = curl_exec($ch);
		$error=curl_error($ch);
		//var_dump($error);
		if($error){
			die($error);
		}
		$header = curl_getinfo($ch);

		curl_close($ch);
		$data = array('header' => $header,'body' => $response);
		return $data;
	}
	function xfyun() {
		$url = 'http://api.xfyun.cn/v1/service/v1/tts';
		$appid = 'APPID';
		$apikey = 'APIKEY';
		$param = array (
			'aue' => 'lame',
			'voice_name' => 'xiaoyan',
		);
		$time = (string)time();
		$xparam = base64_encode(json_encode(($param)));
		$checksum = md5($apikey.$time.$xparam);
		$header = array(
			'X-CurTime:'.$time,
			'X-Param:'.$xparam,
			'X-Appid:'.$appid,
			'X-CheckSum:'.$checksum,
			'X-Real-Ip:124.65.166.238',
			'Content-Type:application/x-www-form-urlencoded; charset=utf-8'
		);
		$content = array(
			'text' => '2019-6-28 北京',
		);
		$response = $this->tocurl($url, $header, $content);
		$header = $response['header'];
		if($header['content_type'] == 'text/plain'){
			 
			echo $response['body'];
		}else if($header['content_type'] == 'audio/mpeg'){
			$filename.= $time.'.mp3';
			$res = file_put_contents($filename, $response['body']);
			echo '<audio src="'.$filename.'" autoplay="true">
			您的浏览器不支持 audio 标签。
			</audio>';
			echo $res.$filename;
		}else{
			$filename.= $time.'.wav';
			$res = file_put_contents($filename, $response['body']);
			echo $res;
		}

	}
}
$a = new tts_test();
$a->xfyun();

?>