NeuTTS Air:Raspberry Pi に収まるほど小さな音声クローン
テキストと録音を、聴ける作品に
ナレーション、ステム分離、カバー、効果音を、ブラウザだけで。
- テキスト読み上げも、ボイスクローンも
- ステムを分離、またはカバーを生成
- 登録して試聴。聴いてから決められる
本当に軽量で CPU に適した TTS モデルの多くは、サイズを小さくする代わりに音声クローンを諦め、固定されたプリセット音声だけを使うという明確なトレードオフを受け入れています。Neuphonic の NeuTTS Air は、そのトレードオフを拒みました。パラメータ数は10億未満で、スマートフォンや Raspberry Pi でも無理なく動くよう量子化されていながら、わずか3秒の参照音声から対象の声をクローンできます。Neuphonic はこの組み合わせを、この規模で即時クローンを実現した、初の真にリアルで完全オンデバイスの TTS 音声言語モデルと説明しています。
NeuTTS Air とは?
NeuTTS Air は、Neuphonic が2025年10月に公開した Apache 2.0 ライセンスのオープンソース text-to-speech モデルです。Qwen2 ベースの言語モデルをバックボーンとし、公式モデルカードでは7億4,800万パラメータ、一般には「0.5B クラス」と表現されています。そこに Neuphonic 独自のニューラル音声コーデック NeuCodec を組み合わせています。設計の要点はオンデバイス展開にあります。すべてをローカルハードウェア上で実行でき、自分から外部へ送信しない限り、音声もテキストも端末の外へ出す必要がありません。
NeuTTS Air の機能上の強み
- わずか3秒の参照音声から即座に音声をクローンできます。この規模のモデルでは非常に珍しい機能であり、その大半は固定されたプリセット音声しか利用できません。
- **GGUF 量子化(Q4 と Q8)**はエッジ展開向けに特化しており、
llama.cpp/llama-cpp-pythonを通じてスマートフォン、ノート PC、Raspberry Pi のようなシングルボードコンピューターで動作します。 - 高効率な音声コーデック NeuCodecは、単一のコードブックを50Hzのフレームレートで使用し、わずか0.8kbpsで動作します。モデル全体を小さく保ちながら高い出力品質を維持できるのは、この設計判断によるものです。
- 実際に控えめな性能のハードウェアでリアルタイム生成できます。公開ベンチマークでは AMD Ryzen 9 CPU 上でリアルタイムの2倍を超えるスループットを示し、Samsung Galaxy A25 スマートフォンでもリアルタイムに近い速度に達しています。
- Perth ウォーターマークを内蔵し、オプション設定ではなく、生成されるすべての音声ファイルへデフォルトで自動的に埋め込みます。
- Apache 2.0 の下で完全に公開されており、別途ライセンス契約を結ばなくても商用利用できます。
リアリティと小型化を両立するアーキテクチャ
NeuTTS Air の Qwen2 ベースのバックボーンは、espeak-ng のフロントエンドを介した音素化、プロソディのモデリング、入力テキストと参照話者のスタイルの両方を条件とする出力生成を担います。つまり、言語と表現に関する推論作業のすべてを、はるかに大きなモデルではなく10億未満のパラメータを持つ言語モデルへ詰め込んでいます。音響面を担うのが NeuCodec です。多くのニューラルコーデックが複数のコードブックを積み重ねるのに対し、NeuCodec は単一のコードブックだけで音声を圧縮するため、コードブックを減らした際に生じがちな品質低下を避けながら、24kHz 出力で約0.8kbpsという非常に効率的な圧縮を実現します。モデルの2,048トークンのコンテキストウィンドウは、参照プロンプトを含めて約30秒の音声を扱えます。短い会話には十分ですが、アシスタント形式の対話ではなく長編ナレーションを予定している場合は、現実的な制約として考慮する必要があります。
NeuTTS Air の始め方
- 量子化 CPU 推論用の GGUF 追加パッケージをインストールします。
uv sync --extra ggufを実行すると、Q4/Q8 GGUF チェックポイントの動作に必要なllama-cpp-pythonが導入されます。GGUF の代わりに、または併用して ONNX デコーダーを使いたい場合は、uv sync --extra onnxも追加してください。 - Hugging Face からバックボーンのチェックポイントを選びます。
neuphonic/neutts-airはフル精度モデルです。neuphonic/neutts-air-q4-ggufとneuphonic/neutts-air-q8-ggufは、エッジおよび CPU 展開向けに作られた量子化版です。 - 参照クリップとその文字起こしを用意します。 NeuTTS Air には、クリーンなモノラルの参照 WAV ファイルと、それに一致する文字起こしテキストの両方が必要です。推奨される長さは3〜15秒で、切り取った音声や大幅に編集した音声よりも、間が少なく自然で連続した発話のほうが良い結果になります。
- 基本サンプルスクリプトを実行してセットアップを確認します。 文書で最初のテストとして示されているのは
python -m examples.basic_example --input_text "your text here" --ref_audio samples/dave.wav --ref_text samples/dave.txtです。選んだチェックポイントに合わせて--backboneフラグを調整してください。 - Python API を直接使って組み込みます。
from neuttsair.neutts import NeuTTSAirを実行し、選択したbackbone_repoとcodec_repo—標準のコーデックはneuphonic/neucodec— でインスタンスを作成します。参照クリップに対してtts.encode_reference()を呼び出し、その結果を対象テキストとともにtts.infer()へ渡します。 - デフォルトのチェックポイントだけが選択肢だと考える前に、NeuTTS-Air の Hugging Face コレクションで追加のバックボーンを確認してください。 展開要件の異なる複数のバリエーションがそこに記載されています。
より良い結果を得るためのヒント
- 参照クリップはクリーンで会話らしい状態に保ちます。 間の少ない自然な独白や会話サンプルは、モデルが声の調子を正確に捉えるのに役立ちます。背景音楽、重なった発話、強く加工された音声はクローン品質を明らかに低下させます。
- 内容を計画する際は、2,048トークンのコンテキストウィンドウ内に収めます。 参照プロンプトを含めて約30秒を扱えるため、長い内容は一度で長文を処理させず、複数回の生成に分けてください。
- 制約が最も厳しい端末には Q4 GGUF、多少余裕がある場合は Q8 を使います。 量子化レベルは、わずかな品質と引き換えに速度とメモリ使用量を改善します。どちらかを漫然とデフォルトにせず、対象ハードウェアに合わせて選んでください。
- 7億4,800万パラメータでも大きすぎるなら NeuTTS Nano を検討します。 Neuphonic のさらに小さな姉妹モデルで、総パラメータ数は2億2,900万、有効パラメータ数は1億2,000万です。NeuTTS Air よりも制約の厳しいエッジ展開を対象としています。
NeuTTS Air とほかの軽量オンデバイスモデルの比較
| NeuTTS Air | Piper | Kokoro-82M | |
|---|---|---|---|
| パラメータ数 | 約7億4,800万(Qwen2 ベース) | 約1,500万 | 8,200万 |
| 音声クローン | 対応、約3秒の参照音声 | 非対応、固定音声リスト | 非対応、固定音声リスト |
| 展開形式 | llama.cpp 経由の GGUF(Q4/Q8) | ONNX | PyTorch / ONNX |
| スマートフォン級ハードウェアでのリアルタイム動作 | 対応(Galaxy A25 のベンチマークを公開) | 対応 | 主な設計目標ではない |
| 内蔵ウォーターマーク | あり(Perth) | なし | なし |
| 言語 | 英語(最も強い)、スペイン語、ドイツ語、フランス語 | 35+ | 8 |
| ライセンス | Apache 2.0 | MIT(オリジナル)/ GPL-3.0(現在のフォーク) | Apache 2.0 |
軽量オンデバイスというカテゴリにおける NeuTTS Air の独自の立ち位置は、この規模でも zero-shot 音声クローンを維持する数少ない選択肢の1つであることです。これほど小さいモデルの大半は、小型化と引き換えにクローン機能を完全に手放します。NeuTTS Air は、まさにそのトレードオフを避けるために作られました。
よくある質問
NeuTTS Air に GPU は必要ですか?
いいえ。GGUF 量子化による CPU 推論に最適化され、最近のノート PC や Raspberry Pi 4 のような端末でも良好に動作します。必要であれば、CUDA または Metal 対応の llama-cpp-python を通じて GPU も利用できますが、必須ではありません。
NeuTTS Air の音声クローンには、どのくらいの参照音声が必要ですか?
最短3秒です。実用上の推奨範囲として、3〜15秒のクリーンなモノラル音声と、それに一致する参照クリップの文字起こしが記載されています。
NeuTTS Air は商用でも無料で使えますか?
はい。別途ライセンス契約を結ばずに商用利用できる Apache 2.0 ライセンスで公開されています。
NeuTTS Air に espeak が必要なのはなぜですか?
前処理として espeak-ng を使い、入力テキストを音素へ変換するためです。これは、言語モデルのバックボーンが生成すべき音を理解するうえで重要な工程です。
Echora で参照音声から似た声を生成
同じ目的に近いブラウザ上のワークフローには、Echoraの音声クローンを利用できます。自分の声、または使用について明示的な許可を得た参照音声をアップロードし、最大5,000文字の新しいテキストを入力すると、参照音声に似た新しい音声を生成できます。