<英語| 简体中文| 繁體中文>
このリポジトリは、Myshell.AIがリリースした高品質の多言語テキスト(TTS)ライブラリであるMelottsのC ++実装を提供します。この実装は、CPU、GPU、およびNPUデバイスのシームレスな展開をサポートするOpenVinoと完全に統合されています。現在、このリポジトリは、英語と混合された中国語のみをサポートしています。英語モデルのサポートが次に来ます。
パイプライン設計は、3つのモデル(Bert、TTS、およびDeepFilternet)を含むOrignal Pytorchバージョンとほぼ一致しており、DeepFilternetが追加のコンポーネントとして追加されています。

bert-base-multilingual-uncasedであり、英語のためにbert-base-uncased以下の表は、各モデルのサポートされているデバイスの概要を示しています。
| モデル名 | CPUサポート | GPUサポート | NPUサポート |
|---|---|---|---|
| バート(前処理) | ✅ | ✅ | ✅ |
| TTS(推論) | ✅ | ✅ | |
| deepfilternet(後処理) | ✅ | ✅ | ✅ |
Windows用のOpenVino C ++パッケージをダウンロードするには、次のリンクを参照してください。WindowsのOpenVinoをインストールしてください。 WindowsのOpenVino 2024.5の場合、コマンドラインをコマンドプロンプト(CMD)で実行できます。
curl -O https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.5/windows/w_openvino_toolkit_windows_2024.5.0.17288.7975fa5da0c_x86_64.zip --ssl-no-revoke
tar -xvf w_openvino_toolkit_windows_2024.5.0.17288.7975fa5da0c_x86_64.zip
Linuxの場合、このリンクからC ++パッケージをダウンロードできます。LinuxのOpenVinoをインストールします。 LinuxのOpenVino 2024.5については、https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.5/linuxからダウンロードして、パッケージを解凍します。
OpenVinoの追加バージョンと詳細については、公式OpenVino Toolkitページ:OpenVino Toolkitの概要をご覧ください。
git lfs install
git clone https://github.com/apinge/MeloTTS.cpp.git
<OpenVINO_DIR>setupvars.bat
cd MeloTTS.cpp
cmake -S . -B build && cmake --build build --config Release
.buildReleasemeloTTS_ov.exe --model_dir ov_models --input_file inputs.txt --output_file audio.wav
source <OpenVINO_DIR>/setupvars.sh
cd MeloTTS.cpp
cmake -S . -B build && cmake --build build --config Release
./build/meloTTS_ov --model_dir ov_models --input_file inputs.txt --output_file audio.wav
DeepFilternet機能は現在、Windowsでのみサポートされており、INT8量子化モデルからのノイズをフィルタリングするために使用されます。デフォルトでは有効になっていますが、 -DUSE_DEEPFILTERNETオプションを使用して、cmake段階で有効または無効にすることができます。
たとえば、機能を無効にするには、CMake生成プロセス中に次の行を使用できます。
cmake -S . -B build -DUSE_DEEPFILTERNET=OFF
詳細については、deepfilternet.cppを参照してください。
run_tts.batまたはrun_tts.shをサンプルスクリプトとして使用して、モデルを実行できます。以下は、これらのスクリプトで使用できるすべての引数の意味です。
--model_dir :モデルファイル、辞書ファイル、およびサードパーティのリソースファイルを含むフォルダーを指定します。これは、リポジトリ内のov_modelsフォルダーです。現在の作業ディレクトリに基づいて相対パスを調整する必要がある場合があります。--tts_device :TTSモデルに使用するOpenVinoデバイスを指定します。サポートされているデバイスには、CPUとGPU(デフォルト:CPU)が含まれます。--bert_device :BERTモデルに使用するOpenVinoデバイスを指定します。サポートされているデバイスには、CPU、GPU、およびNPU(デフォルト:CPU)が含まれます。--nf_device :DeepFilternetモデルに使用するOpenVinoデバイスを指定します。サポートされているデバイスには、CPU、GPU、およびNPU(デフォルト:CPU)が含まれます。--input_file :処理する入力テキストファイルを指定します。テキストがUTF-8形式であることを確認してください。--output_file :生成する出力 *.wavオーディオファイルを指定します。--speed :出力オーディオの速度を指定します。デフォルトは1.0です。--quantize :INT8量子化モデルを使用するかどうかを示します。デフォルトはfalseです。つまり、FP16モデルはデフォルトで使用されます。--disable_bert :BERTモデルの推論を無効にするかどうかを示します。デフォルトはfalseです。--disable_nf :deepfilternetモデルの推論を無効にするかどうかを示します(デフォルト:false)。--language :TTSの言語を指定します。デフォルト言語は中国語( ZH )です。 パイプラインのBertおよびDeepFilternetモデルは、Meteor LakeとLunar Lakeの統合されたNPUを利用して、推論デバイスとしてNPUをサポートしています。
以下は、この機能と使用の詳細を有効にする方法です。
-DUSE_BERT_NPU=ON必要です。例えば: cmake -DUSE_BERT_NPU=ON -B build -S .--bert_device NPUを使用し、それぞれDeepFilternetモデルに--nf_device NPU使用します。例えば: buildReleasemeloTTS_ov.exe --bert_device NPU --nf_device NPU --model_dir ov_models --input_file inputs.txt --output_file audio.wav Windowsを備えたAI PCノートブックを使用している場合、通常、GPUおよびNPUドライバーが事前にインストールされます。ただし、最新のドライバーに更新することを好むLinuxユーザーまたはWindowsユーザーは、以下のガイドラインに従う必要があります。
GPUの場合:GPUを使用する場合は、GPUドライバーをインストールするために、OpenVino™を使用してIntel®プロセッサグラフィックス(GPU)の構成を参照してください。
NPUの場合:NPUを使用する場合は、NPUデバイスを参照して、NPUドライバーが正しくインストールされていることを確認してください。
すべてのドライバーがWindowsとLinuxの間で異なることに注意してください。そのため、特定のオペレーティングシステムの指示に従ってください。
将来のリリースのために計画されているいくつかの機能と改善を次に示します。
英語TTSサポートを追加:
量子化されたTTSモデルの品質の向上:
このリポジトリのPythonバージョン(OpenVinoと統合されたMelotts)は、Melotts-ovで提供されています。 Pythonバージョンには、モデルをOpenVino IRに変換する方法が含まれています。
このリポジトリには、中国語の単語セグメンテーションとピンイン処理のためのサードパーティのコードとライブラリが含まれています。