python 标贝 模拟人声/语音克隆/语音复刻(API)体验

吐槽

提起语音克隆技术业内人人士估计都知道Real Time Voice Cloning,谷歌工程师的论文SV2TTS,由比利时列日大学的研究人员复现了该框架并开源了他们的实现。本来挺感兴趣的,试想如果能把亲人的语音克隆带在身边是多么美妙的事情,其实我也很想克隆我儿子的声音,毕竟他长得太快了,不过兴趣是兴趣,现实是现实,研究了几天由于内功不够深厚差点走火入魔,py学习时间仅有个把月的我还是暂时封印它吧。
但是SV2TTS太美妙了,比如TTS语料库惊人,类似清华公开的库动不动就十几个G,而SV2TTS只需要简单的几句话就可以克隆出不错的效果。标贝提供了这样的服务,所以体验了一下,感觉还不错,除了合成出来的语音有点机械化,但是出来的结果还是可圈可点的。

代码

import requests,json
import struct
import pyaudio

clientId="申请的ID"
secret="申请的"

def getToken():
    # 24小时过期默认
    url = "https://openapi.data-baker.com/oauth/2.0/token?grant_type=client_credentials&client_secret=" + secret + "&client_id=" + clientId
    answer = requests.get(url)
    data = json.loads(answer.text)
    return data['access_token']

"""
test:文字
voice_name:模型id
audiotype=3 :返回16K采样率的mp3格式 
audiotype=4 :返回16K采样率的pcm格式 
audiotype=5 :返回8K采样率的pcm格式 
audiotype=6 :返回16K采样率的wav格式 
audiotype=6&rate=1 :返回8K的wav格式 
audiotype=7 :返回8k8bit的alaw格式文件 
audiotype=8 :返回8k8bit的ulaw格式文件 
audiotype=9 返回8K采样率的mp3

忽略file_name直接播放
"""
def zhtts(text,voice_name,file_name="",audiotype="6"):
    token=getToken()
    # domain为固定值1
    url="https://openapi.data-baker.com/tts_hot_load?" \
	"access_token="+token+"&domain=1&text="+text+"&voice_name="+voice_name+"&language=zh"+"&audiotype="+audiotype
    answer = requests.get(url)
    res=answer.content
    if(len(file_name)==0):
        p = pyaudio.PyAudio()
        stream = p.open(format=p.get_format_from_width(2),
                        channels=1,
                        rate=16000,
                        output=True)
        stream.write(res)
        stream.stop_stream()  # 暂停
        stream.close()  # 关闭
        p.terminate()
    else:
        with open(file_name, "wb") as f:
            for x in res:
                s = struct.pack('B', x)  # 转换为字节流字符串,B代表unsigned char
                f.write(s)

zhtts("君不见,黄河之水天上来,奔流到海不复回。君不见,高堂明镜悲白发,朝如青丝暮成雪。","你申请的模板ID")

使用流程也很简单,申请个ID和SECRET->在APP上录制语音大概12段->上传等待训练结果->拿到模型ID->调用上面的代码

加油,希望我明年能有实力拿下它

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值