{"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/fastspeech-fast-robust-and-controllable-text","title":"FastSpeech: Fast, Robust and Controllable Text to Speech","arxiv_id":"1905.09263","date":"2019-05-22","proceeding":"NeurIPS 2019 12","authors":["Yi Ren","Yangjun Ruan","Xu Tan","Tao Qin","Sheng Zhao","Zhou Zhao","Tie-Yan Liu"],"abstract":"Neural network based end-to-end text to speech (TTS) has significantly improved the quality of synthesized speech. Prominent methods (e.g., Tacotron 2) usually first generate mel-spectrogram from text, and then synthesize speech from the mel-spectrogram using vocoder such as WaveNet. Compared with traditional concatenative and statistical parametric approaches, neural network based end-to-end models suffer from slow inference speed, and the synthesized speech is usually not robust (i.e., some words are skipped or repeated) and lack of controllability (voice speed or prosody control). In this work, we propose a novel feed-forward network based on Transformer to generate mel-spectrogram in parallel for TTS. Specifically, we extract attention alignments from an encoder-decoder based teacher model for phoneme duration prediction, which is used by a length regulator to expand the source phoneme sequence to match the length of the target mel-spectrogram sequence for parallel mel-spectrogram generation. Experiments on the LJSpeech dataset show that our parallel model matches autoregressive models in terms of speech quality, nearly eliminates the problem of word skipping and repeating in particularly hard cases, and can adjust voice speed smoothly. Most importantly, compared with autoregressive Transformer TTS, our model speeds up mel-spectrogram generation by 270x and the end-to-end speech synthesis by 38x. Therefore, we call our model FastSpeech.","url_abs":"https://arxiv.org/abs/1905.09263v5","url_pdf":"https://arxiv.org/pdf/1905.09263v5.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":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/as-ideas/TransformerTTS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/as-ideas/deepforcedaligner","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/bloodraven66/deepforcedaligner","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/cadia-lvl/fastspeech2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","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":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/dathudeptrai/TensorflowTTS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/erasedwalt/FastSpeech","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/ga642381/FastSpeech2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/jkyunnng/happyquokka_system_for_eeg_challenge","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/kdaip/stabletts","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/ming024/FastSpeech2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/rishikksh20/FastSpeech2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/rishikksh20/LightSpeech","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/tartunlp/transformertts","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/xcmyz/FastSpeech","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/2023-MindSpore-1/ms-code-15/tree/main/FastSpeech","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","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"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/keonlee9420/Comprehensive-Transformer-TTS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/keonlee9420/Expressive-FastSpeech2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/keonlee9420/PortaSpeech","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/keonlee9420/STYLER","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"fastspeech-fast-robust-and-controllable-text","repo_url":"https://github.com/keonlee9420/StyleSpeech","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"speech-synthesis","task_name":"Speech Synthesis"},{"task_slug":"text-to-speech","task_name":"Text to Speech"},{"task_slug":"text-to-speech-synthesis","task_name":"Text-To-Speech Synthesis"},{"task_slug":"text-to-speech-1","task_name":"text-to-speech"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"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":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"mixture-of-logistic-distributions","method_name":"Mixture of Logistic Distributions"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"speed","method_name":"SPEED"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"},{"method_slug":"transformer","method_name":"Transformer"},{"method_slug":"wavenet","method_name":"WaveNet"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/text-to-speech-synthesis-on-ljspeech","task":"Text-To-Speech Synthesis","dataset":"LJSpeech","model":"FastSpeech (Mel + WaveGlow)","rank_in_archive_order":10,"of":16,"metrics":{"Audio Quality MOS":"3.84"},"uses_additional_data":true},{"leaderboard":"/sota/text-to-speech-synthesis-on-ljspeech","task":"Text-To-Speech Synthesis","dataset":"LJSpeech","model":"Merlin","rank_in_archive_order":12,"of":16,"metrics":{"Audio Quality MOS":"2.4"},"uses_additional_data":true}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.09263","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.09263"}},"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/rishikksh20/LightSpeech","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/keonlee9420/STYLER","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/keonlee9420/StyleSpeech","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tartunlp/transformertts","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/as-ideas/deepforcedaligner","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/dathudeptrai/TensorflowTTS","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/xcmyz/FastSpeech","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cadia-lvl/fastspeech2","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/2023-MindSpore-1/ms-code-15/tree/main/FastSpeech","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kdaip/stabletts","reach":null},{"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/as-ideas/TransformerTTS","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ga642381/FastSpeech2","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/keonlee9420/PortaSpeech","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rishikksh20/FastSpeech2","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/keonlee9420/Comprehensive-Transformer-TTS","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/keonlee9420/Expressive-FastSpeech2","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ming024/FastSpeech2","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bloodraven66/deepforcedaligner","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/erasedwalt/FastSpeech","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jkyunnng/happyquokka_system_for_eeg_challenge","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":3,"unverified":8},"by_repo_kind":{"listed":{"samples":9,"ran":1,"repositories":3}},"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":3,"samples":[{"code_sha256_prefix":"141ed5512c50d7db","entry":"process_paragraph","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"141ed5512c50d7db"}},{"code_sha256_prefix":"2b5c06c1ba593c3c","entry":"read_lexicon","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"2b5c06c1ba593c3c"}},{"code_sha256_prefix":"e68a2e13d0cbe0f9","entry":"read_lexicon","repo":"keonlee9420/Expressive-FastSpeech2","repo_kind":"listed","path":"synthesize.py","file_url":"https://github.com/keonlee9420/Expressive-FastSpeech2/blob/HEAD/synthesize.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e68a2e13d0cbe0f9"}},{"code_sha256_prefix":"63a432b575d3d1fd","entry":"collate_dataset","repo":"as-ideas/deepforcedaligner","repo_kind":"listed","path":"dfa/dataset.py","file_url":"https://github.com/as-ideas/deepforcedaligner/blob/HEAD/dfa/dataset.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"63a432b575d3d1fd"}},{"code_sha256_prefix":"7c54f74423ae2ae2","entry":"from_node_index","repo":"as-ideas/deepforcedaligner","repo_kind":"listed","path":"dfa/duration_extraction.py","file_url":"https://github.com/as-ideas/deepforcedaligner/blob/HEAD/dfa/duration_extraction.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7c54f74423ae2ae2"}},{"code_sha256_prefix":"8ff429bfc952ac29","entry":"get_files","repo":"as-ideas/deepforcedaligner","repo_kind":"listed","path":"dfa/utils.py","file_url":"https://github.com/as-ideas/deepforcedaligner/blob/HEAD/dfa/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8ff429bfc952ac29"}},{"code_sha256_prefix":"18b04be71b1d8e19","entry":"read_config","repo":"as-ideas/deepforcedaligner","repo_kind":"listed","path":"dfa/utils.py","file_url":"https://github.com/as-ideas/deepforcedaligner/blob/HEAD/dfa/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"18b04be71b1d8e19"}},{"code_sha256_prefix":"76da406d31f0074d","entry":"read_metafile","repo":"as-ideas/deepforcedaligner","repo_kind":"listed","path":"dfa/utils.py","file_url":"https://github.com/as-ideas/deepforcedaligner/blob/HEAD/dfa/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"76da406d31f0074d"}},{"code_sha256_prefix":"9ca6411791cad183","entry":"read_metafile","repo":"bloodraven66/deepforcedaligner","repo_kind":"listed","path":"dfa/utils.py","file_url":"https://github.com/bloodraven66/deepforcedaligner/blob/HEAD/dfa/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9ca6411791cad183"}},{"code_sha256_prefix":"225cb1b140f846ff","entry":"to_adj_matrix","repo":"as-ideas/deepforcedaligner","repo_kind":"listed","path":"dfa/duration_extraction.py","file_url":"https://github.com/as-ideas/deepforcedaligner/blob/HEAD/dfa/duration_extraction.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"225cb1b140f846ff"}},{"code_sha256_prefix":"a2ea77bb519c9fc7","entry":"to_node_index","repo":"as-ideas/deepforcedaligner","repo_kind":"listed","path":"dfa/duration_extraction.py","file_url":"https://github.com/as-ideas/deepforcedaligner/blob/HEAD/dfa/duration_extraction.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a2ea77bb519c9fc7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}