Tortoiseは、次の優先順位で構築されたテキストツースピーチプログラムです。
このレポは、推論モードでカメTTSを実行するために必要なすべてのコードが含まれています。
Colabはこれを試す最も簡単な方法です。ここで使用できるノートブックをまとめました:https://colab.research.google.com/drive/1wvqupqwidbuvewwounglpghu3hg_cbr?usp = sharing
これを自分のコンピューターで使用する場合は、NVIDIA GPUが必要です。
まず、これらの手順を使用してpytorchをインストールします:https://pytorch.org/get-started/locally/。 Windowsでは、Condaインストールパスを使用することを強くお勧めします。あなたがこれをしなければ、依存関係の問題を追いかけるのに多くの時間を費やすと言われました。
次に、カメをインストールすると依存関係があります。
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
python setup.py install Windowsにいる場合は、PysoundFile: conda install -c conda-forge pysoundfileもインストールする必要があります
このスクリプトを使用すると、1つ以上の声で単一のフレーズを話すことができます。
python tortoise/do_tts.py --text " I'm going to speak this " --voice random --preset fastこのスクリプトは、大量のテキストを読むためのツールを提供します。
python tortoise/read.py --textfile < your text to be read > --voice randomこれにより、テキストファイルが文に分割され、一度に1つずつスピーチに変換されます。発生する一連の音声クリップが生成されると出力されます。すべてのクリップが生成されると、それらを単一のファイルに結合し、それも出力します。
時々、カメは出力をねじ込みます。 regenate regenate regenate withを再read.pyすることにより、悪いクリップを再生成できます。
カメはプログラムで使用できます。
reference_clips = [ utils . audio . load_audio ( p , 22050 ) for p in clips_paths ]
tts = api . TextToSpeech ()
pcm_audio = tts . tts_with_preset ( "your text here" , voice_samples = reference_clips , preset = 'fast' )カメは、マルチスピーカーモデルとして特別に訓練されました。これは、参照クリップに相談して達成します。
これらのリファレンスクリップは、音声生成を導くために提供するスピーカーの録音です。これらのクリップは、音声のピッチとトーン、スピーキングスピード、さらにはリスプやst音などのスピーキング欠陥など、出力の多くのプロパティを決定するために使用されます。リファレンスクリップは、ボリューム、バックグラウンドノイズ、記録品質、リバーブなど、オーディオ出力の非声に関連する側面を決定するためにも使用されます。
音声をランダムに生成する機能を含めました。これらの声は実際には存在せず、実行するたびにランダムになります。結果は非常に魅力的で、私はあなたがそれで遊ぶことをお勧めします!
「ランダム」を音声名として渡すことで、ランダムな音声を使用できます。カメは残りの世話をします。
MLスペースの場合:これは、音声コンディショニング潜在スペースにランダムベクトルを投影することによって作成されます。
このレポは、いくつかの事前にパッケージ化された声が付いています。 「Train_」で準備された声は、トレーニングセットから来て、他の声よりもはるかに優れたパフォーマンスがあります。あなたの目標が高品質のスピーチである場合は、それらのいずれかを選ぶことをお勧めします。カメがゼロショットの模倣のために何ができるかを見たい場合は、他を見てください。
カメに新しい声を追加するには、次のことを行う必要があります。
上記のように、リファレンスクリップはカメの出力に大きな影響を与えます。以下は、良いクリップを選ぶためのいくつかのヒントです。
カメは、主に拡散モデルと組み合わせた自己回帰デコーダーモデルです。これらの両方には、使いやすいために抽象化したことがあるノブがたくさんあります。私はこれを行い、設定のさまざまな順列を使用して数千のクリップを生成し、音声リアリズムとその効果を測定するためのメトリックを使用して行いました。デフォルトは、見つけることができた最高の全体的な設定に設定しました。特定のユースケースについては、これらの設定で遊ぶことが効果的かもしれません(そして、私は何かを逃した可能性が非常に高いです!)
これらの設定は、カメでパッケージ化された通常のスクリプトでは使用できません。ただし、APIで利用可能です。完全なリストについては、 api.tts参照してください。
一部の人々は、カメで迅速なエンジニアリングを行うことが可能であることを発見しました!たとえば、テキストの前に「私は本当に悲しい」などのことを含めることで、感情を呼び起こすことができます。これを利用するために使用できる自動編集システムを構築しました。ブラケットに囲まれたプロンプトのテキストを編集しようとすることで機能します。たとえば、プロンプト「[私は本当に悲しい、]私を養ってください」というプロンプト。 「お願いします」という言葉だけを話します(悲しい調性で)。
カメは、ポイント潜在性を生成する小さなサブモデルを介して個別にフィードルすることにより、リファレンスクリップを摂取し、生成されたすべての潜在性の平均を取得します。私が行った実験は、これらの点潜水種が非常に表現力豊かであり、トーンから発話レート、音声異常まですべてに影響を与えることを示しています。
これは、いくつかのきちんとしたトリックに役立ちます。たとえば、2つの異なる声をカメに組み合わせることができ、これらの2つの声の「平均」と思われるものが出力されます。
Script get_conditioning_latents.pyを使用して、インストールした音声のコンディショニング潜レントを抽出します。このスクリプトは、格段を.pth pickleファイルにダンプします。このファイルには、単一のタプル(autoregression_latent、diffusion_latent)が含まれます。
または、api.texttospeech.get_conditioning_latents()を使用して、潜在性を取得します。
それらと一緒にプレイした後、それらを使用して音声/単一の ".pth"ファイルをタプルとして含む単一の ".pth"ファイルを使用してスピーチを生成できます(autoregression_latent、diffusion_latent)。
このモデルが悪用されている可能性があるという懸念から、私はオーディオクリップがカメから来た可能性を示す分類子を構築しました。
この分類器は、任意のコンピューターで実行できます。使用法は次のとおりです。
python tortoise/is_this_from_tortoise.py --clip=<path_to_suspicious_audio_file>
このモデルは、このレポの結果/および声/フォルダーの内容に100%の精度を持っています。それでも、この分類器を「強い信号」として扱います。分類器はだまされる可能性があり、この分類器が誤検知を示すことも同様に不可能ではありません。
Tortoise TTSは、OpenaiのDalleに触発され、音声データに適用され、より良いデコーダーを使用しています。一緒に機能する5つの別々のモデルで構成されています:https://nonint.com/2022/04/25/tortoise-architectural-design-doc/