はじめに
Orpheus-TTSは、Llama-3bアーキテクチャで開発されたオープンソースの音声合成(TTS)システムで、人間の自然な音声に近い音声を生成することを目標としている。Canopy AIチームによって開発され、英語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語、中国語などの多言語に対応している。このシステムは、テキスト入力からイントネーション、感情、リズムを持つ音声を生成し、笑いやため息などの非言語表現をサポートするため、リアルタイムの会話、オーディオブックの制作、知的アシスタントの開発に適している。Orpheus-TTSは、事前に訓練され、微調整されたモデルを提供するため、開発者はニーズに応じて音声や言語をカスタマイズすることができる。
機能一覧
- 人間に近い音声の生成:自然なイントネーション、感情、リズムを持つテキストを音声に変換することで、部分的にクローズドソース化されたモデルを凌駕。
- ゼロサンプル音声クローニング:追加トレーニングなしでターゲット音声の音質を模倣。
- 感情やイントネーションのコントロール:ラベリング(例)を通して。
<laugh>
そして<sigh>
)声の表情を調整し、臨場感を高める。 - 低レイテンシー・ストリーミング出力:リアルタイム・スピーチ生成のレイテンシーは約200ms。
- 多言語サポート:英語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語、中国語、その他の言語。
- モデルの微調整:データ処理スクリプトとサンプルデータセットが提供され、開発者の発話スタイルや言語のカスタマイズをサポートします。
- ローカルおよびクラウドでの実行: LM Studio、llama.cpp または ブイエルエルエム ローカルまたはクラウドで実行。
- 音声透かし: Silent Cipher技術で生成された音声に透かしを入れて著作権を保護します。
ヘルプの使用
設置プロセス
Orpheus-TTSには、Python環境と基本的なハードウェアサポート(GPU推奨)が必要です。詳しいインストール手順は以下の通りです:
- コードベースのクローン
Gitを使ってOrpheus-TTSプロジェクトをダウンロードしてください:git clone https://github.com/canopyai/Orpheus-TTS.git cd Orpheus-TTS
- 依存関係のインストール
コアパッケージのインストールorpheus-speech
高速推論のためにvLLMに依存している:pip install orpheus-speech
注:vLLMの2025年3月18日バージョンはバグがあるかもしれませんので、安定版をインストールすることをお勧めします:
pip install vllm==0.7.3
その他の依存関係は以下の通り。
transformers
そしてdatasets
歌で応えるtorch
ご要望に応じて設置も可能です:pip install transformers datasets torch
- ハードウェア要件の確認
- Pythonバージョン:3.8-3.11(3.12はサポートされていません)。
- GPU: NVIDIA CUDAドライバを推奨。スムーズな動作を保証するため、12GB以上のビデオメモリを搭載。
- CPU:までサポート
orpheus-cpp
しかし、軽いテストではパフォーマンスが落ちる。 - ネットワーク:最初の実行にはモデルをダウンロードする必要があるため、安定したインターネット接続を推奨する。
- ダウンロードモデル
Orpheus-TTSは、Hugging Faceでホストされている以下のモデルを提供しています:- モデルの微調整 (
canopylabs/orpheus-tts-0.1-finetune-prod
):日常的なスピーチ作成作業に適している。 - 事前に訓練されたモデル
canopylabs/orpheus-tts-0.1-pretrained
):10万時間の英語音声データトレーニングに基づき、音声クローニングなどの高度なタスクに適しています。 - 多言語モデリング
canopylabs/orpheus-multilingual-research-release
):多言語研究をサポートするために事前に訓練され、微調整されたモデルの7つのセットが含まれています。
ダウンロード方法
huggingface-cli download canopylabs/orpheus-tts-0.1-finetune-prod
- モデルの微調整 (
- 試験施工
以下のPythonスクリプトを実行して、インストールが成功したことを確認する:from orpheus_tts import OrpheusModel model = OrpheusModel(model_name="canopylabs/orpheus-tts-0.1-finetune-prod") prompt = "tara: 你好,这是一个测试!" audio = model.generate_speech(prompt) with wave.open("test_output.wav", "wb") as file: file.setnchannels(1) file.setsampwidth(2) file.setframerate(24000) file.writeframes(audio)
正常に実行されると、入力テキストの音声を含むWAVファイルが生成されます。
主な機能
1.人間に近い音声の生成
Orpheus-TTSの中核機能は、テキストを人間の自然な発話に近い音声に変換することである。このシステムは、英語モデルで、幅広い音声文字をサポートしています。 tara
最も自然な語感で、他のキャラクターには次のようなものがある。 leah
そしてjess
そしてleo
そしてdan
そしてmia
そしてzac
歌で応える zoe
.多言語モデルの役割は、公式文書を参照する必要がある。手順
- テキストプロンプトを用意する
{角色名}: {文本}
例えばtara: 你好,今天天气很好!
. - generate関数を呼び出す:
audio = model.generate_speech(prompt="tara: 你好,今天天气很好!")
- 出力はWAVフォーマットのオーディオで、サンプリングレートはモノラルで24000Hz。
2.エモーションとトーン・コントロール
ユーザーはタグを使って声の感情表現をコントロールし、声の臨場感を高めることができる。対応タグは以下の通り:
<laugh>
笑)。<sigh>
ため息。<cough>
咳。<sniffle>
鼻をすする。<groan>
うーん。<yawn>
あくび。<gasp>
びっくりした。
例
prompt = "tara: 这个消息太震撼了!<gasp> 你听说了吗?"
audio = model.generate_speech(prompt)
生成される音声には、適切な位置にサプライズ効果が含まれます。多言語モデルタグのサポートについては、Hugging Faceのドキュメントを参照してください。
3.ゼロサンプル音声クローニング
Orpheus-TTSは、ゼロサンプル音声クローニングをサポートしており、事前学習なしでターゲット音声を直接模倣することができます。操作手順
- 10~30秒、サンプリングレート24000Hzを推奨する対象音声のWAVファイルを用意する。
- 以下のスクリプトを使用する:
audio_ref = "path/to/reference.wav" prompt = "tara: 这段话会模仿你的声音!" audio = model.generate_with_voice_clone(prompt, audio_ref)
- 出力音声は参照音声の音色に近くなる。事前に訓練されたモデルは、クローニングタスクでより良いパフォーマンスを発揮します。
4.低遅延ストリーミング出力
Orpheus-TTSは、リアルタイムの対話シナリオのためのストリーミング音声生成を提供し、待ち時間は約200msで、100msに最適化されている:
from flask import Flask, Response
from orpheus_tts import OrpheusModel
app = Flask(__name__)
[1]
model = OrpheusModel(model_name="canopylabs/orpheus-tts-0.1-finetune-prod")
@app.route("/stream")
def stream_audio():
def generate():
prompt = "tara: 这是实时语音测试!"
for chunk in model.stream_generate(prompt):
yield chunk
return Response(generate(), mimetype="audio/wav")
Flaskサービスを実行したら http://localhost:5000/stream
リアルタイムの音声を聞くことができる。レイテンシーを最適化するには、KVキャッシングと入力ストリーミングを有効にする必要がある。
5.モデルの微調整
開発者は、新しい言語や話し方をサポートするためにモデルを微調整することができます。手順は以下の通りです:
- データセットの準備:フォーマットについては、Hugging Faceのサンプルデータセットを参照(
canopylabs/zac-sample-dataset
).50~300サンプル/文字を含めることが推奨され、最良の結果を得るには300サンプルが必要である。 - データの前処理:公式に提供されているColabノートブック(
1wg_CPCA-MzsWtsujwy-1Ovhv-tn8Q1nD
データは1000件あたり約1分で処理される。 - コンフィギュレーション・トレーニング:修正
finetune/config.yaml
データセットのパスとパラメータを設定する。 - ランのトレーニング:
huggingface-cli login wandb login accelerate launch train.py
- 微調整されたモデルは、中国語音声の最適化などの特定のタスクに使用することができる。
6.音声透かし
Orpheus-TTSは、Silent Cipher技術による著作権保護のための音声透かしをサポートしています。操作方法
- 公式の実装スクリプト(
additional_inference_options/watermark_audio
). - 例
from orpheus_tts import add_watermark audio = model.generate_speech(prompt) watermarked_audio = add_watermark(audio, watermark_id="user123")
7.GPUの推論なし
GPUを持たないユーザーは orpheus-cpp
CPUでの実行、ステップ・バイ・ステップ:
- 取り付け ラマ.cpp 環境だ。
- 公式ドキュメント(
additional_inference_options/no_gpu/README.md
). - 軽いタスクではGPUより性能が低い。
ほら
- モデルの選択微調整されたモデルは日常的なタスクに適しており、事前に訓練されたモデルは音声クローニングのような高度なタスクに適しています。
- ハードウェア制限ビデオメモリが12GB未満の場合、メモリ不足になる可能性がありますので、ハードウェア構成を確認することをお勧めします。
- 多言語サポート英語以外の言語は、多言語モデルのドキュメントを参照する必要があります。
- テスト中にコンポーネントを調整する: vLLMがエラーを報告した場合(例.
vllm._C
)、別のバージョンを試すか、CUDAの互換性をチェックする。
補完的機能:地域社会の拡大
Orpheus-TTSはオープンソースであるため、コミュニティからの貢献が集まっており、以下の実装(完全には検証されていません)が公式に推奨されています:
- LM Studio ローカルクライアントLM Studio API を使って Orpheus-TTS を実行します。
isaiahbjork/orpheus-tts-local
). - オープンAIと互換性のあるFastAPIOpen AIスタイルのAPIインターフェース(
Lex-au/Orpheus-FastAPI
). - グラディオWebUIWSLとCUDA対応ウェブインターフェース(
Saganaki22/OrpheusTTS-WebUI
). - ハギング・フェイス・スペースコミュニティ・ユーザーであるMohamedRashad氏によって構築されたオンライン体験(
MohamedRashad/Orpheus-TTS
).
アプリケーションシナリオ
- インテリジェント接客ロボット
Orpheus-TTSは、カスタマーサービスシステム用の自然な音声を生成し、ユーザーエクスペリエンスを向上させるためのリアルタイムの対話と感情表現をサポートします。
例えば、eコマース・プラットフォームは、Orpheus-TTSを統合することで、顧客からの問い合わせに対応する際にフレンドリーな口調を加えることができる。 - オーディオブックとポッドキャストの制作
出版社は、小説や記事をオーディオブックにすることで、複数のキャラクターや感情のラベリングをサポートし、ナレーションコストを削減することができる。
ポッドキャストのクリエイターは、番組の魅力を高めるためにダイナミックなオープニング・ラインを生み出すことができる。 - 語学学習ツール
この教育アプリは、生徒がリスニングとスピーキングの練習をするのに役立つ標準的な音声を生成します。
例えば、中国語学習者は中国語モデルを使って北京語の発音を練習することができる。 - ゲームキャラクターのナレーション
ゲーム開発者は、NPCの動的な対話を生成し、多言語や感情表現をサポートして、没入感を高めることができます。
例えば、RPGではキャラクターごとにユニークな音色を生み出すことができる。 - アクセシビリティ・エイド
Orpheus-TTSは、テキストを音声に変換することで、視覚障害ユーザーにリアルタイムの読み上げサポートを提供します。
例えば、電子書籍リーダーに組み込んで長文を音読する。
品質保証
- Orpheus-TTSはどの言語に対応していますか?
英語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語、中国語に対応しています。Hugging Faceのドキュメントに記載されているように、多言語モデルはより多くの言語をカバーしています。 - リアルタイムの音声遅延を最適化するには?
KVキャッシングと入力ストリーミングを有効にして、レイテンシを200msから100msに短縮する。少なくとも12GBのビデオメモリで十分なGPU性能を確保する。 - ゼロサンプルの音声クローニングにはどのような準備が必要ですか?
モデルの事前学習用に、サンプリングレート24000HzのWAVフォーマットで10~30秒のリファレンス音声を提供。 - CPUはOrpheus-TTSを実行できますか?
はい。orpheus-cpp
GPUの性能はそれほど高くないが、GPUよりも性能が低いため、テストや軽作業に適している。 - オーディオに透かしを入れるには?
サイレント・サイファー技術を使用add_watermark
関数を実装するには、公式スクリプトを参照する必要がある。 - 微調整に必要なデータ量は?
初期結果は50サンプル、最高品質には300サンプル/文字。データはHugging Face形式でなければならない。