PHP SDK

最近更新时间:2019-06-18 19:53:54

接口请求域名:aai.cloud.tencent.com/tts

腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话。 腾讯 TTS 技术可以应用到很多场景,例如,移动 App 语音播报新闻;智能设备语音提醒;支持车载导航语音合成的个性化语音播报。本接口内测期间免费使用。

开发环境

具体路径为:单击 腾讯云控制台 右上角您的账号,选择【访问管理】>【访问密钥】>【API 密钥管理】界面查看 AppID 和 key。
此版本 SDK 适用于 PHP5.4.16 及以上版本。
下载 SDK
流式语音合成 PHP SDK 下载地址

安装 SDK
源码安装。
根据下载地址下载源码,将源码中的 * .php 复制到项目中即可使用。

卸载 SDK
卸载方式即删除 * .php 即可。

获取用户信息

获取 AppID,SecretId 与 SecretKey

  • 关于云 API 账号中的 AppID,SecretId 与 SecretKey 查询方法,可参考 鉴名签权
  • 具体路径为:单击 腾讯云控制台 右上角您的账号,选择【访问管理】>【访问密钥】>【API 密钥管理】界面查看 AppID 和 key。

更改用户信息配置文件
将查询到的用户信息更改到 php_tts_sdk/Config.php中。

#需要配置成用户账号信息
static $SECRET_ID = "AKID********************************";
static $SECRET_KEY = "kKm2*******************************";
static $APPID = 1255*********;

开发相关

请求参数

参数名称 必选 类型 描述
Action String 本接口取值:TextToStreamAudio,不可更改。
AppId Int 用户在腾讯云注册账号的 AppId,具体可以参考 获取用户信息
SecretId String 用户在腾讯云注册账号 AppId 对应的 SecretId,获取方法同上。
Text String 合成语音的源文本,最大支持800字符。
SessionId String 一次请求对应一个 SessionId,会原样返回,建议传入类似于 uuid 的字符串防止重复。
ModelType Int 模型类型,1:默认模型,此字段只需设置为1即可。
Volume Float 音量大小,范围:[0,10],分别对应11个等级的音量,默认值为0,代表正常音量。没有静音选项。
输入除以上整数之外的其他参数不生效,按默认值处理。
Speed Int 语速,范围:[-2,2]分别对应不同语速:
-2代表0.6倍
-1代表0.8倍
0代表1.0倍(默认)
1代表1.2倍
2代表1.5倍
输入除以上整数之外的其他参数不生效,按默认值处理。
VoiceType Int 音色选择:
0:亲和女声(默认)
1:亲和男声
2:成熟男声
3:活力男声
4:温暖女声
5:情感女声
6:情感男声
PrimaryLanguage Int 主语言类型:
1:中文(默认)
2:英文
SampleRate Int 音频采样率:
16000:16k(默认)
8000:8k
Codec String 返回音频格式:pcm:返回二进制 pcm 音频,使用简单,但数据量大。
ProjectId Int 项目ID,可以根据控制台-账号中心-项目管理中的配置填写,如无配置请填写默认项目ID:0。
Timestamp Int 当前 UNIX 时间戳,可记录发起 API 请求的时间。如果与当前时间相差过大,会引起签名过期错误。SDK 会自动赋值当前时间戳。
Expired Int 签名的有效期,是一个符合 UNIX Epoch 时间戳规范的数值,单位为秒;Expired 必须大于 Timestamp 且 Expired-Timestamp 小于90天。SDK 默认设置1小时。

PHP 快速入门示例

参考 php_tts_sdk/TCloudTTS.php

<?php
require ('TTSUtil.php');

# 1. 先修改好Config.php文件中的配置值。
# 2. TEXT为每次请求的文本,SESSION_ID建议每次请求修改成唯一id,例如uuid。
Config :: $TEXT = "您好,五一节准备去哪里玩啊";
Config :: $SESSION_ID = guid();
//echo "Session id : " . Config :: $SESSION_ID . "\n";

# 2. 调用获取pcm格式音频
$result = getVoice();
$pcm_file = fopen('./test.pcm', "w");
fwrite($pcm_file, $result);
?>