モデル概要
モデル特徴
モデル能力
使用事例
🚀 OuteTTS-1.0-0.6B GGUFモデル
OuteTTS-1.0-0.6B GGUFモデルは、高速かつ高精度な音声合成を実現するモデルです。多言語に対応し、様々なハードウェア環境での使用が可能です。
🚀 クイックスタート
インストール
基本的なセットアップ
from outetts import Interface, ModelConfig, GenerationConfig, Backend, InterfaceVersion, Models, GenerationType
# インターフェースを初期化
interface = Interface(
ModelConfig.auto_config(
model=Models.VERSION_1_0_SIZE_0_6B,
backend=Backend.HF,
)
)
# デフォルトの英語の話者プロファイルを読み込む
speaker = interface.load_default_speaker("EN-FEMALE-1-NEUTRAL")
# または独自の話者を作成する(一度だけ使用)
# speaker = interface.create_speaker("path/to/audio.wav")
# interface.save_speaker(speaker, "speaker.json")
# 保存されたファイルから話者を読み込む
# speaker = interface.load_speaker("speaker.json")
# 音声を生成してファイルに保存
output = interface.generate(
GenerationConfig(
text="Hello, how are you doing?",
speaker=speaker,
)
)
output.save("output.wav")
バッチセットアップ
from outetts import Interface, ModelConfig, GenerationConfig, Backend, GenerationType
if __name__ == "__main__":
# バッチ対応のバックエンドでインターフェースを初期化
interface = Interface(
ModelConfig(
model_path="OuteAI/OuteTTS-1.0-0.6B-FP8",
tokenizer_path="OuteAI/OuteTTS-1.0-0.6B",
backend=Backend.VLLM
# For EXL2, use backend=Backend.EXL2ASYNC + exl2_cache_seq_multiply={should be same as max_batch_size in GenerationConfig}
# For LLAMACPP_ASYNC_SERVER, use backend=Backend.LLAMACPP_ASYNC_SERVER and provide server_host in GenerationConfig
)
)
# 話者プロファイルを読み込む
speaker = interface.load_default_speaker("EN-FEMALE-1-NEUTRAL") # Or load/create custom speaker
# BATCHタイプを使用して音声を生成
# Note: For EXL2ASYNC, VLLM, LLAMACPP_ASYNC_SERVER, BATCH is automatically selected.
output = interface.generate(
GenerationConfig(
text="This is a longer text that will be automatically split into chunks and processed in batches.",
speaker=speaker,
generation_type=GenerationType.BATCH,
max_batch_size=32, # Adjust based on your GPU memory and server capacity
dac_decoding_chunk=2048, # Adjust chunk size for DAC decoding
# If using LLAMACPP_ASYNC_SERVER, add:
# server_host="http://localhost:8000" # Replace with your server address
)
)
# ファイルに保存
output.save("output_batch.wav")
その他の設定オプション
高度な設定やカスタマイズについては、公式リポジトリを参照してください。
✨ 主な機能
- 音声合成と音声クローニングの大幅な改善
- バッチ推論のサポート
- 多言語対応
📦 インストール
💻 使用例
基本的な使用法
from outetts import Interface, ModelConfig, GenerationConfig, Backend, InterfaceVersion, Models, GenerationType
# インターフェースを初期化
interface = Interface(
ModelConfig.auto_config(
model=Models.VERSION_1_0_SIZE_0_6B,
backend=Backend.HF,
)
)
# デフォルトの英語の話者プロファイルを読み込む
speaker = interface.load_default_speaker("EN-FEMALE-1-NEUTRAL")
# 音声を生成してファイルに保存
output = interface.generate(
GenerationConfig(
text="Hello, how are you doing?",
speaker=speaker,
)
)
output.save("output.wav")
高度な使用法
from outetts import Interface, ModelConfig, GenerationConfig, Backend, GenerationType
if __name__ == "__main__":
# バッチ対応のバックエンドでインターフェースを初期化
interface = Interface(
ModelConfig(
model_path="OuteAI/OuteTTS-1.0-0.6B-FP8",
tokenizer_path="OuteAI/OuteTTS-1.0-0.6B",
backend=Backend.VLLM
)
)
# 話者プロファイルを読み込む
speaker = interface.load_default_speaker("EN-FEMALE-1-NEUTRAL")
# BATCHタイプを使用して音声を生成
output = interface.generate(
GenerationConfig(
text="This is a longer text that will be automatically split into chunks and processed in batches.",
speaker=speaker,
generation_type=GenerationType.BATCH,
max_batch_size=32,
dac_decoding_chunk=2048
)
)
# ファイルに保存
output.save("output_batch.wav")
📚 ドキュメント
モデル生成の詳細
このモデルは、llama.cpp のコミット 92ecdcc0
を使用して生成されました。
適切なモデル形式の選択
正しいモデル形式の選択は、ハードウェアの性能とメモリ制限に依存します。
BF16 (Brain Float 16) – BF16アクセラレーションが利用可能な場合に使用
- 高速な計算を目的とした16ビット浮動小数点形式で、良好な精度を維持します。
- FP32と同様のダイナミックレンジを提供し、メモリ使用量が少なくなります。
- ハードウェアがBF16アクセラレーションをサポートしている場合に推奨されます(デバイスの仕様を確認してください)。
- FP32と比較して、メモリ使用量を削減しながら高性能な推論を実現します。
BF16を使用する場合:
- ハードウェアがネイティブのBF16サポートを持っている場合(例:新しいGPU、TPU)。
- メモリを節約しながら、より高い精度が必要な場合。
- モデルを別の形式に再量子化する予定の場合。
BF16を避ける場合:
- ハードウェアがBF16をサポートしていない場合(FP32にフォールバックし、低速になる可能性があります)。
- BF16最適化を持たない古いデバイスとの互換性が必要な場合。
F16 (Float 16) – BF16よりも広くサポートされています
- 16ビット浮動小数点形式で、高精度ですが、BF16よりも値の範囲が狭くなります。
- ほとんどのFP16アクセラレーションをサポートするデバイスで動作します(多くのGPUや一部のCPUを含む)。
- BF16よりもわずかに数値精度が低いですが、一般的に推論には十分です。
F16を使用する場合:
- ハードウェアがFP16をサポートしているが、BF16をサポートしていない場合。
- 速度、メモリ使用量、精度のバランスが必要な場合。
- FP16計算に最適化されたGPUまたは他のデバイスで実行する場合。
F16を避ける場合:
- デバイスがネイティブのFP16サポートを持っていない場合(予想よりも低速になる可能性があります)。
- メモリ制限がある場合。
量子化モデル (Q4_K, Q6_K, Q8, など) – CPUと低VRAM推論用
量子化は、モデルサイズとメモリ使用量を削減しながら、可能な限り精度を維持します。
- 低ビットモデル (Q4_K) – 最小限のメモリ使用量に最適ですが、精度が低くなる可能性があります。
- 高ビットモデル (Q6_K, Q8_0) – より高い精度を提供しますが、より多くのメモリを必要とします。
量子化モデルを使用する場合:
- CPUで推論を実行し、最適化されたモデルが必要な場合。
- デバイスのVRAMが少なく、フル精度のモデルをロードできない場合。
- 適度な精度を維持しながら、メモリ使用量を削減したい場合。
量子化モデルを避ける場合:
- 最大限の精度が必要な場合(フル精度のモデルの方が適しています)。
- ハードウェアに十分なVRAMがあり、より高精度の形式(BF16/F16)を使用できる場合。
超低ビット量子化 (IQ3_XS, IQ3_S, IQ3_M, Q4_K, Q4_0)
これらのモデルは、極端なメモリ効率を目的として最適化されており、メモリが重要な制約となる低電力デバイスまたは大規模なデプロイメントに最適です。
-
IQ3_XS:超低ビット量子化(3ビット)で、極端なメモリ効率を実現します。
- 使用ケース:Q4_Kでも大きすぎる超低メモリデバイスに最適です。
- トレードオフ:より高いビット量子化と比較して、精度が低くなります。
-
IQ3_S:最大のメモリ効率を実現する小さなブロックサイズ。
- 使用ケース:IQ3_XSが過度に制限的な低メモリデバイスに最適です。
-
IQ3_M:IQ3_Sよりも精度が高い中ブロックサイズ。
- 使用ケース:IQ3_Sが制限的すぎる低メモリデバイスに適しています。
-
Q4_K:ブロック単位の最適化により、精度が向上した4ビット量子化。
- 使用ケース:Q6_Kが大きすぎる低メモリデバイスに最適です。
-
Q4_0:純粋な4ビット量子化で、ARMデバイス用に最適化されています。
- 使用ケース:ARMベースのデバイスまたは低メモリ環境に最適です。
モデル形式選択の概要表
モデル形式 | 精度 | メモリ使用量 | デバイス要件 | 最適な使用ケース |
---|---|---|---|---|
BF16 | 最高 | 高 | BF16対応のGPU/CPU | メモリを削減した高速推論 |
F16 | 高 | 高 | FP16対応のデバイス | BF16が利用できない場合のGPU推論 |
Q4_K | 中程度の低 | 低 | CPUまたは低VRAMデバイス | メモリ制約のある環境に最適 |
Q6_K | 中程度 | 中程度 | より多くのメモリを持つCPU | 量子化されたままでもより高い精度 |
Q8_0 | 高 | 中程度 | 十分なVRAMを持つCPUまたはGPU | 量子化モデルの中で最も高い精度 |
IQ3_XS | 非常に低 | 非常に低 | 超低メモリデバイス | 極端なメモリ効率と低精度 |
Q4_0 | 低 | 低 | ARMまたは低メモリデバイス | llama.cppがARMデバイス用に最適化できます |
含まれるファイルと詳細
OuteTTS-1.0-0.6B-bf16.gguf
- モデルの重みがBF16形式で保存されています。
- モデルを別の形式に再量子化したい場合に使用します。
- デバイスがBF16アクセラレーションをサポートしている場合に最適です。
OuteTTS-1.0-0.6B-f16.gguf
- モデルの重みがF16形式で保存されています。
- デバイスがFP16をサポートしている場合に使用します。特にBF16が利用できない場合に便利です。
OuteTTS-1.0-0.6B-bf16-q8_0.gguf
- 出力と埋め込みはBF16形式で維持されます。
- 他のすべてのレイヤーはQ8_0に量子化されています。
- デバイスがBF16をサポートしており、量子化バージョンが必要な場合に使用します。
OuteTTS-1.0-0.6B-f16-q8_0.gguf
- 出力と埋め込みはF16形式で維持されます。
- 他のすべてのレイヤーはQ8_0に量子化されています。
OuteTTS-1.0-0.6B-q4_k.gguf
- 出力と埋め込みはQ8_0に量子化されています。
- 他のすべてのレイヤーはQ4_Kに量子化されています。
- メモリが制限されたCPU推論に適しています。
OuteTTS-1.0-0.6B-q4_k_s.gguf
- 最小のQ4_Kバリアントで、精度を犠牲にしてメモリ使用量を削減します。
- 非常に低メモリの設定に最適です。
OuteTTS-1.0-0.6B-q6_k.gguf
- 出力と埋め込みはQ8_0に量子化されています。
- 他のすべてのレイヤーはQ6_Kに量子化されています。
OuteTTS-1.0-0.6B-q8_0.gguf
- 完全にQ8に量子化されたモデルで、より高い精度を提供します。
- より多くのメモリを必要としますが、高精度を実現します。
OuteTTS-1.0-0.6B-iq3_xs.gguf
- IQ3_XS量子化で、極端なメモリ効率を実現します。
- 超低メモリデバイスに最適です。
OuteTTS-1.0-0.6B-iq3_m.gguf
- IQ3_M量子化で、中程度のブロックサイズにより精度が向上します。
- 低メモリデバイスに適しています。
OuteTTS-1.0-0.6B-q4_0.gguf
- 純粋なQ4_0量子化で、ARMデバイス用に最適化されています。
- 低メモリ環境に最適です。
- より高い精度が必要な場合は、IQ4_NLを選択してください。
モデルのテスト
もしこれらのモデルが役に立った場合は、「いいね」をクリックしてください! 私のAIパワードのネットワークモニターアシスタントを、量子対応のセキュリティチェックでテストしてくれると助かります。 Quantum Network Monitor
テスト方法: AIアシスタントのタイプを選択してください:
TurboLLM
(GPT-4o-mini)HugLLM
(Hugginface Open-source)TestLLM
(Experimental CPU-only)
テスト内容
私は、AIネットワークモニタリング用の小さなオープンソースモデルの限界を追求しています。具体的には:
- ライブネットワークサービスに対する関数呼び出し
- モデルがどれだけ小さくなっても、以下のタスクを処理できるか:
- 自動化されたNmapスキャン
- 量子対応チェック
- ネットワークモニタリングタスク
TestLLM – 現在の実験的モデル (2つのCPUスレッドでのllama.cpp)
- ゼロコンフィグレーション設定
- 30秒のロード時間(低速な推論ですが、APIコストがかからない)
- 協力者募集中! エッジデバイスAIに興味がある方は、一緒に協力しましょう!
他のアシスタント
-
TurboLLM – gpt-4o-miniを使用して:
- 量子ネットワークモニターエージェントで.netコードを実行するカスタムコマンドプロセッサを作成
- リアルタイムのネットワーク診断とモニタリング
- セキュリティ監査
- ペネトレーションテスト (Nmap/Metasploit)
-
HugLLM – 最新のオープンソースモデル:
- Hugging Face Inference APIで実行されます。
テストできるコマンドの例
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
- '"Create a cmd processor to .. (what ever you want)" この機能は非常に柔軟で強力ですが、注意して使用してください。.netコードを実行するには、Quantum Network Monitor Agentをインストールする必要があります。
最後に
これらのモデルファイルを作成するためのサーバー、Quantum Network Monitorサービスの実行、およびNovitaとOpenAIからの推論の費用は、すべて私の私費で負担しています。モデル作成とQuantum Network Monitorプロジェクトの背後にあるすべてのコードは、オープンソースです。役に立つものがあれば、自由に使用してください。
もし私の仕事が役に立ったと思ったら、コーヒーを請んでくれると助かります。あなたの支援により、サービスのコストをカバーし、みんなのトークン制限を引き上げることができます。
私はまた、仕事の機会やスポンサーシップも歓迎しています。
ありがとうございます!
重要なサンプリングに関する考慮事項
OuteTTSバージョン1.0を使用する場合、サンプリング設定セクションで指定された設定を使用することが重要です。 繰り返しペナルティの実装は特に重要です。このモデルでは、64トークンの最近のウィンドウに対してペナルティを適用する必要があります。 コンテキスト全体にペナルティを適用すると、モデルが破損したまたは低品質の出力を生成する原因になります。
この制限を解消するために、すべてのバックエンドに必要なサンプラーとパッチがoutettsライブラリで自動的に設定されます。 カスタム実装を使用する場合は、これらの要件を正しく実装するようにしてください。
OuteTTS Version 1.0
このアップデートにより、音声合成と音声クローニングに大幅な改善がもたらされ、コンパクトなサイズでより強力で正確かつ使いやすい体験を提供します。
OuteTTS Python Package v0.4.2
新しいバージョンでは、最新のOuteTTSリリースによるバッチ推論の生成が追加されています。
バッチRTFベンチマーク
NVIDIA L40S GPUを使用してテストされました。
多言語対応
- 学習言語:英語、中国語、オランダ語、フランス語、グルジア語、ドイツ語、ハンガリー語、イタリア語、日本語、韓国語、ラトビア語、ポーランド語、ロシア語、スペイン語
- サポートされていない言語:このモデルは、学習されていない言語でも音声を生成することができますが、結果は最適ではない場合があります。リストにない言語で実験してみてください。
使用上の推奨事項
話者参照
このモデルは話者参照を使用するように設計されています。話者参照がない場合、ランダムな声の特徴が生成され、多くの場合、低品質の出力につながります。 モデルは参照された話者の感情、スタイル、アクセントを引き継ぎます。 同じ話者で他の言語に文字起こしする場合、モデルが元のアクセントを保持することがあります。
多言語アプリケーション
使用する言語で話者プロファイルを作成することをお勧めします。これにより、その特定の言語での最適な結果を達成するのに役立ちます。 モデルはクロス言語音声をサポートしていますが、依然として参照話者に依存しています。話者が明確なアクセントを持っている場合(例:イギリス英語)、他の言語にもそのアクセントが反映されることがあります。
最適な音声長
- 最適なパフォーマンス:一度に約42秒の音声を生成することをお勧めします(約8,192トークン)。生成時にこのウィンドウの限界に近づかないようにしてください。通常、7,000トークンまでが最適な結果をもたらします。
- 話者参照によるコンテキストの削減:話者参照が10秒の場合、有効なコンテキストは約32秒に減少します。
温度設定の推奨事項
テストによると、温度を0.4に設定すると、精度が最適になります(以下のサンプリング設定を使用)。ただし、一部の声の参照では、表現力を高めるためにより高い温度、またはより正確な声の複製のためにわずかに低い温度が適している場合があります。
話者エンコーディングの検証
クローンされた声の品質が低い場合は、エンコードされた話者サンプルを確認してください。
interface.decode_and_save_speaker(speaker=your_speaker, path="speaker.wav")
DAC音声再構成モデルは損失があるため、クリッピング、過度の音量、または異常な声の特徴を持つサンプルは、エンコーディングの問題を引き起こし、出力品質に影響を与える可能性があります。
サンプリング設定
最適なサンプリング設定については、サンプリング設定セクションを参照してください。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。




