tec / README.md
wq2012's picture
Add multi-model precomputed checkpoint WAVs, execution-mode indicator, and text-conditioned browser fallback
44b657f
|
Raw History Blame Contribute Delete
2.66 kB
---
title: Textual Echo Cancellation (TEC)
emoji: 🎙️
colorFrom: blue
colorTo: indigo
sdk: static
pinned: false
license: apache-2.0
models:
- wq2012/tec_single_interfering
- wq2012/tec_multi_interfering
- wq2012/aec_single_interfering
- wq2012/aec_multi_interfering
- wq2012/vanilla_seq2seq_single_interfering
- wq2012/vanilla_seq2seq_multi_interfering
short_description: Cancel TTS playback echo using source text and compare ASR
---
# Textual Echo Cancellation (TEC) — Interactive Demo
This Space demonstrates **Textual Echo Cancellation (TEC)** based on the IEEE SLT 2021 paper:
> **Textual Echo Cancellation**
> *Shaojin Ding, Ye Jia, Ke Hu, Quan Wang*
> - **Paper**: [arXiv:2008.06006](https://arxiv.org/abs/2008.06006)
> - **GitHub Repository**: [https://github.com/wq2012/tec](https://github.com/wq2012/tec)
> - **PyPI Package**: [`textual-echo-cancellation`](https://pypi.org/project/textual-echo-cancellation/) (`pip install textual-echo-cancellation`)
> - **Pretrained Models**: [`wq2012/tec_single_interfering`](https://huggingface.co/wq2012/tec_single_interfering) | [`wq2012/tec_multi_interfering`](https://huggingface.co/wq2012/tec_multi_interfering) | [`wq2012/aec_single_interfering`](https://huggingface.co/wq2012/aec_single_interfering)
> - **Audio Demo Page**: [https://google.github.io/speaker-id/publications/TEC/](https://google.github.io/speaker-id/publications/TEC/)
## How It Works
1. **Upload an audio file** containing a microphone mixture (a user speaking while a device is playing back a Text-to-Speech response) or select one of the 4 built-in benchmark examples.
2. **Enter the interfering TTS text** (the source text of the device's TTS playback) and select a model (`TecSingleInterfering`, `TecMultiInterfering`, or `AecSingleInterfering`).
3. Click **Run Textual Echo Cancellation & Compare ASR**:
- Runs **ASR on the user uploaded audio file** (Before TEC).
- Runs **Echo Cancellation** (loading the exact Lingvo checkpoint outputs in `examples/sample_1..4_{tec_single,tec_multi,aec_single}.wav` generated by [`generate_examples.py`](generate_examples.py) for the built-in benchmark examples, or running an in-browser WebAudio text-conditioned spectral canceller for custom uploaded files).
- Runs **ASR on the Echo Cancelled audio file** (After TEC) and prints out the recognition results for both approaches side by side.
*(This repository also includes [`generate_examples.py`](generate_examples.py) and the standalone Python Gradio app in [`app.py`](app.py) + [`requirements.txt`](requirements.txt) for full Lingvo/TensorFlow checkpoint inference on arbitrary files via `python3 app.py`.)*