(Chinês simplificado | inglês)

O Paddlespeech é um kit de ferramentas de código aberto na plataforma Paddlepaddle para uma variedade de tarefas críticas em fala e áudio, com os modelos de ponta e influência.
O Paddlespeech ganhou o prêmio de melhor demonstração NAACL2022, confira nosso artigo sobre Arxiv.
| Entrada de áudio | Resultados de reconhecimento |
|---|---|
![]() | Bati na porta do lado antigo do edifício. |
![]() | Eu acho que a coisa mais importante sobre a corrida é me trazer uma boa saúde. |
| Entrada de áudio | Resultados das traduções |
|---|---|
![]() | Bati na porta antiga deste edifício. |
| Texto de entrada | Áudio sintético |
|---|---|
| A vida era como uma caixa de chocolates, você nunca sabe o que vai conseguir. | ![]() |
| Bom dia, hoje é 2020/10/29, com uma temperatura mínima de -3 ° C. | ![]() |
| Ji ji, reunir galinhas e galinhas são galinhas espinhosas. O frango de espinhos está com fome, ji ji e ji ji ajudam o frango. Quando as galinhas são misturadas, elas se juntam por ji ji. Ji Ji é muito rápido em bater no frango, o frango é urgente e o desonesto é urgente, ji ji está ansioso e então ele bate no frango. Ji Ji é rápido em bater no frango. Quando o frango está morto, Ji Ji está animado e ele escreve o "ji ji está batendo o frango". | ![]() |
| Olá a todos, eu sou o professor virtual do papagaio. Vamos ler um poema. Eu e a brisa da primavera estamos passando. Você pega a água do outono para tomar a galáxia. | ![]() |
| A IKEA não é necessária para você falar, mas o que você diz se tornará uma apresentação e confissão. | ![]() |
| Cada país tem seu próprio hino nacional | ![]() |
Para áudios mais sintetizados, consulte as amostras de texto em fala de Paddlespeech.
| Texto de entrada | Texto de saída |
|---|---|
| O tempo está muito bom hoje. Você tem tempo à tarde? Eu quero pedir para você jantar juntos | O tempo hoje está muito bom! Você está livre à tarde? Eu quero pedir que você faça uma refeição juntos. |
Através da implementação fácil de usar, eficiente, flexível e escalável, nossa visão é capacitar a aplicação industrial e a pesquisa acadêmica, incluindo módulos de treinamento, inferência e teste e processo de implantação. Para ser mais específico, este kit de ferramentas em:
PaddleSpeech Streaming Server está disponível para Streaming ASR com Punctuation Restoration e Token Timestamp e hora Text-to-Speech .PaddleSpeech Server está disponível para Audio Classification , Automatic Speech Recognition e Text-to-Speech , Speaker Verification e Punctuation Restoration .PaddleSpeech CLI está disponível para Speaker Verification .PaddleSpeech CLI está disponível para Audio Classification , Automatic Speech Recognition , Speech Translation (English to Chinese) e Text-to-Speech .
Recomendamos fortemente que nossos usuários instalem Paddlespeech no Linux com Python> = 3.8 e Paddlepaddle <= 2.5.1 . Algumas novas versões do Paddle não têm suporte para adaptação no Paddlespeech; portanto, atualmente apenas as versões 2.5.1 e anterior podem ser suportadas.
Paddlespeech depende do paddlepaddle. Para instalação, consulte o site oficial do PaddlePaddle e escolha de acordo com sua própria máquina. Aqui está um exemplo da versão da CPU.
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simpleVocê também pode especificar a versão do Paddlepaddle ou instalar a versão desenvolver.
# 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.htmlExistem dois métodos de instalação rápida para o Paddlespeech, um é a instalação do PIP e o outro é a compilação do código -fonte (recomendado).
pip install pytest-runner
pip install paddlespeechgit clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
pip install pytest-runner
pip install .Para mais problemas de instalação, como o ambiente do CONDA, dependente do Librosa, problemas do GCC, instalação do kaldi etc., você pode consultar este documento de instalação. Se você encontrar problemas durante a instalação, poderá deixar uma mensagem no #2150 e encontrar problemas relacionados
Os desenvolvedores podem experimentar nossos modelos com linha de comando Paddlespeech ou Python. Altere --input para testar seu próprio áudio/texto e suportar áudio do formato WAV 16K.
Você também pode experimentá -lo rapidamente no estúdio de IA? Paddlespeech API Demo
Teste de amostra de áudio download
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wavExperiência na linha de comando
paddlespeech asr --lang zh --input zh.wavExperiência da API do Python
> >> from paddlespeech . cli . asr . infer import ASRExecutor
> >> asr = ASRExecutor ()
> >> result = asr ( audio_file = "zh.wav" )
> >> print ( result )
我认为跑步最重要的就是给我带来了身体健康Saída 24K Taxa de amostragem WAV Format Audio
Experiência na linha de comando
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架! " --output output.wavExperiência da API do Python
> >> from paddlespeech . cli . tts . infer import TTSExecutor
> >> tts = TTSExecutor ()
> >> tts ( text = "今天天气十分不错。" , output = "output.wav" )Modelo de classificação de som baseado em 527 categorias de conjunto de dados de áudios.
Experiência na linha de comando
paddlespeech cls --input zh.wavExperiência da API do Python
> >> from paddlespeech . cli . cls . infer import CLSExecutor
> >> cls = CLSExecutor ()
> >> result = cls ( audio_file = "zh.wav" )
> >> print ( result )
Speech 0.9027186632156372Experiência na linha de comando
paddlespeech vector --task spk --input zh.wavExperiência da API do 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 ...]Experiência na linha de comando
paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭Experiência da API do Python
> >> from paddlespeech . cli . text . infer import TextExecutor
> >> text_punc = TextExecutor ()
> >> result = text_punc ( text = "今天的天气真不错啊你下午有空吗我想约你一起去吃饭" )
今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。Use ferramentas relacionadas a kaldi pré-compiladas, apenas suporte de suporte no sistema Ubuntu
Experiência na linha de comando
paddlespeech st --input en.wavExperiência da API do Python
> >> from paddlespeech . cli . st . infer import STExecutor
> >> st = STExecutor ()
> >> result = st ( audio_file = "en.wav" )
[ '我 在 这栋 建筑 的 古老 门上 敲门 。' ]Os desenvolvedores podem experimentar o nosso servidor de fala com a linha de comando do servidor Paddlespeech.
Você pode experimentá -lo rapidamente no estúdio de IA (recomendar): SpeechServer
Start Server
paddlespeech_server start --config_file ./demos/speech_server/conf/application.yamlAcesse serviços de reconhecimento de fala
paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input input_16k.wavAcesse texto para serviços de fala
paddlespeech_client tts --server_ip 127.0.0.1 --port 8090 --input "您好,欢迎使用百度飞桨语音合成服务。 " --output output.wavAcesse serviços de classificação de áudio
paddlespeech_client cls --server_ip 127.0.0.1 --port 8090 --input input.wavPara mais informações sobre as linhas de comando do servidor, consulte: Demonsibras do servidor de fala
Os desenvolvedores podem experimentar o streaming ASR e o streaming de servidor TTS.
Inicie o servidor de reconhecimento de fala de streaming
paddlespeech_server start --config_file ./demos/streaming_asr_server/conf/application.yaml
Acesso Serviços de Reconhecimento de Speeching
paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --input input_16k.wav
Comece a transmitir texto para o servidor de fala
paddlespeech_server start --config_file ./demos/streaming_tts_server/conf/tts_online_application.yaml
Acesse o texto de streaming de serviços de fala
paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol http --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav
Para mais informações, consulte: Streaming ASR e Streaming TTS
Paddlespeech suporta uma série dos modelos mais populares. Eles estão resumidos em modelos lançados e anexados com modelos pré -traidos disponíveis.
A fala a texto contém modelo acústico , modelo de linguagem e tradução de fala , com os seguintes detalhes:
| Tipo de módulo de fala para texto | Conjunto de dados | Tipo de modelo | Exemplo |
|---|---|---|---|
| Recoginação de fala | Aishell | DeepSpeech2 RNN + Modelos baseados em Conv | DEEPPPEECH2-AISHELL |
| Modelos de atenção baseados em transformadores | U2.Transformer.Conformer-Aishell | ||
| Librispeech | Modelos de atenção baseados em transformadores | deepppeech2-librispirech/transformador.conformer.u2-librispirech/transformador.conformer.u2-kaldi-librispirech | |
| Timit | Streaming unificado e de dois passos não transmitidos | u2-timit | |
| Alinhamento | THCHS30 | MFA | MFA-THCHS30 |
| Modelo de idioma | Modelo de idioma ngram | Kenlm | |
| Tradução de fala (inglês para chinês) | Ted En-Zh | Transformador + asr mtl | TODADO DE TRANSFORMADOR |
| FAT + transformador + ASR MTL | FAT-TOD | ||
O texto em fala em Paddlespeech contém principalmente três módulos: Frontend de texto , modelo acústico e vocoder . Modelos acústicos e modelos de vocoder estão listados da seguinte forma:
| Tipo de módulo de texto em fala | Tipo de modelo | Conjunto de dados | Exemplo |
|---|---|---|---|
| Frontend de texto | TN/G2P | ||
| Modelo acústico | Tacotron2 | LJSPEECH/CSMSC | tacotron2-ljspeech/tacotron2-csmsc |
| Transformador TTS | LJSpeech | Transformer-ljspeech | |
| Speedyspeech | CSMSC | SpeedySpeech-CSMSC | |
| FastSpeech2 | LJSPEECH / VCTK / CSMSC / AISHELL-3 / ZH_EN / FELUNE | FASTSPEECH2-LJSPEECH/FASTSPEECH2-VCTK/FASTSPEECH2-CSMSC/FASTSPEECH2-AISHELL3/FASTSPEECH2-ZH_EN/FASTSPEECH2-FINENETUNE | |
| Ernie-Sat | Vctk / aishell-3 / zh_en | Ernie-Sat-VCTK / Ernie-Sat-Aishell3 / Ernie-Sat-Zh_en | |
| DiffSinger | OpenCpop | DIFFSINGER-OPENCPOP | |
| Vocoder | Fluxo de onda | LJSpeech | Waveflow-LJSpeech |
| Gangan de onda paralelo | LJSPEECH / VCTK / CSMSC / AISHELL-3 / OPENCPOP | PWGAN-LJSPEECH / PWGAN-VCTK / PWGAN-CSMSC / PWGAN-AISHELL3 / PWGAN-Opencpop | |
| Multi Band Melgan | CSMSC | Multi Band Melgan-CSMSC | |
| Estilo Melgan | CSMSC | Estilo Melgan-CSMSC | |
| Hifigan | LJSPEECH / VCTK / CSMSC / AISHELL-3 / OPENCPOP | Hifigan-ljspeech / hifigan-vctk / hifigan-csmsc / hifigan-aishell3 / hifigan-opencpop | |
| Wavernn | CSMSC | Wavernn-csmsc | |
| Clonagem de voz | GE2E | Librispeech, 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 | |
| Ponta a ponta | Vits | CSMSC / AISHELL-3 | VITS-CSMSC/VITS-AISHELL3 |
Classificação de áudio
| Tarefa | Conjunto de dados | Tipo de modelo | Exemplo |
|---|---|---|---|
| Classificação de áudio | ESC-50 | Pann | pann-oc50 |
Spoting de palavras -chave
| Tarefa | Conjunto de dados | Tipo de modelo | Exemplo |
|---|---|---|---|
| Spoting de palavras -chave | Ei-snips | Mdtc | MDTC-HEY-SNIPS |
Verificação do alto -falante
| Tarefa | Conjunto de dados | Tipo de modelo | Exemplo |
|---|---|---|---|
| Verificação do alto -falante | VOXCELEB1/2 | Ecapa-tdnn | Ecapa-tdnn-voxceleB12 |
Diarização do alto -falante
| Tarefa | Conjunto de dados | Tipo de modelo | Exemplo |
|---|---|---|---|
| Diarização do alto -falante | Ami | Ecapa-tdnn + AHC / SC | Ecapa-tdnn-ami |
Restauração de pontuação
| Tarefa | Conjunto de dados | Tipo de modelo | Exemplo |
|---|---|---|---|
| Restauração de pontuação | IWLST2012_ZH | Ernie linear | IWSLT2012-PUNCH0 |
Normalmente, o Speech SOTA, o Audio Sota e o SOTA da música oferecem uma visão geral dos tópicos acadêmicos quentes na área relacionada. Para se concentrar nas tarefas no Paddlespeech, você descobrirá que as diretrizes a seguir são úteis para antecipar as idéias principais.
O módulo de texto em fala é originalmente chamado de periquito e agora se fundido com este repositório. Se você estiver interessado em pesquisas acadêmicas sobre essa tarefa, consulte a visão geral da TTS Research. Além disso, este documento é uma boa diretriz para os componentes do pipeline.
Vídeo de demonstração de Paddlespeech
VTuberTalk: Use Paddlespeech TTS e ASR para clonar a voz dos vídeos.
Para citar Paddlespeech para pesquisa, use o seguinte formato.
@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}
}
Você é calorosamente bem -vindo a enviar perguntas em discussões e relatórios de bugs em questões! Além disso, apreciamos muito se você estiver disposto a contribuir com este projeto!
O Paddlespeech é fornecido sob a licença Apache-2.0.