Skip to content

Latest commit

 

History

History
724 lines (636 loc) · 34.2 KB

README_CN.md

File metadata and controls

724 lines (636 loc) · 34.2 KB

中文  |  English  |  日本語



Step-Audio

🔥🔥🔥 News!!

Table of Contents

  1. 介绍
  2. 模型组成
  3. 模型下载
  4. 模型使用
  5. 基准
  6. 在线引擎
  7. 样例
  8. 致谢
  9. 协议
  10. 引用

1. 介绍

Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤),方言(如 粤语,四川话),可控制语速及韵律风格,支持RAP和哼唱等。其核心技术突破体现在以下四大技术亮点:

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

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

  • 精细语音控制: 支持多种情绪(如生气,高兴,悲伤)、方言(包括粤语、四川话等)和唱歌(包括 RAP、干声哼唱)的精准调控,满足用户对多样化语音生成的需求。

  • 扩展工具调用: 通过 ToolCall 机制和角色扮演增强,进一步提升其在 Agents 和复杂任务中的表现。

2. 模型组成

在Step-Audio系统中,音频流采用Linguistic tokenizer(码率16.7Hz,码本大小1024)与Semantice tokenizer(码率25Hz,码本大小4096)并行的双码本编码器方案,双码本在排列上使用了2:3时序交错策略。通过音频语境化持续预训练和任务定向微调强化了130B参数量的基础模型(Step-1),最终构建了强大的跨模态语音理解能力。为了实现实时音频生成,系统采用了混合语音解码器,结合流匹配(flow matching)与神经声码技术。 Architecture

2.1 Tokenizer

我们通过token级交错方法实现Linguistic token与Semantic token的有效整合。Linguistic tokenizer的码本大小是1024,码率16.7Hz;而Semantic tokenizer则使用4096的大容量码本来捕捉更精细的声学细节,码率25Hz。鉴于两者的码率差异,我们建立了2:3的时间对齐比例——每两个Linguistic token对应三个Linguistic token形成时序配对。

2.2 语言模型

为了提升Step-Audio有效处理语音信息的能力,并实现精准的语音-文本对齐,我们在Step-1(一个拥有1300亿参数的基于文本的大型语言模型LLM)的基础上进行了音频持续预训练。

2.3 语音解码器

Step-Audio语音解码器主要是将包含语义和声学信息的离散标记信息转换成连续的语音信号。该解码器架构结合了一个30亿参数的语言模型、流匹配模型(flow matching model)和梅尔频谱到波形的声码器(mel-to-wave vocoder)。为优化合成语音的清晰度(intelligibility)和自然度(naturalness),语音解码器采用双码交错训练方法(dual-code interleaving),确保生成过程中语义与声学特征的无缝融合。

2.4 实时推理管线

为了实现实时的语音交互,我们对推理管线进行了一系列优化。其中最核心的是控制模块(Controller),该模块负责管理状态转换、协调响应生成,并确保关键子系统间的无缝协同。这些子系统包括:

  • 语音活动检测(VAD):实时检测用户语音起止

  • 流式音频分词器(Streaming Audio Tokenizer):实时音频流处理

  • Step-Audio语言模型与语音解码器:多模态回复生成

  • 上下文管理器(Context Manager):动态维护对话历史与状态 Inference Pipeline

2.5 后训练细节

在后训练阶段,我们针对自动语音识别(ASR)与文本转语音(TTS)任务进行了专项监督微调(Supervised Fine-Tuning, SFT)。对于音频输入-文本输出(Audio Question Text Answer, AQTA)任务,我们采用多样化高质量数据集进行SFT,并采用了基于人类反馈的强化学习(RLHF)以提升响应质量,从而实现对情感表达、语速、方言及韵律的细粒度控制。 RLHF

3. 模型下载

3.1 Huggingface

模型 链接
Step-Audio-Tokenizer 🤗huggingface
Step-Audio-Chat 🤗huggingface
Step-Audio-TTS-3B 🤗huggingface

3.2 Modelscope

模型 链接
Step-Audio-Tokenizer modelscope
Step-Audio-Chat modelscope
Step-Audio-TTS-3B modelscope

4. 模型使用

📜 4.1 要求

下表列出了运行Step-Audio模型(batch size=1)所需的配置要求:

模型 Setting
(采样率)
GPU最低显存
Step-Audio-Tokenizer 41.6Hz 1.5GB
Step-Audio-Chat 41.6Hz 265GB
Step-Audio-TTS-3B 41.6Hz 8GB
  • 需要支持CUDA的NVIDIA显卡.
    • 模型在4块显存为80GB的A800系列NVIDIA显卡上进行测试.
    • 推荐: 为确保最佳生成质量,建议使用4块显存为80GB的A800/H800系列NVIDIA显卡.
  • 测试采用的操作系统: Linux

🔧 4.2 依赖项与安装

git clone https://github.com/stepfun-ai/Step-Audio.git
conda create -n stepaudio python=3.10
conda activate stepaudio

cd Step-Audio
pip install -r requirements.txt

git lfs install
git clone https://huggingface.co/stepfun-ai/Step-Audio-Tokenizer
git clone https://huggingface.co/stepfun-ai/Step-Audio-Chat
git clone https://huggingface.co/stepfun-ai/Step-Audio-TTS-3B

下载模型后,where_you_download_dir应包含以下结构:

where_you_download_dir
├── Step-Audio-Tokenizer
├── Step-Audio-Chat
├── Step-Audio-TTS-3B

Docker 运行环境

使用 docker 创建 Step-Audio 运行时所需要的环境

# 构建 docker 镜像
docker build . -t step-audio

# 运行 docker
docker run --rm -ti --gpus all \
    -v /your/code/path:/app -v /your/model/path:/model \
    -p 7860:7860 \
    step-audio \
    -- bash

# 构建 vLLM docker 镜像
docker build -f Dockerfile-vllm -t step-audio-vllm .

# 运行 vLLM docker
docker run --rm -ti --gpus all \
    -v /your/code/path:/app -v /your/model/path:/model \
    -p 7860:7860 \
    -p 8000:8000 \
    step-audio-vllm \
    -- bash

🚀 4.3 推理脚本

离线推理

支持端到端音频/文本输入与音频/文本输出的推理流程。

python offline_inference.py --model-path where_you_download_dir

语音合成推理

使用默认音色进行语音合成推理或使用新音色进行克隆

python tts_inference.py --model-path where_you_download_dir --output-path where_you_save_audio_dir --synthesis-type use_tts_or_clone

克隆模式需要音色信息字典,格式如下:

{
    "speaker": "speaker id",
    "prompt_text": "content of prompt wav",
    "wav_path": "prompt wav path"
}

启动网页演示

启动本地服务器以进行在线推理。 假设您已配备4块GPU且已完成所有模型的下载。

# Step-Audio-Chat demo
python app.py --model-path where_you_download_dir

# Step-Audio-TTS-3B demo
python tts_app.py --model-path where_you_download_dir

使用vLLM推理对话模型(推荐)

Step-Audio-Chat是130B大语言模型,推荐使用支持张量并行的vLLM进行推理。 * 由于vLLM没有加载 TokenizerTTS,所以模型不支持输入语音进行推理

当前官方vLLM暂未支持Step 1模型架构,建议通过我们的开发分支进行本地安装。

由于对话模型中 Attention 机制是基于 ALIBI 的变种实现,所以官方 flash attention 库并不兼容。我们已在Step-Audio-Chat仓库提供定制版 flash attention 库,运行模型前请确保将定制库路径添加至环境变量。

export OPTIMUS_LIB_PATH=where_you_download_dir/Step-Audio-Chat/lib

vllm serve where_you_download_dir/Step-Audio-Chat --dtype auto -tp $tp --served-model-name step-audio-chat --trust-remote-code

# vLLM chat 调用示例
python call_vllm_chat.py

5. 基准

5.1 语音识别

隐层特征建模 离散标记建模
Whisper Large-v3 Qwen2-Audio MinMo LUCY Moshi GLM-4-voice Base GLM-4-voice Chat Step-Audio Pretrain Step-Audio-Chat
Aishell-1 5.14 1.53 - 2.4 - 2.46 226.47 0.87 1.95
Aishell-2 ios 4.76 3.06 2.69 - - - 211.3 2.91 3.57
Wenetspeech test-net 9.68 7.72 6.64 8.78 - - 146.05 7.62 8.75
Wenet test-meeting 18.54 8.4 7.6 10.42 - - 140.82 7.78 9.52
Librispeech test-clean 1.9 1.6 1.6 3.36 5.7 2.82 75.39 2.36 3.11
Librispeech test-other 3.65 3.6 3.82 8.05 - 7.66 80.3 6.32 8.44
AVG 7.28 4.32 - - - - 146.74 4.64 5.89

5.2 语音合成

5.2.1 与GLM-4-Voice与MinMo在内容一致性(CER/WER)上的性能对比。

Model test-zh test-en
CER (%) ↓ WER (%) ↓
GLM-4-Voice 2.19 2.91
MinMo 2.48 2.90
Step-Audio 1.53 2.71

5.2.2 语音合成模型在SEED测试集上的性能结果。

  • StepAudio-TTS-3B-Single 表示采用双码本主干网络与单码本声码器的组合架构。
Model test-zh test-en
CER (%) ↓ SS ↑ WER (%) ↓ SS ↑
FireRedTTS 1.51 0.630 3.82 0.460
MaskGCT 2.27 0.774 2.62 0.774
CosyVoice 3.63 0.775 4.29 0.699
CosyVoice 2 1.45 0.806 2.57 0.736
CosyVoice 2-S 1.45 0.812 2.38 0.743
Step-Audio-TTS-3B-Single 1.37 0.802 2.52 0.704
Step-Audio-TTS-3B 1.31 0.733 2.31 0.660
Step-Audio-TTS 1.17 0.73 2.0 0.660

5.2.3 双码本重合成与CosyVoice性能对比。

Token test-zh test-en
CER (%) ↓ SS ↑ WER (%) ↓ SS ↑
Groundtruth 0.972 - 2.156 -
CosyVoice 2.857 0.849 4.519 0.807
Step-Audio-TTS-3B 2.192 0.784 3.585 0.742

5.3 语音对话

我们发布全新基准测试StepEval-Audio-360,该数据集包含137个源自真实用户的多轮中文提示,旨在系统性评估生成式语音交互系统在以下维度的表现:语音指令遵循、语音理解、逻辑推理、角色扮演、创作能力、唱歌、语言能力、语音情绪控制、游戏。

5.3.1 StepEval-Audio-360

大语言模型评估指标(GPT-4o)

Comparison of fundamental capabilities of voice chat on the StepEval-Audio-360.
Model Factuality (% ↑) Relevance (% ↑) Chat Score ↑
GLM4-Voice 54.7 66.4 3.49
Qwen2-Audio 22.6 26.3 2.27
Moshi* 1.0 0 1.49
Step-Audio-Chat 66.4 75.2 4.11
  • 注意:带有“*”标记的内容仅供参考。

雷达图(人工测评)

QR code

5.3.2 公开测试集

Model Llama Question Web Questions TriviaQA* ComplexBench HSK-6
GLM4-Voice 64.7 32.2 39.1 66.0 74.0
Moshi 62.3 26.6 22.8 - -
Freeze-Omni 72.0 44.7 53.9 - -
LUCY 59.7 29.3 27.0 - -
MinMo 78.9 55.0 48.3 - -
Qwen2-Audio 52.0 27.0 37.3 54.0 -
Step-Audio-Chat 81.0 75.1 58.0 74.0 86.0
  • 注意:在 TriviaQA 数据集上,带有“*”标记的结果仅供参考。

5.3.3 语音指令遵循

Category Instruction Following Audio Quality
GLM-4-Voice Step-Audio GLM-4-Voice Step-Audio
Languages 1.9 3.8 2.9 3.3
Role-playing 3.8 4.2 3.2 3.6
Singing / RAP 2.1 2.4 2.4 4
Voice Control 3.6 4.4 3.3 4.1

6. 在线引擎

Step-Audio 的在线版本可以通过跃问 的应用程序访问,其中还可以找到一些惊喜的示例。

QR code

7. 样例

音频克隆

role prompt wav clone wav
于谦 google drive
audio file
google drive
audio file
李雪琴 google drive
audio file
google drive
audio file

速度控制

prompt response
Human: 说一个绕口令
Assistant: 吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮
Human: 哎,你能把这个绕口令说的再快一点吗?
google drive
audio file
Human: 说一个绕口令
Assistant: 吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮
Human: 哎,你能把这个绕口令说的再快一点吗?
Assistant: 吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮
Human: 呃,你再用非常非常慢的速度说一遍的。
google drive
audio file

高情商(情感控制 & 语调控制)

prompt response
Human: 你这语气又不撒娇又不卖萌的,要不你撒个娇卖个萌吧。 google drive
audio file
Human: 怎么办?我感觉我的人生很失败。 google drive
audio file
Human: 小跃。你真的是。特别厉害。 google drive
audio file

多语言 (e.g., 中文, 英文, 日语)

prompt response
Human: What did the speaker mean when they said, it's raining cats and dogs?
Assistant: When they say "It's raining cats and dogs," it just means it's raining really hard. The speaker isn't literally saying cats and dogs are falling from the sky! It's just a fun way to describe heavy rain.
google drive
audio file
Human: こんにちは。(你好)
Assistant:こんにちは!何か手伝いましょうか?(您好!我可以帮你做点什么吗?)
google drive
audio file

Rap & Vocal

prompt response
Human: 唱一段rap google drive
audio file

8. 致谢

本项目的部分代码来自:

感谢以上所有开源项目对本项目开源做出的贡献!

9. 协议

10. 引用

@misc{huang2025stepaudiounifiedunderstandinggeneration,
      title={Step-Audio: Unified Understanding and Generation in Intelligent Speech Interaction},
      author={Ailin Huang and Boyong Wu and Bruce Wang and Chao Yan and Chen Hu and Chengli Feng and Fei Tian and Feiyu Shen and Jingbei Li and Mingrui Chen and Peng Liu and Ruihang Miao and Wang You and Xi Chen and Xuerui Yang and Yechang Huang and Yuxiang Zhang and Zheng Gong and Zixin Zhang and Brian Li and Changyi Wan and Hanpeng Hu and Ranchen Ming and Song Yuan and Xuelin Zhang and Yu Zhou and Bingxin Li and Buyun Ma and Kang An and Wei Ji and Wen Li and Xuan Wen and Yuankai Ma and Yuanwei Liang and Yun Mou and Bahtiyar Ahmidi and Bin Wang and Bo Li and Changxin Miao and Chen Xu and Chengting Feng and Chenrun Wang and Dapeng Shi and Deshan Sun and Dingyuan Hu and Dula Sai and Enle Liu and Guanzhe Huang and Gulin Yan and Heng Wang and Haonan Jia and Haoyang Zhang and Jiahao Gong and Jianchang Wu and Jiahong Liu and Jianjian Sun and Jiangjie Zhen and Jie Feng and Jie Wu and Jiaoren Wu and Jie Yang and Jinguo Wang and Jingyang Zhang and Junzhe Lin and Kaixiang Li and Lei Xia and Li Zhou and Longlong Gu and Mei Chen and Menglin Wu and Ming Li and Mingxiao Li and Mingyao Liang and Na Wang and Nie Hao and Qiling Wu and Qinyuan Tan and Shaoliang Pang and Shiliang Yang and Shuli Gao and Siqi Liu and Sitong Liu and Tiancheng Cao and Tianyu Wang and Wenjin Deng and Wenqing He and Wen Sun and Xin Han and Xiaomin Deng and Xiaojia Liu and Xu Zhao and Yanan Wei and Yanbo Yu and Yang Cao and Yangguang Li and Yangzhen Ma and Yanming Xu and Yaqiang Shi and Yilei Wang and Yinmin Zhong and Yu Luo and Yuanwei Lu and Yuhe Yin and Yuting Yan and Yuxiang Yang and Zhe Xie and Zheng Ge and Zheng Sun and Zhewei Huang and Zhichao Chang and Zidong Yang and Zili Zhang and Binxing Jiao and Daxin Jiang and Heung-Yeung Shum and Jiansheng Chen and Jing Li and Shuchang Zhou and Xiangyu Zhang and Xinhao Zhang and Yibo Zhu},
      year={2025},
      eprint={2502.11946},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2502.11946},
}

Star History

Star History Chart