手把手教你用JAVA实现“声音复刻”功能(复刻你的声音)标贝科技

手把手教你用JAVA实现“声音复刻”功能(复刻你的声音)标贝科技


前言

什么是声音复刻?
使用少量的用户声音,短时间内快速为用户量身打造个人定制音色

一、内容太长不愿意看,直接使用系列

声音复刻分为两步
(1)定制模型
参数要求:
支持音频文件的编码格式及文件名的后缀: wav,pcm
支持音频文件的采样率: 16000Hz
支持音频文件的位深:16bits
支持的语言:中文
音频有效时长:不小于3分钟
音频的音质、音量均对模型效果有直接影响,请保证音频的录音环境相对安静、音频人声音量不能太小。
(2)定制声音合成
参数要求:
支持设置合成音频的格式: pcm,wav,mp3,alaw,ulaw
支持设置合成音频的采样率: 16000Hz
支持设置音量、语速、语调
支持语言: 中文(zh)
支持声音模型类型:普通音质、精品音质
确认无误后,直接执行 2.2获取权限+2.3.6完整代码示例

二、用JAVA调用标贝科技“声音复刻”接口使用流程

2.1.环境准备

java

2.2.获取权限

2.1.1.登录

地址:https://ai.data-baker.com/#/?source=qaz123
(注:填写邀请码hi25d7,每日免费调用量还可以翻倍)
​​​​​​在这里插入图片描述
在这里插入图片描述

点击上方地址登录,支持短信、密码、微信三种登录方式。

在这里插入图片描述
2.1.2.创建应用

登录后,点击创建应用,填写相关信息(未实名认证只能创建一个应用)
(注:实名认证后可获得创建多个应用的权限)
在这里插入图片描述
进入应用,其中包含的技术产品有:语音识别、语音合成、声音复刻、声音转换
页面中功能主要包括:服务用量管理、购买服务量管理、开发者文档、授权管理、套餐管理

在这里插入图片描述
2.1.3.获取token
点击声音复刻—>授权管理—>显示—>获取APISecret—>(获取访问令牌token
在这里插入图片描述


2.3.代码实现

2.3.1.获取token

/**
     * 授权:需要在开放平台获取【https://ai.data-baker.com/#/?source=qaz123】
     */
    private static final String clientId = "输入你的clientid";
    private static final String clientSecret = "输入你的clientsecret";

    /**
     * 获取token的地址信息
     */
    public static String tokenUrl = "https://openapi.data-baker.com/oauth/2.0/token?grant_type=client_credentials&client_secret=%s&client_id=%s";
	public static String getAccessToken() {
   
        String accessToken = "";
        OkHttpClient client = new OkHttpClient();
        // request 默认是get请求
        String url = String.format(tokenUrl, clientSecret, clientId);
        Request request = new Request.Builder().url(url).build();
        JSONObject jsonObject;
        try {
   
            Response response = client.newCall(request).execute();
            if (response.isSuccessful()) {
   
                // 解析
                String resultJson = response.body().string();
                jsonObject = JSON.parseObject(resultJson);
                accessToken = jsonObject.getString("access_token");
            }
        } catch (Exception e) {
   
            e.printStackTrace();
        }
        return accessToken;
    }

2.3.2.定制模型–提交复刻任务
参数说明:
access_token:鉴权token
originFiles:音频文件集合
mobile:手机号(用于模型训练之后短信提醒)
notifyUrl:回调url

private static void doSoundReproduction(String accessToken, List<File> originFiles, String mobile, String notifyUrl) {
   
        //创建连接
        OkHttpClient client = new OkHttpClient();
        //构建requestBody,传入参数
        MultipartBody.Builder requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM);
        for (File file : originFiles) {
   
            RequestBody body = RequestBody.create(file, MediaType.parse("multipart/form-data"));
            String filename = file.getName();
            requestBody.addFormDataPart("originFiles", filename, body);
        }
        requestBody.addFormDataPart("access_token", accessToken);
        requestBody.addFormDataPart("mobile", mobile);
        requestBody.addFormDataPart("notifyUrl", notifyUrl);

        //构造request
        Request request = new Request.Builder()
                .url(soundReproductionUrl)
                .method("POST", requestBody.build())
                .build();
        try {
   
            Response response = client.newCall(request).execute();
            if (response.isSuccessful()) {
   
                System.out.println("调用成功,返回结果:" + response.body(
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值