Model or dataset
PaddlePaddle/PaddleSpeech avatar
PaddlePaddle/PaddleSpeech

PaddleSpeech: a PaddlePaddle speech toolkit for ASR, TTS and translation

Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.

12,685 stars1,958 forksPythonApache-2.0

At a glance

What is it?
PaddleSpeech bundles speech recognition, synthesis, translation, punctuation restoration and speaker verification behind one Python API. It is strongest for Chinese and English pipelines that can accept the PaddlePaddle runtime, and weakest where you need a small dependency footprint or non-Paddle deployment.
Who is it for?
Adopt PaddleSpeech if you are building Chinese or English speech pipelines and are willing to run PaddlePaddle as your inference runtime, since the same package covers ASR, TTS, punctuation restoration and en-zh speech translation. Do not adopt it if you need a runtime-free Python package, a non-Paddle deployment path, or a project whose release cadence you can predict from a changelog; the README does not document a deprecation policy or a rollback procedure.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 35 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What PaddleSpeech covers that a single-model repo does not

Most speech repositories solve one task. PaddleSpeech ships several under one package: speech recognition, text-to-speech, speech translation from English to Chinese, punctuation restoration, speaker verification, keyword spotting and sound classification. The README lists those as the toolkit's scope, and the examples directory mirrors it with per-dataset folders such as examples/librispeech, examples/aishell, examples/ljspeech, examples/vctk, examples/mustc and examples/hey_snips. That layout is the real argument for the project. If your product needs a transcript, then punctuation on that transcript, then a synthesized reply in a second language, you are integrating one dependency and one runtime instead of three toolchains with three sets of Python pins.

The intended audience is narrower than the feature list suggests. The README frames the project as serving industrial application and academic research, and the examples directory is organized around academic corpora (AISHELL, THCHS-30, LibriSpeech, VCTK, AMI, TED). This is a toolkit for people who are comfortable running training recipes and inference scripts, not a drop-in SDK. The Chinese-language coverage is the differentiator: Mandarin ASR, Mandarin and Cantonese TTS, and code-switching appear directly in the README's demo tables, including a Cantonese example and a mixed Chinese-English sentence.

How the pieces fit together: PaddlePaddle underneath, recipes on top

The dependency structure is the first thing to understand. PaddleSpeech is built on PaddlePaddle, and setup.py inspects the environment at install time rather than shipping a fixed dependency list: it determines the Python version and probes the local gcc version, returning opencc==1.1.6 when gcc is older than version 9. That conditional logic tells you the package expects to compile or link against native pieces on some systems, and that the install path is not identical everywhere.

Above the runtime sit two layers. The paddlespeech Python package exposes the inference API and command-line entry points, while examples/ holds the training and fine-tuning recipes, one directory per corpus. A typical flow for recognition is: point the CLI at an audio file, let it load a pretrained acoustic model plus the punctuation model, and read the punctuated text back. The streaming variants of ASR and TTS exist as separate model configurations rather than as a mode flag on the offline models, which matters when you are sizing latency budgets. The repository also carries a runtime/ directory and a docker/ directory, so there is a packaged serving path in addition to the Python API, though the README does not spell out the runtime's API surface.

Installing PaddleSpeech and running a first recognition

The README points to the documentation site at paddlespeech.readthedocs.io for installation, and the repository carries a setup.py, so the package is installed from source or from the published distribution. The README excerpt does not reproduce an install command, and no code block is shown here for that reason: treat the documentation site as the authority on the exact install line for your platform, and note that setup.py branches its dependency selection on your Python and gcc versions.

The fastest way to confirm that a working install actually runs is to point the toolkit at one of the README's own demo recordings, which are hosted on the PaddleSpeech CDN. The README's recognition table pairs en.wav with the output "I knocked at the door on the ancient side of the building." If you get that line back, the runtime, the model download and the audio path are all working. The same table pairs a zh.wav file with the Chinese sentence 我认为跑步最重要的就是给我带来了身体健康, which is the check to run if your target language is Mandarin rather than English.

For synthesis, the toolkit takes text and writes audio, and the README demonstrates it on ordinary sentences, on a date-and-temperature string with a negative number, and on Cantonese input, which is a useful signal that text normalization is part of the pipeline rather than something you bolt on yourself. There is also a Docker path: the repository contains a docker/ directory, and docker appears among the phrases people search for around this project, but the README excerpt does not list image names or tags, so check the documentation site for the current image before scripting a build.

Where PaddleSpeech is the wrong choice

The hard constraint is the runtime. PaddleSpeech does not run on PyTorch or ONNX Runtime; choosing it means choosing PaddlePaddle for that part of your stack, and the setup.py logic that branches on gcc version shows the install can behave differently across build environments. If your team already standardizes on another framework and you only need one task, the integration cost of a second runtime usually outweighs the convenience of a bundled toolkit.

The second limitation is documentation depth outside the happy path. The README is a feature showcase with demo tables; it does not document rollback, deprecation windows or version compatibility between model checkpoints and package releases. Release history is uneven: r1.4.1 in April 2023, r1.4.2 in June 2024, r1.5.0 in March 2025, with the default branch receiving commits after that. Anyone planning a long-lived deployment should read the release notes rather than assume a steady cadence.

Third, the model weights are fetched from a Baidu-hosted CDN. In an air-gapped or region-restricted environment, that download is a real blocker, and the README does not describe an offline mirror procedure. Budget time for that before you promise a deployment date.

PaddleSpeech compared with Whisper-style recognizers

The most common comparison people search for is against Whisper. The architectural difference is straightforward. Whisper is a single multilingual sequence-to-sequence model trained on large-scale weakly supervised web audio; you run one model and get transcription plus translation as a generation task. PaddleSpeech is a collection of task-specific models, each trained on its own recipe and corpus, wired together by a toolkit. Recognition, punctuation restoration and synthesis are separate components, which is why the README can show a punctuation-restoration table as its own feature: the punctuation model is something you can call on text that came from anywhere.

That modularity cuts both ways. You get explicit control over each stage and the ability to swap a component, and you get a pipeline with more moving parts to configure. Whisper's monolithic design makes a single-file transcription trivial but gives you no separate punctuation stage to reuse. PaddleSpeech's design makes Chinese and Cantonese coverage, streaming ASR and streaming TTS first-class entries in the model list. If your workload is English transcription only, the extra machinery is overhead. If it is a Mandarin voice interface that must speak back, the bundled pieces are the point.

Licence, maintenance and what an upgrade actually costs

PaddleSpeech is licensed under Apache-2.0, which permits commercial use and modification provided you keep the licence and notice files. The pretrained model weights are distributed separately from the source; the README does not state a licence for the checkpoints themselves, so if you ship a model in a product, confirm the terms attached to that specific checkpoint rather than assuming the repository licence covers it. This is a factual gap in the documentation, not a legal opinion.

On maintenance: the repository is not archived, and the last push to the develop branch was on 2026-08-12. Releases are infrequent and irregular, with r1.5.0 in March 2025 being the most recent. Practically, that means you should pin both the paddlespeech version and the paddlepaddle version, because a runtime upgrade is the most likely thing to break inference. The setup.py environment probing also means an upgrade can change which opencc build you get, which can change text normalization behavior in TTS and punctuation output. Test the specific command you depend on, not the package import, before rolling forward.

Editorial conclusion

Adopt PaddleSpeech if you are building Chinese or English speech pipelines and are willing to run PaddlePaddle as your inference runtime, since the same package covers ASR, TTS, punctuation restoration and en-zh speech translation. Do not adopt it if you need a runtime-free Python package, a non-Paddle deployment path, or a project whose release cadence you can predict from a changelog; the README does not document a deprecation policy or a rollback procedure. Before committing, verify that the paddlespeech package installs cleanly on your Python version, that the pretrained models you need download from the PaddleSpeech CDN in your network, and that the command-line entry points you plan to wrap are present in the version you pin.

Frequently asked questions

What is PaddleSpeech used for?

It is a speech toolkit covering speech recognition, text-to-speech, English-to-Chinese speech translation, punctuation restoration, speaker verification, keyword spotting and sound classification, built on the PaddlePaddle platform.

Can PaddleSpeech run without PaddlePaddle?

No. The README describes it as a toolkit on the PaddlePaddle platform, and the package depends on the PaddlePaddle runtime for inference and training.

Does PaddleSpeech support streaming recognition and synthesis?

The repository topics include streaming-asr and streaming-tts, and the README describes the toolkit as including streaming ASR with punctuation and streaming TTS with a text frontend.

Official sources

  1. License: Apache-2.0
  2. PaddlePaddle/PaddleSpeech on GitHub
  3. Project website
  4. README
  5. Releases
Community notes

Community notes