今天做了一个功能,开始一个文字转语音的功能,主要应用于网站文章阅读。使用了百度AI的语音合成接口。下面详细的来说一下;
一、准备工作
前往百度AI官网注册账户或直接登录。在控制台中创建应用,填写应用说明,如下图:
二、获取参数值
我们要记录下AppID、API Key、Secret Key这三个参数值,后续我们会使用到。
三、下载SDK(PHP语言)
点击上图右侧的管理,进入SDK下载页面,选择PHPSDK进行下载。将下载后的压缩包进行解压。我们要使用的是ApiSpeech.php文件。稍后我们详细的看一下代码。其他的文件我们不必做修改和调整。├── AipSpeech.php //语音合成
└── lib
├── AipHttpClient.php //内部http请求类
├── AipBCEUtil.php //内部工具类
└── AipBase //Aip基类
四、示例代码
注意:使用时需要将参数替换成自己的哦!//调用
createAudioFrequencyFile('中国人',3,1)
/**
* @param $content
* @param $type
* @param $id
*/
function createAudioFrequencyFile($content, $type, $id)
{
require_once './AipSpeech.php';
// 你的 APPID AK SK
$app_id = '19160125';
$api_key = '4UyG4yLARkLQL0fn------';
$secret_key = '5n5vDd6H6kfGCNPVc-----';
$client = new AipSpeech($app_id, $api_key, $secret_key);
$result = $client->synthesis($content, 'zh', 1, [
'vol' => 5,
'aue' => 3,
'per' => $type
]);
// 识别正确返回语音二进制 错误则返回json 参照下面错误码
if (!is_array($result)) {
file_put_contents($id . '_' . $type . '.mp3', $result);
} else {
if (isset($result['error_code'])) {
echo json_encode(['code' => $result['error_code'], 'msg' => $result['error_msg']]);
die;
} else {
echo json_encode(['code' => 100, 'msg' => '接口错误']);
die;
}
}
}
五、参数解读参数 类型 描述 是否必须tex String合成的文本,使用UTF-8编码,请注意文本长度必须小于1024字节 是cuid String用户唯一标识,用来区分用户,填写机器MAC地址或IMEI码,长度为60以内 否spd String语速,取值0-9,默认为5中语速 否pit String音调,取值0-9,默认为5中语调 否vol String音量,取值0-15,默认为5中音量 否per String发音人选择,0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女 否