Rename to CallEnhancer; remove train-time degradation details
Browse files
README.md
CHANGED
|
@@ -18,7 +18,7 @@ base_model: facebook/w2v-bert-2.0
|
|
| 18 |
pipeline_tag: audio-to-audio
|
| 19 |
---
|
| 20 |
|
| 21 |
-
#
|
| 22 |
|
| 23 |
Restore **narrowband, codec'd, noisy call-centre / telephony speech** (e.g. 8 kHz G.711/GSM phone
|
| 24 |
audio) to **clean 48 kHz**. Two stages, both trained for the telephony domain (Malaysian/Singaporean
|
|
@@ -39,11 +39,11 @@ pip install torch torchaudio "transformers>=4.56" "descript-audio-codec>=1.0.0"
|
|
| 39 |
|
| 40 |
# pull the CLI + the two slim checkpoints from the Hub
|
| 41 |
hf auth login # private repo: log in first (or export HF_TOKEN=hf_...)
|
| 42 |
-
hf download Scicom-intl/
|
| 43 |
infer_callcentre.py fe_callcentre/fe_adapter_full.pt \
|
| 44 |
-
decoder_callcentre/decoder_only.pt --local-dir
|
| 45 |
|
| 46 |
-
cd
|
| 47 |
--input your_call.wav --out-dir out \
|
| 48 |
--fe-adapter fe_callcentre/fe_adapter_full.pt \
|
| 49 |
--decoder decoder_callcentre/decoder_only.pt \
|
|
@@ -53,8 +53,8 @@ cd sidon-callcentre && python infer_callcentre.py \
|
|
| 53 |
|
| 54 |
Prefer Python (load weights from the Hub with `hf_hub_download`)? See **[Python](#python-pull-weights-from-the-hub)** below.
|
| 55 |
|
| 56 |
-
> **Status:** the decoder is still training
|
| 57 |
-
>
|
| 58 |
|
| 59 |
## Files
|
| 60 |
|
|
@@ -77,12 +77,12 @@ pip install torch torchaudio "transformers>=4.56" "descript-audio-codec>=1.0.0"
|
|
| 77 |
|
| 78 |
# pull the CLI + the two slim checkpoints, straight from this repo
|
| 79 |
hf auth login # private repo: log in first (or export HF_TOKEN=hf_...)
|
| 80 |
-
hf download Scicom-intl/
|
| 81 |
infer_callcentre.py \
|
| 82 |
fe_callcentre/fe_adapter_full.pt \
|
| 83 |
decoder_callcentre/decoder_only.pt \
|
| 84 |
-
--local-dir
|
| 85 |
-
cd
|
| 86 |
|
| 87 |
# restore your audio end-to-end
|
| 88 |
python infer_callcentre.py \
|
|
@@ -114,7 +114,7 @@ from huggingface_hub import hf_hub_download
|
|
| 114 |
from transformers import AutoFeatureExtractor, Wav2Vec2BertModel
|
| 115 |
import dac
|
| 116 |
|
| 117 |
-
REPO, SSL, FE_SR, SR_OUT = "Scicom-intl/
|
| 118 |
dev = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 119 |
|
| 120 |
ck = torch.load(hf_hub_download(REPO, "fe_callcentre/fe_adapter_full.pt"), map_location="cpu")
|
|
@@ -150,8 +150,6 @@ restore("your_call.wav") # <-- your own telephony/call-centre audio
|
|
| 150 |
signal's features toward a frozen teacher on the *clean* signal (~16M trainable).
|
| 151 |
- **Decoder:** `dac.model.dac.Decoder(input_channel=1024, channels=3072, rates=[8,5,4,3,2])` (188M,
|
| 152 |
50 fps x 960 = 48 kHz), trained with DAC multi-resolution mel + GAN (`loss = 15*mel + 2*adv + 1*feat`).
|
| 153 |
-
- **Degradation (train-time):** telephone HP -> narrowband ceiling (8/11/12/16k) -> GSM / G.711-mu-law
|
| 154 |
-
-> 16-40 kbps MP3 -> line noise + VoIP dropouts.
|
| 155 |
- **Teachers (clean 48 kHz):** EARS + Expresso (studio) + DNSMOS-filtered multilingual HF datasets +
|
| 156 |
DNSMOS-filtered Malaysian/Singaporean podcast & movie
|
| 157 |
([`Scicom-intl/sidon-callcentre-podcast`](https://huggingface.co/datasets/Scicom-intl/sidon-callcentre-podcast)).
|
|
|
|
| 18 |
pipeline_tag: audio-to-audio
|
| 19 |
---
|
| 20 |
|
| 21 |
+
# CallEnhancer — Call-Centre / Telephony Speech Restoration
|
| 22 |
|
| 23 |
Restore **narrowband, codec'd, noisy call-centre / telephony speech** (e.g. 8 kHz G.711/GSM phone
|
| 24 |
audio) to **clean 48 kHz**. Two stages, both trained for the telephony domain (Malaysian/Singaporean
|
|
|
|
| 39 |
|
| 40 |
# pull the CLI + the two slim checkpoints from the Hub
|
| 41 |
hf auth login # private repo: log in first (or export HF_TOKEN=hf_...)
|
| 42 |
+
hf download Scicom-intl/CallEnhancer \
|
| 43 |
infer_callcentre.py fe_callcentre/fe_adapter_full.pt \
|
| 44 |
+
decoder_callcentre/decoder_only.pt --local-dir CallEnhancer
|
| 45 |
|
| 46 |
+
cd CallEnhancer && python infer_callcentre.py \
|
| 47 |
--input your_call.wav --out-dir out \
|
| 48 |
--fe-adapter fe_callcentre/fe_adapter_full.pt \
|
| 49 |
--decoder decoder_callcentre/decoder_only.pt \
|
|
|
|
| 53 |
|
| 54 |
Prefer Python (load weights from the Hub with `hf_hub_download`)? See **[Python](#python-pull-weights-from-the-hub)** below.
|
| 55 |
|
| 56 |
+
> **Status:** the decoder is still training and these checkpoints are refreshed periodically —
|
| 57 |
+
> quality keeps improving. It already restores real 8 kHz call-centre audio well.
|
| 58 |
|
| 59 |
## Files
|
| 60 |
|
|
|
|
| 77 |
|
| 78 |
# pull the CLI + the two slim checkpoints, straight from this repo
|
| 79 |
hf auth login # private repo: log in first (or export HF_TOKEN=hf_...)
|
| 80 |
+
hf download Scicom-intl/CallEnhancer \
|
| 81 |
infer_callcentre.py \
|
| 82 |
fe_callcentre/fe_adapter_full.pt \
|
| 83 |
decoder_callcentre/decoder_only.pt \
|
| 84 |
+
--local-dir CallEnhancer
|
| 85 |
+
cd CallEnhancer
|
| 86 |
|
| 87 |
# restore your audio end-to-end
|
| 88 |
python infer_callcentre.py \
|
|
|
|
| 114 |
from transformers import AutoFeatureExtractor, Wav2Vec2BertModel
|
| 115 |
import dac
|
| 116 |
|
| 117 |
+
REPO, SSL, FE_SR, SR_OUT = "Scicom-intl/CallEnhancer", "facebook/w2v-bert-2.0", 16000, 48000
|
| 118 |
dev = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| 119 |
|
| 120 |
ck = torch.load(hf_hub_download(REPO, "fe_callcentre/fe_adapter_full.pt"), map_location="cpu")
|
|
|
|
| 150 |
signal's features toward a frozen teacher on the *clean* signal (~16M trainable).
|
| 151 |
- **Decoder:** `dac.model.dac.Decoder(input_channel=1024, channels=3072, rates=[8,5,4,3,2])` (188M,
|
| 152 |
50 fps x 960 = 48 kHz), trained with DAC multi-resolution mel + GAN (`loss = 15*mel + 2*adv + 1*feat`).
|
|
|
|
|
|
|
| 153 |
- **Teachers (clean 48 kHz):** EARS + Expresso (studio) + DNSMOS-filtered multilingual HF datasets +
|
| 154 |
DNSMOS-filtered Malaysian/Singaporean podcast & movie
|
| 155 |
([`Scicom-intl/sidon-callcentre-podcast`](https://huggingface.co/datasets/Scicom-intl/sidon-callcentre-podcast)).
|