Summertts est utilisé pour commémorer les étés à venir et passants de 2023
illustrer
- Summertts est un programme de synthèse de la parole compilé indépendamment (TTS). Il peut être exécuté localement sans avoir besoin de réseau, et il n'y a pas de dépendance supplémentaire. La compilation en un clic peut être utilisée pour la synthèse de la parole chinoise et anglaise.
- La bibliothèque informatique sous-jacente de Summertts utilise Eigen, qui est un ensemble de fonctions définies par modèle. Dans la plupart des cas, il doit seulement inclure des fichiers d'en-tête, donc ce projet n'a pas d'autres dépendances et peut être compilé et exécuté indépendamment dans l'environnement C ++.
- Ce projet utilise la bibliothèque matricielle fournie par Eigen pour implémenter l'opérateur des réseaux de neurones et n'a pas besoin de s'appuyer sur d'autres environnements d'exploitation NN tels que Pytorch, Tensorflow, NCNN, etc.
- Ce projet est compilé et exécuté sur Ubuntu. D'autres plates-formes de type Linux telles que Android, Raspberry Pi, etc. ne devraient pas avoir de problèmes majeurs. Ils n'ont pas été testés sous Windows et peuvent nécessiter un peu de changement.
- Le modèle de ce projet est basé sur l'algorithme de synthèse de la parole, et basé sur l'ingénierie C ++ est effectué dessus
- Ce projet s'applique à la licence MIT. Le développement, l'utilisateur ou l'organisation en fonction de ce projet, veuillez suivre la licence MIT: https://mit-license.org
Mettre à jour le journal
- 2024-12-14: Ajouter des informations de licence à la licence MIT: https://mit-license.org
- 2023-06-16: Mise à jour pour ajouter un modèle de synthèse vocale anglaise plus rapide: single_speaker_english_fast.bin, ou sur le disque de réseau suivant, la vitesse est plus rapide et la qualité sonore synthétisée n'est pas considérablement réduite:
Lien: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h Code d'extraction: 2d5h - 2023-06-15: Soutenez la synthèse de la prononciation anglaise pure, et vous devez synchroniser le dernier code. Utilisez le fichier de modèle dans le disque réseau suivant: single_speaker_english.bin et synthétiser la prononciation anglaise de la manière suivante:
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
Le chemin du disque de réseau est le suivant. La synthèse et l'utilisation de la prononciation chinoise chinoises ne sont pas affectées. Il convient de noter que cette mise à jour ne prend en charge que la synthèse de prononciation en anglais pur, et l'anglais mixte chinois ne le soutient pas pour le moment.
Lien: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h Code d'extraction: 2d5h - 2023-06-09: Un modèle monocoser de taille moyenne a été ajouté: single_speaker_mid.bin, qui est légèrement plus lent que le modèle précédent, mais la qualité sonore synthétisée semble être meilleure (je ne suis pas sensible à mes oreilles, et je me sens mieux, peut-être que c'est un effet psychologique: P). Le code n'a pas besoin d'être mis à jour, j'ai juste besoin de télécharger single_speaker_mid.bin dans le disque réseau précédent et de l'utiliser.
- 2023-06-08: Modifier le test / main.cpp pour soutenir la synthèse de Newlines et du texte entier
- 2023-06-03: Fix a une erreur dans la version d'hier. Merci à l'intéressé de Telen pour avoir fourni des tests et des indices. Seules les mises à jour de code sont requises et le modèle n'a pas besoin d'être mis à jour.
- 2023-06-02: La précision de la synthèse de la prononciation polyphonique a été considérablement améliorée. Un nouveau modèle est nécessaire dans Baidu Netdisk pour utiliser la prononciation polyphonique améliorée et la régularisation du texte (normalisation du texte). Le code mis à jour aujourd'hui ne peut pas utiliser le modèle précédent, sinon il peut entraîner un crash
- 2023-05-30: Intégration de procédure wetext comme le module de régularisation du texte frontal, améliorant considérablement la synthèse de prononciation correcte des nombres, des devises, des températures, des dates, etc. Vous devez obtenir un nouveau modèle dans Baidu Netdisk ci-dessous
- 2023-5-23: L'utilisation de nouveaux algorithmes a considérablement amélioré la vitesse de synthèse vocale des haut-parleurs uniques.
- 2023-4-21: Création initiale
Instructions pour une utilisation
Clonage du code de ce projet localement, de préférence un environnement Ubuntu Linux
Téléchargez le modèle à partir de l'adresse de disque du réseau Baidu suivant et placez-le dans le répertoire modèle de ce projet: lien: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h Code d'extraction: 2d5h
Une fois le fichier modèle placé, la structure du répertoire du modèle est la suivante:
modèles /
├fiques-multi_speakers.bin
├fiques single_speaker_mid.bin
├fiques single_speaker_english.bin
├fiques single_speaker_english_fast.bin
└fiques single_speaker_fast.bin
Entrez le répertoire de construction et exécutez la commande suivante:
cmake ..
Faire
Une fois la compilation terminée, l'exécuteur TTS_TEST sera généré dans le répertoire de construction.
Exécutez la commande suivante pour tester la synthèse de la parole chinoise (TTS):
./tts_test ../test.txt ../Models/single_speaker_fast.bin out.wav
Exécutez la commande suivante pour tester la synthèse de la parole anglaise (TTS):
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
Dans cette ligne de commande:
Le premier paramètre est le chemin d'accès au fichier texte, qui contient le texte qui doit être synthétisé pour la parole.
Le deuxième paramètre est le chemin du modèle susmentionné. Single et Multi au début du nom de fichier indiquent si le modèle contient un seul haut-parleur ou plusieurs haut-parleurs. Modèle de haut-parleur unique recommandé: single_speaker_fast.bin, la vitesse de synthèse est plus rapide et la qualité sonore de la synthèse est également OK. Le troisième paramètre est le fichier audio synthétisé. Une fois le programme exécuté, il peut être ouvert avec un joueur.
Le programme de test ci-dessus est implémenté dans Test / Main.cpp, et l'interface synthétisée spécifique est définie dans Inclut / SynthesizerTrn.h, comme suit:
int16_t * inférieur (const string & line, int32_t sid, float longscale, int32_t & datalen)
L'interface:
Le premier paramètre est la chaîne de la parole à synthétiser.
Le deuxième paramètre spécifie que l'ID du haut-parleur est utilisé pour synthétiser la parole. Ce paramètre est valide pour le modèle multi-haut-parleurs et fixé à 0 pour le modèle à haut-parleur. Le nombre de haut-parleurs peut être renvoyé par l'interface int32_t getSpeakernum (), et l'ID valide est 0 et le nombre de haut-parleurs renvoyés à l'interface est réduit de 1.
La troisième longueur de paramètre représente la vitesse de la parole de la parole synthétique, et plus sa valeur est grande indique que la vitesse de la parole est plus lente.
Le texte à synthétiser peut contenir des chiffres et des ponctuations arabes, mais parce que le module de régularisation du texte (TN) de ce projet est encore très rude, il sera ignoré pour les caractères anglais. De plus, parce que le module de régularisation du texte (TN) est encore très rude, la prononciation des caractères polyphoniques dans différents contextes est parfois inexacte.
Développement de suivi
- Les scripts de formation et de conversion du modèle seront ouverts plus tard
- À l'avenir, nous essaierons de s'entraîner et de fournir des modèles avec une meilleure qualité sonore
Contacter l'auteur
- Si vous avez d'autres questions ou en avez besoin, vous pouvez envoyer un e-mail à [email protected] ou ajouter WeChat: Hwang_2011. Je ferai de mon mieux pour répondre.
Licence
- Ce projet s'applique à la licence MIT. Le développement, l'utilisateur ou l'organisation en fonction de ce projet, veuillez suivre la licence MIT: https://mit-license.org
reconnaissant
Ce projet utilise le schéma suivant en termes de code source et d'algorithmes. Merci ici. Si des problèmes juridiques peuvent survenir, veuillez me contacter à temps pour les coordonner et les résoudre.
- Propre
- VITS (https://github.com/jaywalnut310/vits)
- vits_chinese (https://github.com/uehqzxi/vits_chinese)
- MB-Istft-vits (https://github.com/masayakawamura/mb-istft-vits)
- Wetextprocessing (https://github.com/wenet-e2e/wetextprocessing)
- Glog (https://github.com/google/glog)
- gflags (https://github.com/gflags/gflags)
- openfst (https://github.com/kkm000/openfst)
- Caractères chinois à Pinyin (https://github.com/yangyangwithgnu/hanz2piny)
- cppjieba (https://github.com/yanyiwu/cppjieba)
- g2p_en (https://github.com/kyubyong/g2p)
- Anglais-to-ipa (https://github.com/mphilli/english-to-ipa)
- Le modèle de haut-parleur unique chinois de ce projet est basé sur la formation de l'ensemble de données Open Source Biaobei, le modèle multi-ordres est basé sur la formation Open Source DataSet Aishell3, et le modèle de haut-parleur unique anglais est basé sur l'ensemble de données de la parole LJ.