本功能基于腾讯云SDK3.0开发,要求PHP版本5.6.33及其以上。
参考文档:
腾讯云官方文档:cloud.tencent.com/document/sd…
腾讯云智聆口语评测文档:cloud.tencent.com/document/ap…
腾讯云智聆口语评测(Smart Oral Evaluation)英语口语评测服务,是基于英语口语类教育培训场景和腾讯云的语音处理技术,应用特征提取、声学模型和语音识别算法,为儿童和成人提供高准确度的英语口语发音评测。支持单词和句子模式的评测,多维度反馈口语表现。支持单词和句子评测模式,可广泛应用于英语口语类教学应用中。
本接口为语音和文本的比对,结果返回一个分值
<?php
/**
* Created by PhpStorm.
* User: Shu_Q_Gang
* Date: 2018/10/23
* Time: 15:33
*/
namespace tencent;
use TencentCloudCommonCredential;
use TencentCloudCommonProfileClientProfile;
use TencentCloudCommonProfileHttpProfile;
use TencentCloudCommonExceptionTencentCloudSDKException;
use TencentCloudSoeV20180724SoeClient;
use TencentCloudSoeV20180724ModelsTransmitOralProcessWithInitRequest;
class OralAssessment
{
/**
* @var string
* 密钥 申请地址:https://console.cloud.tencent.com/cam/capi
*/
protected $SecretId = '**********';
protected $SecretKey = '***********';
/**
* @var string
* 地区
*/
public $Region = "ap-beijing";
/**
* @var string
* 流式数据包的序号,从1开始,当IsEnd字段为1后后续序号无意义,当IsLongLifeSession不为1且为非流式模式时无意义。
*/
public $SeqId = 1;
/**
* @var string
* 是否传输完毕标志,若为0表示未完毕,若为1则传输完毕开始评估,非流式模式下无意义。
*/
public $IsEnd = 1;
/**
* @var string
* 语音文件类型 1: raw, 2: wav, 3: mp3, 4: speex (语言文件格式目前仅支持 16k 采样率 16bit 编码单声道,如有不一致可能导致评估不准确或失败)。
*/
public $VoiceFileType = 2;
/**
* @var string
* 语音编码类型 1:pcm。
*/
public $VoiceEncodeType = 1;
/**
* @var string
* 语音输入模式,0:流式分片,1:非流式一次性评估
*/
public $WorkMode = 1;
/**
* @var string
* 评估模式,0:词模式(中文评测模式下为文字模式),1:句子模式,2:段落模式,3:自由说模式,当为词模式评估时,能够提供每个音节的评估信息,当为句子模式时,能够提供完整度和流利度信息,4:单词纠错模式:能够对单词和句子中的读错读音进行纠正,给出参考正确读音。
*/
public $EvalMode = 1;
/**
* @var string
* 评价苛刻指数,取值为[1.0 - 4.0]范围内的浮点数,用于平滑不同年龄段的分数,1.0为小年龄段,4.0为最高年龄段
*/
public $ScoreCoeff = 1.0;
/*
* 发音数据传输接口附带初始化过程
* $UserVoiceData 要测试的录音 bese64 位格式
* $SessionId 标识id 时间戳即可 只能是字符串类型
* $RefText 要比对的文字
*/
public function TransmitOralProcessWithInit($UserVoiceData,$SessionId,$RefText){
$cred = new Credential($this->SecretId, $this->SecretKey);
$httpProfile = new HttpProfile();
$httpProfile->setEndpoint("soe.tencentcloudapi.com");
$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);
$client = new SoeClient($cred, $this->Region, $clientProfile);
$req = new TransmitOralProcessWithInitRequest();
$params['SeqId'] = $this->SeqId;
$params['IsEnd'] = $this->IsEnd;
$params['VoiceFileType'] = $this->VoiceFileType;
$params['VoiceEncodeType'] = $this->VoiceEncodeType;
$params['UserVoiceData'] = $UserVoiceData;
$params['SessionId'] = $SessionId;
$params['RefText'] = $RefText;
$params['WorkMode'] = $this->WorkMode;
$params['EvalMode'] = $this->EvalMode;
$params['ScoreCoeff'] = $this->ScoreCoeff;
$req->fromJsonString(json_encode($params));
$resp = $client->TransmitOralProcessWithInit($req);
return json_decode($resp->toJsonString(),true);
}
}