Papers › Conv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation

Conv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation

20 Sep 2018arXiv:1809.07454archive 2025-07-28

Yi Luo, Nima Mesgarani

Single-channel, speaker-independent speech separation methods have recently seen great progress. However, the accuracy, latency, and computational cost of such methods remain insufficient. The majority of the previous methods have formulated the separation problem through the time-frequency representation of the mixed signal, which has several drawbacks, including the decoupling of the phase and magnitude of the signal, the suboptimality of time-frequency representation for speech separation, and the long latency in calculating the spectrograms. To address these shortcomings, we propose a fully-convolutional time-domain audio separation network (Conv-TasNet), a deep learning framework for end-to-end time-domain speech separation. Conv-TasNet uses a linear encoder to generate a representation of the speech waveform optimized for separating individual speakers. Speaker separation is achieved by applying a set of weighting functions (masks) to the encoder output. The modified encoder representations are then inverted back to the waveforms using a linear decoder. The masks are found using a temporal convolutional network (TCN) consisting of stacked 1-D dilated convolutional blocks, which allows the network to model the long-term dependencies of the speech signal while maintaining a small model size. The proposed Conv-TasNet system significantly outperforms previous time-frequency masking methods in separating two- and three-speaker mixtures. Additionally, Conv-TasNet surpasses several ideal time-frequency magnitude masks in two-speaker speech separation as evaluated by both objective distortion measures and subjective quality assessment by human listeners. Finally, Conv-TasNet has a significantly smaller model size and a shorter minimum latency, making it a suitable solution for both offline and real-time speech separation applications.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1809.07454")

Code

Syntology Ran 7 of 36 code samples harvested from 7 repositories linked to this paper; 29 have no recorded run. Of those that ran: 3 ran · honoured contract; 2 ran · violated contract; 2 ran · our draft was wrong.

By repository: community (archive-listed): 36 samples from 7 repositories, 7 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

17 repositories listed; official and paper-mentioned ones first.

naplab/Conv-TasNet officialmentioned in paperpytorch report
IliasDG/Demucs_Project mentioned on GitHubpytorchMIT report
adamwhitakerwilson/speaker_separation mentioned on GitHubpytorch report
alibabasglab/frcrn mentioned on GitHubpytorch report
facebookresearch/demucs mentioned on GitHubpytorch report
facebookresearch/svoice mentioned on GitHubpytorch report
funcwj/conv-tas-net mentioned on GitHubpytorchMIT report
funcwj/conv-tasnet mentioned on GitHubpytorchMIT report
kaituoxu/Conv-TasNet mentioned on GitHubpytorch report
mitmedialab/unet4birds mentioned on GitHubpytorch report
mpariente/asteroid mentioned on GitHubpytorchMIT report
muhammad-ahmed-ghani/svoice_demo mentioned on GitHubpytorch report
pfnet-research/meta-tasnet mentioned on GitHubpytorchMIT report
robieta/demucs mentioned on GitHubpytorchMIT report
saurjya/asteroid mentioned on GitHubpytorchMIT report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

36 samples harvested; 7 ran; 3 honoured the contract we drafted; 29 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

3ran · honoured contract
2ran · violated contract
2ran · our draft was wrong
29unverified

Licence: 16 of the 36 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 7 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

cal_SISNR kaituoxu/Conv-TasNet/src/evaluate.py community (archive-listed) ran · violated contract fingerprinted MIT (permissive) · faac9c0b7e1a08c5 · report
cal_SISNR xiaolianggeitazgh/Conv-Tasnet/evaluate.py community (archive-listed) ran · violated contract fingerprinted Apache-2.0 (permissive) · 891e417fc38edeb0 · report
cal_SISNRi kaituoxu/Conv-TasNet/src/evaluate.py community (archive-listed) ran · honoured contract fingerprinted MIT (permissive) · b19791aa06bb7b9b · report
cal_SISNRi xiaolianggeitazgh/Conv-Tasnet/evaluate.py community (archive-listed) ran · honoured contract fingerprinted Apache-2.0 (permissive) · ca6c3339d98f2a2c · report
check_parameters JusperLee/Conv-TasNet/Conv_TasNet_Pytorch/Conv_TasNet.py community (archive-listed) ran · honoured contract no licence file found · pointer only · bbd39ee3588090e3 · report
chose_norm kaituoxu/Conv-TasNet/src/conv_tasnet.py community (archive-listed) ran · our draft was wrong MIT (permissive) · 22f921651bb6e769 · report
select_norm JusperLee/Conv-TasNet/Conv_TasNet_Pytorch/Conv_TasNet.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · fd365b69d72fe0c9 · report
Conv1dWrapper pfnet-research/meta-tasnet/model/conv1d.py community (archive-listed) unverified MIT (permissive) · b80414a2c961fe63 · report
GroupNormWrapper pfnet-research/meta-tasnet/model/group_norm.py community (archive-listed) unverified MIT (permissive) · 60382cdca01c9e16 · report
average_metric IliasDG/Demucs_Project/demucs/utils.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · a68dbf50b2629a55 · report
build_metadata IliasDG/Demucs_Project/demucs/compressed.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · ffd24b3bb5a4d744 · report
build_metadata robieta/demucs/demucs/compressed.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · b482cd70c4311bcc · report
build_norm funcwj/conv-tasnet/nnet/conv_tas_net.py community (archive-listed) unverified MIT (permissive) · cc51e06c5fd96123 · report
center_trim IliasDG/Demucs_Project/demucs/utils.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · f89970356c8e9506 · report
chose_norm IliasDG/Demucs_Project/demucs/tasnet.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · c20ada1396105c22 · report
dissimilarity_loss pfnet-research/meta-tasnet/utility/loss.py community (archive-listed) unverified MIT (permissive) · 6d72bd968efb3b87 · report
downsample IliasDG/Demucs_Project/demucs/model.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · 07fa2ca4b8bf0830 · report
fname IliasDG/Demucs_Project/dora.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · 9f54a0c5172ff77c · report
free_port IliasDG/Demucs_Project/demucs/utils.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · f747e6cf6fc620a6 · report
get_done IliasDG/Demucs_Project/dora.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · 7bd6c5376583922a · report
get_logger funcwj/conv-tasnet/nnet/libs/utils.py community (archive-listed) unverified MIT (permissive) · d0a0123e9bc8a4c4 · report
get_name IliasDG/Demucs_Project/demucs/parser.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · dccae3e25e1c55a2 · report
get_sid IliasDG/Demucs_Project/dora.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · 4678393521f60867 · report
load_json funcwj/conv-tasnet/nnet/libs/utils.py community (archive-listed) unverified MIT (permissive) · 1a0aeff1eb7546d6 · report
load_obj funcwj/conv-tasnet/nnet/libs/trainer.py community (archive-listed) unverified MIT (permissive) · 9b384ef1d2d3ea3f · report
make_dataloader funcwj/conv-tasnet/nnet/libs/dataset.py community (archive-listed) unverified MIT (permissive) · 4e23d73a9b135dab · report
overlap_and_add IliasDG/Demucs_Project/demucs/tasnet.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · 6fc6cdb0729e7905 · report
param funcwj/conv-tasnet/nnet/conv_tas_net.py community (archive-listed) unverified MIT (permissive) · 3a4ca7c24b1659fc · report
parse_scripts funcwj/conv-tasnet/nnet/libs/audio.py community (archive-listed) unverified MIT (permissive) · 77ec6163bd018420 · report
permute_si_snr funcwj/conv-tasnet/nnet/libs/metric.py community (archive-listed) unverified MIT (permissive) · 457f6fe40f154950 · report
quantize IliasDG/Demucs_Project/quantize.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · 95678855edc371ba · report
read_wav funcwj/conv-tasnet/nnet/libs/audio.py community (archive-listed) unverified MIT (permissive) · 455d88ef82f00d25 · report
sdr_objective pfnet-research/meta-tasnet/utility/loss.py community (archive-listed) unverified MIT (permissive) · 175694073fa2797e · report
si_snr funcwj/conv-tasnet/nnet/libs/metric.py community (archive-listed) unverified MIT (permissive) · 23b2bdd3e0fe81c3 · report
similarity_loss pfnet-research/meta-tasnet/utility/loss.py community (archive-listed) unverified MIT (permissive) · 865adc65cb86cc62 · report
upsample IliasDG/Demucs_Project/demucs/model.py community (archive-listed) unverified MIT recorded; this copy not marked cleared · pointer only · 5cf51541da88d14a · report

Tasks

Multi-task Audio Source SeperationMusic Source SeparationSpeaker SeparationSpeech EnhancementSpeech Separation

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Music Source Separation MUSDB18 Conv-TasNet (extra) SDR (avg) 6.32 #14 of 27 Archive leaderboard report
Music Source Separation MUSDB18 Conv-TasNet (extra) SDR (bass) 7.00 #14 of 27 Archive leaderboard report
Music Source Separation MUSDB18 Conv-TasNet (extra) SDR (drums) 7.11 #14 of 27 Archive leaderboard report
Music Source Separation MUSDB18 Conv-TasNet (extra) SDR (vocals) 6.74 #14 of 27 Archive leaderboard report
Music Source Separation MUSDB18 Conv-TasNet SDR (avg) 5.73 #22 of 27 Archive leaderboard report
Music Source Separation MUSDB18 Conv-TasNet SDR (bass) 5.66 #22 of 27 Archive leaderboard report
Music Source Separation MUSDB18 Conv-TasNet SDR (drums) 6.08 #22 of 27 Archive leaderboard report
Music Source Separation MUSDB18 Conv-TasNet SDR (other) 4.37 #22 of 27 Archive leaderboard report
Music Source Separation MUSDB18 Conv-TasNet SDR (vocals) 6.81 #22 of 27 Archive leaderboard report
Speech Enhancement EARS-WHAM Conv-TasNet DNSMOS 3.47 #5 of 6 Archive leaderboard report
Speech Enhancement EARS-WHAM Conv-TasNet ESTOI 0.70 #5 of 6 Archive leaderboard report
Speech Enhancement EARS-WHAM Conv-TasNet PESQ-WB 2.31 #5 of 6 Archive leaderboard report
Speech Enhancement EARS-WHAM Conv-TasNet POLQA 2.73 #5 of 6 Archive leaderboard report
Speech Enhancement EARS-WHAM Conv-TasNet SI-SDR 16.93 #5 of 6 Archive leaderboard report
Speech Enhancement EARS-WHAM Conv-TasNet SIGMOS 2.69 #5 of 6 Archive leaderboard report
Speech Separation WSJ0-2mix Conv-TasNet Number of parameters (M) 5.1 #36 of 40 Archive leaderboard report
Speech Separation WSJ0-2mix Conv-TasNet SDRi 15.6 #36 of 40 Archive leaderboard report
Speech Separation WSJ0-2mix Conv-TasNet SI-SDRi 15.3 #36 of 40 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

ConvTasNet

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections