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

接入小甲鱼数字人API教程【详解】

引言:什么是数字人呢?

核心定义

  1. 数字化形态
    通过计算机图形学、AI、动作捕捉等技术构建,拥有近似人类的外貌、表情、动作及语音交互能力,存在于非物理世界23。
  2. 功能演进
    从早期静态模型(可视人、物理人)发展为融合生理模拟与智能交互的“智能人”,实现对人体从微观到宏观的精确仿真24。

什么是数字人API呢?

数字人API(Application Programming Interface)是一套用于创建、驱动和集成数字人(Digital Human)功能的标准化编程接口,开发者无需从零构建底层技术,即可在应用中快速接入数字人交互能力。

注:目前市面上很多数字人API都是要收费的,今天我就给大家推荐一个免费的数字人API接口——小甲鱼数字人!!!【点击即可进入官网】

使用小甲鱼数字人API的流程

一、进入官网页面

二、点击页面进入控制台【点击右上角注册/登录】

三、点击数字人以后进入页面调用接口

四、展示API界面

5、接入代码展示

5.1克隆语音

public function cloneVoice()
    {
        $client = new Client();
        $response = $client->post('https://api.yidevs.com/app/human/human/Voice/clone', [
            'json' => [
                'name' => 'Y_03大帅哥声音',
                'audio_url' => 'https://yc-digital-human.oss-cn-guangzhou.aliyuncs.com/system_upload/20250103/95237a0bdfbfa18363a5ac8e008eed6a.mp3',
                'description' => '帅气的Y_03'
            ],
            'headers' => [
                'Authorization' => 'Bearer ' . YIDEVS_KEY,
                'Accept' => 'application/json',
                'Content-Type' => 'application/json'
            ]
        ]);
        $response = json_decode($response->getBody()->getContents(), true);
        if ($response['code'] == 200 && $response['data']['task_id']) {
        } else {
        }
        dd($response);
    }

注:上述代码请求之后,返回如下图所示的数据格式即为成功,在自己的业务体系里面需要自己保存task_id和voice_id。

5.2合成声音

    public function generateVoice()
    {
        $client = new Client();
        $response = $client->post(BASE_URL . '/app/human/human/Voice/created', [
            'json' => [
                'text' => '你好,我是张宇凡',
                'voice_id' => '7957f83c69f64903922e0de017fd99a4'
            ],
            'headers' => [
                'Authorization' => 'Bearer ' . YIDEVS_KEY,
                'Accept' => 'application/json',
                'Content-Type' => 'application/json'
            ]
        ]);
        $response = json_decode($response->getBody()->getContents(), true);
        if ($response['code'] == 200 && $response['data']['audio_url']) {
        } else {
        }
        dd($response);
    }

注:调用成功之后会返回一个音频地址,和一个编码后的音频文件,根据自己所需情况选择。

建议选择音频地址,有效期为24小时,这里仅为临时生成数字人用,所以不用太在意。

音频地址拿到之后,我们要开始进行下一步,也就是克隆分身形象。

5.3数字人克隆

在左侧找到数字人克隆的免费接口,然后复制接口地址,请求方式为POST

public function cloneHuman()
    {
        $client = new Client();
        $response = $client->post(BASE_URL . '/app/human/human/Scene/created', [
            'json' => [
                'callback_url' => 'http://test.api.kf.kaifa.cc/index.php?type=human&method=notify',
                'video_name' => '张宇凡',
                'video_url' => 'https://yc-digital-human.oss-cn-guangzhou.aliyuncs.com/system_upload/20241224/e199c2fa638d72ab798e401eef8efe1f.mp4'
            ],
            'headers' => [
                'Authorization' => 'Bearer ' . YIDEVS_KEY,
                'Accept' => 'application/json',
                'Content-Type' => 'application/json'
            ]
        ]);
        $response = json_decode($response->getBody()->getContents(), true);
        if ($response['code'] == 200) {
        } else {
        }
        dd($response);
    }

通过调用上述接口,之后,会得到一个分身的任务ID,在自己的业务体系里面保存即可,合成数字人视频的时候需要用到。

在你传入的回调地址的方法里面接收相关的回调参数,分身克隆成功之后才能继续调用数字人合成接口。

5.4数字人视频合成

当数字人形象分身克隆完成之后,接下来就是用已经生成的音频和形象去合成数字人视频了。

在左侧菜单找到统一数字人合成接口,这个接口的成本是极低的,从生成速度和效果对比,价格优势明显,这种效果和速度的接口,市面上至少在2-3块每分钟。

注【重点!!!】:如果你6毛一分钟都不想支付,那也可以选择免费的数字人合成接口,如下图所示,参数是一样的。

代码演示:

public function generate()
    {
        $client = new Client();
        $response = $client->post(BASE_URL . '/app/human/human/Musetalk/create', [
            'json' => [
                'callback_url' => 'http://test.api.kf.kaifa.cc/index.php?type=human&method=notify&is_video=10',
                'scene_task_id' => '500759',
                'audio_url' => 'https://yc-digital-human-1251511393.cos.ap-guangzhou.myqcloud.com/xhadmincn/20250508/4001847bd86e585795d5ceac2b3141c8_681c864fadefb.mp3'
            ],
            'headers' => [
                'Authorization' => 'Bearer ' . YIDEVS_KEY,
                'Accept' => 'application/json',
                'Content-Type' => 'application/json'
            ]
        ]);
        $response = json_decode($response->getBody()->getContents(), true);
        if ($response['code'] == 200) {
        } else {
        }
        dd($response);
    }

调用数字人合成接口,会返回视频的任务ID,同样的,在回调地址里面接收回调参数。

注:上述就是整个数字人API接口的调用过程,需要注意回调地址的参数接收,这里必须是可访问的地址

以上便是小甲鱼数字人API接入的示例,希望对各位有所帮助!!!

http://www.lryc.cn/news/613076.html

相关文章:

  • Next.js 样式:CSS 模块、Sass 等
  • ENSP 中静态路由负载分担
  • vue3接收SSE流数据进行实时渲染日志
  • RabbitMQ-日常运维命令
  • CS231n2017 Assignment3 RNN、LSTM部分
  • 3深度学习Pytorch-神经网络--全连接神经网络、数据准备(构建数据类Dataset、TensorDataset 和数据加载器DataLoader)
  • PID基础知识
  • 关于其他副脑类 GPTs 市场现状及研究报告
  • mysql全屏终端全量、部分备份、恢复脚本
  • Python面试题及详细答案150道(16-30) -- 数据结构篇
  • 分布式微服务--GateWay(过滤器及使用Gateway注意点)
  • 告别YAML,在SpringBoot中用数据库配置替代配置文件
  • word生成问题总结
  • 【遥感图像入门】近三年遥感图像建筑物细粒度分类技术一览
  • Day116 若依融合mqtt
  • 界面组件DevExpress WPF中文教程:网格视图数据布局 - 紧凑模式
  • 音视频时间戳获取与同步原理详解
  • 【Docker】RustDesk远程控制-私有化部署开源版本
  • 生成式AI的“幽灵漏洞”:法律如何为技术的阴影划界
  • PCIe Base Specification解析(八)
  • 从配置到远程访问:如何用群晖NAS FTP+ Cpolar搭建稳定文件传输通道
  • 深入解析Three.js中的BufferAttribute:源码与实现机制
  • Linux下动态库链接的详细过程
  • C++位图(Bitmap)与布隆过滤器(Bloom Filter)详解及海量数据处理应用
  • vue3父组件把一个对象整体传入子组件,还是把一个对象的多个属性分成多个参数传入
  • C#中统计某个字符出现次数的最简单方法
  • Git `cherry-pick` 工具汇总
  • Numpy科学计算与数据分析:Numpy线性代数基础与实践
  • 第一个vue应用
  • 【Kubernetes】部署 kube-bench 实现 K8s 最佳实践