{"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/ecapa-tdnn-emphasized-channel-attention","title":"ECAPA-TDNN: Emphasized Channel Attention, Propagation and Aggregation in TDNN Based Speaker Verification","arxiv_id":"2005.07143","date":"2020-05-14","proceeding":null,"authors":["Brecht Desplanques","Jenthe Thienpondt","Kris Demuynck"],"abstract":"Current speaker verification techniques rely on a neural network to extract speaker representations. The successful x-vector architecture is a Time Delay Neural Network (TDNN) that applies statistics pooling to project variable-length utterances into fixed-length speaker characterizing embeddings. In this paper, we propose multiple enhancements to this architecture based on recent trends in the related fields of face verification and computer vision. Firstly, the initial frame layers can be restructured into 1-dimensional Res2Net modules with impactful skip connections. Similarly to SE-ResNet, we introduce Squeeze-and-Excitation blocks in these modules to explicitly model channel interdependencies. The SE block expands the temporal context of the frame layer by rescaling the channels according to global properties of the recording. Secondly, neural networks are known to learn hierarchical features, with each layer operating on a different level of complexity. To leverage this complementary information, we aggregate and propagate features of different hierarchical levels. Finally, we improve the statistics pooling module with channel-dependent frame attention. This enables the network to focus on different subsets of frames during each of the channel's statistics estimation. The proposed ECAPA-TDNN architecture significantly outperforms state-of-the-art TDNN based systems on the VoxCeleb test sets and the 2019 VoxCeleb Speaker Recognition Challenge.","url_abs":"http://arxiv.org/abs/2005.07143v3","url_pdf":"http://arxiv.org/pdf/2005.07143v3.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"ecapa-tdnn-emphasized-channel-attention","repo_url":"https://github.com/LKLQQ/ecapa_tdnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"mindspore","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"ecapa-tdnn-emphasized-channel-attention","repo_url":"https://github.com/gzhu06/tdspkr-mismatch-study","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"ecapa-tdnn-emphasized-channel-attention","repo_url":"https://github.com/joovvhan/ecapa-tdnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"ecapa-tdnn-emphasized-channel-attention","repo_url":"https://github.com/magnumresearchgroup/auxiliaryrawnet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"ecapa-tdnn-emphasized-channel-attention","repo_url":"https://github.com/ol-mega/ppca","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"ecapa-tdnn-emphasized-channel-attention","repo_url":"https://github.com/taoruijie/ecapa-tdnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"ecapa-tdnn-emphasized-channel-attention","repo_url":"https://github.com/taoruijie/ecapatdnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"ecapa-tdnn-emphasized-channel-attention","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":"ecapa-tdnn-emphasized-channel-attention","repo_url":"https://github.com/PunkMale/ECAPA-TDNN-CNCeleb","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2005.07143","atlas_url":"https://app.syntology.ai/?focus=2005.07143","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2005.07143"}},"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/magnumresearchgroup/auxiliaryrawnet","reach":{"status":"ok"}},{"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/LKLQQ/ecapa_tdnn","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/joovvhan/ecapa-tdnn","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/gzhu06/tdspkr-mismatch-study","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ol-mega/ppca","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/taoruijie/ecapa-tdnn","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PunkMale/ECAPA-TDNN-CNCeleb","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/taoruijie/ecapatdnn","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":25,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"listed":{"samples":27,"ran":26,"repositories":5}},"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":"2f8f70723c6fc25c","entry":"ComputeErrorRates","repo":"PunkMale/ECAPA-TDNN-CNCeleb","repo_kind":"listed","path":"tools.py","file_url":"https://github.com/PunkMale/ECAPA-TDNN-CNCeleb/blob/HEAD/tools.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2f8f70723c6fc25c"}},{"code_sha256_prefix":"bb83d95621d7219f","entry":"SE_Res2Block","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"backbones/aggregator/ECAPA-TDNN.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/backbones/aggregator/ECAPA-TDNN.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":"bb83d95621d7219f"}},{"code_sha256_prefix":"0c85a144d4c6f68a","entry":"calculate_eer","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"evaluate/eer_monitor.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/evaluate/eer_monitor.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":"0c85a144d4c6f68a"}},{"code_sha256_prefix":"8a1f2f7df5f4b6fe","entry":"compute_fa_miss","repo":"LKLQQ/ecapa_tdnn","repo_kind":"listed","path":"src/metrics.py","file_url":"https://github.com/LKLQQ/ecapa_tdnn/blob/HEAD/src/metrics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8a1f2f7df5f4b6fe"}},{"code_sha256_prefix":"5bdb987f035ec4ec","entry":"cosine_similarity","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"evaluate/eer_monitor.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/evaluate/eer_monitor.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":"5bdb987f035ec4ec"}},{"code_sha256_prefix":"83e2c902cae568f3","entry":"data_catalog","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"preprocessing/wavform_extract.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/preprocessing/wavform_extract.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":"83e2c902cae568f3"}},{"code_sha256_prefix":"18d1c1af085a8476","entry":"findAllUtt","repo":"PunkMale/ECAPA-TDNN-CNCeleb","repo_kind":"listed","path":"dataset.py","file_url":"https://github.com/PunkMale/ECAPA-TDNN-CNCeleb/blob/HEAD/dataset.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18d1c1af085a8476"}},{"code_sha256_prefix":"9dbd7f6108f96407","entry":"find_files","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"preprocessing/wavform_extract.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/preprocessing/wavform_extract.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":"9dbd7f6108f96407"}},{"code_sha256_prefix":"009c08f278c64a6a","entry":"get_EER","repo":"LKLQQ/ecapa_tdnn","repo_kind":"listed","path":"src/metrics.py","file_url":"https://github.com/LKLQQ/ecapa_tdnn/blob/HEAD/src/metrics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"009c08f278c64a6a"}},{"code_sha256_prefix":"ad04c8794c939048","entry":"get_EER_from_scores","repo":"LKLQQ/ecapa_tdnn","repo_kind":"listed","path":"src/metrics.py","file_url":"https://github.com/LKLQQ/ecapa_tdnn/blob/HEAD/src/metrics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ad04c8794c939048"}},{"code_sha256_prefix":"d15bcb24b6237cdb","entry":"get_last_checkpoint_if_any","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/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":"d15bcb24b6237cdb"}},{"code_sha256_prefix":"8feeecfbeb765eab","entry":"get_padding_elem","repo":"ol-mega/ppca","repo_kind":"listed","path":"speechbrain/nnet/CNN.py","file_url":"https://github.com/ol-mega/ppca/blob/HEAD/speechbrain/nnet/CNN.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8feeecfbeb765eab"}},{"code_sha256_prefix":"26b6efc761f6e025","entry":"get_padding_elem_transposed","repo":"ol-mega/ppca","repo_kind":"listed","path":"speechbrain/nnet/CNN.py","file_url":"https://github.com/ol-mega/ppca/blob/HEAD/speechbrain/nnet/CNN.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"26b6efc761f6e025"}},{"code_sha256_prefix":"fcc13d262968ef5f","entry":"init_args","repo":"PunkMale/ECAPA-TDNN-CNCeleb","repo_kind":"listed","path":"tools.py","file_url":"https://github.com/PunkMale/ECAPA-TDNN-CNCeleb/blob/HEAD/tools.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fcc13d262968ef5f"}},{"code_sha256_prefix":"9f9dfffa0e162e11","entry":"init_args","repo":"taoruijie/ecapa-tdnn","repo_kind":"listed","path":"tools.py","file_url":"https://github.com/taoruijie/ecapa-tdnn/blob/HEAD/tools.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":"9f9dfffa0e162e11"}},{"code_sha256_prefix":"1d6005e9f2222eee","entry":"latest_checkpoint_path","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"trainer/train_utils.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/trainer/train_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":"1d6005e9f2222eee"}},{"code_sha256_prefix":"1677ad306233c7b7","entry":"natural_sort","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1677ad306233c7b7"}},{"code_sha256_prefix":"4d856b195967f759","entry":"pack_padded_sequence","repo":"ol-mega/ppca","repo_kind":"listed","path":"speechbrain/nnet/RNN.py","file_url":"https://github.com/ol-mega/ppca/blob/HEAD/speechbrain/nnet/RNN.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4d856b195967f759"}},{"code_sha256_prefix":"7c9d9bad06c577fb","entry":"pad_packed_sequence","repo":"ol-mega/ppca","repo_kind":"listed","path":"speechbrain/nnet/RNN.py","file_url":"https://github.com/ol-mega/ppca/blob/HEAD/speechbrain/nnet/RNN.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7c9d9bad06c577fb"}},{"code_sha256_prefix":"bd8ed1453a55a2df","entry":"parse_arguments","repo":"ol-mega/ppca","repo_kind":"listed","path":"speechbrain/core.py","file_url":"https://github.com/ol-mega/ppca/blob/HEAD/speechbrain/core.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bd8ed1453a55a2df"}},{"code_sha256_prefix":"69748fb6d2228cc0","entry":"pickle2array","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/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":"69748fb6d2228cc0"}},{"code_sha256_prefix":"298f364b3f304c9f","entry":"quantize_midrise","repo":"ol-mega/ppca","repo_kind":"listed","path":"anonymization_methods/quantize_lpc_poles.py","file_url":"https://github.com/ol-mega/ppca/blob/HEAD/anonymization_methods/quantize_lpc_poles.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"298f364b3f304c9f"}},{"code_sha256_prefix":"8b5629f75ceda907","entry":"quantize_midtread","repo":"ol-mega/ppca","repo_kind":"listed","path":"anonymization_methods/quantize_lpc_poles.py","file_url":"https://github.com/ol-mega/ppca/blob/HEAD/anonymization_methods/quantize_lpc_poles.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8b5629f75ceda907"}},{"code_sha256_prefix":"92b93a196c3d8b18","entry":"split_data","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"trainer/train_utils.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/trainer/train_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":"92b93a196c3d8b18"}},{"code_sha256_prefix":"4b2feff2caedf01e","entry":"tuneThresholdfromScore","repo":"PunkMale/ECAPA-TDNN-CNCeleb","repo_kind":"listed","path":"tools.py","file_url":"https://github.com/PunkMale/ECAPA-TDNN-CNCeleb/blob/HEAD/tools.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4b2feff2caedf01e"}},{"code_sha256_prefix":"e40eb8a3ee8e21ed","entry":"tuneThresholdfromScore","repo":"taoruijie/ecapa-tdnn","repo_kind":"listed","path":"tools.py","file_url":"https://github.com/taoruijie/ecapa-tdnn/blob/HEAD/tools.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":"e40eb8a3ee8e21ed"}},{"code_sha256_prefix":"72855f03c7884551","entry":"trial_eer","repo":"gzhu06/tdspkr-mismatch-study","repo_kind":"listed","path":"evaluate/eer_monitor.py","file_url":"https://github.com/gzhu06/tdspkr-mismatch-study/blob/HEAD/evaluate/eer_monitor.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":"72855f03c7884551"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}