EchoraEchora
モデル一覧に戻る

Spark-TTS:コーデックは1つ、独立した音響モデルは不要

2026年9月12日
•
読了目安:7分

テキストと録音を、聴ける作品に

ナレーション、ステム分離、カバー、効果音を、ブラウザだけで。

  • テキスト読み上げも、ボイスクローンも
  • ステムを分離、またはカバーを生成
  • 登録して試聴。聴いてから決められる
無料で作り始める

LLM ベースの TTS システムの多くは、言語モデルが処理を終えた後に、予測された token を実際の音響的な細部へ変換する flow matching ネットワークや拡散デコーダーという第2のモデルを必要とします。HKUST、Mobvoi、上海交通大学をはじめとする複数機関の研究者が共同開発した Spark-TTS は、この第2段階を完全に取り除きました。Qwen2.5 を基盤とし、言語モデルが予測したコードから音声を直接再構成します。そのために専用設計されたコーデックを使うことで、品質や制御性を犠牲にせず直接再構成を可能にしています。

Spark-TTS とは?

Spark-TTS は、2025年3月の論文で発表されたオープンソースの LLM ベース音声合成システムで、Qwen2.5 言語モデルを全面的にバックボーンとして構築されています。中心的な貢献は BiCodec です。これは、同種の LLM ベース TTS アーキテクチャの多くが依存する flow matching などの独立した音響生成モデルを不要にする、単一ストリーム音声コーデックです。複数の積層コードブックを予測してから専用デコーダーで解釈するのではなく、Spark-TTS の LLM は音声へ直接対応するコードを予測するため、生成パイプライン全体がより単純で計算効率の高いものになります。

Spark-TTS の機能上の利点

  • 本当に簡素化されたアーキテクチャ。 音響特徴の生成に独立した flow matching モデルや拡散モデルは不要です。LLM が予測したコードから音声を直接再構成するため、複雑さと推論コストの両方を削減できます。
  • ゼロショット音声クローン。 対象となる特定の声専用の学習データを用意せずに、対象話者の声を再現します。
  • 独立した Voice Creation モード。 参照音声を一切必要とせず、制御パラメータだけから完全な合成音声を生成します。これはクローンとは明確に異なる機能です。
  • 話し方のきめ細かな制御。 性別や全体的な話し方といった大まかな制御に加えて、正確なピッチ値や発話速度も指定できます。
  • 中国語と英語のバイリンガル対応。 同じ生成内で言語をまたいだコードスイッチングを行う場面も含まれます。
  • 全面的に公開された研究パイプライン。 モデル、学習コード、さらに専用構築された VoxBox データセット(詳細な属性アノテーション付き音声100,000時間)がすべて公開されています。

BiCodec の分離 token は実際にどう機能するのか

これは、制御性を手放さずに Spark-TTS の単純さを実現する具体的な設計上の選択であり、直接理解しておく価値があります。BiCodec は音声を、相互に補完する2種類の token に分解します。低ビットレートの意味 token は言語内容(何を言っているか)を捉え、固定長のグローバル token は話者固有の属性(誰が、どのようなスタイルで話しているか)を捉えます。この2種類の token は絡み合わず明確に分離されているため、Qwen2.5 バックボーンは思考の連鎖による生成アプローチと組み合わせることで、ある程度独立して操作できます。グローバル token を調整すると、言語内容を損なわずに声の特徴が変化し、その逆も同様です。この分離こそが、同じ基礎表現から大まかな制御(性別や全体的な話し方の選択)と細かな制御(正確なピッチ値や発話速度の設定)の両方を可能にし、制御の粒度ごとに別の仕組みを必要としない理由です。

2つのモード:Voice Cloning と Voice Creation

Spark-TTS は、1つではなく、本当に異なる2つのワークフローを軸に構築されています。Voice Cloning は参照音声クリップとその書き起こしを受け取り、その話者の声で新しい音声を生成します。これは標準的なゼロショットクローンの用途です。Voice Creation は逆方向に機能します。参照録音の代わりに制御パラメータ(性別、ピッチ、発話速度、スタイル)を指定すると、モデルはその指定に合う完全な合成音声を生成し、実在人物の声は一切関与しません。この第2のモードは、ブランド用アシスタント音声やゲームキャラクターなど、一貫した仮想話者のアイデンティティが必要なプロジェクトに実際に役立ちます。出発点となる実在の声優を探したり、ライセンスを得たり、録音したりする必要がありません。

Spark-TTS の始め方

  1. リポジトリをクローンし、Python 3.12 環境を用意します。 git clone https://github.com/SparkAudio/Spark-TTS.git を実行し、専用の conda 環境を作成して有効化します(conda create -n sparktts -y python=3.12 && conda activate sparktts)。その後、pip install -r requirements.txt で依存関係をインストールします。
  2. モデルの重みをダウンロードします。 huggingface_hub ライブラリの snapshot_download("SparkAudio/Spark-TTS-0.5B", local_dir="pretrained_models/Spark-TTS-0.5B") を使うか、git lfs install && git clone https://huggingface.co/SparkAudio/Spark-TTS-0.5B pretrained_models/Spark-TTS-0.5B で直接クローンします。
  3. CLI からクローン推論を実行します。 python -m cli.inference --text "text to synthesize." --device 0 --save_dir "path/to/save/audio" --model_dir pretrained_models/Spark-TTS-0.5B --prompt_text "transcript of the prompt audio" --prompt_speech_path "path/to/prompt_audio" で、コマンドラインから基本的な音声クローンのワークフローを直接実行できます。
  4. Voice Cloning と Voice Creation の両方に対応する WebUI を起動します。 python webui.py --device 0 を実行すると、どちらのワークフローにも対応するブラウザーインターフェースが開きます。Voice Cloning はアップロードした参照クリップまたはライブ録音を受け付け、Voice Creation は制御パラメータを直接表示します。
  5. 本番配信用の Triton/TensorRT-LLM デプロイ資料を確認します。 ローカルでの実験から本番規模の配信へ移行するチーム向けに、Nvidia Triton と TensorRT-LLM のデプロイ手順がプロジェクトで具体的に説明されています。

より良い結果を得るためのヒント

  • 実在する特定人物の声が不要なら、クローンではなく Voice Creation を使います。 プロジェクトに必要なのが一貫性のある独自の仮想話者だけなら、制御パラメータから生成することで、実在する参照音声のクローンに伴うライセンスや同意の問題を避けられます。
  • クローンには正確なプロンプト書き起こしを用意します。 CLI では参照音声と、それに一致する書き起こしテキストの両方が必要なので、正確な書き起こしによって、生成時に言語内容と話者のアイデンティティをより確実に分離できます。
  • 大まかな設定だけに頼らず、細かなピッチと速度の制御を試します。 BiCodec の分離 token は精密な調整を明確に可能にしているため、幅広いスタイル分類だけでなく正確な値を使うことこそ、このモデルの制御性が参照音声だけに依存するクローンシステムと真に異なる点です。
  • コンテンツで言語をまたいだコードスイッチングが必要なら、直接テストします。 これは周辺的なケースではなく明示的に対応している場面なので、中国語と英語が混在する具体的なコンテンツで一様な品質を想定する前に、直接検証する価値があります。

Spark-TTS と他の LLM ベース音声クローンモデルの比較

Spark-TTSCosyVoice3F5-TTS
コア機構単一ストリーム BiCodec、LLM から音声を直接生成教師あり意味 token + flow matchingDiffusion Transformer + flow matching
独立した音響モデルが必要かいいえはい(flow matching 段階)はい(コア生成段階)
ゼロショットクローンはいはいはい
完全な合成音声の作成(参照なし)はい、専用モードあり専用機能ではない専用機能ではない
細かなピッチ/速度制御はい、分離 token により実現指示ベース専用機能ではない
言語中国語、英語(コードスイッチング)9言語 + 中国語18方言主に英語向け
ライセンスCC-BY-NC-SA-4.0(非商用、同一条件で共有)オープン、ホステッド API ありCC-BY-NC(非商用)

Spark-TTS の明確な位置づけは、アーキテクチャの単純さと真の二用途の柔軟性を組み合わせた点にあります。単一ストリーム設計は、同種のシステムの多くが今も必要とするモデル段階を丸ごと1つ省きます。一方、Voice Creation モードは、クローン重視のモデルの多くが直接扱わない用途、つまり実在の参照音声をまったく使わない合成音声をカバーします。

よくある質問

Spark-TTS のアーキテクチャは、他の LLM ベース TTS モデルと何が違いますか?

BiCodec という単一ストリームコーデックを使い、Qwen2.5 バックボーンが音声へ直接対応するコードを予測できるため、同種のシステムの多くが追加の生成段階として必要とする独立した flow matching モデルや拡散モデルを省けます。

Spark-TTS は参照音声なしで声を作れますか?

はい。それこそが Voice Creation モードの目的であり、性別、ピッチ、発話速度などの制御パラメータから、参照録音を一切必要とせず完全な合成音声を生成します。

Spark-TTS は英語と中国語以外の言語にも対応していますか?

文書と学習上の重点は中国語と英語のバイリンガル対応にあり、同一生成内での言語をまたいだコードスイッチングも含みます。より幅広い言語への対応はコアリリースに含まれません。

Spark-TTS は商用でも無料で使えますか?

別途許諾を得ない限り使えません。CC-BY-NC-SA-4.0 ライセンスで公開されており、利用は非商用目的に制限され、同一条件での共有が求められます。また、文書では想定用途を研究、教育、正当な利用に明確に限定し、無許可のクローン作成やなりすましを禁止しています。

Spark-TTS で音声をクローンするには、どれくらいの参照音声が必要ですか?

文書化されたワークフローでは、短い参照クリップとそれに一致する書き起こしテキストを使います。正確な最短時間は他の一部モデルほど厳密には指定されていませんが、クローンのパイプラインはクリーンで代表的なサンプルを前提に構築されています。

参照音声から似た声の音声を生成

同様の目的を持つブラウザーベースの音声クローンには、Echora の音声クローンを利用できます。自分の声、または使用について明示的な許可を得た参照音声をアップロードし、最大5,000文字の新しいテキストを入力すると、参照音声に似ることを目指した新しい音声を生成できます。

音声クローンを作成 →