(Chino simplificado | inglés)

Paddlespeech es un kit de herramientas de código abierto en la plataforma Paddlepaddle para una variedad de tareas críticas en voz y audio, con los modelos de última generación e influencia.
Paddlespeech ganó el premio a la mejor demostración NAACL2022, consulte nuestro artículo sobre ARXIV.
| Audio de entrada | Resultados de reconocimiento |
|---|---|
![]() | Llamé a la puerta del antiguo lado del edificio. |
![]() | Creo que lo más importante de correr es traerme buena salud. |
| Audio de entrada | Resultados de traducciones |
|---|---|
![]() | Llamé a la antigua puerta de este edificio. |
| Texto de entrada | Audio sintético |
|---|---|
| La vida era como una caja de chocolates, nunca se sabe lo que vas a conseguir. | ![]() |
| Buenos días, hoy es 2020/10/29, con una temperatura mínima de -3 ° C. | ![]() |
| Ji ji ji, recolectando gallinas y pollos son pollos espinosos. El pollo Thorn tiene hambre, ji ji y ji ji ayudan al pollo. Cuando se mezclan los pollos, se les unen Ji Ji. Ji Ji es muy rápido para golpear el pollo, el pollo es urgente y el pícaro es urgente, Ji Ji está ansioso y luego golpea el pollo. Ji Ji se apresura a golpear el pollo. Cuando el pollo está muerto, Ji Ji está emocionado y escribe el "Ji Ji está golpeando al pollo". | ![]() |
| Hola a todos, soy el maestro virtual de Parrot. Leemos un poema. Yo y la brisa de primavera estamos pasando. Toma el agua de otoño para tomar la galaxia. | ![]() |
| Ikea no es necesario para que hables, pero lo que dices se convertirá en una presentación y confesión. | ![]() |
| Cada país tiene su propio himno nacional | ![]() |
Para obtener más audios sintetizados, consulte muestras de texto a voz de paldlespeech.
| Texto de entrada | Texto de salida |
|---|---|
| El clima es realmente bueno hoy. ¿Tienes tiempo por la tarde? Quiero pedirte que cenen juntos | ¡El clima de hoy es realmente bueno! ¿Eres libre por la tarde? Quiero pedirte que tengas una comida juntos. |
A través de la implementación fácil de usar, eficiente, flexible y escalable, nuestra visión es capacitar tanto la aplicación industrial como la investigación académica, incluidos los módulos de capacitación, inferencias y pruebas y el proceso de implementación. Para ser más específico, este kit de herramientas aparece en:
PaddleSpeech Streaming Server está disponible para Streaming ASR con Punctuation Restoration y Token Timestamp y Text-to-Speech .PaddleSpeech Server está disponible para Audio Classification , Automatic Speech Recognition y Text-to-Speech , Speaker Verification y Punctuation Restoration .PaddleSpeech CLI está disponible para Speaker Verification .PaddleSpeech CLI está disponible para Audio Classification , Automatic Speech Recognition , Speech Translation (English to Chinese) y Text-to-Speech .
Recomendamos encarecidamente a nuestros usuarios que instalen Paddlespeech en Linux con Python> = 3.8 y Paddlepaddle <= 2.5.1 . Algunas versiones nuevas de Paddle no tienen soporte para la adaptación en Paddlespeech, por lo que actualmente solo se pueden admitir versiones 2.5.1 y anteriores.
Paddlespeech depende de Paddlepaddle. Para la instalación, consulte el sitio web oficial de Paddlepaddle y elija de acuerdo con su propia máquina. Aquí hay un ejemplo de la versión de CPU.
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simpleTambién puede especificar la versión de PaddlePaddle o instalar la versión para desarrollar.
# 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.htmlHay dos métodos de instalación rápidos para PaddlesSpeech, uno es la instalación de PIP y el otro es la compilación del código fuente (recomendado).
pip install pytest-runner
pip install paddlespeechgit clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
pip install pytest-runner
pip install .Para obtener más problemas de instalación, como CondA Environment, Librosa-Depended, GCC Problems, Kaldi Instalation, etc., puede consultar este documento de instalación. Si encuentra problemas durante la instalación, puede dejar un mensaje en el #2150 y encontrar problemas relacionados
Los desarrolladores pueden probar nuestros modelos con la línea de comando Paddlespeech o Python. Cambie --input para probar su propio audio/texto y admitir audio de formato WAV 16K.
¿También puedes experimentarlo rápidamente en AI Studio? Demostración de la API de paldlespeech
Descarga de muestra de audio de prueba
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wavExperiencia de línea de comandos
paddlespeech asr --lang zh --input zh.wavExperiencia de la API de Python
> >> from paddlespeech . cli . asr . infer import ASRExecutor
> >> asr = ASRExecutor ()
> >> result = asr ( audio_file = "zh.wav" )
> >> print ( result )
我认为跑步最重要的就是给我带来了身体健康Salida 24k de audio de formato WAV de velocidad de muestreo
Experiencia de línea de comandos
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架! " --output output.wavExperiencia de la API de Python
> >> from paddlespeech . cli . tts . infer import TTSExecutor
> >> tts = TTSExecutor ()
> >> tts ( text = "今天天气十分不错。" , output = "output.wav" )Modelo de clasificación de sonido basado en 527 categorías de conjunto de datos de audioset
Experiencia de línea de comandos
paddlespeech cls --input zh.wavExperiencia de la API de Python
> >> from paddlespeech . cli . cls . infer import CLSExecutor
> >> cls = CLSExecutor ()
> >> result = cls ( audio_file = "zh.wav" )
> >> print ( result )
Speech 0.9027186632156372Experiencia de línea de comandos
paddlespeech vector --task spk --input zh.wavExperiencia de la API de 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 ...]Experiencia de línea de comandos
paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭Experiencia de la API de Python
> >> from paddlespeech . cli . text . infer import TextExecutor
> >> text_punc = TextExecutor ()
> >> result = text_punc ( text = "今天的天气真不错啊你下午有空吗我想约你一起去吃饭" )
今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。Utilice herramientas relacionadas con Kaldi precompiladas, solo admite experiencia en el sistema Ubuntu
Experiencia de línea de comandos
paddlespeech st --input en.wavExperiencia de la API de Python
> >> from paddlespeech . cli . st . infer import STExecutor
> >> st = STExecutor ()
> >> result = st ( audio_file = "en.wav" )
[ '我 在 这栋 建筑 的 古老 门上 敲门 。' ]Los desarrolladores pueden probar nuestro servidor de voz con la línea de comando del servidor Paddlespeech.
Puede probarlo rápidamente en AI Studio (recomendar): SpecheServer
Inicio del servidor
paddlespeech_server start --config_file ./demos/speech_server/conf/application.yamlAcceder a los servicios de reconocimiento de voz
paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input input_16k.wavAcceder a texto a los servicios de voz
paddlespeech_client tts --server_ip 127.0.0.1 --port 8090 --input "您好,欢迎使用百度飞桨语音合成服务。 " --output output.wavAcceder a los servicios de clasificación de audio
paddlespeech_client cls --server_ip 127.0.0.1 --port 8090 --input input.wavPara obtener más información sobre las líneas de comando del servidor, consulte: Demoss del servidor de voz
Los desarrolladores pueden tener el intento de transmitir ASR y transmitir el servidor TTS.
Comience a transmitir el servidor de reconocimiento de voz
paddlespeech_server start --config_file ./demos/streaming_asr_server/conf/application.yaml
Servicios de reconocimiento de voz de transmisión de acceso
paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --input input_16k.wav
Comience a transmitir texto al servidor de discursos
paddlespeech_server start --config_file ./demos/streaming_tts_server/conf/tts_online_application.yaml
Acceder al texto de transmisión a los servicios de voz
paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol http --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav
Para obtener más información, consulte: transmisión ASR y transmisión de TTS
Paddlespeech admite una serie de modelos más populares. Se resumen en modelos lanzados y se adjuntan con modelos previos a la apartación disponibles.
El habla a texto contiene modelo acústico , modelo de idioma y traducción del habla , con los siguientes detalles:
| Tipo de módulo de voz a texto | Conjunto de datos | Tipo de modelo | Ejemplo |
|---|---|---|---|
| Recoginación del habla | Aishell | Deepspeech2 RNN + modelos basados en convivir | deepppeech2-aishell |
| Modelos de atención basados en transformadores | u2.transformer.conformer-aishell | ||
| Libriscoech | Modelos de atención basados en transformadores | deepppeech2-librispirech/transformer.conformer.u2-librispirech/transformer.conformer.u2-kaldi-librispirech | |
| Timitar | Transmisión unificada y dos pasos no corriendo | U2-Timit | |
| Alineación | Thchs30 | MFA | mfa-thchs30 |
| Modelo | Modelo de idioma ngram | kenlm | |
| Traducción del habla (inglés a chino) | Ted en-zh | Transformador + asr mtl | transformador |
| Grasa + transformador + asr mtl | grasa | ||
El texto a la voz en paldlespeech contiene principalmente tres módulos: frontend de texto , modelo acústico y vocoder . El modelo acústico y los modelos de vocoder se enumeran de la siguiente manera:
| Tipo de módulo de texto a voz | Tipo de modelo | Conjunto de datos | Ejemplo |
|---|---|---|---|
| Texto frontend | TN/G2P | ||
| Modelo acústico | Tacotrón2 | LJSPEECH/CSMSC | tacotron2-ljspeech/tacotron2-csmsc |
| Transformador TTS | Ljspeech | transformador-ljspeech | |
| Speedyspeech | Csmsc | SpeedySpeech-CSMSC | |
| FastSpeech2 | LJSPEECH / VCTK / CSMSC / AISHELL-3 / ZH_EN / FINUNE | 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 | |
| Difusión | Opencpop | Diffsinger-opencpop | |
| Vocero | Flujo de onda | Ljspeech | waveflow-ljspeech |
| Wavan paralelo | LJSPEECH / VCTK / CSMSC / AISHELL-3 / OPENCPOP | Pwgan-ljspeech / pwgan-vctk / pwgan-csmsc / pwgan-aishell3 / pwgan-opencpop | |
| Melgan de la banda múltiple | Csmsc | Melgan-CSMSC de múltiples bandas | |
| Estilo Melgan | Csmsc | Estilo Melgan-CSMSC | |
| Hifigano | LJSPEECH / VCTK / CSMSC / AISHELL-3 / OPENCPOP | Hifigan-Ljspeech / Hifigan-VCTK / Hifigan-CSMSC / Hifigan-Aishell3 / Hifigan-Opencpop | |
| Wavernn | Csmsc | Wavernn-CSMSC | |
| Clonación 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 | |
| De extremo a extremo | Vits | CSMSC / Aishell-3 | VITS-CSMSC/VITS-AISHELL3 |
Clasificación de audio
| Tarea | Conjunto de datos | Tipo de modelo | Ejemplo |
|---|---|---|---|
| Clasificación de audio | ESC-50 | Panillo | pann-sesc50 |
Manchas de palabras clave
| Tarea | Conjunto de datos | Tipo de modelo | Ejemplo |
|---|---|---|---|
| Manchas de palabras clave | Hey-Snips | MDTC | mdtc-hey-snips |
Verificación de altavoces
| Tarea | Conjunto de datos | Tipo de modelo | Ejemplo |
|---|---|---|---|
| Verificación de altavoces | Voxceleb1/2 | ECAPA-TDNN | ECAPA-TDNN-VOXCELEB12 |
Diarización del altavoz
| Tarea | Conjunto de datos | Tipo de modelo | Ejemplo |
|---|---|---|---|
| Diarización del altavoz | Ami | ECAPA-TDNN + AHC / SC | ECAPA-TDNN-AMI |
Restauración de puntuación
| Tarea | Conjunto de datos | Tipo de modelo | Ejemplo |
|---|---|---|---|
| Restauración de puntuación | Iwlst2012_zh | Ernie lineal | IWSLT2012-PUNCH0 |
Normalmente, el discurso Sota, Audio Sota y Music Sota le brindan una visión general de los temas académicos calientes en el área relacionada. Para concentrarse en las tareas en Paddlespeech, encontrará que las siguientes pautas son útiles para uvar las ideas centrales.
El módulo de texto a voz se llama originalmente periquito, y ahora se fusiona con este repositorio. Si está interesado en la investigación académica sobre esta tarea, consulte la descripción general de la investigación de TTS. Además, este documento es una buena guía para los componentes de la tubería.
Video de demostración de paldlespeech
Vtubertalk: use Paddlespeech TTS y ASR para clonar Voice de videos.
Para citar PaddlesSpeech para la investigación, utilice el siguiente 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}
}
¡Bienvenido cálidamente a enviar preguntas en discusiones e informes de errores en temas! Además, ¡apreciamos mucho si está dispuesto a contribuir a este proyecto!
Paddlespeech se proporciona bajo la licencia Apache-2.0.