niobures commited on
Commit
ca4e3a2
·
verified ·
1 Parent(s): d0b4949

RNNoise (models)

Browse files
Files changed (40) hide show
  1. .gitattributes +2 -0
  2. models/arnndn-models/README.md +4 -0
  3. models/arnndn-models/bd.rnnn +0 -0
  4. models/arnndn-models/cb.rnnn +0 -0
  5. models/arnndn-models/lq.rnnn +0 -0
  6. models/arnndn-models/mp.rnnn +0 -0
  7. models/arnndn-models/sh.rnnn +0 -0
  8. models/arnndn-models/source.txt +1 -0
  9. models/arnndn-models/std.rnnn +0 -0
  10. models/rnnoise-models/README.md +19 -0
  11. models/rnnoise-models/beguiling-drafter-2018-08-30/bd.rnnn +0 -0
  12. models/rnnoise-models/beguiling-drafter-2018-08-30/bd_int8.txt +0 -0
  13. models/rnnoise-models/beguiling-drafter-2018-08-30/info.txt +44 -0
  14. models/rnnoise-models/beguiling-drafter-2018-08-30/weights.hdf5.xz +3 -0
  15. models/rnnoise-models/conjoined-burgers-2018-08-28/cb.rnnn +0 -0
  16. models/rnnoise-models/conjoined-burgers-2018-08-28/cb_int8.txt +0 -0
  17. models/rnnoise-models/conjoined-burgers-2018-08-28/info.txt +52 -0
  18. models/rnnoise-models/conjoined-burgers-2018-08-28/newweights9i.hdf5.xz +3 -0
  19. models/rnnoise-models/leavened-quisling-2018-08-31/info.txt +47 -0
  20. models/rnnoise-models/leavened-quisling-2018-08-31/lq.rnnn +0 -0
  21. models/rnnoise-models/leavened-quisling-2018-08-31/lq_int8.txt +0 -0
  22. models/rnnoise-models/leavened-quisling-2018-08-31/weights.hdf5.xz +3 -0
  23. models/rnnoise-models/marathon-prescription-2018-08-29/info.txt +55 -0
  24. models/rnnoise-models/marathon-prescription-2018-08-29/mp.rnnn +0 -0
  25. models/rnnoise-models/marathon-prescription-2018-08-29/mp_int8.txt +0 -0
  26. models/rnnoise-models/marathon-prescription-2018-08-29/newweights9i.hdf5.xz +3 -0
  27. models/rnnoise-models/somnolent-hogwash-2018-09-01/info.txt +40 -0
  28. models/rnnoise-models/somnolent-hogwash-2018-09-01/sh.rnnn +0 -0
  29. models/rnnoise-models/somnolent-hogwash-2018-09-01/sh_int8.txt +0 -0
  30. models/rnnoise-models/somnolent-hogwash-2018-09-01/weights.hdf5.xz +3 -0
  31. models/rnnoise-models/source.txt +1 -0
  32. models/rnnoise-models/tools/TSPspeech.raw.sh +14 -0
  33. models/rnnoise-models/tools/chopper.c +82 -0
  34. models/rnnoise-models/tools/noise-chopper.c +60 -0
  35. models/rnnoise-models/tools/sounds.raw.sh +11 -0
  36. models/rnnoise-wrapper/README.md +142 -0
  37. models/rnnoise-wrapper/languages.txt +2 -0
  38. models/rnnoise-wrapper/source.txt +1 -0
  39. models/rnnoise-wrapper/weights_5h_b_500k.hdf5 +3 -0
  40. models/rnnoise-wrapper/weights_5h_ru_500k.hdf5 +3 -0
.gitattributes CHANGED
@@ -47,3 +47,5 @@ libs/rnnoise-bin/releases/7f449bf8/librnnoise-windows-x86-64.dll filter=lfs diff
47
  libs/rnnoise-bin/releases/7f449bf8/librnnoise-windows-x86.dll filter=lfs diff=lfs merge=lfs -text
48
  models/ailia-models/code/babble_15dB.wav filter=lfs diff=lfs merge=lfs -text
49
  models/ailia-models/code/denoised.wav filter=lfs diff=lfs merge=lfs -text
 
 
 
47
  libs/rnnoise-bin/releases/7f449bf8/librnnoise-windows-x86.dll filter=lfs diff=lfs merge=lfs -text
48
  models/ailia-models/code/babble_15dB.wav filter=lfs diff=lfs merge=lfs -text
49
  models/ailia-models/code/denoised.wav filter=lfs diff=lfs merge=lfs -text
50
+ models/rnnoise-wrapper/weights_5h_b_500k.hdf5 filter=lfs diff=lfs merge=lfs -text
51
+ models/rnnoise-wrapper/weights_5h_ru_500k.hdf5 filter=lfs diff=lfs merge=lfs -text
models/arnndn-models/README.md ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ This are model files to be used with FFmpeg arnndn filter.
2
+
3
+ std.rnnn is one originally bundled with Xiph RNNoise implementation.
4
+ others are created by Gregor Richards.
models/arnndn-models/bd.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/arnndn-models/cb.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/arnndn-models/lq.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/arnndn-models/mp.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/arnndn-models/sh.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/arnndn-models/source.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/richardpl/arnndn-models
models/arnndn-models/std.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # rnnoise-models
2
+
3
+ This repository contains the tools and information used to create the various
4
+ neural network models in rnnoise-nu. With the exception of the tools/ directory
5
+ and this file, none of this work is creative and thus none of it is subject to
6
+ copyright.
7
+
8
+ Note that the name of each model is not meaningful.
9
+
10
+ ## Model information
11
+
12
+ The following table maps expected signal (horizontal) against expected noise
13
+ (vertical). Note that "voice" is distinct from "speech" by the presence of
14
+ non-speech human sounds, such as laughter.
15
+
16
+ | | General | Voice | Speech |
17
+ | ----------------- | --------------------- | --------------------- | --------------------- |
18
+ | General | marathon-prescription | leavened-quisling | orig |
19
+ | Recording | conjoined-burgers | beguiling-drafter | somnolent-hogwash |
models/rnnoise-models/beguiling-drafter-2018-08-30/bd.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/beguiling-drafter-2018-08-30/bd_int8.txt ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/beguiling-drafter-2018-08-30/info.txt ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SUITE: beguiling-drafter-2018-08-30
2
+
3
+ INTENT:
4
+
5
+ Voice in a reasonable recording environment. Fans, AC, computers, etc.
6
+
7
+
8
+ SIGNAL:
9
+
10
+ voice
11
+ hamlet-002-act-1-scene-1.1626
12
+ http://etc.usf.edu/lit2go/94/hamlet/1626/
13
+ human_rights_un_chi_nf.mp3
14
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
15
+ human_rights_un_cze_msed.mp3
16
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
17
+ huntingofthesnark_01_carrol_128kb
18
+ https://librivox.org/the-hunting-of-the-snark-by-lewis-carroll-3/
19
+ teacupclub_01_armstrong_128kb
20
+ https://librivox.org/the-teacup-club-by-eliza-armstrong/
21
+ warletters_01_allan_128kb.mp3
22
+ https://librivox.org/war-letters-from-a-young-queenslander-by-robert-marshall-allen/
23
+ TSPspeech
24
+ http://www-mmsp.ece.mcgill.ca/Documents/Data/
25
+
26
+ sounds
27
+ cough
28
+ https://freesound.org/ sounds: 205012 222644 252240 323532 342587 343880 343885 343986 369295 391284 401334 407839 419781 425777 87412
29
+ laugh
30
+ https://freesound.org/ sounds: 167578 189278 263775 319346 343934 344043 344064 367680 381275 383237 393353 401214 433921 73123
31
+
32
+
33
+ ./chopper voice/hamlet-002-act-1-scene-1.1626.raw voice/human_rights_un_chi_nf.raw sounds/cough.raw voice/human_rights_un_cze_msed.raw voice/huntingofthesnark_01_carrol_128kb.raw sounds/laugh.raw voice/teacupclub_01_armstrong_128kb.raw voice/warletters_01_allan_128kb.raw voice/TSPspeech.raw
34
+
35
+
36
+ NOISE:
37
+
38
+ rnnoise_contributions (only "other" and "none" samples)
39
+ https://people.xiph.org/~jm/demo/rnnoise/rnnoise_contributions.tar.gz
40
+
41
+
42
+ COUNT: 13212874 (x87)
43
+
44
+ NOTE: All files processed into correct raws through ffmpeg: ffmpeg -i in -f s16le -ac 1 -ar 48000 out.raw
models/rnnoise-models/beguiling-drafter-2018-08-30/weights.hdf5.xz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9fb07c7cf2a8e704c4e1323565c17b2ef1cde8844deb39760f5f04bfbabc7d92
3
+ size 972256
models/rnnoise-models/conjoined-burgers-2018-08-28/cb.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/conjoined-burgers-2018-08-28/cb_int8.txt ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/conjoined-burgers-2018-08-28/info.txt ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SUITE: conjoined-burgers-2018-08-28
2
+
3
+ INTENT:
4
+
5
+ General use in a reasonable recording environment. Fans, AC, computers, etc.
6
+
7
+
8
+ SIGNAL:
9
+
10
+ voice
11
+ hamlet-002-act-1-scene-1.1626
12
+ http://etc.usf.edu/lit2go/94/hamlet/1626/
13
+ human_rights_un_chi_nf.mp3
14
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
15
+ human_rights_un_cze_msed.mp3
16
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
17
+ huntingofthesnark_01_carrol_128kb
18
+ https://librivox.org/the-hunting-of-the-snark-by-lewis-carroll-3/
19
+ teacupclub_01_armstrong_128kb
20
+ https://librivox.org/the-teacup-club-by-eliza-armstrong/
21
+ warletters_01_allan_128kb.mp3
22
+ https://librivox.org/war-letters-from-a-young-queenslander-by-robert-marshall-allen/
23
+ TSPspeech
24
+ http://www-mmsp.ece.mcgill.ca/Documents/Data/
25
+
26
+ sounds
27
+ cough
28
+ https://freesound.org/ sounds: 205012 222644 252240 323532 342587 343880 343885 343986 369295 391284 401334 407839 419781 425777 87412
29
+ laugh
30
+ https://freesound.org/ sounds: 167578 189278 263775 319346 343934 344043 344064 367680 381275 383237 393353 401214 433921 73123
31
+
32
+ music
33
+ Danse Macabre
34
+ Gymnopedie No 1
35
+ Local Forecast
36
+ Secret of Tiki Island
37
+ Unpromised
38
+ https://incompetech.com/music/royalty-free/
39
+
40
+
41
+ ./chopper voice/hamlet-002-act-1-scene-1.1626.raw voice/human_rights_un_chi_nf.raw sounds/cough.raw voice/human_rights_un_cze_msed.raw voice/huntingofthesnark_01_carrol_128kb.raw sounds/laugh.raw voice/teacupclub_01_armstrong_128kb.raw voice/warletters_01_allan_128kb.raw voice/TSPspeech.raw sounds/cough.raw music/Danse\ Macabre.raw music/Gymnopedie\ No\ 1.raw music/Local\ Forecast.raw sounds/laugh.raw music/Secret\ of\ Tiki\ Island.raw music/Unpromised.raw
42
+
43
+
44
+ NOISE:
45
+
46
+ rnnoise_contributions (only "other" and "none" samples)
47
+ https://people.xiph.org/~jm/demo/rnnoise/rnnoise_contributions.tar.gz
48
+
49
+
50
+ COUNT: 13212874 (x87)
51
+
52
+ NOTE: All files processed into correct raws through ffmpeg: ffmpeg -i in -f s16le -ac 1 -ar 48000 out.raw
models/rnnoise-models/conjoined-burgers-2018-08-28/newweights9i.hdf5.xz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:34b17aa8fbae7784def7be6389dd3efdd563587d94fca6a0a84bf62ed64717e3
3
+ size 134
models/rnnoise-models/leavened-quisling-2018-08-31/info.txt ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SUITE: leavened-quisling-2018-08-31
2
+
3
+ INTENT:
4
+
5
+ Voice in a noisy recording environment.
6
+
7
+
8
+ SIGNAL:
9
+
10
+ voice
11
+ hamlet-002-act-1-scene-1.1626
12
+ http://etc.usf.edu/lit2go/94/hamlet/1626/
13
+ human_rights_un_chi_nf.mp3
14
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
15
+ human_rights_un_cze_msed.mp3
16
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
17
+ huntingofthesnark_01_carrol_128kb
18
+ https://librivox.org/the-hunting-of-the-snark-by-lewis-carroll-3/
19
+ teacupclub_01_armstrong_128kb
20
+ https://librivox.org/the-teacup-club-by-eliza-armstrong/
21
+ warletters_01_allan_128kb.mp3
22
+ https://librivox.org/war-letters-from-a-young-queenslander-by-robert-marshall-allen/
23
+ TSPspeech
24
+ http://www-mmsp.ece.mcgill.ca/Documents/Data/
25
+
26
+ sounds
27
+ cough
28
+ https://freesound.org/ sounds: 205012 222644 252240 323532 342587 343880 343885 343986 369295 391284 401334 407839 419781 425777 87412
29
+ laugh
30
+ https://freesound.org/ sounds: 167578 189278 263775 319346 343934 344043 344064 367680 381275 383237 393353 401214 433921 73123
31
+
32
+
33
+ ./chopper voice/hamlet-002-act-1-scene-1.1626.raw voice/human_rights_un_chi_nf.raw sounds/cough.raw voice/human_rights_un_cze_msed.raw voice/huntingofthesnark_01_carrol_128kb.raw sounds/laugh.raw voice/teacupclub_01_armstrong_128kb.raw voice/warletters_01_allan_128kb.raw voice/TSPspeech.raw
34
+
35
+
36
+ NOISE:
37
+
38
+ rnnoise_contributions
39
+ https://people.xiph.org/~jm/demo/rnnoise/rnnoise_contributions.tar.gz
40
+
41
+
42
+ ./noise-chopper *.raw
43
+
44
+
45
+ COUNT: 10000000 (x87)
46
+
47
+ NOTE: All files processed into correct raws through ffmpeg: ffmpeg -i in -f s16le -ac 1 -ar 48000 out.raw
models/rnnoise-models/leavened-quisling-2018-08-31/lq.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/leavened-quisling-2018-08-31/lq_int8.txt ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/leavened-quisling-2018-08-31/weights.hdf5.xz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:299f77c57f81ec722576480079723473b7cd2a53724adb6c34ddd7506acf8638
3
+ size 970328
models/rnnoise-models/marathon-prescription-2018-08-29/info.txt ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SUITE: marathon-prescription-2018-08-29
2
+
3
+ INTENT:
4
+
5
+ General use in a noisy recording environment.
6
+
7
+
8
+ SIGNAL:
9
+
10
+ voice
11
+ hamlet-002-act-1-scene-1.1626
12
+ http://etc.usf.edu/lit2go/94/hamlet/1626/
13
+ human_rights_un_chi_nf.mp3
14
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
15
+ human_rights_un_cze_msed.mp3
16
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
17
+ huntingofthesnark_01_carrol_128kb
18
+ https://librivox.org/the-hunting-of-the-snark-by-lewis-carroll-3/
19
+ teacupclub_01_armstrong_128kb
20
+ https://librivox.org/the-teacup-club-by-eliza-armstrong/
21
+ warletters_01_allan_128kb.mp3
22
+ https://librivox.org/war-letters-from-a-young-queenslander-by-robert-marshall-allen/
23
+ TSPspeech
24
+ http://www-mmsp.ece.mcgill.ca/Documents/Data/
25
+
26
+ sounds
27
+ cough
28
+ https://freesound.org/ sounds: 205012 222644 252240 323532 342587 343880 343885 343986 369295 391284 401334 407839 419781 425777 87412
29
+ laugh
30
+ https://freesound.org/ sounds: 167578 189278 263775 319346 343934 344043 344064 367680 381275 383237 393353 401214 433921 73123
31
+
32
+ music
33
+ Danse Macabre
34
+ Gymnopedie No 1
35
+ Local Forecast
36
+ Secret of Tiki Island
37
+ Unpromised
38
+ https://incompetech.com/music/royalty-free/
39
+
40
+
41
+ ./chopper voice/hamlet-002-act-1-scene-1.1626.raw voice/human_rights_un_chi_nf.raw sounds/cough.raw voice/human_rights_un_cze_msed.raw voice/huntingofthesnark_01_carrol_128kb.raw sounds/laugh.raw voice/teacupclub_01_armstrong_128kb.raw voice/warletters_01_allan_128kb.raw voice/TSPspeech.raw sounds/cough.raw music/Danse\ Macabre.raw music/Gymnopedie\ No\ 1.raw music/Local\ Forecast.raw sounds/laugh.raw music/Secret\ of\ Tiki\ Island.raw music/Unpromised.raw
42
+
43
+
44
+ NOISE:
45
+
46
+ rnnoise_contributions
47
+ https://people.xiph.org/~jm/demo/rnnoise/rnnoise_contributions.tar.gz
48
+
49
+
50
+ ./noise-chopper *.raw
51
+
52
+
53
+ COUNT: 10000000 (x87)
54
+
55
+ NOTE: All files processed into correct raws through ffmpeg: ffmpeg -i in -f s16le -ac 1 -ar 48000 out.raw
models/rnnoise-models/marathon-prescription-2018-08-29/mp.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/marathon-prescription-2018-08-29/mp_int8.txt ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/marathon-prescription-2018-08-29/newweights9i.hdf5.xz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:117030e468a340129897e7d7de793a071f7a7293a2faf2a11d07e131aa3ba95f
3
+ size 972476
models/rnnoise-models/somnolent-hogwash-2018-09-01/info.txt ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ SUITE: somnolent-hogwash-2018-09-01
2
+
3
+ INTENT:
4
+
5
+ Speech in a reasonable recording environment. Fans, AC, computers, etc. Note
6
+ that "speech" means speech, not other human sounds; laughter, coughing, etc are
7
+ not included.
8
+
9
+
10
+ SIGNAL:
11
+
12
+ voice
13
+ hamlet-002-act-1-scene-1.1626
14
+ http://etc.usf.edu/lit2go/94/hamlet/1626/
15
+ human_rights_un_chi_nf.mp3
16
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
17
+ human_rights_un_cze_msed.mp3
18
+ https://librivox.org/universal-declaration-of-human-rights-by-united-nations-volume-02/
19
+ huntingofthesnark_01_carrol_128kb
20
+ https://librivox.org/the-hunting-of-the-snark-by-lewis-carroll-3/
21
+ teacupclub_01_armstrong_128kb
22
+ https://librivox.org/the-teacup-club-by-eliza-armstrong/
23
+ warletters_01_allan_128kb.mp3
24
+ https://librivox.org/war-letters-from-a-young-queenslander-by-robert-marshall-allen/
25
+ TSPspeech
26
+ http://www-mmsp.ece.mcgill.ca/Documents/Data/
27
+
28
+
29
+ ./chopper voice/hamlet-002-act-1-scene-1.1626.raw voice/human_rights_un_chi_nf.raw voice/human_rights_un_cze_msed.raw voice/huntingofthesnark_01_carrol_128kb.raw voice/teacupclub_01_armstrong_128kb.raw voice/warletters_01_allan_128kb.raw voice/TSPspeech.raw
30
+
31
+
32
+ NOISE:
33
+
34
+ rnnoise_contributions (only "other" and "none" samples)
35
+ https://people.xiph.org/~jm/demo/rnnoise/rnnoise_contributions.tar.gz
36
+
37
+
38
+ COUNT: 13212874 (x87)
39
+
40
+ NOTE: All files processed into correct raws through ffmpeg: ffmpeg -i in -f s16le -ac 1 -ar 48000 out.raw
models/rnnoise-models/somnolent-hogwash-2018-09-01/sh.rnnn ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/somnolent-hogwash-2018-09-01/sh_int8.txt ADDED
The diff for this file is too large to render. See raw diff
 
models/rnnoise-models/somnolent-hogwash-2018-09-01/weights.hdf5.xz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ecd811e9fa72e11b470a0455f9c7878004384a77c013247eb19f581f94d33ae7
3
+ size 973500
models/rnnoise-models/source.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/sparrowli/rnnoise-models
models/rnnoise-models/tools/TSPspeech.raw.sh ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ set -e
3
+ [ -d TSPspeech ] || (
4
+ mkdir -p TSPspeech
5
+ cd TSPspeech
6
+ 7z x ../TSPspeech.iso
7
+ )
8
+ for i in `seq -w 01 10`
9
+ do
10
+ for j in TSPspeech/48k/*/*$i.wav
11
+ do
12
+ [ ! -e "$j" ] || ffmpeg -i "$j" -f s16le -ac 1 -ar 48000 -
13
+ done
14
+ done > TSPspeech.raw
models/rnnoise-models/tools/chopper.c ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright (c) 2018 Gregor Richards
3
+ *
4
+ * Permission to use, copy, modify, and/or distribute this software for any
5
+ * purpose with or without fee is hereby granted, provided that the above
6
+ * copyright notice and this permission notice appear in all copies.
7
+ *
8
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
+ */
16
+
17
+ #include <fcntl.h>
18
+ #include <stdio.h>
19
+ #include <stdlib.h>
20
+ #include <sys/types.h>
21
+ #include <unistd.h>
22
+
23
+ #define CHOP_SZ 384000
24
+
25
+ int main(int argc, char **argv)
26
+ {
27
+ int *fds;
28
+ int i;
29
+ ssize_t rd, total;
30
+ short buf[CHOP_SZ];
31
+
32
+ fds = malloc((argc-1)*sizeof(int));
33
+ if (fds == NULL) {
34
+ perror("malloc");
35
+ exit(1);
36
+ }
37
+
38
+ /* Open each file */
39
+ for (i = 1; i < argc; i++) {
40
+ int fd = open(argv[i], O_RDONLY);
41
+ if (fd < 0) {
42
+ perror(argv[i]);
43
+ exit(1);
44
+ }
45
+ fds[i-1] = fd;
46
+ }
47
+
48
+ /* Loop over the input */
49
+ while (1) {
50
+ char haveInput = 0;
51
+
52
+ /* Loop over each file */
53
+ for (i = 0; i < argc - 1; i++) {
54
+ int fd = fds[i];
55
+ if (fd < 0) continue;
56
+ haveInput = 1;
57
+
58
+ /* Take an appropriate chunk */
59
+ total = 0;
60
+ while (total < sizeof(buf)) {
61
+ rd = read(fd, ((char *) buf) + total, sizeof(buf) - total);
62
+ if (rd <= 0) {
63
+ close(fd);
64
+ fds[i] = -1;
65
+ break;
66
+ }
67
+ total += rd;
68
+ }
69
+ if (total == 0 || (total%sizeof(short)) != 0)
70
+ continue;
71
+
72
+ /* Write it out */
73
+ write(1, buf, total);
74
+ }
75
+
76
+ /* Stop if they were all ended */
77
+ if (!haveInput)
78
+ break;
79
+ }
80
+
81
+ return 0;
82
+ }
models/rnnoise-models/tools/noise-chopper.c ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright (c) 2018 Gregor Richards
3
+ *
4
+ * Permission to use, copy, modify, and/or distribute this software for any
5
+ * purpose with or without fee is hereby granted, provided that the above
6
+ * copyright notice and this permission notice appear in all copies.
7
+ *
8
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
+ */
16
+
17
+ #include <fcntl.h>
18
+ #include <stdio.h>
19
+ #include <stdlib.h>
20
+ #include <sys/types.h>
21
+ #include <unistd.h>
22
+
23
+ #define TOTAL_SZ (10000000LL * 480)
24
+
25
+ int main(int argc, char **argv)
26
+ {
27
+ FILE *fh;
28
+ int i;
29
+ short *buf = NULL;
30
+ long perFileSz = TOTAL_SZ / (argc-1);
31
+ long fileSz;
32
+ size_t rd;
33
+
34
+ buf = malloc(perFileSz * sizeof(short));
35
+ if (!buf) {
36
+ perror("malloc");
37
+ return 1;
38
+ }
39
+
40
+ /* Loop over the input */
41
+ for (i = 1; i < argc; i++) {
42
+ /* Seek to the middle */
43
+ fh = fopen(argv[i], "rb");
44
+ fseek(fh, 0, SEEK_END);
45
+ fileSz = ftell(fh) / sizeof(short);
46
+ if (fileSz > perFileSz)
47
+ fseek(fh, (fileSz / 2 - perFileSz / 2) * sizeof(short), SEEK_SET);
48
+ else
49
+ fseek(fh, 0, SEEK_SET);
50
+
51
+ /* Read it in */
52
+ rd = fread(buf, sizeof(short), perFileSz, fh);
53
+ fclose(fh);
54
+
55
+ /* And write it out */
56
+ write(1, buf, rd * sizeof(short));
57
+ }
58
+
59
+ return 0;
60
+ }
models/rnnoise-models/tools/sounds.raw.sh ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ for i in cough laugh
3
+ do
4
+ touch $i.raw
5
+ SZ=`wc -c $i.raw | cut -d' ' -f1`
6
+ while [ "$SZ" -lt 300000000 ]
7
+ do
8
+ cat $i/*.raw >> $i.raw
9
+ SZ=`wc -c $i.raw | cut -d' ' -f1`
10
+ done
11
+ done
models/rnnoise-wrapper/README.md ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # RNNoise Wrapper
2
+
3
+ Это простая обёртка на Python для шумоподавления [RNNoise](https://github.com/xiph/rnnoise). Поддерживается только Python 3. Код основан на [issue от snakers4](https://github.com/xiph/rnnoise/issues/69) из репозитория RNNoise, за что ему отдельное спасибо.
4
+
5
+ [RNNoise](https://jmvalin.ca/demo/rnnoise/) - это рекуррентная нейронная сеть с ячейками GRU, предназначенная для подаления шума в аудиозаписи в реальном времени (работает даже на Raspberry Pi). Стандартная модель обучена на 6.4Гб зашумленных аудиозаписей и полностью готова к использованию.
6
+
7
+ RNNoise написан на C и имеет методы для шумоподавления одного фрейма длиной 10 миллисекунд. Фрейм должен быть с частотой дискретизации 48000Гц, моно, 16 бит.
8
+
9
+ **RNNoise_Wrapper** упрощает работу с RNNoise:
10
+
11
+ - избавляет от необходимости самому извлекать фреймы/кадры из аудиозаписи
12
+ - снимает ограничения на параметры обрабатываемой wav аудиозаписи
13
+ - скрывает все нюансы работы с библиотекой на C
14
+ - избавляет от необходимости вручную компилировать RNNoise (только для Linux)
15
+ - добавляет 2 новых бинарных файла с более качественными моделями, которые поставляются вместе с пакетом (только для Linux)
16
+
17
+ **RNNoise_Wrapper содержит 2 новые более качественные модели** (обученные веса и скомпилированные бинарники RNNoise для Linux). Для обучения использовался датасет от [Microsoft DNS Challenge](https://github.com/microsoft/DNS-Challenge).
18
+
19
+ 1. **librnnoise_5h_ru_500k** — обучена на 5 часах русской речи (с подмешиванием эмоциональной речи и пения на английском языке), полученной скриптом из репозитория с датасетом. Обученные веса находятся в [`train_logs/weights_5h_ru_500k.hdf5`](https://github.com/Desklop/RNNoise_Wrapper/tree/master/train_logs/weights_5h_ru_500k.hdf5), скомпилированный RNNoise в [`rnnoise_wrapper/libs/librnnoise_5h_ru_500k.so.0.4.1`](https://github.com/Desklop/RNNoise_Wrapper/tree/master/rnnoise_wrapper/libs/librnnoise_5h_ru_500k.so.0.4.1) (только для Linux)
20
+
21
+ 2. **librnnoise_5h_b_500k** — обучена на 5 часах смешанной речи на английском, русском, немецком, французском, итальянском, испанском языках и мандаринского наречия китайского языка (с подмешиванием эмоциональной речи и пения на английском языке). Датасет для каждого языка предварительно был обрезан по самому наименьшему из них (меньше всего данных для русского языка, около 47 часов). Финальная обучающая выборка получена скриптом из репозитория с датасетом. Обученные веса находятся в [`train_logs/weights_5h_b_500k.hdf5`](https://github.com/Desklop/RNNoise_Wrapper/tree/master/train_logs/weights_5h_b_500k.hdf5), скомпилированный RNNoise в [`rnnoise_wrapper/libs/librnnoise_5h_b_500k.so.0.4.1`](https://github.com/Desklop/RNNoise_Wrapper/tree/master/rnnoise_wrapper/libs/librnnoise_5h_b_500k.so.0.4.1) (только для Linux)
22
+
23
+ 3. **librnnoise_default** — стандартная модель от авторов [RNNoise](https://jmvalin.ca/demo/rnnoise/)
24
+
25
+ Модели `librnnoise_5h_ru_500k` и `librnnoise_5h_b_500k` имеют **практически одинаковое качество** шумоподавления. `librnnoise_5h_ru_500k` больше всего **подходит для работы с русской речью**, а `librnnoise_5h_b_500k` — **для смешанной речи** либо речи на не русском языке, она более универсальна.
26
+
27
+ Сравнительные примеры работы новых моделей со стандартной доступны в [`test_audio/comparative_tests`](https://github.com/Desklop/RNNoise_Wrapper/tree/master/test_audio/comparative_tests).
28
+
29
+ Данн��я обёртка на CPU Intel i7-10510U **работает в 28-30 раз быстрее реального времени** при шумоподавлении целой аудиозаписи, и **в 18-20 раз быстрее реального времени** при работе в потоковом режиме (т.е. обработки фрагментов аудио длиной 20 мс). При этом было задействовано только 1 ядро, нагрузка на которое составила около 80-100%.
30
+
31
+ ## Установка
32
+
33
+ Данная обёртка имеет следующие зависимости: [pydub](https://github.com/jiaaro/pydub) и [numpy](https://github.com/numpy/numpy).
34
+
35
+ Установка с помощью pip:
36
+
37
+ ```bash
38
+ pip install git+https://github.com/Desklop/RNNoise_Wrapper
39
+ ```
40
+
41
+ **ВНИМАНИЕ!** Перед использованием обёртки, RNNoise необходимо скомпилировать. Если вы используете **Linux или Mac**, вы можете использовать **заранее скомпилированный RNNoise** (в ОС Ubuntu 19.10 64 bit), который **поставляется с пакетом** (он так же работает в Google Colaboratory). Если стандартный бинарный файл у вас не работает, попробуйте вручную скомпилировать RNNoise. Для этого необходимо сначала подготовить вашу ОС (предполагается, что `gcc` уже установлен):
42
+
43
+ ```bash
44
+ sudo apt-get install autoconf libtool
45
+ ```
46
+
47
+ И выполнить:
48
+
49
+ ```bash
50
+ git clone https://github.com/Desklop/RNNoise_Wrapper
51
+ cd RNNoise_Wrapper
52
+ ./compile_rnnoise.sh
53
+ ```
54
+
55
+ После этого в папке `rnnoise_wrapper/libs` появится файл `librnnoise_default.so.0.4.1`. Путь к данному бинарному файлу нужно передать при создании объекта класса RNNoise из данной обёртки (подробнее см. ниже).
56
+
57
+ Если вы используете **Windows**, то вам нужно **вручную скомпилировать RNNoise**. Вышеописанная инструкция не будет работать, **воспользуйтесь** данными **ссылками**: [один](https://github.com/xiph/rnnoise/issues/34), [два](https://github.com/jagger2048/rnnoise-windows). После компиляции путь к бинарному файлу нужно передать при создании объекта класса RNNoise из данной обёртки (подробнее см. ниже).
58
+
59
+ ## Использование
60
+
61
+ ### **1. В коде Python**
62
+
63
+ **Подавление шума в аудиозаписи** `test.wav` и сохранение результата как `test_denoised.wav`:
64
+
65
+ ```python
66
+ from rnnoise_wrapper import RNNoise
67
+
68
+ denoiser = RNNoise()
69
+
70
+ audio = denoiser.read_wav('test.wav')
71
+ denoised_audio = denoiser.filter(audio)
72
+ denoiser.write_wav('test_denoised.wav', denoised_audio)
73
+ ```
74
+
75
+ **Подавление шума в потоковом аудио** (размер буфера равен 20 миллисекунд, т.е. 2 фрейма) (в примере используется имитация потока путём обработки аудиозаписи `test.wav` по частям с сохранением результата как `test_denoised_stream.wav`):
76
+
77
+ ```python
78
+ audio = denoiser.read_wav('test.wav')
79
+
80
+ denoised_audio = b''
81
+ buffer_size_ms = 20
82
+
83
+ for i in range(buffer_size_ms, len(audio), buffer_size_ms):
84
+ denoised_audio += denoiser.filter(audio[i-buffer_size_ms:i].raw_data, sample_rate=audio.frame_rate)
85
+ if len(audio) % buffer_size_ms != 0:
86
+ denoised_audio += denoiser.filter(audio[len(audio)-(len(audio)%buffer_size_ms):].raw_data, sample_rate=audio.frame_rate)
87
+
88
+ denoiser.write_wav('test_denoised_stream.wav', denoised_audio, sample_rate=audio.frame_rate)
89
+ ```
90
+
91
+ **Больше примеров работы с обёрткой** можно найти в [`rnnoise_wrapper_functional_tests.py`](https://github.com/Desklop/RNNoise_Wrapper/blob/master/rnnoise_wrapper_functional_tests.py) и [`rnnoise_wrapper_comparative_test.py`](https://github.com/Desklop/RNNoise_Wrapper/blob/master/rnnoise_wrapper_comparative_test.py).
92
+
93
+ Класс [RNNoise](https://github.com/Desklop/RNNoise_Wrapper/blob/master/rnnoise_wrapper/rnnoise_wrapper.py#L29) содержит следующие методы:
94
+
95
+ - [`read_wav()`](https://github.com/Desklop/RNNoise_Wrapper/blob/master/rnnoise_wrapper/rnnoise_wrapper.py#L256): принимает имя .wav аудиозаписи, приводит её в поддерживаемый формат (16 бит, моно) и возвращает объект `pydub.AudioSegment` с аудиозаписью
96
+ - [`write_wav()`](https://github.com/Desklop/RNNoise_Wrapper/blob/master/rnnoise_wrapper/rnnoise_wrapper.py#L277): принимает имя .wav аудиозаписи, объект `pydub.AudioSegment` (или байтовую строку с аудиоданными без заголовков wav) и сохраняет аудиозапись под переданным именем
97
+ - [`filter()`](https://github.com/Desklop/RNNoise_Wrapper/blob/master/rnnoise_wrapper/rnnoise_wrapper.py#L150): принимает объект `pydub.AudioSegment` (или байтовую строку с аудиоданными без заголовков wav), приводит его к частоте дискретизации 48000 Гц, **разбивает аудиозапись на фреймы** (длиной 10 миллисекунд), **очищает их от шума и возвращает** объект `pydub.AudioSegment` (или байтовую строку без заголовков wav) с сохранением исходной частоты дискретизации
98
+ - [`filter_frame()`](https://github.com/Desklop/RNNoise_Wrapper/blob/master/rnnoise_wrapper/rnnoise_wrapper.py#L128): очистка только одного фрейма (длиной 10 мс, 16 бит, моно, 48000 Гц) от шума (обращение напрямую к бинарному файлу библиотеки RNNoise)
99
+
100
+ Подробная информация о поддерживаемых аргументах и работе каждого метода находится в комментариях в исходном коде этих методов.
101
+
102
+ **По умолчанию используется модель `librnnoise_5h_b_500k`**. При создании объекта класса `RNNoise` из обёртки с помощью аргумента `f_name_lib` можно указать другую модель (бинарник RNNoise):
103
+
104
+ - **`librnnoise_5h_ru_500k`** или **`librnnoise_default`** для использования одной из комплектных моделей
105
+ - полное/частичное имя/путь к скомпилированному бинарному файлу RNNoise
106
+
107
+ ```python
108
+ denoiser_def = RNNoise(f_name_lib='librnnoise_5h_ru_500k')
109
+ denoiser_new = RNNoise(f_name_lib='path/to/librnnoise.so.0.4.1')
110
+ ```
111
+
112
+ **Особенности основного метода `filter()`:**
113
+
114
+ - для максимально качественной работы необходима аудиозапись длиной минимум 1 секунда, на которой присутсвует как голос, так и шум (причём шум в идеале должен быть до и после голоса). В противном случае качество шумоподавления будет хуже
115
+ - в случае, если передаются части одной аудиозаписи (шумоподавление потоково аудио), то их длина должна быть не менее `10` мс и кратна `10` (т.к. библиотека RNNoise поддерживает только фреймы длиной `10` мс). Такой вариант работы на качество шумоподавления не влияет
116
+ - если последний фрейм переданной аудиозаписи меньше `10` мс (или передана часть аудио длиной меньше `10` мс), то он дополняется нулями до необходимого размера. Из-за этого возможно небольшое увеличение длины итоговой аудиозаписи после шумоподавления
117
+ - библиотека RNNoise дополнительно для каждого фрейма возвращает вероятность наличия голоса в этом фрейме (в виде числа от `0` до `1`) и с помощью аргумента `voice_prob_threshold` можно отфильтровать фреймы по этому значению. Если вероятность ниже, чем `voice_prob_threshold`, то фрейм будет удалён из аудиозаписи
118
+
119
+ ### **2. В качестве инструмента командной строки**
120
+
121
+ ```bash
122
+ python3 -m rnnoise_wrapper.cli -i input.wav -o output.wav
123
+ ```
124
+
125
+ или
126
+
127
+ ```bash
128
+ rnnoise_wrapper -i input.wav -o output.wav
129
+ ```
130
+
131
+ Где:
132
+
133
+ - `input.wav` - имя исходной .wav аудиозаписи
134
+ - `output.wav` - имя .wav аудиофайла, в который будет сохранена аудиозапись после шумоподавления
135
+
136
+ ## Обучение
137
+
138
+ Инструкция по обучению RNNoise на своих данных находится в [`TRAINING.md`](https://github.com/Desklop/RNNoise_Wrapper/tree/master/TRAINING.md).
139
+
140
+ ---
141
+
142
+ Если у вас возникнут вопросы или вы хотите сотрудничать, можете написать мне на почту: vladsklim@gmail.com или в [LinkedIn](https://www.linkedin.com/in/vladklim/).
models/rnnoise-wrapper/languages.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ RU train_logs/weights_5h_ru_500k.hdf5 rnnoise_wrapper/libs/librnnoise_5h_ru_500k.so.0.4.1
2
+ DE, ES, EN, FR, IT, RU, ZH train_logs/weights_5h_b_500k.hdf5 rnnoise_wrapper/libs/librnnoise_5h_b_500k.so.0.4.1
models/rnnoise-wrapper/source.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/dbklim/RNNoise_Wrapper
models/rnnoise-wrapper/weights_5h_b_500k.hdf5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eb2d2e150f96a37ef694608d6cb4ccfeea1e6f74a043f0fa3c90cf97141dd52e
3
+ size 1104400
models/rnnoise-wrapper/weights_5h_ru_500k.hdf5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:31196c145c2605adf0f863e3bbc448cea61e31ca8551f5652baed28c9a076cf2
3
+ size 1104400