阿里云声音复刻

阿里云声音复刻

个性化人声定制

阿里云个性化人声定制是智能语音交互产品自学习平台下的一部分

使用方式:https://help.aliyun.com/document_detail/456006.html

image

Java示例代码

package com.alibaba.nls.ptts;

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.http.ProtocolType;
import com.aliyuncs.profile.DefaultProfile;

public class PttsDemo {
    //域名
    private static final String DOMAIN = "nls-measure.cn-shanghai.aliyuncs.com";
    // API版本
    private static final String API_VERSION = "2019-09-05";

    private static IAcsClient client;

    static {
        String accessKeyId = "请替换为您自己的accessKeyId";
        String accessKeySecret = "请替换为您自己的accessKeySecret";
        // 创建DefaultAcsClient实例并初始化
        DefaultProfile profile = DefaultProfile.getProfile(
            "",
            accessKeyId,
            accessKeySecret);
        client = new DefaultAcsClient(profile);
    }

    public static void main(String[] args) throws InterruptedException {
        //20句音频,此处为了方便演示接口的调用,提前准备好了音频的url,在您集成时,可以在用户录制的过程中,将音频进行存储
        String[] urls = {"viwf/1.wav", "dycw/2.wav", "dopl/3.wav", "anfd/4.wav", "cyoy/5.wav", "dsjw/6.wav",
            "vevd/7.wav", "ulno/8.wav", "kwlw/9.wav", "lafu/10.wav", "uozh/11.wav", "gdpp/12.wav", "lisa/13.wav",
            "bmvv/14.wav", "ijzx/15.wav", "kdla/16.wav", "govf/17.wav", "kcid/18.wav", "srdx/19.wav", "stol/20.wav"};

        //训练的基本信息,voiceName请替换成您自己的命名
        String voiceName = "示例voice";
        String scenario = "story";
        String gender = "female";

        //Step1: 获取需要朗读的文本
        CommonRequest getDemonstrationRequest = buildRequest("GetDemonstrationForCustomizedVoice");
        getDemonstrationRequest.putQueryParameter("Scenario", scenario);
        String getDemonstrationResponse = sendRequest(getDemonstrationRequest);
        System.out.println("|获取需要朗读的内容|response=" + getDemonstrationResponse);

        //Step2: 采集用户朗读的音频,进行音频检测
        for (int i = 1; i <= 20; i++) {
            String audioUrl = audioRecordUrlPrefix + urls[i - 1];
            CommonRequest audioDetectRequest = buildRequest("CustomizedVoiceAudioDetect");
            audioDetectRequest.putQueryParameter("Scenario", scenario);
            audioDetectRequest.putQueryParameter("VoiceName", voiceName);
            audioDetectRequest.putQueryParameter("RecordUrl", audioUrl);
            audioDetectRequest.putQueryParameter("AudioRecordId", String.valueOf(i));
            String audioDetectResponse = sendRequest(audioDetectRequest);
            System.out.println("|音频检测|[" + i + "]response=" + audioDetectResponse);
        }

        //Step3: 20句音频检测完成后,提交训练
        CommonRequest submitTrainRequest = buildRequest("SubmitCustomizedVoice");
        submitTrainRequest.putQueryParameter("VoiceName", voiceName);
        submitTrainRequest.putQueryParameter("Gender", gender);
        submitTrainRequest.putQueryParameter("Scenario", scenario);

        String submitTrainResponse = sendRequest(submitTrainRequest);
        System.out.println("|提交训练|response=" + submitTrainResponse);

        //Step4: 轮询训练结果

        CommonRequest queryTrainResultRequest = buildRequest("ListCustomizedVoice");
        queryTrainResultRequest.putQueryParameter("VoiceName", voiceName);
        String queryTrainResultResponse = sendRequest(queryTrainResultRequest);
        System.out.println("|查询训练结果|response=" + queryTrainResultResponse);
    }

    private static String audioRecordUrlPrefix
        = "https://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/file-manage-files/zh-CN/20221118/";

    private static CommonRequest buildRequest(String popApiName) {
        CommonRequest request = new CommonRequest();
        request.setSysMethod(MethodType.POST);
        request.setSysDomain(DOMAIN);
        request.setSysVersion(API_VERSION);
        request.setSysAction(popApiName);
        request.setSysProtocol(ProtocolType.HTTPS);
        return request;
    }

    private static String sendRequest(CommonRequest request) {
        try {
            CommonResponse response = client.getCommonResponse(request);
            return response.getData();
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
        return null;
    }
}

阿里云个人化人声定制控制台

https://nls-portal.console.aliyun.com/pttssettingnew

非开发者使用指南:

https://help.aliyun.com/document_detail/451766.html?spm=a2c4g.432038.0.0.496f4906w8EQFD

声音克隆定制

阿里云产品帮助中心搜索声音克隆https://help.aliyun.com/?spm=a2c4g.456006.J_3207526240.2.6a5842e8QI7zZj

方法一:通过控制台进行人声克隆

  1. 登录智能媒体服务控制台
  2. 在顶部左上角根据实际情况选择地域。
  3. 在左侧导航栏选择****智能生产制作** > *人声克隆***。
  4. 单击定制声音,根据提示完成定制人声操作。

方法二:通过OpenAPI进行人声克隆

  1. 调用接口CreateCustomizedVoiceJob,配置参数VoiceId,创建人声克隆任务。

  2. 调用接口GetDemonstrationForCustomizedVoiceJob,根据实际场景配置参数Scenario,获取需要朗读的20条示范文本及音频。

  3. 根据步骤 2获取到的示范文本及音频进行训练并录制,并将录制的语音上传至OSS。上传方式,请参见上传文件

  4. 调用接口DetectAudioForCustomizedVoiceJob,提交已经训练好的音频,进行音频检测。

    重要 需要调用20次该接口,每次调用时提交对应的音频,共20条音频。

  5. 调用接口SubmitCustomizedVoiceJob,提交人声克隆训练任务,系统开始进行语音训练。

API参考

人声克隆相关接口

openApI门户:https://next.api.aliyun.com/api/ICE/2020-11-09/CreateCustomizedVoiceJob?tab=DEMO&lang=JAVA

SDK开发包使用方法:https://help.aliyun.com/document_detail/262200.html?spm=a2c4g.378655.0.0.534f5068p0WEYq

在这里插入图片描述

运行实例注意区分SDK版本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对不起,目前无法直接提供 PyQt 复刻网易云音乐的功能,但是可以为你介绍一下 PyQt 和网易云音乐的相关知识。 PyQt 是一个用于创建 GUI 应用程序的 Python 库,它使用 Qt 框架的 C++ 库来创建图形用户界面。如果你想通过 PyQt 复刻网易云音乐,你需要掌握以下技能: 1. PyQt 库的使用:了解 PyQt 的基本语法和功能,能够使用 PyQt 创建基本的 GUI 界面。 2. Qt 框架的知识:了解 Qt 框架的基本概念和功能,例如布局管理、信号和槽机制等。 3. 音乐播放相关的知识:了解音频处理和播放的基本原理,例如音频文件格式、音频解码等。 4. 网络编程:了解如何使用网络协议与网易云音乐服务器进行通信,例如 HTTP 请求和响应。 在实现过程中,你可能需要使用到第三方库,例如 PyQt5-binary、PyQtWebPlayer 等,这些库可以帮助你快速构建音乐播放器应用程序。 另外,网易云音乐是一个基于 Web 的音乐平台,它提供了丰富的音乐库和个性化推荐算法。如果你想通过 PyQt 复刻网易云音乐,你可能需要考虑使用 Web 技术来展示音乐库和推荐算法,因为直接在本地应用程序中实现 Web 技术可能会比较复杂。 总之,PyQt 是一个强大的库,可以帮助你创建 GUI 应用程序。如果你想复刻网易云音乐,你需要具备一定的技术基础和耐心,同时不断学习和尝试不同的技术和方法来实现你的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值