小程序silk录音转wav

小程序silk录音转wav

    public function upload()
    {
        $ids=I('post.ids');
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =  31457280 ;// 设置附件上传大小
        $upload->exts      =  array('silk');// 设置附件上传类型
        $upload->rootPath  =  './files/'; // 设置附件上传根目录
        $upload->savePath  =  ''; // 设置附件上传(子)目录
        $upload->saveName = time().mt_rand(100000,999999); //文件名称创建时间戳+随机数
        $upload->autoSub  = false; //自动使用子目录保存上传文件 默认为true
        $info = $upload->upload();
        if ($info) {
           $arr=explode('.',$info['file']['savename']);
            $this->SilkToWav($arr[0]);
            @unlink("./files/".$info['file']['savename']);
            $res=M('ucard')->where(['id'=>$ids])->find();
            if($res['url']){
                $dd='./files/'.$res['url'];
                if (file_exists($dd)) {
                    @unlink($dd);
                }
            }
            $resg = M('ucard')->where(['id' => $ids])->save(['url' =>$arr[0].'.wav']);
            if ($resg) {
                echo 1;
            } else {
                echo 2;
            }
        } else {
            echo 2;
        }
    }
    public function SilkToWav($silkfile)
    {///www/web/default/public_html/minimbheka/App/Api
//        define('IA_ROOT', str_replace("\\", '/', dirname(dirname(__FILE__))));
        $MPATH = "/www/web/default/public_html/minimbheka/";
        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
            $cmd = $MPATH . "silk/win/silk_v3_decoder.exe " . $MPATH . "files/{$silkfile}.silk " . $MPATH . "files/{$silkfile}.pcm";
            exec($cmd);
            $cmd = $MPATH . "silk/win/ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i " . $MPATH . "files/{$silkfile}.pcm -f wav -ar 16000 -b:a 16 -ac 1 " . $MPATH . "files/{$silkfile}.wav";
            exec($cmd, $out);
            @unlink($MPATH."files/{$silkfile}.pcm");
        } else {
            $cmd = $MPATH."converter.sh files/{$silkfile}.silk wav";
            exec($cmd, $out);
            
        }
        if (!file_exists($MPATH."files/{$silkfile}.wav"))
         file_put_contents($MPATH."files/{$silkfile}.wav", $cmd . "\n" . json_encode($out));
    }