|
|
<?php
|
|
|
|
|
|
namespace app\base\controller\demo\api;
|
|
|
|
|
|
|
|
|
use think\App;
|
|
|
|
|
|
class Xunfei extends Base
|
|
|
{
|
|
|
|
|
|
/**
|
|
|
* 活体检测 图片
|
|
|
*/
|
|
|
public function detectLivingFace()
|
|
|
{
|
|
|
|
|
|
$param = input('post.');
|
|
|
$ivision_param = get_ali_ivision_config();
|
|
|
|
|
|
$detect_living_face_class = new \ali\alibabacloud\ivision\facebody\DetectLivingFace($ivision_param);
|
|
|
|
|
|
// 最多支持10张图片同时检测
|
|
|
$image_url = [
|
|
|
['url' => $param['image_url']]
|
|
|
];
|
|
|
|
|
|
$result = $detect_living_face_class->detectLivingFace($image_url);
|
|
|
|
|
|
// 有错误
|
|
|
if (isset($result['Code']) && $result['Code'] !== 0) {
|
|
|
return sendErrorMessage($result['Code'], $result['Message']);
|
|
|
}
|
|
|
|
|
|
if ($result['Data']['Elements'][0]['Results'][0]['Suggestion'] == 'pass') {
|
|
|
dump('检测通过');
|
|
|
} else {
|
|
|
dump('检测未通过');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 活体检测 视频
|
|
|
*/
|
|
|
public function detectVideoLivingFace()
|
|
|
{
|
|
|
$param = input('post.');
|
|
|
$ivision_param = get_ali_ivision_config();
|
|
|
|
|
|
$detect_living_face_class = new \ali\alibabacloud\ivision\facebody\DetectLivingFace($ivision_param);
|
|
|
|
|
|
$video_url = $param['video_url'];
|
|
|
$result = $detect_living_face_class->detectVideoLivingFace($video_url);
|
|
|
|
|
|
// 有错误
|
|
|
if (isset($result['Code']) && $result['Code'] !== 0) {
|
|
|
return sendErrorMessage($result['Code'], $result['Message']);
|
|
|
}
|
|
|
|
|
|
if ($result['Data']['Elements'][0]['FaceConfidence'] > 0.8 && $result['Data']['Elements'][0]['LiveConfidence'] > 0.8) {
|
|
|
dump('检测通过');
|
|
|
} else {
|
|
|
dump('检测未通过');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 人脸识别
|
|
|
*/
|
|
|
public function compareFace()
|
|
|
{
|
|
|
$param = input('post.');
|
|
|
$ivision_param = get_ali_ivision_config();
|
|
|
|
|
|
$compare_class = new \ali\alibabacloud\ivision\facebody\Compare($ivision_param);
|
|
|
|
|
|
//要对比的图片
|
|
|
$image_url_a = $param['image_url_a'];
|
|
|
$image_url_b = $param['image_url_b'];
|
|
|
|
|
|
$result = $compare_class->compareFace($image_url_a, $image_url_b);
|
|
|
|
|
|
// 有错误
|
|
|
if (isset($result['Code']) && $result['Code'] !== 0) {
|
|
|
return sendErrorMessage($result['Code'], $result['Message']);
|
|
|
}
|
|
|
|
|
|
if ($result['Data']['Confidence'] < 75) {
|
|
|
dump('检测未通过');
|
|
|
}
|
|
|
|
|
|
dump('检测通过');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 语音合成
|
|
|
* @date 2022-05-11
|
|
|
*/
|
|
|
public function textToVoice()
|
|
|
{
|
|
|
// $param = input('post.');
|
|
|
// $platform = config('platform');
|
|
|
//
|
|
|
// $oss_param = get_ali_oss_config();
|
|
|
// $ise_class = new \xunfei\ise\Ise($platform[UID]['xunfei']['ise']);
|
|
|
// $oss_class = new \ali\oss\Oss($oss_param);
|
|
|
//
|
|
|
// // 设置合成参数
|
|
|
// $tts_config = [
|
|
|
// 'aue' => 'lame',
|
|
|
// 'sfl' => 1,
|
|
|
// 'vcn' => 'aisjiuxu', //发音人,可选值:请到控制台添加试用或购买发音人,添加后即显示发音人参数值
|
|
|
// 'speed' => 30, //语速,可选值:[0-100],默认为50
|
|
|
// 'volume' => 80, //音量,可选值:[0-100],默认为50
|
|
|
// //...
|
|
|
// ];
|
|
|
//
|
|
|
// //语音合成
|
|
|
// $result = $ise_class->tts($param['text'], $tts_config);
|
|
|
//
|
|
|
// //记录日志
|
|
|
// platformLog([
|
|
|
// 'text' => $param['text'],
|
|
|
// 'tts_config' => $tts_config
|
|
|
// ], $result, 'xunfei_tts_' . UID);
|
|
|
//
|
|
|
// // 录音文件本地路径
|
|
|
// $local_file_url = $result;
|
|
|
// $oss_file_dirname = 'uid' . UID . '/tts/' . date("Ymd"); //录音文件OSS存放路径
|
|
|
//
|
|
|
// //文件上传到OSS
|
|
|
// $result = $oss_class->uploadFile($local_file_url, $oss_file_dirname);
|
|
|
//
|
|
|
// $url = $result['url'];
|
|
|
// dump($url);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 语音识别
|
|
|
* @date 2022-05-06
|
|
|
*/
|
|
|
public function ise()
|
|
|
{
|
|
|
// $param = input('post.');
|
|
|
// $platform = config('platform');
|
|
|
//
|
|
|
// $oss_param = get_ali_oss_config();
|
|
|
// $ise_class = new \xunfei\ise\Ise($platform[UID]['xunfei']['ise']);
|
|
|
// $oss_class = new \ali\oss\Oss($oss_param);
|
|
|
//
|
|
|
// //本地存储路径
|
|
|
// $local_file_url = './temp/' . md5(microtime(true)) . '.mp3';
|
|
|
// $result = $oss_class->getObject($param['file'], $local_file_url, true);
|
|
|
//
|
|
|
// //OSS下载文件报错
|
|
|
// if (isset($result['Code'])) {
|
|
|
// return sendErrorMessage(4100, $result['Message']);
|
|
|
// }
|
|
|
//
|
|
|
// //本地文件
|
|
|
// $local_file_url = $result['local_file_url'];
|
|
|
//// dump($local_file_url);
|
|
|
// $text = $param['text'];
|
|
|
// $type = $param['type']; //read_syllable--单字朗读,汉语专有 read_word--词语朗读 read_sentence--句子朗读 read_chapter--篇章朗读
|
|
|
//
|
|
|
// // 设置评测参数
|
|
|
// $tts_config = [
|
|
|
// 'aue' => 'lame',
|
|
|
// 'ent' => 'cn_vip',
|
|
|
// 'category' => $type
|
|
|
// //...
|
|
|
// ];
|
|
|
//
|
|
|
// //语音评测
|
|
|
// $result = $ise_class->ise($local_file_url, $text, $tts_config);
|
|
|
//// dump($result);
|
|
|
// // 记录日志
|
|
|
// platformLog([
|
|
|
// 'file' => $local_file_url,
|
|
|
// 'text' => $text,
|
|
|
// 'tts_config' => $tts_config
|
|
|
// ], $result, 'xunfei_ise_ise_' . UID);
|
|
|
//
|
|
|
// if (isset($result['code']) && $result['code'] != 0) {
|
|
|
// return sendErrorMessage($result['code'], $result['message']);
|
|
|
// }
|
|
|
//
|
|
|
// #TODO 删除服务器语音文件
|
|
|
// unlink($local_file_url);
|
|
|
//
|
|
|
// //单字朗读,汉语专有返回
|
|
|
// $read_result = $result[$type]['rec_paper'][$type];
|
|
|
// return sendSuccessMessage([
|
|
|
// 'data' => $read_result
|
|
|
// ]);
|
|
|
//
|
|
|
// //dump($result);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 语音识别(传到服务器)
|
|
|
* @date 2022-05-06
|
|
|
*/
|
|
|
public function iseServer()
|
|
|
{
|
|
|
// $param = input('post.');
|
|
|
// $platform = config('platform');
|
|
|
//
|
|
|
// $oss_param = get_ali_oss_config();
|
|
|
//
|
|
|
// $ise_class = new \xunfei\ise\Ise($platform[UID]['xunfei']['ise']);
|
|
|
// $oss_class = new \ali\oss\Oss($oss_param);
|
|
|
//
|
|
|
// //本地文件
|
|
|
// $local_file_url = getFileRealativePath($param['file'], '.net/');
|
|
|
// $local_file_url = './' . $local_file_url;
|
|
|
// $text = $param['text'];
|
|
|
//
|
|
|
// // 设置评测参数
|
|
|
// $tts_config = [
|
|
|
// 'aue' => 'lame',
|
|
|
// 'ent' => 'cn_vip', //中文:cn_vip 英文:en_vip
|
|
|
// 'category' => 'read_word' //中文题型 read_word--词语朗读
|
|
|
// //...
|
|
|
// ];
|
|
|
//// dump($local_file_url);
|
|
|
// //语音评测
|
|
|
// $result = $ise_class->ise($local_file_url, $text, $tts_config);
|
|
|
//// dump($result);
|
|
|
// // 记录日志
|
|
|
// platformLog([
|
|
|
// 'file' => $local_file_url,
|
|
|
// 'text' => $text,
|
|
|
// 'tts_config' => $tts_config
|
|
|
// ], $result, 'xunfei_ise_ise_' . UID);
|
|
|
//
|
|
|
// if (isset($result['code']) && $result['code'] != 0) {
|
|
|
// return sendErrorMessage($result['code'], $result['message']);
|
|
|
// }
|
|
|
// return sendSuccessMessage($result['read_word']['rec_paper']['read_word']);
|
|
|
////
|
|
|
//// dump($result);
|
|
|
}
|
|
|
|
|
|
}
|