{"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/unsupervised-speech-decomposition-via-triple","title":"Unsupervised Speech Decomposition via Triple Information Bottleneck","arxiv_id":"2004.11284","date":"2020-04-23","proceeding":"ICML 2020 1","authors":["Kaizhi Qian","Yang Zhang","Shiyu Chang","David Cox","Mark Hasegawa-Johnson"],"abstract":"Speech information can be roughly decomposed into four components: language content, timbre, pitch, and rhythm. Obtaining disentangled representations of these components is useful in many speech analysis and generation applications. Recently, state-of-the-art voice conversion systems have led to speech representations that can disentangle speaker-dependent and independent information. However, these systems can only disentangle timbre, while information about pitch, rhythm and content is still mixed together. Further disentangling the remaining speech components is an under-determined problem in the absence of explicit annotations for each component, which are difficult and expensive to obtain. In this paper, we propose SpeechSplit, which can blindly decompose speech into its four components by introducing three carefully designed information bottlenecks. SpeechSplit is among the first algorithms that can separately perform style transfer on timbre, pitch and rhythm without text labels. Our code is publicly available at https://github.com/auspicious3000/SpeechSplit.","url_abs":"https://arxiv.org/abs/2004.11284v6","url_pdf":"https://arxiv.org/pdf/2004.11284v6.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":"unsupervised-speech-decomposition-via-triple","repo_url":"https://github.com/auspicious3000/SpeechSplit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"unsupervised-speech-decomposition-via-triple","repo_url":"https://github.com/CODEJIN/SPEECHSPLIT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"unsupervised-speech-decomposition-via-triple","repo_url":"https://github.com/FurkanGozukara/SpeechSplitTest","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"unsupervised-speech-decomposition-via-triple","repo_url":"https://github.com/auspicious3000/autovc","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"unsupervised-speech-decomposition-via-triple","repo_url":"https://github.com/tobwei/disentintel","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"unsupervised-speech-decomposition-via-triple","repo_url":"https://github.com/keonlee9420/STYLER","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"rhythm","task_name":"Rhythm"},{"task_slug":"style-transfer","task_name":"Style Transfer"},{"task_slug":"voice-conversion","task_name":"Voice Conversion"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2004.11284","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2004.11284"}},"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/FurkanGozukara/SpeechSplitTest","reach":{"status":"ok","spdx":"MIT"}},{"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/tobwei/disentintel","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/CODEJIN/SPEECHSPLIT","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/auspicious3000/autovc","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/auspicious3000/SpeechSplit","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":12},"by_repo_kind":{"official":{"samples":5,"ran":0,"repositories":1},"listed":{"samples":7,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"494d58dba436fa48","entry":"Preemphasis","repo":"CODEJIN/SPEECHSPLIT","repo_kind":"listed","path":"Audio.py","file_url":"https://github.com/CODEJIN/SPEECHSPLIT/blob/HEAD/Audio.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":"494d58dba436fa48"}},{"code_sha256_prefix":"bd4055b8505914e7","entry":"butter_highpass","repo":"auspicious3000/SpeechSplit","repo_kind":"official","path":"utils.py","file_url":"https://github.com/auspicious3000/SpeechSplit/blob/HEAD/utils.py","link_basis":"first_harvest_node","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":"bd4055b8505914e7"}},{"code_sha256_prefix":"e507922638a3a56e","entry":"cumulativeMeanNormalizedDifferenceFunction","repo":"CODEJIN/SPEECHSPLIT","repo_kind":"listed","path":"yin.py","file_url":"https://github.com/CODEJIN/SPEECHSPLIT/blob/HEAD/yin.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":"e507922638a3a56e"}},{"code_sha256_prefix":"3cbbf9560f72cc60","entry":"differenceFunction","repo":"CODEJIN/SPEECHSPLIT","repo_kind":"listed","path":"yin.py","file_url":"https://github.com/CODEJIN/SPEECHSPLIT/blob/HEAD/yin.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":"3cbbf9560f72cc60"}},{"code_sha256_prefix":"762aa23bfe00152c","entry":"getPitch","repo":"CODEJIN/SPEECHSPLIT","repo_kind":"listed","path":"yin.py","file_url":"https://github.com/CODEJIN/SPEECHSPLIT/blob/HEAD/yin.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":"762aa23bfe00152c"}},{"code_sha256_prefix":"60e1b14d63143cce","entry":"get_loader","repo":"auspicious3000/SpeechSplit","repo_kind":"official","path":"data_loader.py","file_url":"https://github.com/auspicious3000/SpeechSplit/blob/HEAD/data_loader.py","link_basis":"first_harvest_node","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":"60e1b14d63143cce"}},{"code_sha256_prefix":"9190dd81722f0209","entry":"get_loader","repo":"auspicious3000/autovc","repo_kind":"listed","path":"data_loader.py","file_url":"https://github.com/auspicious3000/autovc/blob/HEAD/data_loader.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":"9190dd81722f0209"}},{"code_sha256_prefix":"a06b32f0a03e5e15","entry":"get_loader","repo":"tobwei/disentintel","repo_kind":"listed","path":"data_loader.py","file_url":"https://github.com/tobwei/disentintel/blob/HEAD/data_loader.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":"a06b32f0a03e5e15"}},{"code_sha256_prefix":"a526fa3bf263b12d","entry":"parse_values","repo":"auspicious3000/SpeechSplit","repo_kind":"official","path":"tfcompat/hparam.py","file_url":"https://github.com/auspicious3000/SpeechSplit/blob/HEAD/tfcompat/hparam.py","link_basis":"first_harvest_node","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":"a526fa3bf263b12d"}},{"code_sha256_prefix":"d02424cc0a1be609","entry":"pySTFT","repo":"auspicious3000/SpeechSplit","repo_kind":"official","path":"utils.py","file_url":"https://github.com/auspicious3000/SpeechSplit/blob/HEAD/utils.py","link_basis":"first_harvest_node","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":"d02424cc0a1be609"}},{"code_sha256_prefix":"a2f543b45bd3fb47","entry":"random_resmpling_factors","repo":"CODEJIN/SPEECHSPLIT","repo_kind":"listed","path":"Datasets.py","file_url":"https://github.com/CODEJIN/SPEECHSPLIT/blob/HEAD/Datasets.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":"a2f543b45bd3fb47"}},{"code_sha256_prefix":"3c696d6a48af79fc","entry":"speaker_normalization","repo":"auspicious3000/SpeechSplit","repo_kind":"official","path":"utils.py","file_url":"https://github.com/auspicious3000/SpeechSplit/blob/HEAD/utils.py","link_basis":"first_harvest_node","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":"3c696d6a48af79fc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}