本文作者:DurkBlue

php 实现阿里云语音智能交互的语音合成代码示例

DurkBlue 2022-07-01 1794
php 实现阿里云语音智能交互的语音合成代码示例摘要: 在做前,我发现阿里云竟然没有PHP文字转语音的SDK包,有点尴尬啊,没办法我选择了RESTful API 2.0的方式请求;1:第一步:打开阿里云-->产品分类-->人...

在做前,我发现阿里云竟然没有PHP文字转语音的SDK包,有点尴尬啊,没办法我选择了RESTful API 2.0的方式请求;

1:第一步:打开阿里云-->产品分类-->人工智能-->语音合成-->申请开通,可以先试用一下;

2:第二步:阿里云控制台-->有你刚刚购买的语音合成,

php 实现阿里云语音智能交互的语音合成代码示例  第1张

,一开始你需要创建一个项目,当前我已经创建一个“文字转语音”。并会生成项目Appkey;,

php 实现阿里云语音智能交互的语音合成代码示例  第2张

,在拿到你的AccessKey ID和Access Key Secret,这三个值等会调取接口时需要;

3:第三步,在这里面需要生成token,所以我们可以在阿里云里找到生成token的sdk包

php 实现阿里云语音智能交互的语音合成代码示例  第3张

打开下翻

php 实现阿里云语音智能交互的语音合成代码示例  第4张

,这里可以点击上面的方法在github中下载源码,也可以使用composer安装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了;


此篇文章由DurkBlue发布,请自觉转载请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 2022-07-01
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享