<Anglais | 简体中文 | 繁體中文>
Ce référentiel propose une implémentation C ++ de melots, qui est une bibliothèque de texte vocale multilingue de haute qualité (TTS) publiée par Myshell.ai qui prend en charge l'anglais, le chinois (mélangé avec l'anglais) et diverses autres langues. Cette implémentation est entièrement intégrée à OpenVino, prenant en charge le déploiement transparent sur les appareils CPU, GPU et NPU. Actuellement, ce référentiel ne prend en charge que le chinois mélangé à l'anglais. La prise en charge du modèle anglais arrive ensuite.
La conception du pipeline est largement cohérente avec la version Orignal Pytorch, comprenant trois modèles (Bert, TTS et DeepFilternet), avec DeepFilternet ajouté comme composant supplémentaire.

bert-base-multilingual-uncased pour chinois et bert-base-uncased for EnglishLe tableau ci-dessous décrit les appareils pris en charge pour chaque modèle:
| Nom du modèle | Prise en charge du processeur | Support GPU | Support NPU |
|---|---|---|---|
| Bert (prétraitement) | ✅ | ✅ | ✅ |
| TTS (inférence) | ✅ | ✅ | |
| DeepFilternet (post-traitement) | ✅ | ✅ | ✅ |
Pour télécharger le package OpenVino C ++ pour Windows, veuillez vous référer au lien suivant: Installez OpenVino pour Windows. Pour OpenVino 2024.5 sur Windows, vous pouvez exécuter la ligne de commande dans l'invite de commande (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
Pour Linux, vous pouvez télécharger le package C ++ à partir de ce lien: Installez OpenVino pour Linux. Pour OpenVino 2024.5 sur Linux, téléchargez-le simplement à partir de https://storage.openvinotoolkit.org/repostories/openvino/packages/2024.5/linux et dézip le package.
Pour des versions supplémentaires et plus d'informations sur OpenVino, visitez la page officielle OpenVino Toolkit: OpenVino Toolkit Présentation.
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
La fonctionnalité DeepFilternet est actuellement prise en charge uniquement sur Windows et est utilisée pour filtrer le bruit des modèles quantifiés INT8. Par défaut, il est activé, mais vous pouvez l'activer ou le désactiver pendant l'étape CMake à l'aide de l'option -DUSE_DEEPFILTERNET .
Par exemple, pour désactiver la fonctionnalité, vous pouvez utiliser la ligne suivante pendant le processus de génération CMake:
cmake -S . -B build -DUSE_DEEPFILTERNET=OFF
Pour plus d'informations, veuillez consulter DeepFilternet.cpp.
Vous pouvez utiliser run_tts.bat ou run_tts.sh comme exemples de scripts pour exécuter les modèles. Vous trouverez ci-dessous la signification de tous les arguments que vous pouvez utiliser avec ces scripts:
--model_dir : Spécifie le dossier contenant les fichiers du modèle, les fichiers de dictionnaire et les fichiers de ressources tiers, qui est un dossier ov_models dans le repo. Vous devrez peut-être ajuster le chemin relatif en fonction de votre répertoire de travail actuel.--tts_device : Spécifie le périphérique OpenVino à utiliser pour le modèle TTS. Les périphériques pris en charge incluent CPU et GPU (par défaut: CPU).--bert_device : spécifie le périphérique OpenVino à utiliser pour le modèle Bert. Les appareils pris en charge incluent CPU, GPU et NPU (par défaut: CPU).--nf_device : spécifie le périphérique OpenVino à utiliser pour le modèle DeepFilternet. Les appareils pris en charge incluent CPU, GPU et NPU (par défaut: CPU).--input_file : Spécifie le fichier texte d'entrée à traiter. Assurez-vous que le texte est au format UTF-8 .--output_file : spécifie le fichier audio de sortie * .wav à générer.--speed : Spécifie la vitesse de l'audio de sortie. La valeur par défaut est 1.0.--quantize : indique s'il faut utiliser un modèle quantifié INT8. La valeur par défaut est fausse, ce qui signifie qu'un modèle FP16 est utilisé par défaut.--disable_bert : indique s'il faut désactiver l'inférence du modèle Bert. La valeur par défaut est fausse.--disable_nf : Indique s'il faut désactiver l'inférence du modèle DeepFilternet (par défaut: false).--language : spécifie la langue pour TTS. La langue par défaut est chinoise ( ZH ). Les modèles Bert et DeepFilternet dans le pipeline prennent en charge le NPU comme dispositif d'inférence, en utilisant les NPU intégrés dans le lac Meteor et le lac Lunar.
Vous trouverez ci-dessous les méthodes pour activer cette fonctionnalité et les détails d'utilisation:
-DUSE_BERT_NPU=ON est requise pendant la génération CMake. Par exemple: cmake -DUSE_BERT_NPU=ON -B build -S .--bert_device NPU le modèle Bert et --nf_device NPU pour le modèle DeepFilternet respectivement. Par exemple: buildReleasemeloTTS_ov.exe --bert_device NPU --nf_device NPU --model_dir ov_models --input_file inputs.txt --output_file audio.wav Si vous utilisez un ordinateur portable AI avec Windows, GPU et les pilotes NPU sont généralement préinstallés. Cependant, les utilisateurs de Linux ou les utilisateurs de Windows qui préfèrent se mettre à jour vers les derniers pilotes doivent suivre les directives ci-dessous:
Pour GPU : si vous utilisez GPU, veuillez vous référer aux configurations pour les graphiques du processeur Intel® (GPU) avec OpenVino ™ pour installer le pilote GPU.
Pour NPU : si vous utilisez NPU, veuillez vous référer à l'appareil NPU pour vous assurer que le pilote NPU est correctement installé.
Notez que tous les pilotes diffèrent entre Windows et Linux, alors assurez-vous de suivre les instructions de votre système d'exploitation spécifique.
Voici quelques fonctionnalités et améliorations prévues pour les versions futures:
Ajouter le support TTS en anglais :
Amélioration de la qualité dans les modèles TTS quantifiés :
La version Python de ce référentiel (Melotts intégrée à OpenVino) est fournie dans Melotts-OV. La version Python comprend des méthodes pour convertir le modèle en IR OpenVino.
Ce référentiel comprend du code tiers et des bibliothèques pour la segmentation des mots chinois et le traitement Pinyin.