PHP使用阿里云(语音合成)实现文字转语音“TTS“ | 您所在的位置:网站首页 › 语音合成tts阿里云 › PHP使用阿里云(语音合成)实现文字转语音“TTS“ |
在做前,我发现阿里云竟然没有PHP文字转语音的SDK包,有点尴尬啊,没办法我选择了RESTful API 2.0的方式请求; 1:第一步:打开阿里云-->产品分类-->人工智能-->语音合成-->申请开通,可以先试用一下; 2:第二步:阿里云控制台-->有你刚刚购买的语音合成, 3:第三步,在这里面需要生成token,所以我们可以在阿里云里找到生成token的sdk包
准备工作做好以后,下面就上代码了; require __DIR__ . '/vendor/autoload.php';//引入到运行页面中 use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException; //使用你的AccessKey ID和Access Key Secret初始化 $aly = AlibabaCloud::accessKeyClient("你的AccessKey ID", "你的Access Key Secret") ->regionId("cn-shanghai") ->asDefaultClient(); //获取token等初始化的值 $response = AlibabaCloud::nlsCloudMeta() ->v20180518() ->createToken() ->request(); $url = 'https://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/tts';//这个是访问阿里云的接口 $token = $response['Token']['Id'];//获取token值: 目前基本已经完成一半了;下面开始文字转语音了,官方给了2种转的方法,GET和POST 第一种:GET(中文的话需要进行UTF-8转码,在URL编码才可以) $text = '喜洋洋,美羊羊,懒洋洋,沸羊羊,红太狼,灰太狼';//需要转的文字 $text = mb_convert_encoding($text ,'utf-8');//文字转换成utf-8的形式 $text = urlencode($text);//URL编码数据 下面就开始拼接数据了: $data = 'appkey=你的Appkey&token='.$token.'&text='.$text'; $get_tts = $url.$data;//已经生成了路径你把路径放到url请求一下就ok了
第二种:POST(需要把数据拼接成数组,然后进行json_encode转换一下,在请求接口上添加:Content-Type: application/json) $text = '喜洋洋,美羊羊,懒洋洋,沸羊羊,红太狼,灰太狼';//转换的文字 $data =['appkey'=>'你的appkey','token'=>$token,'text'=>$text]; $data = json_encode($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 线下环境不用开启curl证书验证, 未调通情况可尝试添加该代码 curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); $data = curl_exec($ch); curl_close($ch); 就ok了;
|
CopyRight 2018-2019 实验室设备网 版权所有 |