{"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/arxiv-2601-23174","title":"Beyond Fixed Frames: Dynamic Character-Aligned Speech Tokenization","arxiv_id":"2601.23174","date":"2026-01-30","proceeding":null,"authors":["Luca Della Libera","Cem Subakan","Mirco Ravanelli"],"abstract":"Neural audio codecs are at the core of modern conversational speech technologies, converting continuous speech into sequences of discrete tokens that can be processed by LLMs. However, existing codecs typically operate at fixed frame rates, allocating tokens uniformly in time and producing unnecessarily long sequences. In this work, we introduce DyCAST, a Dynamic Character-Aligned Speech Tokenizer that enables variable-frame-rate tokenization through soft character-level alignment and explicit duration modeling. DyCAST learns to associate tokens with character-level linguistic units during training and supports alignment-free inference with direct control over token durations at decoding time. To improve speech resynthesis quality at low frame rates, we further introduce a retrieval-augmented decoding mechanism that enhances reconstruction fidelity without increasing bitrate. Experiments show that DyCAST achieves competitive speech resynthesis quality and downstream performance while using significantly fewer tokens than fixed-frame-rate codecs. Code and checkpoints will be released publicly at https://github.com/lucadellalib/dycast.","url_abs":"https://arxiv.org/abs/2601.23174","url_pdf":"https://arxiv.org/pdf/2601.23174","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2601.23174","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.23174"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/microsoft/unilm","reach":null},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/lucadellalib/dycast","reach":null}],"summary":{"ran":2,"unverified":9},"by_repo_kind":{"found_in_text":{"samples":11,"ran":2,"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":"e4a392acb5b909b4","entry":"EmbeddingEMA","repo":"microsoft/unilm","repo_kind":"found_in_text","path":"beats/quantizer.py","file_url":"https://github.com/microsoft/unilm/blob/HEAD/beats/quantizer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e4a392acb5b909b4"}},{"code_sha256_prefix":"fd364885233987d7","entry":"NormEMAVectorQuantizer","repo":"microsoft/unilm","repo_kind":"found_in_text","path":"beats/quantizer.py","file_url":"https://github.com/microsoft/unilm/blob/HEAD/beats/quantizer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fd364885233987d7"}},{"code_sha256_prefix":"5227a32f8b2f92a6","entry":"batched_run_length_encode","repo":"lucadellalib/dycast","repo_kind":"found_in_text","path":"dycast/mms.py","file_url":"https://github.com/lucadellalib/dycast/blob/HEAD/dycast/mms.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5227a32f8b2f92a6"}},{"code_sha256_prefix":"72af732830e423c9","entry":"boundaries_to_durations","repo":"lucadellalib/dycast","repo_kind":"found_in_text","path":"dycast/hazard.py","file_url":"https://github.com/lucadellalib/dycast/blob/HEAD/dycast/hazard.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"72af732830e423c9"}},{"code_sha256_prefix":"3aea1727c716b779","entry":"ema_inplace","repo":"microsoft/unilm","repo_kind":"found_in_text","path":"beats/quantizer.py","file_url":"https://github.com/microsoft/unilm/blob/HEAD/beats/quantizer.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":"3aea1727c716b779"}},{"code_sha256_prefix":"313dd760ba6b1560","entry":"exact_sum_rounding","repo":"lucadellalib/dycast","repo_kind":"found_in_text","path":"dycast/negbin.py","file_url":"https://github.com/lucadellalib/dycast/blob/HEAD/dycast/negbin.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"313dd760ba6b1560"}},{"code_sha256_prefix":"aac3a3fa7fcf88a8","entry":"forward_merge_blanks","repo":"lucadellalib/dycast","repo_kind":"found_in_text","path":"dycast/mms.py","file_url":"https://github.com/lucadellalib/dycast/blob/HEAD/dycast/mms.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"aac3a3fa7fcf88a8"}},{"code_sha256_prefix":"b865ae3ee66b52d3","entry":"kmeans","repo":"microsoft/unilm","repo_kind":"found_in_text","path":"beats/quantizer.py","file_url":"https://github.com/microsoft/unilm/blob/HEAD/beats/quantizer.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":"b865ae3ee66b52d3"}},{"code_sha256_prefix":"09418b3ac8d31c11","entry":"norm_ema_inplace","repo":"microsoft/unilm","repo_kind":"found_in_text","path":"beats/quantizer.py","file_url":"https://github.com/microsoft/unilm/blob/HEAD/beats/quantizer.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":"09418b3ac8d31c11"}},{"code_sha256_prefix":"1739c3ae3b42e8d1","entry":"renormalize_mu_to_budget","repo":"lucadellalib/dycast","repo_kind":"found_in_text","path":"dycast/negbin.py","file_url":"https://github.com/lucadellalib/dycast/blob/HEAD/dycast/negbin.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1739c3ae3b42e8d1"}},{"code_sha256_prefix":"db70481eefed250a","entry":"spans_to_tensors","repo":"lucadellalib/dycast","repo_kind":"found_in_text","path":"dycast/mms.py","file_url":"https://github.com/lucadellalib/dycast/blob/HEAD/dycast/mms.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"db70481eefed250a"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}