{"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/dypcl-dynamic-phoneme-level-contrastive","title":"DyPCL: Dynamic Phoneme-level Contrastive Learning for Dysarthric Speech Recognition","arxiv_id":"2501.19010","date":"2025-01-31","proceeding":null,"authors":["Wonjun Lee","Solee Im","Heejin Do","Yunsu Kim","Jungseul Ok","Gary Geunbae Lee"],"abstract":"Dysarthric speech recognition often suffers from performance degradation due to the intrinsic diversity of dysarthric severity and extrinsic disparity from normal speech. To bridge these gaps, we propose a Dynamic Phoneme-level Contrastive Learning (DyPCL) method, which leads to obtaining invariant representations across diverse speakers. We decompose the speech utterance into phoneme segments for phoneme-level contrastive learning, leveraging dynamic connectionist temporal classification alignment. Unlike prior studies focusing on utterance-level embeddings, our granular learning allows discrimination of subtle parts of speech. In addition, we introduce dynamic curriculum learning, which progressively transitions from easy negative samples to difficult-to-distinguishable negative samples based on phonetic similarity of phoneme. Our approach to training by difficulty levels alleviates the inherent variability of speakers, better identifying challenging speeches. Evaluated on the UASpeech dataset, DyPCL outperforms baseline models, achieving an average 22.10\\% relative reduction in word error rate (WER) across the overall dysarthria group.","url_abs":"https://arxiv.org/abs/2501.19010v2","url_pdf":"https://arxiv.org/pdf/2501.19010v2.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":[],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":"speech-recognition","task_name":"Speech Recognition"},{"task_slug":"speech-recognition-1","task_name":"speech-recognition"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2501.19010","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2501.19010"}},"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":"deterministic:regex_extraction","url":"https://github.com/dmort27/panphon","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":14},"by_repo_kind":{"found_in_text":{"samples":14,"ran":0,"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":"ce3334ed30edebac","entry":"dogol_leven_dist","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/bin/align_wordlists.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/bin/align_wordlists.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":"ce3334ed30edebac"}},{"code_sha256_prefix":"0c005def5a2a6c24","entry":"feature_hamming_dist","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/bin/align_wordlists.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/bin/align_wordlists.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":"0c005def5a2a6c24"}},{"code_sha256_prefix":"de4fc622bf3691c5","entry":"flip","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/permissive.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/permissive.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":"de4fc622bf3691c5"}},{"code_sha256_prefix":"1f5a3c75c78cb558","entry":"fts","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/_panphon.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/_panphon.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":"1f5a3c75c78cb558"}},{"code_sha256_prefix":"277f97e8c5873b8c","entry":"ftstr2dict","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/distance.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/distance.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":"277f97e8c5873b8c"}},{"code_sha256_prefix":"286770a9471a65cf","entry":"generate_feature_vectors","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/panphonvec.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/panphonvec.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":"286770a9471a65cf"}},{"code_sha256_prefix":"0bacc4d8991f7d99","entry":"generate_modifiers","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/panphonvec.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/panphonvec.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":"0bacc4d8991f7d99"}},{"code_sha256_prefix":"409384dc1505919f","entry":"levenshtein_dist","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/bin/align_wordlists.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/bin/align_wordlists.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":"409384dc1505919f"}},{"code_sha256_prefix":"2a594bf8d80114e7","entry":"pat","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/_panphon.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/_panphon.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":"2a594bf8d80114e7"}},{"code_sha256_prefix":"5ba9dee80f06cc42","entry":"update_ft_set","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/permissive.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/permissive.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":"5ba9dee80f06cc42"}},{"code_sha256_prefix":"40ff49612ac3ccee","entry":"vector_to_tuple","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/panphonvec.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/panphonvec.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":"40ff49612ac3ccee"}},{"code_sha256_prefix":"f8e148176e389e52","entry":"word2array","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/_panphon.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/_panphon.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":"f8e148176e389e52"}},{"code_sha256_prefix":"78b14be49ee5b8e9","entry":"xsampaopt","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/distance.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/distance.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":"78b14be49ee5b8e9"}},{"code_sha256_prefix":"66168504601bef77","entry":"zerodiviszero","repo":"dmort27/panphon","repo_kind":"found_in_text","path":"panphon/distance.py","file_url":"https://github.com/dmort27/panphon/blob/HEAD/panphon/distance.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":"66168504601bef77"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}