首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么 我的音频不能被解析?

为什么 我的音频不能被解析?

提问于 2018-12-26 21:31:16
回答 0关注 0查看 146
代码语言:js
复制
<?php

require('./include.php');

//请在此填入AppID与AppKey
$app_id = '2110386293';
$app_key = '7kywTjWd30fl51dZ';

//设置AppID与AppKey
Configer::setAppInfo($app_id, $app_key);

// 自定义分片规则和是否返回中间结果
// $speech_data = file_get_contents("php://input");
// file_put_contents("wavs/" . uniqid() . '.wav', $speech_data);

$speech_data = file_get_contents("./wavs/5c237f9ed6815.wav");

$chunk_size  = 4096; //每个分片4096Byte
$total_chunk = ceil(strlen($speech_data) / $chunk_size);
$params = array(
    'format'    => 2,
    'rate'      => 8000,
    'bits'      => 8,
    'cont_res'  => 1,
    'speech_id' => "{$app_id}_" . md5(time()),
);

$content = "";
for ($i = 0; $i < $total_chunk; ++$i)
{
    $chunk_data = substr($speech_data, $i * $chunk_size, $chunk_size);
    $params['speech_chunk'] = base64_encode($chunk_data);
    $params['len']          = strlen($chunk_data);
    $params['seq']          = $i * $chunk_size;
    $params['end']          = ($i == ($total_chunk-1)) ? 1 : 0;
    $result = API::wxasrs_perchunk($params);

    // 处理数据
    $response = json_decode($result);
    if ($response->ret != 0) {
        var_dump($response);
        continue;
    }
    if (isset($response->data->speech_text)) {
        $content .= $response->data->speech_text;
    }
}

// 识别后落入日志中
if (empty($content)) {
    die();
}
$stream = fopen("log.txt", "a+");
$size = strlen($speech_data);
fwrite($stream, "[{$size}] {$content} \r\n");

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档