Upload pretrained vanilla_seq2seq_multi_interfering checkpoint, TFLite model, and Model Card
Browse files- README.md +29 -29
- best.ckpt.data-00000-of-00001 +2 -2
- best.ckpt.index +0 -0
- best.ckpt.meta +2 -2
- evaluation_metrics.json +0 -0
- model.tflite +2 -2
README.md
CHANGED
|
@@ -24,7 +24,7 @@ arxiv: 2008.06006
|
|
| 24 |
Single-source sequence-to-sequence **Vanilla-Seq2seq (`NoSideInputMultiInterfering`)** baseline model trained on 24 kHz **LibriTTS** user speech mixed at 0 dB SNR with reverberant **CSTR VCTK** (109-speaker TTS interference). Takes only the noisy/reverberant microphone spectrogram (`SpeechEncoderV1`) with zero side input.
|
| 25 |
|
| 26 |
- **GitHub Repository**: [https://github.com/wq2012/tec](https://github.com/wq2012/tec)
|
| 27 |
-
- **PyPI Package**: [`textual-echo-cancellation` (v0.2.
|
| 28 |
- **Interactive Hugging Face Space Demo**: [https://huggingface.co/spaces/wq2012/tec](https://huggingface.co/spaces/wq2012/tec)
|
| 29 |
- **Paper**: [Textual Echo Cancellation (IEEE SLT 2021, arXiv:2008.06006v4)](https://arxiv.org/pdf/2008.06006)
|
| 30 |
- **Audio Demo Page**: [https://google.github.io/speaker-id/publications/TEC/](https://google.github.io/speaker-id/publications/TEC/)
|
|
@@ -47,31 +47,31 @@ Single-source sequence-to-sequence **Vanilla-Seq2seq (`NoSideInputMultiInterferi
|
|
| 47 |
|
| 48 |
### 1. Open-Source Reproduction Evaluation (`NoSideInputMultiInterfering`, N = 100 mixtures per split)
|
| 49 |
|
| 50 |
-
Evaluated on 24 kHz **LibriTTS** (`test-clean`: N = 100 mixtures,
|
| 51 |
|
| 52 |
| Metric | `test-clean` (N = 100) | `test-other` (N = 100) | Paper Reference (`Vanilla-Seq2seq`) |
|
| 53 |
| :--- | :---: | :---: | :---: |
|
| 54 |
-
| **WER (%) β** | **
|
| 55 |
-
| **MCD (dB) β** | **8.
|
| 56 |
| **Side Input Size (KB) β** | **0.000 KB** (padded: 0.000 KB) | **0.000 KB** (padded: 0.000 KB) | 0 KB |
|
| 57 |
-
| **Complexity (GFLOPS) β** | **
|
| 58 |
|
| 59 |
### 2. Full Comparison Across All Pretrained Models & Baselines (N = 100 per split)
|
| 60 |
|
| 61 |
| Condition | Method | Hugging Face Model | WER (%) test-clean β | WER (%) test-other β | MCD (dB) test-clean β | MCD (dB) test-other β | Side Input test-clean (KB) β | Avg Complexity (GFLOPS) β |
|
| 62 |
| :--- | :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
|
| 63 |
-
| **Single interfering voice** *(LibriTTS + LJSpeech)* | `GroundTruth` | β | 3.
|
| 64 |
-
| | `MicrophoneSignal` | β |
|
| 65 |
-
| | `NlmsAec` (AEC-NLMS) | β | 58.
|
| 66 |
-
| | `NoSideInputSingleInterfering` | [`wq2012/vanilla_seq2seq_single_interfering`](https://huggingface.co/wq2012/vanilla_seq2seq_single_interfering) |
|
| 67 |
-
| | `AecSingleInterfering` | [`wq2012/aec_single_interfering`](https://huggingface.co/wq2012/aec_single_interfering) |
|
| 68 |
-
| | **`TecSingleInterfering`** | **[`wq2012/tec_single_interfering`](https://huggingface.co/wq2012/tec_single_interfering)** | **
|
| 69 |
-
| **Multiple interfering voices** *(LibriTTS + VCTK)* | `GroundTruth` | β | 3.
|
| 70 |
-
| | `MicrophoneSignal` | β |
|
| 71 |
-
| | `NlmsAec` (AEC-NLMS) | β | 34.
|
| 72 |
-
| | `NoSideInputMultiInterfering` | [`wq2012/vanilla_seq2seq_multi_interfering`](https://huggingface.co/wq2012/vanilla_seq2seq_multi_interfering) |
|
| 73 |
-
| | `AecMultiInterfering` | [`wq2012/aec_multi_interfering`](https://huggingface.co/wq2012/aec_multi_interfering) |
|
| 74 |
-
| | **`TecMultiInterfering`** | **[`wq2012/tec_multi_interfering`](https://huggingface.co/wq2012/tec_multi_interfering)** | **
|
| 75 |
|
| 76 |
### 3. Text-Content Sensitivity Ablation (N = 100 per split)
|
| 77 |
|
|
@@ -79,23 +79,23 @@ Verifies that `TtsEncoderV2` actively exploits the semantic and phonetic content
|
|
| 79 |
|
| 80 |
| Split | Side-Input Condition | WER (%) β | MCD (dB) β | ΞWER vs. `matched` | Paired p-value (Bootstrap / Wilcoxon) |
|
| 81 |
| :--- | :--- | :---: | :---: | :---: | :---: |
|
| 82 |
-
| `single_test_clean` (`TecSingleInterfering`) | **`matched` (true TTS transcript)** | **
|
| 83 |
-
| | `shuffled` (mismatched transcript) |
|
| 84 |
-
| | `empty` (no text) |
|
| 85 |
-
| | `Vanilla-Seq2seq` |
|
| 86 |
-
| `multi_test_clean` (`TecMultiInterfering`) | **`matched` (true TTS transcript)** | **
|
| 87 |
-
| | `shuffled` (mismatched transcript) |
|
| 88 |
-
| | `empty` (no text) |
|
| 89 |
-
| | `Vanilla-Seq2seq` |
|
| 90 |
|
| 91 |
### 4. Input SNR Ablation on `single_test_clean` (N = 100 mixtures per SNR)
|
| 92 |
|
| 93 |
| Input SNR | `MicrophoneSignal` WER / MCD | `NlmsAec` WER / MCD | `Vanilla-Seq2seq` WER / MCD | **`TecSingleInterfering` WER / MCD** | `AecSingleInterfering` WER / MCD |
|
| 94 |
| :---: | :---: | :---: | :---: | :---: | :---: |
|
| 95 |
-
| **+5 dB** |
|
| 96 |
-
| **0 dB** |
|
| 97 |
-
| **-5 dB** |
|
| 98 |
-
| **-10 dB** |
|
| 99 |
|
| 100 |
---
|
| 101 |
|
|
|
|
| 24 |
Single-source sequence-to-sequence **Vanilla-Seq2seq (`NoSideInputMultiInterfering`)** baseline model trained on 24 kHz **LibriTTS** user speech mixed at 0 dB SNR with reverberant **CSTR VCTK** (109-speaker TTS interference). Takes only the noisy/reverberant microphone spectrogram (`SpeechEncoderV1`) with zero side input.
|
| 25 |
|
| 26 |
- **GitHub Repository**: [https://github.com/wq2012/tec](https://github.com/wq2012/tec)
|
| 27 |
+
- **PyPI Package**: [`textual-echo-cancellation` (v0.2.3)](https://pypi.org/project/textual-echo-cancellation/)
|
| 28 |
- **Interactive Hugging Face Space Demo**: [https://huggingface.co/spaces/wq2012/tec](https://huggingface.co/spaces/wq2012/tec)
|
| 29 |
- **Paper**: [Textual Echo Cancellation (IEEE SLT 2021, arXiv:2008.06006v4)](https://arxiv.org/pdf/2008.06006)
|
| 30 |
- **Audio Demo Page**: [https://google.github.io/speaker-id/publications/TEC/](https://google.github.io/speaker-id/publications/TEC/)
|
|
|
|
| 47 |
|
| 48 |
### 1. Open-Source Reproduction Evaluation (`NoSideInputMultiInterfering`, N = 100 mixtures per split)
|
| 49 |
|
| 50 |
+
Evaluated on 24 kHz **LibriTTS** (`test-clean`: N = 100 mixtures, 979 reference words; `test-other`: N = 100 mixtures, 949 reference words) mixed at 0 dB SNR under the **Multiple interfering voices (LibriTTS + VCTK)** condition, using `Qwen3-ASR-0.6B-F16` via `audio.cpp` for ASR WER scoring and 13-MFCC Dynamic Time Warping for MCD (with 10,000-resample non-parametric bootstrap 95% confidence intervals):
|
| 51 |
|
| 52 |
| Metric | `test-clean` (N = 100) | `test-other` (N = 100) | Paper Reference (`Vanilla-Seq2seq`) |
|
| 53 |
| :--- | :---: | :---: | :---: |
|
| 54 |
+
| **WER (%) β** | **63.33%** (620/979, 95% CI [55.27, 71.69]) | **69.86%** (663/949, 95% CI [61.89, 78.18]) | 19.7% / 38.7% |
|
| 55 |
+
| **MCD (dB) β** | **8.26 dB** (95% CI [7.76, 8.76]) | **9.32 dB** (95% CI [8.77, 9.89]) | 7.53 dB / 8.87 dB |
|
| 56 |
| **Side Input Size (KB) β** | **0.000 KB** (padded: 0.000 KB) | **0.000 KB** (padded: 0.000 KB) | 0 KB |
|
| 57 |
+
| **Complexity (GFLOPS) β** | **3.59 GFLOPS** | **3.28 GFLOPS** | 6.32 GFLOPS (401 frames) |
|
| 58 |
|
| 59 |
### 2. Full Comparison Across All Pretrained Models & Baselines (N = 100 per split)
|
| 60 |
|
| 61 |
| Condition | Method | Hugging Face Model | WER (%) test-clean β | WER (%) test-other β | MCD (dB) test-clean β | MCD (dB) test-other β | Side Input test-clean (KB) β | Avg Complexity (GFLOPS) β |
|
| 62 |
| :--- | :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
|
| 63 |
+
| **Single interfering voice** *(LibriTTS + LJSpeech)* | `GroundTruth` | β | 3.86 [2.43, 5.49] | 6.62 [4.66, 8.78] | 0.00 | 0.00 | 0.000 | 0.00 |
|
| 64 |
+
| | `MicrophoneSignal` | β | 80.32 [68.49, 93.55] | 102.77 [88.25, 119.32] | 9.92 [9.56, 10.27] | 10.74 [10.32, 11.16] | 0.000 | 0.00 |
|
| 65 |
+
| | `NlmsAec` (AEC-NLMS) | β | 58.38 [47.37, 71.05] | 85.77 [71.61, 102.19] | 9.51 [9.16, 9.86] | 10.33 [9.92, 10.75] | 235.403 | 0.24 |
|
| 66 |
+
| | `NoSideInputSingleInterfering` | [`wq2012/vanilla_seq2seq_single_interfering`](https://huggingface.co/wq2012/vanilla_seq2seq_single_interfering) | 39.08 [30.26, 48.91] | 54.35 [44.66, 64.93] | 7.07 [6.86, 7.29] | 7.38 [7.13, 7.64] | 0.000 | 4.17 |
|
| 67 |
+
| | `AecSingleInterfering` | [`wq2012/aec_single_interfering`](https://huggingface.co/wq2012/aec_single_interfering) | 7.91 [5.68, 10.48] | 17.29 [13.34, 21.76] | 4.97 [4.60, 5.35] | 4.96 [4.61, 5.31] | 235.403 | 6.36 |
|
| 68 |
+
| | **`TecSingleInterfering`** | **[`wq2012/tec_single_interfering`](https://huggingface.co/wq2012/tec_single_interfering)** | **29.76 [23.09, 36.97]** | **50.59 [41.96, 59.66]** | **5.52 [5.16, 5.89]** | **5.55 [5.18, 5.93]** | **0.074** | **4.62** |
|
| 69 |
+
| **Multiple interfering voices** *(LibriTTS + VCTK)* | `GroundTruth` | β | 3.06 [1.90, 4.35] | 6.85 [4.77, 9.16] | 0.00 | 0.00 | 0.000 | 0.00 |
|
| 70 |
+
| | `MicrophoneSignal` | β | 50.77 [40.86, 62.15] | 67.33 [56.40, 79.77] | 7.50 [7.13, 7.87] | 7.82 [7.41, 8.24] | 0.000 | 0.00 |
|
| 71 |
+
| | `NlmsAec` (AEC-NLMS) | β | 34.22 [25.72, 44.51] | 48.58 [39.15, 59.91] | 7.01 [6.67, 7.37] | 7.43 [7.04, 7.83] | 203.138 | 0.21 |
|
| 72 |
+
| | `NoSideInputMultiInterfering` | [`wq2012/vanilla_seq2seq_multi_interfering`](https://huggingface.co/wq2012/vanilla_seq2seq_multi_interfering) | 63.33 [55.27, 71.69] | 69.86 [61.89, 78.18] | 8.26 [7.76, 8.76] | 9.32 [8.77, 9.89] | 0.000 | 3.59 |
|
| 73 |
+
| | `AecMultiInterfering` | [`wq2012/aec_multi_interfering`](https://huggingface.co/wq2012/aec_multi_interfering) | 6.84 [4.98, 8.85] | 14.86 [11.25, 18.79] | 4.65 [4.28, 5.02] | 4.67 [4.28, 5.06] | 203.138 | 5.48 |
|
| 74 |
+
| | **`TecMultiInterfering`** | **[`wq2012/tec_multi_interfering`](https://huggingface.co/wq2012/tec_multi_interfering)** | **24.31 [18.94, 30.47]** | **36.25 [30.34, 42.52]** | **4.74 [4.42, 5.07]** | **4.91 [4.54, 5.30]** | **0.050** | **3.90** |
|
| 75 |
|
| 76 |
### 3. Text-Content Sensitivity Ablation (N = 100 per split)
|
| 77 |
|
|
|
|
| 79 |
|
| 80 |
| Split | Side-Input Condition | WER (%) β | MCD (dB) β | ΞWER vs. `matched` | Paired p-value (Bootstrap / Wilcoxon) |
|
| 81 |
| :--- | :--- | :---: | :---: | :---: | :---: |
|
| 82 |
+
| `single_test_clean` (`TecSingleInterfering`) | **`matched` (true TTS transcript)** | **29.76%** | **5.52 dB** | β | β |
|
| 83 |
+
| | `shuffled` (mismatched transcript) | 70.90% | 9.26 dB | +41.15% | p < 0.0001 / p = 2.61e-12 |
|
| 84 |
+
| | `empty` (no text) | 71.94% | 9.32 dB | +42.18% | p < 0.0001 / p = 4.89e-13 |
|
| 85 |
+
| | `Vanilla-Seq2seq` | 39.08% | 7.07 dB | +9.32% | p < 0.0001 / p = 6.69e-04 |
|
| 86 |
+
| `multi_test_clean` (`TecMultiInterfering`) | **`matched` (true TTS transcript)** | **24.31%** | **4.74 dB** | β | β |
|
| 87 |
+
| | `shuffled` (mismatched transcript) | 48.52% | 7.92 dB | +24.21% | p < 0.0001 / p = 9.10e-09 |
|
| 88 |
+
| | `empty` (no text) | 47.29% | 7.83 dB | +22.98% | p < 0.0001 / p = 1.41e-07 |
|
| 89 |
+
| | `Vanilla-Seq2seq` | 63.33% | 8.26 dB | +39.02% | p < 0.0001 / p = 1.99e-11 |
|
| 90 |
|
| 91 |
### 4. Input SNR Ablation on `single_test_clean` (N = 100 mixtures per SNR)
|
| 92 |
|
| 93 |
| Input SNR | `MicrophoneSignal` WER / MCD | `NlmsAec` WER / MCD | `Vanilla-Seq2seq` WER / MCD | **`TecSingleInterfering` WER / MCD** | `AecSingleInterfering` WER / MCD |
|
| 94 |
| :---: | :---: | :---: | :---: | :---: | :---: |
|
| 95 |
+
| **+5 dB** | 51.88% / 9.03 dB | 40.58% / 8.72 dB | 9.23% / 6.28 dB | **8.47% / 4.69 dB** | 5.65% / 4.33 dB |
|
| 96 |
+
| **0 dB** | 80.32% / 9.92 dB | 58.38% / 9.51 dB | 39.08% / 7.07 dB | **29.76% / 5.52 dB** | 7.91% / 4.97 dB |
|
| 97 |
+
| **-5 dB** | 119.02% / 10.73 dB | 90.30% / 10.28 dB | 96.80% / 7.82 dB | **87.76% / 6.34 dB** | 17.23% / 5.73 dB |
|
| 98 |
+
| **-10 dB** | 124.86% / 11.40 dB | 121.28% / 10.95 dB | 103.86% / 8.35 dB | **101.04% / 6.91 dB** | 49.25% / 6.33 dB |
|
| 99 |
|
| 100 |
---
|
| 101 |
|
best.ckpt.data-00000-of-00001
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9fdc3cae8a3940578c38b3da0cbad7d93bd76c2cc11ebd96a1cce6bbe617c982
|
| 3 |
+
size 50332376
|
best.ckpt.index
CHANGED
|
Binary files a/best.ckpt.index and b/best.ckpt.index differ
|
|
|
best.ckpt.meta
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2f12af394b5dcb6ef5b39e3997dd63e08d0f558826cb61ca4411f30764af2ce8
|
| 3 |
+
size 50618149
|
evaluation_metrics.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
model.tflite
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:477b928382d7dd79789277c9de9b2512a20bf30179ff588f98dae68768bc7a3f
|
| 3 |
+
size 13145616
|