当前位置: 首页 > article >正文

[石榴翻译] 维吾尔语音识别 + TTS语音合成

API网址

 丝路AI平台

 获取 Access token

接口地址:https://open.xjguoyu.cn/api/auth/oauth/token,请求方式:GETPOST

Access token是调用服务API的凭证,调用服务API之前需要获取 token。每次成功获取 token 以后只有 两个小时 的有效期。参数说明如下:

参数名是否必须说明
grant_type固定值:client_credentials
client_id客户端ID
secret客户端秘钥

请求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 在后台菜单里 我的应用->应用管理 内获取

 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
text500文本
lang语言
speaker

播音员

播音员列表:

序号播音员语种
1xiaojiangcn
2xiaomeicn
3xiaolicn
4xiaotiancn
5hawagulug
6hoshur-s2ug
7xiringulug
8hoshurug
9aliceen
10jacken
11sophiaen
12almagulkz
13erlankz

请求示例:

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


http://www.kler.cn/a/500157.html

相关文章:

  • Lua语言的多线程编程
  • Haskell语言的数据结构
  • BurpSuite之FUZZ模糊测试
  • Swagger学习⑱——@Callback 注解
  • Cygwin, MinGW
  • (java) String 字符串
  • simulink建模与仿真代做matlab程序代编设计帮做电力电子电机控制
  • Django Admin中添加自定义按钮与默认按钮并列
  • Objective-C语言的网络编程
  • 蓝桥与力扣刷题(389 找不同)
  • 设计一篇利用python爬虫获取1688详情API接口的长篇软文
  • 芯片:为何英伟达的GPU能在AI基础设施领域扮演重要角色?
  • 【网络协议】交换机概念与配置(第一部分)
  • _STM32关于CPU超频的参考_HAL
  • RabbitMQ介绍及安装(基于docker)
  • 服务器多节点 Grafana、Prometheus 和 Node-Exporter Docker版本部署指南
  • Bash语言的正则表达式
  • 9.java中String,StringBuilder,StringBuffer 什么区别
  • MySQL教程之:与服务器的连接和断开连接
  • 图像处理 | 图像二值化