PHP 基于Tp5.1与腾讯云实现基础语音合成及长文本语音合成

第一步:composer 引入SDK

composer require  tencentcloud/tencentcloud-sdk-php

安装完成以后如下图目录可见

 第二步:

项目中新建控制器 我是用的是index控制器  

 

<?php

namespace app\index\controller;

use TencentCloud\Common\Credential;
use TencentCloud\Common\Profile\ClientProfile;
use TencentCloud\Common\Profile\HttpProfile;
use TencentCloud\Common\Exception\TencentCloudSDKException;
use TencentCloud\Tts\V20190823\TtsClient;
use TencentCloud\Tts\V20190823\Models\CreateTtsTaskRequest;
use TencentCloud\Tts\V20190823\Models\TextToVoiceRequest;
use think\facade\Env;

class Index
{
    public function speechSynthesis()
    {
        try {
            $cred = new Credential(config("SecretId"), config("SecretKey"));
            $httpProfile = new HttpProfile();
            $httpProfile->setEndpoint("tts.tencentcloudapi.com");

            $clientProfile = new ClientProfile();
            $clientProfile->setHttpProfile($httpProfile);
            $client = new TtsClient($cred, "ap-guangzhou", $clientProfile);
            $vname=md5(time().rand(10000,90000));  //搞个随机字符串api调用时需要到的参数,同时也是mp3文件日后的文件名了
            # 长文本语音类
//            $req = new CreateTtsTaskRequest();
            # 基础语音合成类
            $req = new TextToVoiceRequest();
            $params = [
                'Text' => '内容',
                'ModelType' => 1,
                'SessionId' => $vname,
                'VoiceType' => 1001,
                'Timestamp' => time(),
                'Codec' => 'mp3'
            ];
            $params = json_encode($params,true);
            $req->fromJsonString($params);
            # 调用长文本转语音mp3
//            $resp = $client->CreateTtsTask($req);
            # 调用基础文本转语音mp3
            $resp = $client->TextToVoice($req);
            $resp=$resp->toJsonString();
            $resp=json_decode($resp,true);  //到这里已经得到了返回的数据但转成数组了
            $path = $vname.'.mp3';
            $myfile = fopen(Env::get('root_path')."\public\\upload\\".$path, "w") or die("Unable to open file!");
            fwrite($myfile, base64_decode($resp['Audio'])); //base64_decode是因为返回来的音频数据需解码后保存出来的mp3文件才正常
            fclose($myfile);
            echo "合成文件成功";
        }catch (TencentCloudSDKException $e){
            echo $e;
        }
    }
}

生成的mp3可播放文件放在了 public/upload文件夹下

SDK中可支持长文本转换语音和基础文本转换语音 详情请看官方文档语音合成 基础语音合成-API 文档-文档中心-腾讯云 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

❀想容

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值