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

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

 

 

### 安装 Step-Audio 的方法 对于特定于 Step-Audio 的安装,在提供的参考资料中并没有直接提及此软件包的具体安装指南。然而,可以推测 Step-Audio 可能是指 WebRTC 音频处理库或者是与 ALSA 或 PulseAudio 相关的一个组件,因为这些是在 Linux 平台上常见的音频处理技术。 如果假设 Step-Audio 是指 WebRTC 音频处理库,则可以从源码编译并安装该库: #### 编译和安装 WebRTC 音频处理库 下载 WebRTC 音频处理库的压缩包,并解压到本地目录[^1]: ```bash wget http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-0.3.1.tar.xz tar xf webrtc-audio-processing-0.3.1.tar.xz cd webrtc-audio-processing-0.3.1/ ``` 准备构建环境以及执行实际的构建过程: ```bash mkdir build && cd build cmake .. make -j$(nproc) sudo make install ``` 上述命令序列完成了从获取资源到最终安装的过程。需要注意的是,具体的安装路径和其他选项可能依据个人需求有所不同,因此建议查看官方文档来获得最准确的信息。 考虑到另一种可能性即 Step-Audio 为自定义术语或较少见的应用程序,那么应当寻找其官方网站或其他权威来源以确认确切含义及其对应的安装指导说明。 另外,如果是涉及到更底层如 ALSA 设备驱动层面的操作,通常不需要单独安装所谓的 "Step-Audio";相反,这更多是一个抽象的概念或是开发过程中遵循的一系列步骤[^3]。 由于缺乏关于 Step-Audio 明确描述的确切资料,以上解释基于现有信息进行了合理的推断。为了得到更加针对性的帮助,请提供更多的背景信息以便给出更为精确的回答。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值