Research · Semantic Communication

DeepSC-S Reproduction

A working PyTorch reproduction of DeepSC-S (Weng, Qin & Li, 2021), semantic communication for speech, built as a staged lab notebook where every intermediate step is visible.

7.5–10.5 dB SDR (AWGN) <1 dB matched vs mismatched 3 channels

Problem

DeepSC-S (arXiv:2012.05369) transmits the meaning of speech rather than its bits, but the paper leaves key choices unspecified. Reproducing it means resolving each one with evidence rather than guessing.

Approach

  • Hypothesis-test every open choice against the official TensorFlow reference. For example, the paper's "4×32" turns out to mean cardinality × filter count, not kernel size.
  • Five staged notebooks: audio framing round trip → autoencoder with no channel → power constraint + AWGN → Rayleigh/Rician fading tested across channels → real-data SDR/PESQ results.
  • Documented deviations: Adam instead of SGD for speed at this scale, and training SNR sampled uniformly from 0–20 dB each step instead of a fixed 8 dB, so the encoding stays robust across the whole range.
  • Reproducible tooling: a tested deepscs/ package, a training script logging to Weights & Biases, and a script reproducing the paper's Fig. 4 with identical noise draws per model.

Results

  • 7.5–10.5 dB SDR on AWGN across the experiment grid (AWGN, Rayleigh, and Rician at 0–20 dB SNR).
  • Less than 1 dB gap between matched and mismatched channels, so one model generalizes across channels without retraining.
  • The curves cross near 11–12 dB rather than the paper's ~8 dB. This is explained by training across SNRs instead of at a single one.
  • Final AWGN, Rayleigh, and Rician weights published on Hugging Face.

Stack

PyTorchWeights & BiasesHugging FaceJupyteruv