{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/speedyspeech-efficient-neural-speech","title":"SpeedySpeech: Efficient Neural Speech Synthesis","arxiv_id":"2008.03802","date":"2020-08-09","proceeding":null,"authors":["Jan Vainer","Ondřej Dušek"],"abstract":"While recent neural sequence-to-sequence models have greatly improved the quality of speech synthesis, there has not been a system capable of fast training, fast inference and high-quality audio synthesis at the same time. We propose a student-teacher network capable of high-quality faster-than-real-time spectrogram synthesis, with low requirements on computational resources and fast training time. We show that self-attention layers are not necessary for generation of high quality audio. We utilize simple convolutional blocks with residual connections in both student and teacher networks and use only a single attention layer in the teacher model. Coupled with a MelGAN vocoder, our model's voice quality was rated significantly higher than Tacotron 2. Our model can be efficiently trained on a single GPU and can run in real time even on a CPU. We provide both our source code and audio samples in our GitHub repository.","url_abs":"https://arxiv.org/abs/2008.03802v1","url_pdf":"https://arxiv.org/pdf/2008.03802v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"speedyspeech-efficient-neural-speech","repo_url":"https://github.com/janvainer/speedyspeech","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"speedyspeech-efficient-neural-speech","repo_url":"https://github.com/coqui-ai/TTS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MPL-2.0"}},{"paper_slug":"speedyspeech-efficient-neural-speech","repo_url":"https://github.com/PaddlePaddle/PaddleSpeech","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"audio-synthesis","task_name":"Audio Synthesis"},{"task_slug":null,"task_name":"CPU"},{"task_slug":null,"task_name":"GPU"},{"task_slug":"speech-synthesis","task_name":"Speech Synthesis"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bigru","method_name":"BiGRU"},{"method_slug":"bilstm","method_name":"BiLSTM"},{"method_slug":"cbhg","method_name":"CBHG"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dilated-causal-convolution","method_name":"Dilated Causal Convolution"},{"method_slug":"dilated-convolution","method_name":"Dilated Convolution"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gan-hinge-loss","method_name":"GAN Hinge Loss"},{"method_slug":"gru","method_name":"GRU"},{"method_slug":"griffin-lim-algorithm","method_name":"Griffin-Lim Algorithm"},{"method_slug":"grouped-convolution","method_name":"Grouped Convolution"},{"method_slug":"highway-layer","method_name":"Highway Layer"},{"method_slug":"highway-network","method_name":"Highway Network"},{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"location-sensitive-attention","method_name":"Location Sensitive Attention"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"melgan","method_name":"MelGAN"},{"method_slug":"melgan-residual-block","method_name":"MelGAN Residual Block"},{"method_slug":"mixture-of-logistic-distributions","method_name":"Mixture of Logistic Distributions"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"residual-gru","method_name":"Residual GRU"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"tacotron","method_name":"Tacotron"},{"method_slug":"tacotron-2","method_name":"Tacotron 2"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"},{"method_slug":"wavenet","method_name":"WaveNet"},{"method_slug":"weight-normalization","method_name":"Weight Normalization"},{"method_slug":"window-based-discriminator","method_name":"Window-based Discriminator"},{"method_slug":"zoneout","method_name":"Zoneout"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2008.03802","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2008.03802"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PaddlePaddle/PaddleSpeech","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/coqui-ai/TTS","reach":{"status":"ok","spdx":"MPL-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/janvainer/speedyspeech","reach":null}],"summary":{"ran_draft_wrong":1},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"97ca48deb60ad5e4","entry":"expand_encodings","repo":"janvainer/speedyspeech","repo_kind":"official","path":"code/speedyspeech.py","file_url":"https://github.com/janvainer/speedyspeech/blob/HEAD/code/speedyspeech.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"97ca48deb60ad5e4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}