{"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/glow-tts-a-generative-flow-for-text-to-speech","title":"Glow-TTS: A Generative Flow for Text-to-Speech via Monotonic Alignment Search","arxiv_id":"2005.11129","date":"2020-05-22","proceeding":"NeurIPS 2020 12","authors":["Jaehyeon Kim","Sungwon Kim","Jungil Kong","Sungroh Yoon"],"abstract":"Recently, text-to-speech (TTS) models such as FastSpeech and ParaNet have been proposed to generate mel-spectrograms from text in parallel. Despite the advantages, the parallel TTS models cannot be trained without guidance from autoregressive TTS models as their external aligners. In this work, we propose Glow-TTS, a flow-based generative model for parallel TTS that does not require any external aligner. We introduce Monotonic Alignment Search (MAS), an internal alignment search algorithm for training Glow-TTS. By leveraging the properties of flows, MAS searches for the most probable monotonic alignment between text and the latent representation of speech. Glow-TTS obtains an order-of-magnitude speed-up over the autoregressive TTS model, Tacotron 2, at synthesis with comparable speech quality, requiring only 1.5 seconds to synthesize one minute of speech in end-to-end. We further show that our model can be easily extended to a multi-speaker setting. Our demo page and code are available at public.","url_abs":"https://arxiv.org/abs/2005.11129v1","url_pdf":"https://arxiv.org/pdf/2005.11129v1.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":"glow-tts-a-generative-flow-for-text-to-speech","repo_url":"https://github.com/jaywalnut310/glow-tts","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"glow-tts-a-generative-flow-for-text-to-speech","repo_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"glow-tts-a-generative-flow-for-text-to-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":"glow-tts-a-generative-flow-for-text-to-speech","repo_url":"https://github.com/revsic/tf-glow-tts","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"glow-tts-a-generative-flow-for-text-to-speech","repo_url":"https://github.com/supertone-inc/super-monotonic-align","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"glow-tts-a-generative-flow-for-text-to-speech","repo_url":"https://github.com/keonlee9420/VAENAR-TTS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"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":"activation-normalization","method_name":"Activation Normalization"},{"method_slug":"affine-coupling","method_name":"Affine Coupling"},{"method_slug":"glow","method_name":"GLOW"},{"method_slug":"glow-tts","method_name":"Glow-TTS"},{"method_slug":"invertible-1x1-convolution","method_name":"Invertible 1x1 Convolution"},{"method_slug":"normalizing-flows","method_name":"Normalizing Flows"}],"datasets_introduced":[],"methods_introduced":[{"slug":"glow-tts","name":"Glow-TTS","full_name":"Glow-TTS"}],"results":[{"leaderboard":"/sota/text-to-speech-synthesis-on-ljspeech","task":"Text-To-Speech Synthesis","dataset":"LJSpeech","model":"Glow-TTS + HiFiGAN","rank_in_archive_order":4,"of":16,"metrics":{"Audio Quality MOS":"4.34"},"uses_additional_data":true}],"syntology":{"syntology_url":"https://syntology.ai/paper/2005.11129","atlas_url":"https://app.syntology.ai/?focus=2005.11129","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2005.11129"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/jaywalnut310/glow-tts","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ankurdhuriya/multispeaker-glow-tts","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/supertone-inc/super-monotonic-align","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/revsic/tf-glow-tts","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/keonlee9420/VAENAR-TTS","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/coqui-ai/TTS","reach":{"status":"ok","spdx":"MPL-2.0"}}],"summary":{"ran":6,"ran_draft_wrong":2,"unverified":6},"by_repo_kind":{"listed":{"samples":14,"ran":8,"repositories":2}},"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":"a3a74a14c1d23fbb","entry":"basic_cleaners","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"text/cleaners.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/text/cleaners.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a3a74a14c1d23fbb"}},{"code_sha256_prefix":"7669c05d620e883e","entry":"collapse_whitespace","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"text/cleaners.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/text/cleaners.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7669c05d620e883e"}},{"code_sha256_prefix":"83e2c862f7374ac7","entry":"dynamic_range_compression","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"audio_processing.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/audio_processing.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"83e2c862f7374ac7"}},{"code_sha256_prefix":"9f9ec26d4cdfdf7d","entry":"griffin_lim","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"audio_processing.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/audio_processing.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9f9ec26d4cdfdf7d"}},{"code_sha256_prefix":"321604dda57bb02d","entry":"latest_checkpoint_path","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"321604dda57bb02d"}},{"code_sha256_prefix":"a93e65374343828b","entry":"load_state","repo":"revsic/tf-glow-tts","repo_kind":"listed","path":"config.py","file_url":"https://github.com/revsic/tf-glow-tts/blob/HEAD/config.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a93e65374343828b"}},{"code_sha256_prefix":"f7da3590296389c4","entry":"mask_from_len","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"monotonic_align/monotonic_align/mas.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/monotonic_align/monotonic_align/mas.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f7da3590296389c4"}},{"code_sha256_prefix":"af9a236f8ff4a594","entry":"mask_from_lens","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"monotonic_align/monotonic_align/mas.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/monotonic_align/monotonic_align/mas.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"af9a236f8ff4a594"}},{"code_sha256_prefix":"2b6c52ad9b61c287","entry":"duration_loss","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"commons.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/commons.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":"2b6c52ad9b61c287"}},{"code_sha256_prefix":"c01a3efb274ff778","entry":"intersperse","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"commons.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/commons.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":"c01a3efb274ff778"}},{"code_sha256_prefix":"a4324b03a174abb9","entry":"load_checkpoint","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/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":"a4324b03a174abb9"}},{"code_sha256_prefix":"296274b940cb0b32","entry":"lowercase","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"text/cleaners.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/text/cleaners.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":"296274b940cb0b32"}},{"code_sha256_prefix":"77759e4586956310","entry":"mle_loss","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"commons.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/commons.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":"77759e4586956310"}},{"code_sha256_prefix":"9dc202f235585e84","entry":"plot_spectrogram_to_numpy","repo":"ankurdhuriya/multispeaker-glow-tts","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/ankurdhuriya/multispeaker-glow-tts/blob/HEAD/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":"9dc202f235585e84"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}