見出し画像

最高の無料テキスト読み上げを自分のPCで実現する方法 💥 Kokoro TTS ローカルインストール 💥

5,568 文字

あなたのコンピュータでローカルに最高のオープンソーステキスト読み上げモデルを使用する方法を学びましょう。これは8200万パラメータのモデルですが、8GBのRAMしかないPCやMacBook Airのような低スペックのコンピュータでも、大きな問題なく動作するはずです。私はM3 maxで実行していますが、Windowsを使用している場合は、私がやっていることから少し調整が必要かもしれません。WindowsやLinuxを使用している場合、変更が必要な箇所が少しありますが、その都度お伝えします。
Macを使用している場合は、私がやっていることをそのまま実行できます。また、YouTubeの説明欄にコードを共有しますので、そのままコピーして使用することができます。最初にやるべきことは、ターミナルを開くことです。ターミナルを開いたら、git lfsがインストールされていることを確認する必要があります。これはリポジトリをコピーするために重要です。3つのドットをクリックしてリポジトリをクローンし、G lfsがインストールされていることを確認してください。
大きなファイルをスキップして、小さなファイルだけをダウンロードする必要があります。これをコピーしてgitに移動し、実行します。私の場合、リポジトリがすでに存在するので、削除する必要があります。kokoroを削除して、もう一度実行します。これにより、大きなファイルの代わりに小さなファイルだけがクローンされます。
kokoroに入ると、LSで確認できます。このリポジトリのファイルを見ると、327MBのような大きなモデルファイルの代わりに、プレースホルダーがスキップされていることがわかります。ほとんどのファイルがクローンされており、K.P、models.py、plbp、istf net.piyなど、モデルを正常に実行するために必要な主要なファイルがあります。
次に必要なのは、Visual Studio Codeを開くことです。code dotと入力すると、Visual Studio Codeが開きます。新しいPythonファイルを作成し、ここでKokoro TTSを実行するためのコードを書きます。しかしその前に、いくつかの依存関係を処理する必要があります。
まず最初に、esak NGをインストールする必要があります。これは音声合成エンジンです。Macの場合はBrewを使用し、LinuxではsudoAPを使用します。Windowsの場合は、プリコンパイルされたバイナリを使用できます。Macの場合は単純にBrewを使用できます。私の場合はすでにインストールされているので、すでにインストールされていて最新の状態であると表示されます。
2番目の大きな依存関係は、多くのPythonライブラリをインストールする必要がありますが、この場合の主要なPythonライブラリの1つはpy tochです。私はMacを使用しているので、preview nightly Mac pip Python and defaultを選択します。Windowsを使用している場合はWindowsを選択し、Linuxを使用している場合はLinuxを選択します。GPUがある場合は、Cuda Nvidia GPUなど、別のものを選択してください。
しかし、Pythonライブラリをインストールする前に、仮想環境を作成することが非常に良い習慣です。仮想環境を作成すると、そこに仮想環境名が表示されます。python 3M virtual environmentと入力し、仮想環境を作成します。パスを指定し、仮想環境が作成されました。
次に仮想環境をアクティブにする必要があります。VM SL bin SL activateを実行すると、仮想環境がアクティブになっています。仮想環境がアクティブになったら、コードをコピーして戻ってきて実行します。これにより、このケースではpy torchの安定版ではなく、ナイトリー版のCPUバージョンがインストールされます。私はこれを試してみて完璧に動作したので、同じものを使用していますが、すでにpytorchのCPUバージョンがある場合でも、新しい仮想環境を開始するため、これを再度インストールする必要があります。
すべてのライブラリがセットアップされた仮想環境がすでにある場合は、py torchについて心配する必要はありません。py torchのインストールが完了したら、モデルをダウンロードし、サウンドファイル、scipi、number compなどの他の依存関係を作成するために必要な多くの他のライブラリがあります。
pyが正常にインストールされたので、ターミナルをクリアし、py以外のすべてをインストールします。インストールするライブラリは、phenomizer、hugging faceのTransformers、scipi、Munch、sound fileです。これは全く新しい仮想環境を作成したので、これらのライブラリがすべてインストールされていることがわかります。
私の場合はpython 3.13で実行していますが、技術的にはこのコードは、pyosの要件であるpython 3.8以上であれば動作するはずです。これらがインストールされたら、次に確認する必要があるのは、ese NGが正しくインストールされていることです。チェックすると、ese NGが利用可能で、text to speech 1.52も正常にインストールされています。
これで、Koko 82百万パラメータモデルを正常に実行するために必要なすべての依存関係が完了しました。基本的なプラットフォームとすべてのライブラリが準備できたところで、実際にテキスト読み上げを作成するPythonコードを書く時が来ました。コードはYouTubeの説明欄にリンクしますので、そのままコピーアンドペーストできます。コードのいくつかの部分を説明し、このコードをどのように使用できるかを見ていきましょう。
まず、このコードを持っている場合、現在の作業ディレクトリ、つまりすべてのものがあるフォルダ内にTTS demo.pyファイルを作成する必要があります。これがあれば、models.pyやK.Pなどの特定のコンポーネントが現在の作業ディレクトリにある必要があります。そうでない場合はエラーが発生します。次に、これらすべてを処理するためのtorch(py torch)とサウンド部分を扱うためのsound fileが必要です。
models.pyファイルを見ると、メインのpytorchファイルを読み込む方法について、人々が異なるセットアップを使用していることがわかります。TTSデモには、サンプルレート、出力ファイルの名前、翻訳したいテキスト、デバイスなどの重要なパラメータがあります。
Nvidia GPUがある場合、16行目のコードでデバイスをCudaに設定し、GPUアクセラレーションでテキスト読み上げをより高速に行うことができます。Cudaがない場合は、デフォルトでCPUが選択されます。私のようなMacコンピュータ、ARMプロセッサ、またはAMDプロセッサを持っている場合、つまりNvidia GPUが有効になっていない他のプロセッサの場合、自動的にCPUとして設定されます。
ここで重要な点は、MacにはMPS(metal processing system)というものがありますが、私のテストでは、metalがあってもMPSでは速度の向上は得られませんでした。そのため、このcuda対CPUのコードで落ち着きましたが、試してみて、使用したい場合は、Macコンピュータの場合はMPSとして設定することもできます。
詳細情報を出力し、これが最も重要な部分です。モデルをどこから読み込むかを指定し、次に音声パックを指定します。この場合、aore Skyを選択しています。ここでpy toファイルと音声パックファイルが表示されていますが、フォルダを複製してgit cloneを実行した際に大きなファイルを取得しないようにしたため、これらは実際のファイルではありません。
大きなファイルを含むすべてを実行した場合は、次の手順を繰り返す必要はありませんが、私がやったように大きなファイルをスキップした場合は、もう一度ターミナルに戻って、モデルファイルをダウンロードする必要があります。まず、メインのモデルファイルをダウンロードし、次に音声ファイルをダウンロードする必要があります。
ここで約350MBのファイルがダウンロードされています。これがダウンロードされたら、The Voice packファイルをダウンロードします。異なる音声パックをダウンロードできますが、私たちはオープンAI Skyに似たアメリカ人女性のSkyであるaore Skyを使用しているので、それをダウンロードしました。
戻ってみると、音声ファイルaore skyとpytorchファイルであるc-v_19 pthが更新されていることがわかります。これは非常に重要です。完全なファイルがここにない場合、エラーが発生し始め、異なることを試そうとしても機能しません。
これがすべて完了したら、あとはテキストを小さなチャンクに分割し、TTSに渡して音声を取得し、音声を結合して、最終的にoutput.waveファイルに書き込むだけです。この時点でコードは完璧に見えます。
実際に動作するかどうかを確認するために、ターミナルに戻り、time Python 3とファイル名(この場合はTTS unor demo.piy)を実行するだけです。これを実行すると、コード全体が実行され、音声aore Skyが読み込まれ、CPUデバイスが設定され、「hello welcome to this text to speech test」と表示されます。
ファイルを読み込んで、何が起こっているかを見てみましょう。「hey please subscribe to one little coder he is amazing」という音声が再生されます。これはCPUのみで、GPUアクセラレーションもない状態で、21秒で完了したのは、かなり良い結果だと思います。これは完全にローカルで行われ、インターネットは最初のセットアップ以外必要ありません。
文を変更したい場合、例えばもっと単純な文にしたい場合は、「hey please subscribe to one little coder」と入力し(かなり自己中心的なコメントですが、ボットに与えているだけなので問題ありません)、同じコードを実行します。time Python 3 TTS under Cod demo.piを実行すると、すべてがやり直され、ファイルが上書きされます。
今回はユーザープラスで4秒程度と、かなり短い時間で完了しました。「hey please subscribe to one little coder he is am」を実行すると、「one little coder」を完璧に発音し、何の問題もありませんでした。
これでチュートリアルは終わりです。これまでやってきたことを簡単に振り返ってみましょう。
最初のステップは、このリポジトリに行き、開発者のためにいいねを付けることです。次に、リポジトリをローカルにクローンする必要があります。簡単にダウンロードすることはできません。クローンする際、大きなファイルをスキップしました。モデルをダウンロードすることもできますが、大きなファイルはスキップしました。
その後、Linuxではsudoを使用し、Windowsではプリビルドバイナリが利用可能ですが、私たちはBrewを使用してese NG(音声合成エンジン)をインストールしました。次に、仮想環境を有効にしてからローカルのpychバージョンをセットアップし、pychをインストールしました。その後、Transformers、CPなどの他の必要なライブラリをすべてインストールしました。
これらすべてが完了したら、フォルダを開き、このPythonコードを書きました。コードを書いた後、モデルがダウンロードされていることを確認しました。wgetを使用してこのモデルと、使用しているアメリカ人女性のSkyである音声パックをダウンロードしました。必要に応じて、ここから異なる音声パックをダウンロードすることもできます。
音声パックとすべての準備が整ったら、最後にこのコードを実行します。仮想環境内でターミナルに移動し、実行するだけです。音声パックをダウンロードし、すべてが完了すると、スピーチが作成され、出力.waveファイルが現在の作業ディレクトリに保存されます。これが、あなたが入力したテキストの音声です。
これは分かりやすかったと思います。どう思われたか教えてください。gradioを使用して、もう少し簡単なバージョンを作成するかもしれませんが、今のところ、これが世界最高のオープンソーステキスト読み上げモデルをセットアップする方法です。現時点で、これは世界で最高のテキスト読み上げモデルです。
モデルは8200万パラメータとかなり小さいので、MacBook Airや8GBのRAMのコンピュータでも、技術的には実行できるはずです。あなたのコンピュータでの処理速度がどうなのか、また別の動画でお知らせください。Happy prompting

いいなと思ったら応援しよう!