StepAudio:语音大模型

部署运行你感兴趣的模型镜像

       Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤),方言(如 粤语,四川话)等功能;

       在Step-Audio中,阶跃星辰发布了两个模型,分别是:

  • 1300亿多模态模型: 单模型能实现理解生成一体化完成语音识别、语义理解、对话、语音克隆、语音生成等功能,开源千亿参数多模态模型 Step-Audio-Chat;

  • 语音合成模型: 基于130B 突破传统 TTS 对人工采集数据的依赖,生成高质量的合成音频数据,并同步开源首个基于大规模合成数据训练,支持 RAP 和哼唱的指令加强版语音合成模型 Step-Audio-TTS-3B ;

       从官网上给出的数据,要运行Step-Audio-Chat最低需要265G的显存,目前小编能力有限,无法运行,不过可以尝试最低只需要8G显存的Step-Audio-TTS-3B模型跑一跑看看效果;官方提供了推理代码,测试了Step-Audio-TTS-3B的TTS文本转语音以及语音合成(克隆),效果明显优于Chat-TTS,尤其是克隆效果感觉就是我自己在说话;

一、安装

       运行Step-Audio-TTS-3B需要有一张16G左右的显卡,以及安装对应的驱动,下面就开始安装:

# 从github上拉取项目代码
git clone https://github.com/stepfun-ai/Step-Audio.git

# 创建并激活虚拟环境(也可以在base环境安装)
conda create -n stepaudio python=3.10
conda activate stepaudio

# 进入项目,并安装项目所需依赖
cd Step-Audio
pip install -r requirements.txt

# 创建模型权重文件夹并进入
mkdir models_weights
cd models_weights

# 安装大文件拉取工具,下载模型
git lfs install
# 下载分词器模型
git clone https://www.modelscope.cn/stepfun-ai/Step-Audio-Tokenizer.git
# 下载Step-Audio-TTS-3B
git clone https://www.modelscope.cn/stepfun-ai/Step-Audio-TTS-3B.git

二、推理

       通过运行Step-Audio文件夹下的tts_inference.py进行TTS和Clone功能的推理,我们来逐一测试;

# tts_inference.py

import torchaudio
import argparse
from tts import StepAudioTTS
from tokenizer import StepAudioTokenizer
from utils import load_audio
import os


def main():
    parser = argparse.ArgumentParser(description="StepAudio Offline Inference")
    parser.add_argument(
        "--model-path", type=str, required=True, help="Base path for model files"
    )
    parser.add_argument(
        "--synthesis-type", type=str, default="tts", help="Use tts or Clone for Synthesis"
    )
    parser.add_argument(
        "--output-path", type=str, required=True, help="Output path for synthesis audios"
    )
    args = parser.parse_args()
    os.makedirs(f"{args.output_path}", exist_ok=True)

    encoder = StepAudioTokenizer(f"{args.model_path}/Step-Audio-Tokenizer")
    tts_engine = StepAudioTTS(f"{args.model_path}/Step-Audio-TTS-3B", encoder)

    if args.synthesis_type == "tts":
        text = "(RAP)我踏上自由的征途,追逐那遥远的梦想,挣脱束缚的枷锁,让心灵随风飘荡,每一步都充满力量,每一刻都无比闪亮,自由的信念在燃烧,照亮我前进的方向!"
        output_audio, sr = tts_engine(text, "Tingting")
        torchaudio.save(f"{args.output_path}/output_tts.wav", output_audio, sr)
    else:
        clone_speaker = {"speaker":"test","prompt_text":"叫做秋风起蟹脚痒,啊,什么意思呢?就是说这秋风一起啊,螃蟹就该上市了。", "wav_path":"examples/prompt_wav_yuqian.wav"}
        text_clone = "人活一辈子,生老病死,总得是有高峰,有低谷,有顺境,有逆境,每个人都差不多。要不老话怎么讲,三十年河东,三十年河西呢。"
        output_audio, sr = tts_engine(text_clone, "",clone_speaker)
        torchaudio.save(f"{args.output_path}/output_clone.wav", output_audio, sr)

if __name__ == "__main__":
    main()

2.1 TTS(文本转语音)功能

修改脚本:

       如下图所示,将tts_inference.py脚本中红框的text替换为自己要转换为语音的文本:

运行命令:

python tts_inference.py --model-path models_weights --output-path output --synthesis-type tts

我们可以看到原脚本中有‘(RAP)’可以控制输出语音的语气,大家可以替换其他语气进行测试;

2.2 Clone(语音合成)功能

修改脚本:

       相比于TTS功能,Clone功能稍微繁琐一点:

       (1)需要提前准备要克隆的语音样本保存在examples文件夹下,同时修改下图红框中‘wav_path’所指向的语音文本保存路径;

       (2)同时准备语音内容所对应的文本信息,替换‘prompt_text’指向的文本;

       (3)替换‘text_clone’为克隆的音色需要朗读的文本信息;

运行命令: 

python tts_inference.py --model-path models_weights --output-path output --synthesis-type clone

非常简单,大家快去试试吧,效果超乎你想象! 

 

 

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值