API网址
获取 Access token
接口地址:https://open.xjguoyu.cn/api/auth/oauth/token ,请求方式:GET ,POST
Access token是调用服务API的凭证,调用服务API之前需要获取 token。每次成功获取 token 以后只有 两个小时的有效期。参数说明如下:
|------------|------|------------------------|
| 参数名 | 是否必须 | 说明 |
| grant_type | 是 | 固定值:client_credentials |
| client_id | 是 | 客户端ID |
| secret | 是 | 客户端秘钥 |
请求PHP代码
php
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Cache;
// Access token 获取
public function AccessToken(){
// 缓存中删除代码
// Cache::forget('guoyu_token');
// 检查AccessToken是否存在(有效)
$token = Cache::get('guoyu_token');
if ($token) {
// 如果accessToken已存在直接返回
return $token;
} else {
// 如果 AccessToken 不存在去获取并且缓存 AccessToken
$response = Http::withOptions(['verify' => false])->asForm()->post('https://open.xjguoyu.cn/api/auth/oauth/token', [
'grant_type' => 'client_credentials',
'client_id' => '',
'secret' =>'',//
]);
$data = $response->json();
if (!isset($data['access_token'])) {
return '错误';
}
// 请求数据
$access_token = $data['access_token']; //
$token_type = $data['token_type']; // token 类型 Bearer
$expires_in = $data['expires_in']; //有效期
// 缓存
Cache::put('guoyu_token', $access_token, $expires_in);
//
return $token;
}
}
语音识别
|--------|------|------------------|
| 参数名 | 是否必须 | 说明 |
| lang | 是 | |
| audio | 是 | 目前仅支持wav格式,采样16K |
| format | 是 | |
appKey 在后台菜单里 我的应用->应用管理 内获取
php
public function voice()
{
// 请求Api
$api = 'https://open.xjguoyu.cn/api/core/1.0/asr?appKey=您的appKey';
// Wav 转换base64
$audioFilePath = 'voice.wav'; // 填写你的音频文件路径
$audioData = file_get_contents($audioFilePath);
$audio = base64_encode($audioData); //Base64 音频数据
$format = 'wav'; // 类型
$lang = 'ug'; // 语言 语种: cn , ug , kz , en
// AccessToken
$authorizationToken = $this->AccessToken();
$response = Http::withOptions([
'verify' => false, // 禁用 SSL 验证
])->withHeaders([
'Content-Type' => 'application/json;charset=utf-8',
'Authorization' => 'Bearer ' .$authorizationToken, // AccessToken
])->post($api, [
'audio' => $audio,
'format' => $format,
'lang' => $lang,
]);
return $response->json(); // 返回 JSON 响应
}
语音合成
接口地址:https://open.xjguoyu.cn/api/core/1.0/tts
请求方式:POST
Content-Type: application/json;charset=utf8
参数说明:
|---------|------|-----|-----------------------------------------|
| 参数名 | 是否必须 | 长度 | 说明 |
| format | 是 | | 支持wav,mp3格式,默认为wav。目前mp3格式出现错误,请暂时使用wav |
| text | 是 | 500 | 文本 |
| lang | 是 | | 语言 |
| speaker | 是 | | 播音员 |
播音员列表:
|----|-----------|----|
| 序号 | 播音员 | 语种 |
| 1 | xiaojiang | cn |
| 2 | xiaomei | cn |
| 3 | xiaoli | cn |
| 4 | xiaotian | cn |
| 5 | hawagul | ug |
| 6 | hoshur-s2 | ug |
| 7 | xiringul | ug |
| 8 | hoshur | ug |
| 9 | alice | en |
| 10 | jack | en |
| 11 | sophia | en |
| 12 | almagul | kz |
| 13 | erlan | kz |
请求示例:
php
public function tts(){
// 请求Api
$api = 'https://open.xjguoyu.cn/api/core/1.0/tts?appKey=你的appKey '; // appKey 在后台菜单里 我的应用->应用管理 内获取
$text = ' بۇ بولسا ئۇيغۇرچە خەت '; // 文本
$format = 'wav'; // 导出类型
$lang = 'ug'; // 语言
$speaker = 'hoshur'; // 播音员
// AccessToken
$authorizationToken = $this->AccessToken();
$response = Http::withOptions([
'verify' => false, // 禁用 SSL 验证
])->withHeaders([
'Content-Type' => 'application/json;charset=utf8',
'Authorization' => 'Bearer ' .$authorizationToken, // AccessToken
])->post($api, [
'text' => $text,
'lang' => $lang,
'speaker' => $speaker,
]);
$data = $response->json();
// Log::info($data);
if($data['success']){
//Log::info($data['value']);
}
//dd($response->json());
}
如果不懂
Qeyserm