您好,欢迎访问一九零五行业门户网

php如何实现音频格式转换

php音频格式转换的实现方法:首先把ffmpeg放在phpstudy的www目录下;然后把ffmpeg下的bin目录添加到windows的环境变量中;最后通过ffmpeg转换音频格式即可。
推荐:《php视频教程》
windows+php+ffmpeg转换音频格式
近几天在做一个语音识别搜索功能的时候遇到了一个问题 ,发个文章记录一下,萌新第一次发博客,有不对的地方请各位大佬们多多指正!
前端用的微信的sdk生成的录音,然后用阿里的一句话识别转成文字,这里遇到的坑就是阿里不支持微信返回的音频格式,所以这里需要处理一下格式,经过了一顿百度,决定使用ffmpeg进行音频的转换
首先要下载ffmpg工具 [下载地址](http://ffmpeg.org/)
我为了方便调试我把ffmpeg放在phpstudy的www目录下了 如图:
其中ffmpeg.php是我自己写的,代码贴在下面之后把ffmpeg下的bin 目录添加到windows的环境变量,具体操作这里就不说了,学过java的都清楚,如记不清了可百度一下话不多说,直接上代码.
<?php/** * @api音频文件格式转换-将silk转为wav * @author wyp */header("content-type:text/html;charset=utf-8");date_default_timezone_set('asia/shanghai');define('base_path', str_replace('\\', '/', realpath(dirname(__file__) . '/')) . "/");//域名$domain = $_server['server_name'];/** * 由于每次访问时会将音频文件上传到服务器上,所以我这里先把之前上传到服务器的音频删除 */$dir = scandir('./');foreach ($dir as $key => $value) {    if (substr($value, -4) == '.wav') {        if ($value == $_get['filepath']) {            continue;        }        $filemtime = fileatime($value);        if (time() - $filemtime > 10) {            unlink($value);        }    }}//接收文件if (!isset($_get['filepath'])) {    echo json_encode([        'code' => 400,        'info' => '文件路径为空',    ]);    exit;}$filepath = $_get['filepath'];$in_time = date('y-m-d-h-i-s', time());@$copy = copy($filepath, './in_' . $in_time . .silk);//这里将文件下载到本地服务器if (!$copy) {    echo json_encode([        'code' => 400,        'info' => '请检查文件路径',    ]);    exit;}$filepath = in_ . $in_time . .silk;//输出文件名$rank = rec;for ($i = 1; $i < 9; $i++) { $rank .= rand(0, 9);}$outfile = $rank . "-" . date('y-m-d-h-i-s', time()) . ".wav";//绝对地址(d://phpstudy/www/...)$base = base_path;//要执行的cmd命令$cmd = "ffmpeg -i $base" . "$filepath " . "$base$outfile";//执行cmd命令exec($cmd);//删除接收到的文件unlink('./in_' . $in_time . ".silk");//返回结果echo json_encode([ 'code' => 200,    'cmd' => $cmd,//执行的cmd    'outfile' => $domain/ffmpeg/bin/$outfile//文件路径]);?>
以上就是php如何实现音频格式转换的详细内容。
其它类似信息

推荐信息