- 2025年2月17日: 👋 推論コードとモデルの重みをリリースしました。Step-Audio-Chat, Step-Audio-TTS-3B および Step-Audio-Tokenizer。
- 2025年2月17日: 👋 マルチターンオーディオベンチマーク StepEval-Audio-360 をリリースしました。
- 2025年2月17日: 👋 技術レポート Step-Audio-Report をリリースしました。
Step-Audioは、音声理解と生成を統合した業界初の製品レベルのオープンソースリアルタイム音声対話システムであり、多言語対話(例:日本語、英語、中国語)、音声感情(例:喜び、悲しみ)、方言(例:関西弁、広東語)、音声速度および韻律スタイルの調整をサポートします。Step-Audioは、以下の4つの主要な技術革新を示しています:
-
1300億パラメータのマルチモーダルモデル:単一の統合モデルで、音声認識、意味理解、対話、音声クローン、音声生成を実行します。1300億パラメータのStep-Audio-Chatバリアントをオープンソース化しました。
-
生成データエンジン:従来のTTSが手動データ収集に依存することを排除し、1300億パラメータのマルチモーダルモデルを使用して高品質の音声を生成します。このデータを活用して、リソース効率の高いStep-Audio-TTS-3Bモデルをトレーニングし、制御可能な音声合成のための指示フォロー機能を強化しました。
-
細かい音声制御:指示ベースの制御設計を通じて、複数の感情(怒り、喜び、悲しみ)、方言(関西弁、広東語など)、および音声スタイル(ラップ、アカペラハミング)をサポートし、多様な音声生成ニーズに対応します。
-
強化されたインテリジェンス:ToolCallメカニズムの統合とロールプレイングの強化を通じて、エージェントの複雑なタスクにおけるパフォーマンスを向上させます。
Step-Audioでは、音声ストリームをトークン化するために、並列のセマンティック(16.7Hz、1024エントリのコードブック)および音響(25Hz、4096エントリのコードブック)トークナイザーを組み合わせたデュアルコードブックフレームワークを使用し、2:3の時間的インターリーブを行います。1300億パラメータのLLM基盤(Step-1)は、音声コンテキスト化継続的事前トレーニングおよびタスク固有の後トレーニングを通じて強化され、強力なクロスモーダル音声理解を実現します。フローマッチングとニューラルボコーダを組み合わせたハイブリッド音声デコーダを使用し、リアルタイムの波形生成を最適化します。推論パイプラインは、投機的応答生成(40%のコミット率)およびテキストベースのコンテキスト管理(14:1の圧縮率)を特徴とするストリーミング対応アーキテクチャを備えています。
セマンティックトークナイザーと音響トークナイザーを効果的に統合するために、トークンレベルのインターリーブアプローチを実装しています。セマンティックトークナイザーは1024のコードブックサイズを使用し、音響トークナイザーはより大きな4096のコードブックサイズを使用して、より細かい音響の詳細をキャプチャします。異なるトークンレートを考慮して、2つのセマンティックトークンごとに3つの音響トークンをペアリングする2:3の時間的アライメント比を確立します。
Step-Audioの音声情報を効果的に処理し、正確な音声-テキストアライメントを実現するために、1300億パラメータの事前トレーニングされたテキストベースの大規模言語モデル(LLM)であるStep-1に基づいて、音声継続的事前トレーニングを実施しました。
Step-Audioの音声デコーダは、セマンティックおよび音響情報を含む離散音声トークンを、自然な音声を表す連続的な時間領域の波形に変換する重要な機能を果たします。デコーダアーキテクチャには、フローマッチングモデルとメルから波形へのボコーダが組み込まれています。生成された音声の明瞭度と自然さを最適化するために、音声デコーダはデュアルコードインターリーブアプローチを使用してトレーニングされ、生成プロセス全体でセマンティックおよび音響機能のシームレスな統合を確保します。
リアルタイムの対話を可能にするために、最適化された推論パイプラインを設計しました。その中心には、状態遷移を管理し、投機的応答生成を調整し、重要なサブシステム間のシームレスな調整を確保するコントローラーモジュールがあります。これらのサブシステムには、ユーザーの音声を検出する音声活動検出(VAD)、リアルタイムで音声を処理するストリーミングオーディオトークナイザー、応答を処理および生成するStep-Audio言語モデルおよび音声デコーダ、および会話の連続性を維持するコンテキストマネージャが含まれます。
後トレーニングフェーズでは、自動音声認識(ASR)およびテキストから音声への変換(TTS)のタスク固有の監督付き微調整(SFT)を実施しました。音声入力テキスト出力(AQTA)タスクについては、多様な高品質データセットを使用してSFTを実施し、人間のフィードバックからの強化学習(RLHF)を組み合わせて応答品質を向上させ、感情表現、音声速度、方言、および韻律の細かい制御を可能にしました。
モデル | リンク |
---|---|
Step-Audio-Tokenizer | 🤗huggingface |
Step-Audio-Chat | 🤗huggingface |
Step-Audio-TTS-3B | 🤗huggingface |
モデル | リンク |
---|---|
Step-Audio-Tokenizer | modelscope |
Step-Audio-Chat | modelscope |
Step-Audio-TTS-3B | modelscope |
次の表は、Step-Audioモデル(バッチサイズ=1)を実行するための要件を示しています:
モデル | 設定 (サンプル周波数) |
GPU最小メモリ |
---|---|---|
Step-Audio-Tokenizer | 41.6Hz | 1.5GB |
Step-Audio-Chat | 41.6Hz | 265GB |
Step-Audio-TTS-3B | 41.6Hz | 8GB |
- CUDAサポートのあるNVIDIA GPUが必要です。
- モデルは、4つのA800 80G GPUでテストされています。
- 推奨:より良い生成品質のために、80GBメモリを持つ4つのA800/H800 GPUを使用することをお勧めします。
- テストされたオペレーティングシステム:Linux
- Python >= 3.10.0(AnacondaまたはMinicondaの使用を推奨)
- PyTorch >= 2.3-cu121
- CUDA Toolkit
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を使用して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
エンドツーエンドの音声/テキスト入力と音声/テキスト出力で推論を行います。
python offline_inference.py --model-path where_you_download_dir
デフォルトのスピーカーを使用してTTSを推論するか、新しいスピーカーでクローンを作成します
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 デモ
python app.py --model-path where_you_download_dir
# Step-Audio-TTS-3B デモ
python tts_app.py --model-path where_you_download_dir
Step-Audio-Chatは130Bパラメータの大規模言語モデルであり、テンソル並列処理をサポートするvLLMを使用した推論を推奨します。 * vLLMはTokenizerおよびTTSをロードしないため、音声入力による推論には対応していません
現在の公式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チャットの呼び出し例
python call_vllm_chat.py
隠れた特徴モデリング | 離散音声トークンモデリング | ||||||||
---|---|---|---|---|---|---|---|---|---|
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 |
モデル | test-zh | test-en |
---|---|---|
CER (%) ↓ | WER (%) ↓ | |
GLM-4-Voice | 2.19 | 2.91 |
MinMo | 2.48 | 2.90 |
Step-Audio | 1.53 | 2.71 |
- StepAudio-TTS-3B-Singleは、デュアルコードブックバックボーンとシングルコードブックボコーダの組み合わせを示します。
モデル | 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 |
トークン | 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 |
StepEval-Audio-360 を新しいベンチマークとしてリリースしました。これは、実際のユーザーからの137のマルチターンの日本語プロンプトで構成されており、生成された応答の品質を次の次元で評価するように設計されています:音声指示のフォロー、音声理解、論理的推論、ロールプレイング、創造性、歌唱、言語能力、音声感情制御、ゲーム。
モデル | 事実性(% ↑) | 関連性(% ↑) | チャットスコア ↑ |
---|---|---|---|
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 |
- 注:Moshiは「*」でマークされており、参考として考慮する必要があります。
モデル | 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データセットで「*」でマークされた結果は参考として考慮されます。
カテゴリ | 指示のフォロー | 音声品質 | ||
---|---|---|---|---|
GLM-4-Voice | Step-Audio | GLM-4-Voice | Step-Audio | |
言語 | 1.9 | 3.8 | 2.9 | 3.3 |
ロールプレイング | 3.8 | 4.2 | 3.2 | 3.6 |
歌唱 / ラップ | 2.1 | 2.4 | 2.4 | 4 |
音声制御 | 3.6 | 4.4 | 3.3 | 4.1 |
Step-Audioのオンラインバージョンは、跃问のアプリバージョンからアクセスでき、いくつかの印象的な例も見つけることができます。
役割 | プロンプト音声 | クローン音声 |
---|---|---|
于谦 | google drive audio file |
google drive audio file |
李雪琴 | google drive audio file |
google drive audio file |
プロンプト | 応答 |
---|---|
Human: 早口言葉を言ってください Assistant: すもももももももものうち Human: もっと早く言えますか? |
google drive audio file |
Human: 早口言葉を言ってください Assistant: すもももももももものうち Human: もっと早く言えますか? Assistant: すもももももももものうち Human: もっとゆっくり言ってください。 |
google drive audio file |
プロンプト | 応答 |
---|---|
Human: もっとかわいく話してみてください。 | google drive audio file |
Human: どうしよう、人生がうまくいかない。 | google drive audio file |
Human: すごいですね。 | google drive audio file |
プロンプト | 応答 |
---|---|
Human: "It's raining cats and dogs" ってどういう意味ですか? Assistant: "It's raining cats and dogs" というのは、非常に激しい雨が降っていることを意味します。実際に猫や犬が空から降ってくるわけではありません!これは激しい雨を表現するための面白い言い方です。 |
google drive [audio file](https://github.com |