在当今信息爆炸的时代,文字转语音技术正扮演着越来越重要的角色。而一款覆盖多种语言、方言和声音风格的文字转语音API接口,正在为用户带来全新的体验和可能性。
这款API接口不仅支持中文、英文、德语、越南语、泰语、西班牙语、印尼语等多种语言,更能让用户选择不同的方言和声音风格。无论您需要一位温暖动听的女声,还是一位激情洋溢的男声,亦或是一位威严稳重的声音,都可以轻松实现定制化需求。
通过这个API接口,用户可以根据自己的需求和偏好,定制出各种语音效果。无论是为产品增加交互性,为广播节目注入生动元素,还是为教育资源提供更多选择,这个API接口都能满足您的各种需求。
接口地址:https://www.apimy.cn/api/tts/tts
返回格式:audio/mp3
请求方式:HTTPGET/POST
请求示例:https://www.apimy.cn/api/tts/tts?key=key&model=mjiaxin&text=%E4%BD%A0%E5%A5%BD&json=1
请求HEADER:
名称 | 值 |
---|---|
Content-Type | application/x-www-form-urlencoded;charset:utf-8; |
请求参数说明:
名称 | 必填 | 类型 | 示例值 | 说明 |
---|---|---|---|---|
key | 是 | string | 123456 | 接口密钥,在控制台->密钥管理查看 |
model | 是 | string | mjiaxin | 人物代号 |
text | 是 | string | 你好啊 | 生成语音的文字 |
speech | 否 | string | 1 | 为空生成语音,不为空获取人物代号 |
speed | 否 | string | 100 | 语速,100为正常,默认100。支持50-200 |
pitch | 否 | string | 0 | 语调,0-100 |
vol | 否 | string | 100 | 音量,0-100 |
json | 否 | string | 1 | 为空在线预览,不为空获取json格式 |
<?php
/**
* API请求DEMO
*
* 本demo支持GET与POST请求,同时支持签名验证与无需签名。
*/
//你申请的key密钥
$API_KEY = 'key';
//API接口地址
$API_URL = 'https://www.apimy.cn/api/tts/tts';
$get_post_data = array(
//接口参数,一行一个,可按照接口文档-请求参数 的参数填写,或者直接复制开发工具下面的测试代码。
'key' => $API_KEY,
'参数名' => '参数值',
);
//签名校验的 SK:(在用户控制台https://www.apimy.cn/user/key的秘钥安全设置->签名校验 开启后才会生效,没开启签名校验留空即可。)
$sk = 'sk';
/*发起请求API接口:
第1个参数:API接口地址URL,跟上面的同名变量相对应,无需更改。
第2个参数:API接口参数数组,跟上面的同名变量相对应,无需更改。
第3个参数:请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
第4个参数:是否验证签名,true验证签名,否则false不验证签名,根据用户控制台 https://www.apimy.cn/user/key 的 秘钥安全设置->签名校验 开启后才会生效,如没开启,填写false即可。
第5个参数:如果第4个参数开启验证签名,此处必须填写 SK ,跟上面的同名变量相对应,无需更改。
*/
$resdata = api::send($API_URL, $get_post_data, 'GET', true, $sk); //发起请求,注意这里要选择接口支持的协议,默认GET,可选POST
//打印请求结果
print($resdata);
///////////////你的业务代码可写在这里处理API返回的数据
/**
* API请求类
*/
class api
{
public static function send($API_URL, $get_post_data, $type, $ifsign, $sk)
{
$get_post_data = http_build_query($get_post_data);
if ($ifsign) {
$sign = md5($get_post_data . $sk);
$res = self::send_curl($API_URL, $type, $get_post_data, $sign);
} else {
$res = self::send_curl($API_URL, $type, $get_post_data, null);
}
return $res;
}
//封装好的CURL请求函数,支持POST|GET
public static function send_curl($API_URL, $type, $get_post_data, $sign)
{
$ch = curl_init();
if ($type == 'POST') {
curl_setopt($ch, CURLOPT_URL, $API_URL);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $get_post_data);
} elseif ($type == 'GET') {
curl_setopt($ch, CURLOPT_URL, $API_URL . '?' . $get_post_data);
}
if ($sign) {
curl_setopt($ch, CURLOPT_HTTPHEADER, ['sign:' . $sign]);
}
curl_setopt($ch, CURLOPT_REFERER, $API_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$resdata = curl_exec($ch);
curl_close($ch);
return $resdata;
}
}