在音频处理场景中,去除录音背景杂音是提升用户体验的重要需求,vivo AI语音降噪接口提供了成熟的降噪能力,php可以通过发送HTTP请求调用该接口完成录音降噪处理。
准备工作
在调用接口前需要先完成以下准备:
- 前往vivo开放平台注册开发者账号,申请AI语音降噪接口的使用权限,获取对应的
app_id和app_secret - 确认本地php环境已经开启curl扩展,用于发送网络请求
- 准备需要处理的录音文件,支持wav、mp3等常见音频格式,建议采样率为16k或更高
接口调用核心流程
1. 获取接口访问令牌
vivo AI接口需要先通过凭证获取访问令牌,令牌有效期通常为2小时,示例代码如下:
<?php
$appId = '你的app_id';
$appSecret = '你的app_secret';
// 获取令牌的接口地址
$tokenUrl = 'https://api.ipipp.com/vivo/ai/token';
$postData = [
'app_id' => $appId,
'app_secret' => $appSecret
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $tokenUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$tokenResult = json_decode($response, true);
if ($tokenResult['code'] == 0) {
$accessToken = $tokenResult['data']['access_token'];
echo '获取令牌成功:' . $accessToken;
} else {
echo '获取令牌失败:' . $tokenResult['msg'];
}
?>
2. 发送降噪请求
拿到令牌后,将录音文件上传到降噪接口,接口会返回降噪后的音频文件地址或者二进制内容,示例代码如下:
<?php
$accessToken = '上一步获取的access_token';
// 降噪接口地址
$denoiseUrl = 'https://api.ipipp.com/vivo/ai/voice_denoise';
// 待处理的录音文件路径
$audioPath = '/data/record/test.wav';
// 读取音频文件内容
$audioContent = file_get_contents($audioPath);
// 对音频内容进行base64编码
$base64Audio = base64_encode($audioContent);
$postData = [
'access_token' => $accessToken,
'audio_data' => $base64Audio,
'audio_format' => 'wav', // 音频格式,根据实际文件填写
'sample_rate' => 16000 // 采样率,根据实际文件填写
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $denoiseUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$denoiseResult = json_decode($response, true);
if ($denoiseResult['code'] == 0) {
// 降噪后的音频base64内容
$denoisedBase64 = $denoiseResult['data']['denoised_audio'];
// 将base64内容转为二进制并保存
$denoisedAudio = base64_decode($denoisedBase64);
file_put_contents('/data/record/denoised_test.wav', $denoisedAudio);
echo '降噪处理完成,文件已保存';
} else {
echo '降噪处理失败:' . $denoiseResult['msg'];
}
?>
常见问题处理
- 如果请求返回格式错误,检查上传的音频文件是否符合接口要求的格式和采样率
- 如果出现权限错误,确认
app_id和app_secret是否正确,以及接口权限是否已经开通 - 如果处理速度较慢,可以尝试将音频文件裁剪为较短的片段后再上传,降低接口处理压力
注意事项
调用第三方接口时需要注意用户音频的隐私保护,不要将用户的录音文件用于接口要求之外的场景,同时建议对存储的音频文件设置合理的过期清理策略。
如果本地环境无法调用外部接口,也可以使用php的音频处理扩展结合简单的滤波算法实现基础的杂音过滤,不过降噪效果会弱于专业的AI接口。
phpvivo_AI_语音降噪语音降噪录音处理修改时间:2026-06-25 21:04:04