vvwangvv commited on
Commit
ea2f14c
·
verified ·
1 Parent(s): 5e36790

Add non-intrusive DS reference implementation: code, data, checkpoints, recipe

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +2 -34
  2. .gitignore +4 -0
  3. DATA_LICENSES.md +35 -0
  4. LICENSE +26 -0
  5. README.md +178 -1
  6. ckpt/ds4bsrnn_wide.pt +3 -0
  7. ckpt/ds_subband_v5.pt +3 -0
  8. ckpt/ds_subband_wide.pt +3 -0
  9. ckpt/se_bsrnn.pt +3 -0
  10. data/clean/dev-clean/1272/141231/1272_141231_000019_000000.normalized.txt +1 -0
  11. data/clean/dev-clean/1272/141231/1272_141231_000019_000000.wav +3 -0
  12. data/clean/dev-clean/1272/141231/1272_141231_000024_000005.normalized.txt +1 -0
  13. data/clean/dev-clean/1272/141231/1272_141231_000024_000005.wav +3 -0
  14. data/clean/dev-clean/1272/141231/1272_141231_000026_000007.normalized.txt +1 -0
  15. data/clean/dev-clean/1272/141231/1272_141231_000026_000007.wav +3 -0
  16. data/clean/dev-clean/1272/141231/1272_141231_000027_000007.normalized.txt +1 -0
  17. data/clean/dev-clean/1272/141231/1272_141231_000027_000007.wav +3 -0
  18. data/clean/dev-clean/1272/141231/1272_141231_000031_000000.normalized.txt +1 -0
  19. data/clean/dev-clean/1272/141231/1272_141231_000031_000000.wav +3 -0
  20. data/clean/dev-clean/1462/170138/1462_170138_000006_000001.normalized.txt +1 -0
  21. data/clean/dev-clean/1462/170138/1462_170138_000006_000001.wav +3 -0
  22. data/clean/dev-clean/1462/170138/1462_170138_000015_000006.normalized.txt +1 -0
  23. data/clean/dev-clean/1462/170138/1462_170138_000015_000006.wav +3 -0
  24. data/clean/dev-clean/1462/170138/1462_170138_000022_000014.normalized.txt +1 -0
  25. data/clean/dev-clean/1462/170138/1462_170138_000022_000014.wav +3 -0
  26. data/clean/dev-clean/1462/170142/1462_170142_000031_000001.normalized.txt +1 -0
  27. data/clean/dev-clean/1462/170142/1462_170142_000031_000001.wav +3 -0
  28. data/clean/dev-clean/1462/170142/1462_170142_000039_000000.normalized.txt +1 -0
  29. data/clean/dev-clean/1462/170142/1462_170142_000039_000000.wav +3 -0
  30. data/clean/dev-clean/1462/170142/1462_170142_000043_000001.normalized.txt +1 -0
  31. data/clean/dev-clean/1462/170142/1462_170142_000043_000001.wav +3 -0
  32. data/clean/dev-clean/1462/170145/1462_170145_000007_000000.normalized.txt +1 -0
  33. data/clean/dev-clean/1462/170145/1462_170145_000007_000000.wav +3 -0
  34. data/clean/dev-clean/1462/170145/1462_170145_000008_000003.normalized.txt +1 -0
  35. data/clean/dev-clean/1462/170145/1462_170145_000008_000003.wav +3 -0
  36. data/clean/dev-clean/1462/170145/1462_170145_000009_000007.normalized.txt +1 -0
  37. data/clean/dev-clean/1462/170145/1462_170145_000009_000007.wav +3 -0
  38. data/clean/dev-clean/174/168635/174_168635_000027_000004.normalized.txt +1 -0
  39. data/clean/dev-clean/174/168635/174_168635_000027_000004.wav +3 -0
  40. data/clean/dev-clean/174/50561/174_50561_000023_000004.normalized.txt +1 -0
  41. data/clean/dev-clean/174/50561/174_50561_000023_000004.wav +3 -0
  42. data/clean/dev-clean/1919/142785/1919_142785_000047_000002.normalized.txt +1 -0
  43. data/clean/dev-clean/1919/142785/1919_142785_000047_000002.wav +3 -0
  44. data/clean/dev-clean/1919/142785/1919_142785_000120_000000.normalized.txt +1 -0
  45. data/clean/dev-clean/1919/142785/1919_142785_000120_000000.wav +3 -0
  46. data/clean/dev-clean/1919/142785/1919_142785_000123_000008.normalized.txt +1 -0
  47. data/clean/dev-clean/1919/142785/1919_142785_000123_000008.wav +3 -0
  48. data/clean/dev-clean/1988/147956/1988_147956_000002_000003.normalized.txt +1 -0
  49. data/clean/dev-clean/1988/147956/1988_147956_000002_000003.wav +3 -0
  50. data/clean/dev-clean/1988/147956/1988_147956_000003_000005.normalized.txt +1 -0
.gitattributes CHANGED
@@ -1,35 +1,3 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
  *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.wav filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  *.pt filter=lfs diff=lfs merge=lfs -text
3
+ *.flac filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
.gitignore ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ __pycache__/
2
+ *.pyc
3
+ logs/
4
+ .ipynb_checkpoints/
DATA_LICENSES.md ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Bundled data — sources and licenses
2
+
3
+ This repository bundles audio so the recipe is self-contained. Each dataset is
4
+ redistributed under its original license, reproduced/attributed below. Because
5
+ **ESC-50 is CC BY-NC**, the bundled artifact as a whole is for
6
+ **non-commercial / academic** use.
7
+
8
+ ## Clean speech — LibriTTS (`data/clean/`)
9
+
10
+ - Subset of LibriTTS: `train-clean-100` (training), `dev-clean` (dev),
11
+ `test-clean` (test). Each `*.wav` ships with its `*.normalized.txt` transcript.
12
+ - Source: https://www.openslr.org/60/
13
+ - License: **CC BY 4.0**.
14
+ - Citation:
15
+ > H. Zen, V. Dang, R. Clark, Y. Zhang, R. J. Weiss, Y. Jia, Z. Chen, Y. Wu.
16
+ > "LibriTTS: A Corpus Derived from LibriSpeech for Text-to-Speech," Interspeech 2019.
17
+
18
+ ## Noise — ESC-50 (`data/noise/`)
19
+
20
+ - Full ESC-50 (2000 clips, 5 folds). Folds 1–3 used for training noise, fold 4
21
+ for dev, fold 5 for test (disjoint). `meta/esc50.csv` retained.
22
+ - Source: https://github.com/karolpiczak/ESC-50
23
+ - License: **CC BY-NC 3.0** (non-commercial).
24
+ - Citation:
25
+ > K. J. Piczak. "ESC: Dataset for Environmental Sound Classification,"
26
+ > ACM Multimedia 2015.
27
+
28
+ ## ASR model — Whisper (not bundled)
29
+
30
+ - `openai/whisper-base.en` is downloaded from the Hugging Face Hub at runtime
31
+ (not redistributed here). License: MIT (OpenAI Whisper).
32
+
33
+ ## Code
34
+
35
+ - The source code in `ds4se/` and `scripts/` is MIT-licensed — see `LICENSE`.
LICENSE ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2026 the authors of this re-implementation
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ NOTE: This MIT license covers the source CODE in this repository only. The
24
+ bundled audio DATA under data/ is redistributed under separate licenses — see
25
+ DATA_LICENSES.md. In particular ESC-50 is CC BY-NC, so the repository as a whole
26
+ is intended for non-commercial / academic use.
README.md CHANGED
@@ -1,3 +1,180 @@
1
  ---
2
- license: mit
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ license: cc-by-nc-4.0
3
+ language:
4
+ - en
5
+ library_name: pytorch
6
+ tags:
7
+ - speech-enhancement
8
+ - automatic-speech-recognition
9
+ - noise-robust-asr
10
+ - distortion-suppression
11
+ - bsrnn
12
+ - whisper
13
  ---
14
+
15
+ # Non-intrusive Distortion Suppression for Noise-Robust ASR (DS / DS4BSRNN)
16
+
17
+ Reference implementation and **self-contained open reproduction** of:
18
+
19
+ > Wei Wang, Siyi Zhao, Yanmin Qian.
20
+ > **Advancing Non-intrusive Suppression on Enhancement Distortion for Noise
21
+ > Robust ASR.** ICASSP 2025.
22
+
23
+ This repository provides the method's source code, pretrained checkpoints, **and
24
+ the audio data**, so the full training and evaluation pipeline runs
25
+ out-of-the-box. The paper's headline tables are measured on a private in-house
26
+ Mandarin corpus (Table I) and licensed CHiME-4 + DNS data (Table III), which
27
+ cannot be redistributed. This release therefore reproduces the **method and its
28
+ trends on fully public data** — LibriTTS (speech) + ESC-50 (noise) with a frozen
29
+ Whisper ASR — so every number here is directly runnable and verifiable. The
30
+ qualitative conclusions match the paper: SE enhancement degrades ASR, OA
31
+ recovers it, and the adaptive **DS / DS4BSRNN** beat the fixed-coefficient OA
32
+ baseline (the more variable the conditions, the larger the margin).
33
+
34
+ The only runtime download is the frozen Whisper ASR from the HF Hub (see
35
+ *Environment*).
36
+
37
+ ---
38
+
39
+ ## What is implemented
40
+
41
+ - **Decoupled DS module** (`ds4se/ds_module.py`, Fig. 1b + Algorithm 1):
42
+ band-splits the original `X` and enhanced `X̃` complex spectrograms, runs `L`
43
+ Time/Band-RNN groups, and a linear+sigmoid head emits per-(band, frame)
44
+ coefficients `S ∈ [0,1]`. Algorithm 1 interpolates `X̂ = S·X + (1−S)·X̃`.
45
+ - **Coupled DS4BSRNN** (`ds4se/ds4bsrnn.py`, Fig. 2): reuses the BSRNN SE's
46
+ internal hidden representation `H` instead of a separate band-split — fewer
47
+ parameters.
48
+ - **BSRNN SE backbone** (`ds4se/bsrnn.py`): self-contained, mirrors ESPnet's
49
+ `BSRNNSeparator`, exposes the hidden `H`.
50
+ - **Non-intrusive training** (`scripts/train_ds_real.py`): SE and ASR are
51
+ **frozen**; only the DS module is trained on the ASR (cross-entropy) loss; SE
52
+ gradients are detached. **Scheduled DS coefficients** (warmup bias freeze)
53
+ avoid the trivial `S→0` collapse.
54
+ - **Frozen Whisper ASR** (`ds4se/asr_whisper.py`): a differentiable log-mel
55
+ front-end wrapping `openai/whisper-base.en` for the ASR training loss and WER.
56
+
57
+ ## Results
58
+
59
+ End-to-end pipeline: `noisy → frozen BSRNN SE → {OA | DS | DS4BSRNN} → frozen
60
+ Whisper → WER`. Data: LibriTTS (clean) + ESC-50 (noise), simulated at varying
61
+ SNR. **OA** (observation-adding) is the fixed-coefficient baseline `X̂ = s·X +
62
+ (1−s)·X̃`, with `s` tuned on dev and applied to test.
63
+
64
+ **Wide-SNR test (−15…25 dB), DS modules trained on 10k utts:**
65
+
66
+ | Method | Test WER (%) | Params | vs OA |
67
+ |---|---|---|---|
68
+ | Noisy | 25.21 | — | — |
69
+ | SE-enhanced (BSRNN) | 26.11 | — | — |
70
+ | + OA (s=0.4, tuned on dev) | 20.43 | — | baseline |
71
+ | + DS (decoupled, sub-band) | 19.83 | 28.7K | **−0.60** |
72
+ | **+ DS4BSRNN (coupled, sub-band)** | **19.39** | **10.9K** | **−1.04** |
73
+
74
+ **Narrow-SNR test (−5…20 dB):** OA 11.19 / DS 11.09 (margin 0.10). The DS-over-OA
75
+ margin grows ~6× under wide SNR, because a *fixed* OA coefficient cannot track the
76
+ per-utterance optimum when conditions vary, while the **adaptive** DS can — the
77
+ paper's central point. Consistent with the paper, **DS4BSRNN is the best and most
78
+ lightweight** (beats OA by 1.04 WER with ~⅓ the parameters of the decoupled DS).
79
+
80
+ ## Repository layout
81
+
82
+ ```
83
+ ds4se/ # the method (BSRNN, DS, DS4BSRNN, STFT, Whisper wrapper, losses, data)
84
+ scripts/ # prepare_manifests, train_se, train_ds_real, eval_wer, inspect_ds_coef, smoke_test
85
+ ckpt/ # pretrained: se_bsrnn.pt, ds_subband_wide.pt, ds4bsrnn_wide.pt, ds_subband_v5.pt
86
+ data/
87
+ clean/ # LibriTTS clips (train-clean-100 subset / dev-clean / test-clean) + transcripts
88
+ noise/ # ESC-50 (audio/ + meta/esc50.csv)
89
+ manifests/ # train.json (10k) / dev.json (150) / test.json (300), RELATIVE paths
90
+ run_all.sh # one-command end-to-end recipe
91
+ ```
92
+
93
+ ## Environment
94
+
95
+ ```bash
96
+ pip install -r requirements.txt
97
+ ```
98
+ Tested with PyTorch 2.9 (CUDA 12.x) on a single 80 GB GPU. The frozen ASR
99
+ (`openai/whisper-base.en`, ~290 MB) is downloaded from the HF Hub on first use;
100
+ for an **offline** machine, pre-fetch it (e.g. `huggingface-cli download
101
+ openai/whisper-base.en`) and set `HF_HUB_OFFLINE=1`.
102
+
103
+ ## Reproduce the reported numbers (pretrained checkpoints, no training)
104
+
105
+ ```bash
106
+ # Wide-SNR evaluation: OA tuned on dev -> applied to test; DS + DS4BSRNN
107
+ python scripts/eval_wer.py --se ckpt/se_bsrnn.pt \
108
+ --ds ckpt/ds_subband_wide.pt --ds4 ckpt/ds4bsrnn_wide.pt \
109
+ --snr_lo -15 --snr_hi 25
110
+ ```
111
+ This uses only in-repo data + checkpoints and prints the table above.
112
+
113
+ ## Full training recipe (from scratch)
114
+
115
+ ```bash
116
+ bash run_all.sh # SE -> DS (decoupled) -> DS4BSRNN -> eval, on the bundled data
117
+ ```
118
+ or step by step:
119
+ ```bash
120
+ # (0) manifests are shipped; regenerate only if starting from a full LibriTTS:
121
+ # python scripts/prepare_manifests.py --libritts_root <LibriTTS> \
122
+ # --n_train 10000 --n_dev 150 --n_test 300 --relative_to .
123
+
124
+ # (1) train the BSRNN speech-enhancement front-end (SI-SDR loss)
125
+ python scripts/train_se.py --epochs 40 --num_channel 64 --num_layer 6 \
126
+ --out ckpt/se_bsrnn.pt
127
+
128
+ # (2) non-intrusive DS training against frozen Whisper (wide SNR, unlocked adaptivity)
129
+ python scripts/train_ds_real.py --se ckpt/se_bsrnn.pt --updates 8000 \
130
+ --warmup 200 --mode sub-band --lr 1e-2 --cosine --weight_decay 1e-5 \
131
+ --s_tv 0.0 --bias_init 1.0 --dev_items 150 --snr_lo -15 --snr_hi 25 \
132
+ --out ckpt/ds_subband_wide.pt
133
+ python scripts/train_ds_real.py --se ckpt/se_bsrnn.pt --coupled --updates 8000 \
134
+ --warmup 200 --mode sub-band --lr 1e-2 --cosine --weight_decay 1e-5 \
135
+ --s_tv 0.0 --bias_init 1.0 --dev_items 150 --snr_lo -15 --snr_hi 25 \
136
+ --out ckpt/ds4bsrnn_wide.pt
137
+
138
+ # (3) evaluate
139
+ python scripts/eval_wer.py --se ckpt/se_bsrnn.pt \
140
+ --ds ckpt/ds_subband_wide.pt --ds4 ckpt/ds4bsrnn_wide.pt \
141
+ --snr_lo -15 --snr_hi 25
142
+
143
+ # (optional) inspect the learned DS coefficients (adaptivity diagnostic)
144
+ python scripts/inspect_ds_coef.py --ds ckpt/ds_subband_wide.pt
145
+ ```
146
+
147
+ A quick self-check that exercises the core mechanisms without training:
148
+ ```bash
149
+ python scripts/smoke_test.py
150
+ ```
151
+
152
+ ## Open-reproduction setup vs the paper's headline tables
153
+
154
+ | Aspect | Paper (Tables I / III) | This open reproduction |
155
+ |---|---|---|
156
+ | Data | private in-house Mandarin / licensed CHiME-4 + DNS | public LibriTTS + ESC-50 (simulated) |
157
+ | ASR back-end | Paraformer / large Whisper | frozen `openai/whisper-base.en` |
158
+ | Reported quantity | absolute CER/WER | runnable WER reproducing the same trends |
159
+
160
+ A few implementation details not fully specified in the paper text were fixed
161
+ explicitly here: a 23-band 16 kHz split, DS band-embedding dim N=16, and the
162
+ scheduled-bias `bias_init`.
163
+
164
+ ## Data & licenses
165
+
166
+ The bundled audio is redistributed under its original licenses — see
167
+ [`DATA_LICENSES.md`](DATA_LICENSES.md). **ESC-50 is CC BY-NC**, so the bundled
168
+ artifact as a whole is for **non-commercial / academic** use. The repository
169
+ *code* is MIT-licensed (see `LICENSE`).
170
+
171
+ ## Citation
172
+
173
+ ```bibtex
174
+ @inproceedings{wang2025advancing,
175
+ title = {Advancing Non-intrusive Suppression on Enhancement Distortion for Noise Robust ASR},
176
+ author = {Wang, Wei and Zhao, Siyi and Qian, Yanmin},
177
+ booktitle = {ICASSP},
178
+ year = {2025}
179
+ }
180
+ ```
ckpt/ds4bsrnn_wide.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0a76711b60dd5af84d549f343f678d79b03602a26edc5ea107c684c8ee7ab16b
3
+ size 51185
ckpt/ds_subband_v5.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:384767af95009e417d678326b1b7fb0192ce7ef3abf4ebbd5e9aaa37c9b44cfa
3
+ size 152707
ckpt/ds_subband_wide.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:43ea4746341815fbb787badce2ddec0147ac11715ef1474fc6ea7034dee68a6a
3
+ size 152991
ckpt/se_bsrnn.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa579de413a7498da65659e64fbbd3246e1fb596e66586e01947cfe22d1b7645
3
+ size 15835929
data/clean/dev-clean/1272/141231/1272_141231_000019_000000.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ "Out!" was the single snarled word of the response.
data/clean/dev-clean/1272/141231/1272_141231_000019_000000.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:402f4751d237a8809623bf0d043ffbe91c5c4c29626363bf9221001072699505
3
+ size 164204
data/clean/dev-clean/1272/141231/1272_141231_000024_000005.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Just thrust and parry, and victory to the stronger.
data/clean/dev-clean/1272/141231/1272_141231_000024_000005.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:45f2d03555410efd471c881f41c5d51f40846ac5cb56867488590cc4536745e5
3
+ size 166604
data/clean/dev-clean/1272/141231/1272_141231_000026_000007.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Self hypnosis was an accepted tool.
data/clean/dev-clean/1272/141231/1272_141231_000026_000007.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:454961b5d0217c4ec523d52be0123b07b9a8edcd3dc21d747e261d065e7e5c8f
3
+ size 112364
data/clean/dev-clean/1272/141231/1272_141231_000027_000007.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ This is physically impossible when conscious.
data/clean/dev-clean/1272/141231/1272_141231_000027_000007.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c29b29abaea14641c5c391a7ce22a01ee647676668f8cc19b332818b05a6924
3
+ size 131084
data/clean/dev-clean/1272/141231/1272_141231_000031_000000.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ When the buzzer sounded he pulled his foil from his second's startled grasp, and ran forward.
data/clean/dev-clean/1272/141231/1272_141231_000031_000000.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:edc8ad70c493ef6dfeda33ad044239d03ffc0146241a4443d7dd43fa7c54f440
3
+ size 274124
data/clean/dev-clean/1462/170138/1462_170138_000006_000001.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ When they entered the stage box on the left the first act was well under way, the scene being the interior of a cabin in the south of Ireland.
data/clean/dev-clean/1462/170138/1462_170138_000006_000001.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cebf60b4ee0df7ca0babd80d80d0d73bd4277a86cef528b9d8613daf7994d8aa
3
+ size 368204
data/clean/dev-clean/1462/170138/1462_170138_000015_000006.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ I dare say it's quite true that there's never been any one else." Mainhall vouched for her constancy with a loftiness that made Alexander smile, even while a kind of rapid excitement was tingling through him.
data/clean/dev-clean/1462/170138/1462_170138_000015_000006.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4eb10d1459bc3a7009c4c0d381f41583a0a9526916289502f1668c6278de0746
3
+ size 556364
data/clean/dev-clean/1462/170138/1462_170138_000022_000014.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ You've made things come your way, and I never thought you'd do it.
data/clean/dev-clean/1462/170138/1462_170138_000022_000014.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:748caa1de4aa4aed74dd4b99f319dc37424d86470654d4e7e4c664a9c3ea0e88
3
+ size 132044
data/clean/dev-clean/1462/170142/1462_170142_000031_000001.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Something of their troubling sweetness came back to Alexander, too.
data/clean/dev-clean/1462/170142/1462_170142_000031_000001.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:32cfd2b555cbfd1e7b85d8ce81a6dececb255dc1e4f039659ab28778079ba6f2
3
+ size 174284
data/clean/dev-clean/1462/170142/1462_170142_000039_000000.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ "I can't," he said heavily.
data/clean/dev-clean/1462/170142/1462_170142_000039_000000.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ba57b70089b3fce773fa0c9230166d75ad787d72e16181400242b45ddab17f66
3
+ size 106124
data/clean/dev-clean/1462/170142/1462_170142_000043_000001.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ "Yes, I know I'm cowardly. I'm afraid of myself.
data/clean/dev-clean/1462/170142/1462_170142_000043_000001.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3860b8525e5fd53c262d495dce87b27efd2488a9a7dd7516b38324110bf3a9ea
3
+ size 155082
data/clean/dev-clean/1462/170145/1462_170145_000007_000000.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ "Of course I know, Bartley," she said at last, "that after this you won't owe me the least consideration.
data/clean/dev-clean/1462/170145/1462_170145_000007_000000.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c46242dd159b77763a54be59cd0c075c59cd6d53d12c87fef8a1392e3fef9f0b
3
+ size 290924
data/clean/dev-clean/1462/170145/1462_170145_000008_000003.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ "Here, put your feet on this stool. You don't mean to say you walked down-and without overshoes!"
data/clean/dev-clean/1462/170145/1462_170145_000008_000003.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c38fd778b58ab137f01fd40afec773cedb2acf88ceb6c06183defc95f9734da9
3
+ size 278924
data/clean/dev-clean/1462/170145/1462_170145_000009_000007.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ But you won't let me write to you, and I had to see you after that letter, that terrible letter you wrote me when you got home."
data/clean/dev-clean/1462/170145/1462_170145_000009_000007.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1292d5e08727ab33fc789845cc910f98296cb0ac613ebbad0622607a87fec05a
3
+ size 298604
data/clean/dev-clean/174/168635/174_168635_000027_000004.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ To meet was to find each other.
data/clean/dev-clean/174/168635/174_168635_000027_000004.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1cfb01a5e648b7170cdc4c608a83b19a4181212a645e4c381eec72f3d2463f74
3
+ size 109004
data/clean/dev-clean/174/50561/174_50561_000023_000004.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ The dancers once more encircle their weeping comrade, and now they are gowned in white and pink.
data/clean/dev-clean/174/50561/174_50561_000023_000004.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3fe2f83cf5fb38805c05f28450ff8f76e76d290a214943a974249d1692eed4c0
3
+ size 265484
data/clean/dev-clean/1919/142785/1919_142785_000047_000002.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ In Jamaica it flowers about August or September, fading about the end of the year.
data/clean/dev-clean/1919/142785/1919_142785_000047_000002.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e6c15470beec6845db1cd0753e1ad07a466800dfd82c133676cbb6912d21bbc0
3
+ size 232842
data/clean/dev-clean/1919/142785/1919_142785_000120_000000.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ PESTLE AND MORTAR.--No cookery can be perfectly performed without the aid of the useful instruments shown in the engraving.
data/clean/dev-clean/1919/142785/1919_142785_000120_000000.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c162b79b9d8aeca27505fe43a6c4aa748c6eac9a4dbc180c4c6423f1fc000469
3
+ size 342284
data/clean/dev-clean/1919/142785/1919_142785_000123_000008.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ For brown or white ragouts they should be firm, and when the quenelles are used very small, extreme delicacy will be necessary in their preparation.
data/clean/dev-clean/1919/142785/1919_142785_000123_000008.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ff6219fdd1790bb5a5f7b5b8636fcf9175b9b605f6b45cb44b7ecbff99ab2943
3
+ size 470446
data/clean/dev-clean/1988/147956/1988_147956_000002_000003.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ They made a gold ribbon across the prairie.
data/clean/dev-clean/1988/147956/1988_147956_000002_000003.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f8a30e86a1562186dbf0727e5d0929ba9383ce85ff329dfca5df1a8d4b5fbe43
3
+ size 109964
data/clean/dev-clean/1988/147956/1988_147956_000003_000005.normalized.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ One son, Fuchs said, was well grown, and strong enough to work the land; but the father was old and frail and knew nothing about farming.