(Chinois simplifié | anglais)

PaddleSpeech est une boîte à outils open source sur la plate-forme Paddlepaddle pour une variété de tâches critiques dans la parole et l'audio, avec les modèles de pointe et influencés.
PaddleSpeech a remporté le prix NAACL2022 Best Demo, veuillez consulter notre article sur Arxiv.
| Audio d'entrée | Résultats de la reconnaissance |
|---|---|
![]() | J'ai frappé à la porte du côté ancien du bâtiment. |
![]() | Je pense que la chose la plus importante à propos de la course est de m'apporter une bonne santé. |
| Audio d'entrée | Résultats des traductions |
|---|---|
![]() | J'ai frappé à la porte ancienne de ce bâtiment. |
| Texte de saisie | Audio synthétique |
|---|---|
| La vie était comme une boîte de chocolats, vous ne savez jamais ce que vous allez obtenir. | ![]() |
| Bonjour, aujourd'hui est 2020/10/29, avec une température minimale de -3 ° C. | ![]() |
| Ji Ji Ji, rassemblement des poulets et des poulets sont des poulets épineux. Le poulet épineux a faim, Ji Ji et Ji Ji aident le poulet. Lorsque les poulets sont mélangés, ils sont rejoints par Ji Ji. Ji Ji est très rapide pour frapper le poulet, le poulet est urgent et le voyou est urgent, Ji Ji est anxieux, puis il frappe le poulet. Ji Ji est rapide à frapper le poulet. Lorsque le poulet est mort, Ji Ji est excité et il écrit le "Ji Ji frappe le poulet". | ![]() |
| Bonjour à tous, je suis le professeur virtuel de Parrot. Lisons un poème. Moi et la brise de printemps passent. Vous prenez l'eau d'automne pour prendre la galaxie. | ![]() |
| Ikea n'est pas nécessaire pour vous de parler, mais ce que vous dites deviendra une présentation et une confession. | ![]() |
| Chaque pays a son propre hymne national | ![]() |
Pour des audios plus synthétisés, veuillez vous référer à des échantillons de texte à dispection PaddleSpeech.
| Texte de saisie | Texte de sortie |
|---|---|
| Le temps est vraiment bon aujourd'hui. Avez-vous du temps dans l'après-midi? Je veux te demander de dîner ensemble | Le temps aujourd'hui est vraiment bon! Êtes-vous libre l'après-midi? Je veux vous demander de prendre un repas ensemble. |
Via la mise en œuvre facile à utiliser, efficace, flexible et évolutive, notre vision est de permettre à la fois l'application industrielle et la recherche universitaire, y compris les modules de formation, d'inférence et de test et de processus de déploiement. Pour être plus précis, cette boîte à outils est disponible sur:
PaddleSpeech Streaming Server est disponible pour Streaming ASR avec Punctuation Restoration et Token Timestamp et Text-to-Speech .PaddleSpeech Server est disponible pour Audio Classification , Automatic Speech Recognition et Text-to-Speech , Speaker Verification et Punctuation Restoration .PaddleSpeech CLI est disponible pour Speaker Verification .PaddleSpeech CLI est disponible pour Audio Classification , Automatic Speech Recognition , Speech Translation (English to Chinese) et Text-to-Speech .
Nous recommandons fortement à nos utilisateurs d'installer Paddlespeech dans Linux avec Python> = 3,8 et Paddlepaddle <= 2.5.1 . Certaines nouvelles versions de Paddle n'ont pas la prise en charge de l'adaptation dans PaddleSpeech, donc seules les versions 2.5.1 et antérieures peuvent être prises en charge.
Paddlespeech dépend de Paddlepaddle. Pour l'installation, veuillez vous référer au site officiel de Paddlepaddle et choisir selon votre propre machine. Voici un exemple de la version CPU.
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simpleVous pouvez également spécifier la version de Paddlepaddle ou installer la version développer.
# install 2.4.1 version. Note, 2.4.1 is just an example, please follow the minimum dependency of paddlepaddle for your selection
pip install paddlepaddle==2.4.1 -i https://mirror.baidu.com/pypi/simple
# install develop version
pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.htmlIl existe deux méthodes d'installation rapides pour Paddlespeech, l'une est une installation PIP et l'autre est la compilation de code source (recommandée).
pip install pytest-runner
pip install paddlespeechgit clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
pip install pytest-runner
pip install .Pour plus de problèmes d'installation, tels que Conda Environment, Biblinga-Dependent, GCC Problems, Kaldi Installation, etc., vous pouvez vous référer à ce document d'installation. Si vous rencontrez des problèmes lors de l'installation, vous pouvez laisser un message sur # 2150 et trouver des problèmes connexes
Les développeurs peuvent essayer nos modèles avec une ligne de commande PaddleSpeech ou un python. Modifier --input pour tester votre propre audio / texte et prendre en charge l'audio au format WAV 16K.
Vous pouvez également en faire rapidement l'expérience dans l'IA Studio? Démo de l'API PaddleSpeech
Tester un exemple de téléchargement
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wavexpérience de ligne de commande
paddlespeech asr --lang zh --input zh.wavExpérience de l'API Python
> >> from paddlespeech . cli . asr . infer import ASRExecutor
> >> asr = ASRExecutor ()
> >> result = asr ( audio_file = "zh.wav" )
> >> print ( result )
我认为跑步最重要的就是给我带来了身体健康Sortie 24K Taux d'échantillonnage WAV Format audio
expérience de ligne de commande
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架! " --output output.wavExpérience de l'API Python
> >> from paddlespeech . cli . tts . infer import TTSExecutor
> >> tts = TTSExecutor ()
> >> tts ( text = "今天天气十分不错。" , output = "output.wav" )Modèle de classification sonore basé sur 527 catégories d'ensemble de données AudiOSET
expérience de ligne de commande
paddlespeech cls --input zh.wavExpérience de l'API Python
> >> from paddlespeech . cli . cls . infer import CLSExecutor
> >> cls = CLSExecutor ()
> >> result = cls ( audio_file = "zh.wav" )
> >> print ( result )
Speech 0.9027186632156372expérience de ligne de commande
paddlespeech vector --task spk --input zh.wavExpérience de l'API Python
> >> from paddlespeech . cli . vector import VectorExecutor
> >> vec = VectorExecutor ()
> >> result = vec ( audio_file = "zh.wav" )
> >> print ( result ) # 187维向量
[ - 0.19083306 9.474295 - 14.122263 - 2.0916545 0.04848729
4.9295826 1.4780062 0.3733844 10.695862 3.2697146
- 4.48199 - 0.6617882 - 9.170393 - 11.1568775 - 1.2358263 ...]expérience de ligne de commande
paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭Expérience de l'API Python
> >> from paddlespeech . cli . text . infer import TextExecutor
> >> text_punc = TextExecutor ()
> >> result = text_punc ( text = "今天的天气真不错啊你下午有空吗我想约你一起去吃饭" )
今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。Utilisez des outils liés à Kaldi pré-compilés, uniquement l'expérience de soutien dans le système Ubuntu
expérience de ligne de commande
paddlespeech st --input en.wavExpérience de l'API Python
> >> from paddlespeech . cli . st . infer import STExecutor
> >> st = STExecutor ()
> >> result = st ( audio_file = "en.wav" )
[ '我 在 这栋 建筑 的 古老 门上 敲门 。' ]Les développeurs peuvent essayer notre serveur vocal avec la ligne de commande PaddleSpeech Server.
Vous pouvez l'essayer rapidement dans AI Studio (recommander): SpeechServer
Démarrer le serveur
paddlespeech_server start --config_file ./demos/speech_server/conf/application.yamlAccéder aux services de reconnaissance vocale
paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input input_16k.wavAccéder au texte aux services de la parole
paddlespeech_client tts --server_ip 127.0.0.1 --port 8090 --input "您好,欢迎使用百度飞桨语音合成服务。 " --output output.wavAccéder aux services de classification audio
paddlespeech_client cls --server_ip 127.0.0.1 --port 8090 --input input.wavPour plus d'informations sur les lignes de commandes du serveur, veuillez consulter: Demos de serveur vocal
Les développeurs peuvent essayer de diffuser ASR et de streaming TTS Server.
Commencez à diffuser le serveur de reconnaissance vocale
paddlespeech_server start --config_file ./demos/streaming_asr_server/conf/application.yaml
Accès aux services de reconnaissance de la parole en streaming
paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --input input_16k.wav
Commencez à diffuser du texte sur le serveur vocal
paddlespeech_server start --config_file ./demos/streaming_tts_server/conf/tts_online_application.yaml
Accéder au texte en streaming aux services de la parole
paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol http --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav
Pour plus d'informations, veuillez consulter: Streaming ASR et Streaming TTS
PaddleSpeech prend en charge une série de modèles les plus populaires. Ils sont résumés dans des modèles libérés et attachés avec des modèles pré-étirés disponibles.
La parole à texte contient un modèle acoustique , un modèle de langue et une traduction de la parole , avec les détails suivants:
| Type de module de parole | Ensemble de données | Type de modèle | Exemple |
|---|---|---|---|
| Recogation de la parole | Aishell | Modèles basés sur DeepSpeech2 RNN + Conv | Deepppeech2-Asishell |
| Modèles d'attention basés sur le transformateur | u2.transformateur.conformer-Asishell | ||
| Bibliothèque | Modèles d'attention basés sur le transformateur | deepppeech2-librispirech / transformateur.conformer.u2-librispirech / transformère | |
| Timidre | Streaming unifié et deux passes non streaming | tim | |
| Alignement | Thchs30 | MFA | MFA-THCHS30 |
| Modèle de langue | Modèle de langue ngram | kenlm | |
| Traduction de la parole (anglais en chinois) | Ted en-zh | Transformateur + ASR MTL | transformateur |
| FAT + Transformateur + ASR MTL | gras-ste | ||
Le texte vocal dans Paddlespeech contient principalement trois modules: frontend texte , modèle acoustique et vocodeur . Les modèles de modèle acoustique et de vocoder sont répertoriés comme suit:
| Type de module de texte vocal | Type de modèle | Ensemble de données | Exemple |
|---|---|---|---|
| Frontend texte | TN / G2P | ||
| Modèle acoustique | Tacotron2 | LJSpeech / CSMSC | tacotron2-ljspeech / tacotron2-csmsc |
| Transformateur TTS | Ljspeech | transformateur-ljspeech | |
| Speedyspeech | CSMSC | SpeedySpeech-CSMSC | |
| FastSpeech2 | LJSpeech / VCTK / CSMSC / Aishell-3 / Zh_en / Finene | FastSpeech2-ljSpeech / FastSpeech2-Vctk / FastSpeech2-CSMSC / FastSpeech2-Aishell3 / FastSpeech2-Zh_en / FastSpeech2-Finenenetune | |
| Ernie-sam | VCTK / AISHELL-3 / ZH_EN | Ernie-Sat-Vctk / Ernie-Sat-Aishell3 / Ernie-Sat-Zh_en | |
| Diffsinger | Opencpop | Diffsinger-opencpop | |
| Vocodeur | Flux de vagues | Ljspeech | flux d'onde-ljspeech |
| Wavegan parallèle | LJSpeech / VCTK / CSMSC / AISHELL-3 / OPENCPOP | PWGAN-LJSPEECH / PWGAN-VCTK / PWGAN-CSMSC / PWGAN-AISHELL3 / PWGAN-OPENCPOP | |
| Multi Band Melgan | CSMSC | Multi-Band Melgan-CSMSC | |
| Style Melgan | CSMSC | Style MELGAN-CSMSC | |
| Hifigan | LJSpeech / VCTK / CSMSC / AISHELL-3 / OPENCPOP | HIFigan-LjSpeech / Hifigan-Vctk / Hifigan-CSMSC / HIFIGAN-AISHELL3 / HIFIGAN-OPENCPOP | |
| Wavernn | CSMSC | Wavernn-csmsc | |
| Clonage vocal | Ge2e | LibrSpeech, etc. | Ge2e |
| SV2TTS (GE2E + Tacotron2) | Aishell-3 | VC0 | |
| SV2TTS (GE2E + FastSpeech2) | Aishell-3 | VC1 | |
| SV2TTS (ECAPA-TDNN + FASTSPEECH2) | Aishell-3 | VC2 | |
| GE2E + VITS | Aishell-3 | VITS-VC | |
| De bout en bout | Vits | CSMSC / AISHELL-3 | VITS-CSMSC / VITS-AISHELL3 |
Classification audio
| Tâche | Ensemble de données | Type de modèle | Exemple |
|---|---|---|---|
| Classification audio | ESC-50 | Pann | PANN-ESC50 |
Repérage de mots clés
| Tâche | Ensemble de données | Type de modèle | Exemple |
|---|---|---|---|
| Repérage de mots clés | hey-snips | MDTC | mdtc-hey-snips |
Vérification de l'orateur
| Tâche | Ensemble de données | Type de modèle | Exemple |
|---|---|---|---|
| Vérification de l'orateur | Voxceleb1 / 2 | Ecapa-tdnn | ecapa-tdnn-voxceleb12 |
Diarité du locuteur
| Tâche | Ensemble de données | Type de modèle | Exemple |
|---|---|---|---|
| Diarité du locuteur | Ami | Ecapa-tdnn + ahc / sc | ecapa-tdnn-ami |
Restauration de ponctuation
| Tâche | Ensemble de données | Type de modèle | Exemple |
|---|---|---|---|
| Restauration de ponctuation | Iwlst2012_zh | Ernie linéaire | IWSLT2012-PUNCH0 |
Normalement, le discours Sota, l'audio Sota et la musique Sota vous donnent un aperçu des sujets académiques chauds dans le domaine connexe. Pour vous concentrer sur les tâches de PaddleSpeech, vous constaterez que les directives suivantes sont utiles pour graper les idées de base.
Le module de texte vocal est à l'origine appelé parakeet et a maintenant fusionné avec ce référentiel. Si vous êtes intéressé par la recherche académique sur cette tâche, veuillez consulter la recherche de recherche TTS. De plus, ce document est une bonne directive pour les composants du pipeline.
Vidéo de démonstration PaddleSpeech
Vtubertalk: Utilisez PaddleSpeech TTS et ASR pour cloner la voix des vidéos.
Pour citer Paddlespeech pour la recherche, veuillez utiliser le format suivant.
@inproceedings{zhang2022paddlespeech,
title = {PaddleSpeech: An Easy-to-Use All-in-One Speech Toolkit},
author = {Hui Zhang, Tian Yuan, Junkun Chen, Xintong Li, Renjie Zheng, Yuxin Huang, Xiaojie Chen, Enlei Gong, Zeyu Chen, Xiaoguang Hu, dianhai yu, Yanjun Ma, Liang Huang},
booktitle = {Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies: Demonstrations},
year = {2022},
publisher = {Association for Computational Linguistics},
}
@InProceedings{pmlr-v162-bai22d,
title = {{A}$^3${T}: Alignment-Aware Acoustic and Text Pretraining for Speech Synthesis and Editing},
author = {Bai, He and Zheng, Renjie and Chen, Junkun and Ma, Mingbo and Li, Xintong and Huang, Liang},
booktitle = {Proceedings of the 39th International Conference on Machine Learning},
pages = {1399--1411},
year = {2022},
volume = {162},
series = {Proceedings of Machine Learning Research},
month = {17--23 Jul},
publisher = {PMLR},
pdf = {https://proceedings.mlr.press/v162/bai22d/bai22d.pdf},
url = {https://proceedings.mlr.press/v162/bai22d.html},
}
@inproceedings{zheng2021fused,
title={Fused acoustic and text encoding for multimodal bilingual pretraining and speech translation},
author={Zheng, Renjie and Chen, Junkun and Ma, Mingbo and Huang, Liang},
booktitle={International Conference on Machine Learning},
pages={12736--12746},
year={2021},
organization={PMLR}
}
Vous êtes chaleureusement invités à soumettre des questions dans les discussions et les rapports de bogues dans les questions! De plus, nous apprécions beaucoup si vous êtes prêt à contribuer à ce projet!
PaddleSpeech est fourni sous la licence Apache-2.0.