You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

246 lines
7.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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);
}
}