簡(jiǎn)介與SDK代碼示例
CosyVoice聲音復(fù)刻服務(wù)依托先進(jìn)的大模型技術(shù)進(jìn)行特征提取,從而完成聲音的復(fù)刻,且無(wú)需訓(xùn)練過(guò)程。僅需提供時(shí)長(zhǎng)較短的音頻,即可迅速生成高度相似且聽(tīng)感自然的定制聲音。本文將詳細(xì)介紹CosyVoice聲音復(fù)刻服務(wù)的使用方法和操作流程,幫助您快速實(shí)現(xiàn)聲音復(fù)刻。
應(yīng)用場(chǎng)景
陪伴場(chǎng)景:利用復(fù)刻的家人聲音提供個(gè)性化陪伴,用于智能助手和車載導(dǎo)航語(yǔ)音,以及家庭娛樂(lè)項(xiàng)目,如為家人朗讀繪本、控制家用電器或提供教育輔導(dǎo)。
教育場(chǎng)景:使用復(fù)刻老師的聲音,加強(qiáng)師生互動(dòng),豐富教學(xué)視頻和課件的內(nèi)容,打造更親切、更生動(dòng)的學(xué)習(xí)體驗(yàn)。
音視頻產(chǎn)業(yè):通過(guò)復(fù)刻主播的聲音,方便后期補(bǔ)錄、配音等應(yīng)用場(chǎng)景,提高音視頻的制作效率。
智能客服:借助復(fù)刻的客戶經(jīng)理聲音,提供語(yǔ)音服務(wù),包括但不限于客戶回訪和市場(chǎng)營(yíng)銷電話,以賦予服務(wù)更加個(gè)性化、人性化的特點(diǎn)。
產(chǎn)品優(yōu)勢(shì)
低樣本音頻要求:僅需短短10~20秒的錄音便能完成聲音復(fù)刻,顯著降低了錄制成本,提升了效率。
高度擬真:利用阿里通義語(yǔ)音實(shí)驗(yàn)室自研的CosyVoice生成式神經(jīng)網(wǎng)絡(luò)語(yǔ)音大模型算法,結(jié)合前沿的零樣本學(xué)習(xí)技術(shù),能夠在語(yǔ)調(diào)、韻律以及情感表達(dá)上高度還原真人聲音,很難與真實(shí)錄音相辨。
即時(shí)合成:秒級(jí)還原真實(shí)音色,提供高效、實(shí)時(shí)的聲音復(fù)刻服務(wù)。
重要說(shuō)明
聲音復(fù)刻數(shù)量限制:每個(gè)UID最多可復(fù)刻1000個(gè)音色。若您需求超過(guò)此限額,請(qǐng)?zhí)崆芭c我們的售前團(tuán)隊(duì)聯(lián)系溝通。超過(guò)1年未使用的聲音將下線處理。目前暫不支持刪除已復(fù)刻的音色。
版權(quán)與合法性:您需對(duì)所提供聲音的所有權(quán)及合法使用權(quán)負(fù)責(zé),請(qǐng)注意閱讀開(kāi)通智能語(yǔ)音交互-流式文本語(yǔ)音合成的服務(wù)協(xié)議。
復(fù)刻后語(yǔ)音的使用:使用復(fù)刻產(chǎn)生的語(yǔ)音(VoiceName)和流式文本語(yǔ)音合成中(采用CosyVoice大模型)的預(yù)設(shè)音色(例如:longxiaoxia)在使用步驟一致。
服務(wù)調(diào)用方式:聲音復(fù)刻服務(wù)當(dāng)前僅支持通過(guò)調(diào)用API方式使用。該服務(wù)作為個(gè)性化人聲定制服務(wù)的進(jìn)階版本,可提供更優(yōu)質(zhì)的使用體驗(yàn),推薦使用。
計(jì)費(fèi)說(shuō)明
聲音復(fù)刻為免費(fèi)服務(wù),復(fù)刻成功后在使用文字轉(zhuǎn)語(yǔ)音服務(wù)時(shí)會(huì)產(chǎn)生“語(yǔ)音合成CosyVoice大模型”相關(guān)的接口使用費(fèi)用,當(dāng)前價(jià)格為2元/萬(wàn)字符,詳情請(qǐng)參見(jiàn)計(jì)費(fèi)說(shuō)明-后付費(fèi)方式。
前提條件
了解相關(guān)條款并開(kāi)通智能語(yǔ)音交互-流式文本語(yǔ)音合成服務(wù)商用版。開(kāi)通地址,請(qǐng)參見(jiàn)智能語(yǔ)音交互。
已準(zhǔn)備公網(wǎng)可訪問(wèn)的音頻URL,推薦將音頻上傳至OSS。具體操作,請(qǐng)參見(jiàn)簡(jiǎn)單上傳至OSS。音頻格式要求:
聲道數(shù):?jiǎn)?雙聲道
采樣位數(shù):16 bit
采樣率:大于16000 Hz
格式:WAV、MP3、M4A
文件大小:10M以內(nèi)
音頻時(shí)長(zhǎng):10~20秒,不建議超過(guò)60秒。在朗讀時(shí)請(qǐng)保持連貫,至少包含一段超過(guò)5秒的連續(xù)語(yǔ)音。
使用示例
本文以阿里云Python SDK和Java SDK舉例說(shuō)明,其他語(yǔ)言SDK,請(qǐng)參見(jiàn)阿里云SDK開(kāi)發(fā)參考。
Python 使用示例
步驟一:安裝阿里云SDK
執(zhí)行以下命令,安裝最新版本的阿里云Python SDK。
pip install aliyun-python-sdk-core
步驟二:功能實(shí)現(xiàn)
聲音復(fù)刻接口調(diào)用的代碼示例如下:
import os
import json
import time
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
# 通過(guò)環(huán)境變量獲取阿里云Ak ID以及Ak Secret, 避免使用明文造成泄露風(fēng)險(xiǎn)
client = AcsClient(os.environ.get('ALIYUN_AK_ID'), os.environ.get('ALIYUN_AK_SECRET'))
domain = 'nls-slp.cn-shanghai.aliyuncs.com'
version = '2019-08-19'
def build_request(api_name, method):
request = CommonRequest()
request.set_domain(domain)
request.set_version(version)
request.set_action_name(api_name)
request.set_method(method)
request.set_protocol_type('https')
return request
def cosy_clone(voice_prefix, url):
clone_request = build_request('CosyVoiceClone', 'POST')
clone_request.add_body_params('Url', url)
clone_request.add_body_params('VoicePrefix', voice_prefix)
# 設(shè)定等待超時(shí)時(shí)間為15s
clone_request.set_read_timeout(15)
begin = int(round(time.time() * 1000))
clone_response = client.do_action_with_exception(clone_request)
end = int(round(time.time() * 1000))
print(json.loads(clone_response))
print('cost: {}'.format(end - begin))
def cosy_list(voice_prefix, page_index=1, page_size=10):
list_request = build_request('ListCosyVoice', 'POST')
list_request.add_body_params('VoicePrefix', voice_prefix)
list_request.add_body_params('PageIndex', page_index)
list_request.add_body_params('PageSize', page_size)
list_response = client.do_action_with_exception(list_request)
print(json.loads(list_response))
if __name__ == '__main__':
# 1. 調(diào)用CosyVoiceClone接口復(fù)刻聲音
audio_url = 'https://your-url'
prefix = 'tongyi' # 要求英文字母或數(shù)字
cosy_clone(prefix, audio_url)
# 調(diào)用成功后接口會(huì)同步返回VoiceName, 格式為 cosyvoice-${voice_prefix}-${7位隨機(jī)字符}
# 2. 調(diào)用ListCosyVoice接口可以查詢您某個(gè)前綴所有聲音的狀態(tài)
cosy_list(prefix)
更多關(guān)于CosyVoice聲音復(fù)刻API信息,請(qǐng)參見(jiàn)CosyVoice聲音復(fù)刻API。
步驟三:使用復(fù)刻音色
復(fù)刻音色的使用方法和Cosyvoice成品音色相同,您在調(diào)用CosyVoice大模型時(shí),將voice字段替換為復(fù)刻的VoiceName即可。CosyVoice大模型使用方法請(qǐng)參見(jiàn)語(yǔ)音合成CosyVoice大模型。
Java 使用示例
步驟一:安裝阿里云SDK
從Maven服務(wù)器下載最新版本的SDK。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.4</version>
</dependency>
步驟二:功能實(shí)現(xiàn)
聲音復(fù)刻接口調(diào)用的代碼示例如下:
package org.example;
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 CosyVoiceDemo {
//域名
private static final String DOMAIN = "nls-slp.cn-shanghai.aliyuncs.com";
// API版本
private static final String API_VERSION = "2019-08-19";
private static final IAcsClient client;
static {
// 創(chuàng)建DefaultAcsClient實(shí)例并初始化
DefaultProfile profile = DefaultProfile.getProfile(
"cn-shanghai",
System.getenv("AK_ID"),
System.getenv("AK_SECRET"));
client = new DefaultAcsClient(profile);
}
public static void main(String[] args) throws InterruptedException {
String voicePrefix = "your-voice-prefix";
String url = "your-file-url";
cosyClone(voicePrefix, url);
cosyList(voicePrefix);
}
private static void cosyList(String voicePrefix) {
CommonRequest request = buildRequest("ListCosyVoice");
request.putBodyParameter("VoicePrefix", voicePrefix);
String response = sendRequest(request);
System.out.println(response);
}
private static void cosyClone(String voicePrefix, String url) {
CommonRequest cloneRequest = buildRequest("CosyVoiceClone");
cloneRequest.putBodyParameter("VoicePrefix", voicePrefix);
cloneRequest.putBodyParameter("Url", url);
// 設(shè)定等待超時(shí)時(shí)間為15s
cloneRequest.setSysReadTimeout(15000);
long startTime = System.currentTimeMillis();
String response = sendRequest(cloneRequest);
long endTime = System.currentTimeMillis();
System.out.println(response);
System.out.println("cost: "+ (endTime - startTime) + " 毫秒");
}
private static CommonRequest buildRequest(String popApiName) {
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain(DOMAIN);
request.setVersion(API_VERSION);
request.setAction(popApiName);
request.setProtocol(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;
}
}
更多關(guān)于CosyVoice聲音復(fù)刻API信息,請(qǐng)參見(jiàn)CosyVoice聲音復(fù)刻API。
步驟三:使用復(fù)刻音色
復(fù)刻音色的使用方法和Cosyvoice成品音色相同,您在調(diào)用CosyVoice大模型時(shí),將voice字段替換為復(fù)刻的VoiceName即可。CosyVoice大模型使用方法請(qǐng)參見(jiàn)語(yǔ)音合成CosyVoice大模型。