Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network

This repository contains code for the paper:

Tailleur, M., Aumond, P., Lagrange, M., & Tourre, V. (2024). Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network. The Journal of the Acoustical Society of America (JASA).

SETUP

First, install requirements.txt using the following command in a new Python 3.9.15. environment:

pip install -r requirements.txt

The experiment plan is developped with doce. No need to download doce as a doce folder is already provided in the repository.

Additionally, download the pretrained model (PANN ResNet38) by executing the following command:

python3 download/download_pretrained_models.py

REPLICATION: CORRELATION WITH GRAFIC AND LORIENT1K

DOWNLOAD DATASETS

Lorient-1k is already downloaded in the current repository in LORIENT1K_DATASET. It is available at https://zenodo.org/records/5153616, but the current LORIENT1K_DATASET folder also contains the audios which are not available on the zenodo repository. Grafic has not been published yet, please send me a message at modan.tailleur@gmail.com if you want to get this dataset.

RUN EXPERIMENT

To replicate the correlation calculation, you can launch, in this order:

python3 main_doce.py -s groundtruth/ -c
python3 main_doce.py -s normalization/ -c
python3 main_doce.py -s reference/ -c

If you don't have access to GRAFIC yet, please launch

python3 main_doce.py -s groundtruth/dataset=Lorient1k -c
python3 main_doce.py -s normalization/dataset=Lorient1k -c
python3 main_doce.py -s reference/dataset=Lorient1k -c

Then you can launch the following code to generate the result tables. It will automatically add an std evaluation by generating noise in the humanly made annotations (gaussion noise with an std of 0.1), and generating like this 100 different correlation tables from which we can have a correlation std estimation:

python3 utils_plot/plot_result_table.py --dataset Lorient1k
python3 utils_plot/plot_result_table.py --dataset Grafic

Launch the following code to generate the figures in the paper's correlation tables:

python3 utils_plot/plot_relation_annotation_prediction.py

REPLICATION: CENSE LORIENT FIGURES

DOWNLOAD DATASETS

Use the following command to download the Cense Lorient dataset. This dataset being heavy (1.5T), make sure you download it on a device with free space.

python3 download/download_cense_lorient.py

Or in a custom "mydevice/myfolder" folder:

python3 download/download_cense_lorient.py --output "mydevice/myfolder/CenseData/"

RUN EXPERIMENT

Check the multiplication factor to put in front of traffic, voices and birds predictions using the following code. Traffic should be 2.88, voices 1.80, and birds 2.65. Add the argument --h5_path to add "mydevice/myfolder" as the path where the cense Lorient dataset is stored (e.g. python3 cense_pick_random_samples.py --desc winter2020 --h5_path "mydevice/myfolder").

python3 utils_plot/plot_tvb_mf_jasa2023.py

Launch the following code to generate the subsets for each figure:

python3 cense_pick_random_samples.py --desc winter2020
python3 cense_pick_random_samples.py --desc winter2020-3s
python3 cense_pick_random_samples.py --desc music_festival
python3 cense_pick_random_samples.py --desc no_music_festival
python3 cense_pick_random_samples.py --desc church_functional
python3 cense_pick_random_samples.py --desc church_not_functional

Then, run the following code to compute PANN-1/3oct on the subsets. The db_offset is set to -88, calculated on winter2020 dataset, in order to get dBFS from the cense sensors. Please check if this db_offset is close to -88 (printed in terminal) when running the code for winter2020 before going further (1 or 2 dB of difference is fine).

python3 cense_compute_classifier.py --desc winter2020
python3 cense_compute_classifier.py --desc winter2020-3s
python3 cense_compute_classifier.py --desc music_festival
python3 cense_compute_classifier.py --desc no_music_festival
python3 cense_compute_classifier.py --desc church_functional
python3 cense_compute_classifier.py --desc church_not_functional

Run the following code to generate the figures in the './figures/' folder:

python3 cense_create_jasa_figures.py --desc winter2020
python3 cense_create_jasa_figures.py --desc winter2020-3s
python3 cense_create_jasa_figures.py --desc music
python3 cense_create_jasa_figures.py --desc church

DIVERSE

To generate the spectrogram:

python3 utils_plot/plot_spectro.py

To generate the Top 10 of PANN predictions and PANN-1/3oct predictions on a given audio, put your audio "myaudio.wav" in the folder "audio" and run:

python3 prediction.py myaudio.wav

To generate sound from the generated Mel spectrogram:

python3 generate_audio.py myaudio.wav

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network

This repository contains code for the paper:

Tailleur, M., Aumond, P., Lagrange, M., & Tourre, V. (2024). Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network. The Journal of the Acoustical Society of America (JASA).

SETUP

First, install requirements.txt using the following command in a new Python 3.9.15. environment:

pip install -r requirements.txt

The experiment plan is developped with doce. No need to download doce as a doce folder is already provided in the repository.

Additionally, download the pretrained model (PANN ResNet38) by executing the following command:

python3 download/download_pretrained_models.py

REPLICATION: CORRELATION WITH GRAFIC AND LORIENT1K

DOWNLOAD DATASETS

Lorient-1k is already downloaded in the current repository in LORIENT1K_DATASET. It is available at https://zenodo.org/records/5153616, but the current LORIENT1K_DATASET folder also contains the audios which are not available on the zenodo repository. Grafic has not been published yet, please send me a message at modan.tailleur@gmail.com if you want to get this dataset.

RUN EXPERIMENT

To replicate the correlation calculation, you can launch, in this order:

python3 main_doce.py -s groundtruth/ -c
python3 main_doce.py -s normalization/ -c
python3 main_doce.py -s reference/ -c

If you don't have access to GRAFIC yet, please launch

python3 main_doce.py -s groundtruth/dataset=Lorient1k -c
python3 main_doce.py -s normalization/dataset=Lorient1k -c
python3 main_doce.py -s reference/dataset=Lorient1k -c

Then you can launch the following code to generate the result tables. It will automatically add an std evaluation by generating noise in the humanly made annotations (gaussion noise with an std of 0.1), and generating like this 100 different correlation tables from which we can have a correlation std estimation:

python3 utils_plot/plot_result_table.py --dataset Lorient1k
python3 utils_plot/plot_result_table.py --dataset Grafic

Launch the following code to generate the figures in the paper's correlation tables:

python3 utils_plot/plot_relation_annotation_prediction.py

REPLICATION: CENSE LORIENT FIGURES

DOWNLOAD DATASETS

Use the following command to download the Cense Lorient dataset. This dataset being heavy (1.5T), make sure you download it on a device with free space.

python3 download/download_cense_lorient.py

Or in a custom "mydevice/myfolder" folder:

python3 download/download_cense_lorient.py --output "mydevice/myfolder/CenseData/"

RUN EXPERIMENT

Check the multiplication factor to put in front of traffic, voices and birds predictions using the following code. Traffic should be 2.88, voices 1.80, and birds 2.65. Add the argument --h5_path to add "mydevice/myfolder" as the path where the cense Lorient dataset is stored (e.g. python3 cense_pick_random_samples.py --desc winter2020 --h5_path "mydevice/myfolder").

python3 utils_plot/plot_tvb_mf_jasa2023.py

Launch the following code to generate the subsets for each figure:

python3 cense_pick_random_samples.py --desc winter2020
python3 cense_pick_random_samples.py --desc winter2020-3s
python3 cense_pick_random_samples.py --desc music_festival
python3 cense_pick_random_samples.py --desc no_music_festival
python3 cense_pick_random_samples.py --desc church_functional
python3 cense_pick_random_samples.py --desc church_not_functional

Then, run the following code to compute PANN-1/3oct on the subsets. The db_offset is set to -88, calculated on winter2020 dataset, in order to get dBFS from the cense sensors. Please check if this db_offset is close to -88 (printed in terminal) when running the code for winter2020 before going further (1 or 2 dB of difference is fine).

python3 cense_compute_classifier.py --desc winter2020
python3 cense_compute_classifier.py --desc winter2020-3s
python3 cense_compute_classifier.py --desc music_festival
python3 cense_compute_classifier.py --desc no_music_festival
python3 cense_compute_classifier.py --desc church_functional
python3 cense_compute_classifier.py --desc church_not_functional

Run the following code to generate the figures in the './figures/' folder:

python3 cense_create_jasa_figures.py --desc winter2020
python3 cense_create_jasa_figures.py --desc winter2020-3s
python3 cense_create_jasa_figures.py --desc music
python3 cense_create_jasa_figures.py --desc church

DIVERSE

To generate the spectrogram:

python3 utils_plot/plot_spectro.py

To generate the Top 10 of PANN predictions and PANN-1/3oct predictions on a given audio, put your audio "myaudio.wav" in the folder "audio" and run:

python3 prediction.py myaudio.wav

To generate sound from the generated Mel spectrogram:

python3 generate_audio.py myaudio.wav

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network

This repository contains code for the paper:

Tailleur, M., Aumond, P., Lagrange, M., & Tourre, V. (2024). Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network. The Journal of the Acoustical Society of America (JASA).

SETUP

First, install requirements.txt using the following command in a new Python 3.9.15. environment:

pip install -r requirements.txt

The experiment plan is developped with doce. No need to download doce as a doce folder is already provided in the repository.

Additionally, download the pretrained model (PANN ResNet38) by executing the following command:

python3 download/download_pretrained_models.py

REPLICATION: CORRELATION WITH GRAFIC AND LORIENT1K

DOWNLOAD DATASETS

Lorient-1k is already downloaded in the current repository in LORIENT1K_DATASET. It is available at https://zenodo.org/records/5153616, but the current LORIENT1K_DATASET folder also contains the audios which are not available on the zenodo repository. Grafic has not been published yet, please send me a message at modan.tailleur@gmail.com if you want to get this dataset.

RUN EXPERIMENT

To replicate the correlation calculation, you can launch, in this order:

python3 main_doce.py -s groundtruth/ -c
python3 main_doce.py -s normalization/ -c
python3 main_doce.py -s reference/ -c

If you don't have access to GRAFIC yet, please launch

python3 main_doce.py -s groundtruth/dataset=Lorient1k -c
python3 main_doce.py -s normalization/dataset=Lorient1k -c
python3 main_doce.py -s reference/dataset=Lorient1k -c

Then you can launch the following code to generate the result tables. It will automatically add an std evaluation by generating noise in the humanly made annotations (gaussion noise with an std of 0.1), and generating like this 100 different correlation tables from which we can have a correlation std estimation:

python3 utils_plot/plot_result_table.py --dataset Lorient1k
python3 utils_plot/plot_result_table.py --dataset Grafic

Launch the following code to generate the figures in the paper's correlation tables:

python3 utils_plot/plot_relation_annotation_prediction.py

REPLICATION: CENSE LORIENT FIGURES

DOWNLOAD DATASETS

Use the following command to download the Cense Lorient dataset. This dataset being heavy (1.5T), make sure you download it on a device with free space.

python3 download/download_cense_lorient.py

Or in a custom "mydevice/myfolder" folder:

python3 download/download_cense_lorient.py --output "mydevice/myfolder/CenseData/"

RUN EXPERIMENT

Check the multiplication factor to put in front of traffic, voices and birds predictions using the following code. Traffic should be 2.88, voices 1.80, and birds 2.65. Add the argument --h5_path to add "mydevice/myfolder" as the path where the cense Lorient dataset is stored (e.g. python3 cense_pick_random_samples.py --desc winter2020 --h5_path "mydevice/myfolder").

python3 utils_plot/plot_tvb_mf_jasa2023.py

Launch the following code to generate the subsets for each figure:

python3 cense_pick_random_samples.py --desc winter2020
python3 cense_pick_random_samples.py --desc winter2020-3s
python3 cense_pick_random_samples.py --desc music_festival
python3 cense_pick_random_samples.py --desc no_music_festival
python3 cense_pick_random_samples.py --desc church_functional
python3 cense_pick_random_samples.py --desc church_not_functional

Then, run the following code to compute PANN-1/3oct on the subsets. The db_offset is set to -88, calculated on winter2020 dataset, in order to get dBFS from the cense sensors. Please check if this db_offset is close to -88 (printed in terminal) when running the code for winter2020 before going further (1 or 2 dB of difference is fine).

python3 cense_compute_classifier.py --desc winter2020
python3 cense_compute_classifier.py --desc winter2020-3s
python3 cense_compute_classifier.py --desc music_festival
python3 cense_compute_classifier.py --desc no_music_festival
python3 cense_compute_classifier.py --desc church_functional
python3 cense_compute_classifier.py --desc church_not_functional

Run the following code to generate the figures in the './figures/' folder:

python3 cense_create_jasa_figures.py --desc winter2020
python3 cense_create_jasa_figures.py --desc winter2020-3s
python3 cense_create_jasa_figures.py --desc music
python3 cense_create_jasa_figures.py --desc church

DIVERSE

To generate the spectrogram:

python3 utils_plot/plot_spectro.py

To generate the Top 10 of PANN predictions and PANN-1/3oct predictions on a given audio, put your audio "myaudio.wav" in the folder "audio" and run:

python3 prediction.py myaudio.wav

To generate sound from the generated Mel spectrogram:

python3 generate_audio.py myaudio.wav

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network

This repository contains code for the paper:

Tailleur, M., Aumond, P., Lagrange, M., & Tourre, V. (2024). Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network. The Journal of the Acoustical Society of America (JASA).

SETUP

First, install requirements.txt using the following command in a new Python 3.9.15. environment:

pip install -r requirements.txt

The experiment plan is developped with doce. No need to download doce as a doce folder is already provided in the repository.

Additionally, download the pretrained model (PANN ResNet38) by executing the following command:

python3 download/download_pretrained_models.py

REPLICATION: CORRELATION WITH GRAFIC AND LORIENT1K

DOWNLOAD DATASETS

Lorient-1k is already downloaded in the current repository in LORIENT1K_DATASET. It is available at https://zenodo.org/records/5153616, but the current LORIENT1K_DATASET folder also contains the audios which are not available on the zenodo repository. Grafic has not been published yet, please send me a message at modan.tailleur@gmail.com if you want to get this dataset.

RUN EXPERIMENT

To replicate the correlation calculation, you can launch, in this order:

python3 main_doce.py -s groundtruth/ -c
python3 main_doce.py -s normalization/ -c
python3 main_doce.py -s reference/ -c

If you don't have access to GRAFIC yet, please launch

python3 main_doce.py -s groundtruth/dataset=Lorient1k -c
python3 main_doce.py -s normalization/dataset=Lorient1k -c
python3 main_doce.py -s reference/dataset=Lorient1k -c

Then you can launch the following code to generate the result tables. It will automatically add an std evaluation by generating noise in the humanly made annotations (gaussion noise with an std of 0.1), and generating like this 100 different correlation tables from which we can have a correlation std estimation:

python3 utils_plot/plot_result_table.py --dataset Lorient1k
python3 utils_plot/plot_result_table.py --dataset Grafic

Launch the following code to generate the figures in the paper's correlation tables:

python3 utils_plot/plot_relation_annotation_prediction.py

REPLICATION: CENSE LORIENT FIGURES

DOWNLOAD DATASETS

Use the following command to download the Cense Lorient dataset. This dataset being heavy (1.5T), make sure you download it on a device with free space.

python3 download/download_cense_lorient.py

Or in a custom "mydevice/myfolder" folder:

python3 download/download_cense_lorient.py --output "mydevice/myfolder/CenseData/"

RUN EXPERIMENT

Check the multiplication factor to put in front of traffic, voices and birds predictions using the following code. Traffic should be 2.88, voices 1.80, and birds 2.65. Add the argument --h5_path to add "mydevice/myfolder" as the path where the cense Lorient dataset is stored (e.g. python3 cense_pick_random_samples.py --desc winter2020 --h5_path "mydevice/myfolder").

python3 utils_plot/plot_tvb_mf_jasa2023.py

Launch the following code to generate the subsets for each figure:

python3 cense_pick_random_samples.py --desc winter2020
python3 cense_pick_random_samples.py --desc winter2020-3s
python3 cense_pick_random_samples.py --desc music_festival
python3 cense_pick_random_samples.py --desc no_music_festival
python3 cense_pick_random_samples.py --desc church_functional
python3 cense_pick_random_samples.py --desc church_not_functional

Then, run the following code to compute PANN-1/3oct on the subsets. The db_offset is set to -88, calculated on winter2020 dataset, in order to get dBFS from the cense sensors. Please check if this db_offset is close to -88 (printed in terminal) when running the code for winter2020 before going further (1 or 2 dB of difference is fine).

python3 cense_compute_classifier.py --desc winter2020
python3 cense_compute_classifier.py --desc winter2020-3s
python3 cense_compute_classifier.py --desc music_festival
python3 cense_compute_classifier.py --desc no_music_festival
python3 cense_compute_classifier.py --desc church_functional
python3 cense_compute_classifier.py --desc church_not_functional

Run the following code to generate the figures in the './figures/' folder:

python3 cense_create_jasa_figures.py --desc winter2020
python3 cense_create_jasa_figures.py --desc winter2020-3s
python3 cense_create_jasa_figures.py --desc music
python3 cense_create_jasa_figures.py --desc church

DIVERSE

To generate the spectrogram:

python3 utils_plot/plot_spectro.py

To generate the Top 10 of PANN predictions and PANN-1/3oct predictions on a given audio, put your audio "myaudio.wav" in the folder "audio" and run:

python3 prediction.py myaudio.wav

To generate sound from the generated Mel spectrogram:

python3 generate_audio.py myaudio.wav

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network

This repository contains code for the paper:

Tailleur, M., Aumond, P., Lagrange, M., & Tourre, V. (2024). Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network. The Journal of the Acoustical Society of America (JASA).

SETUP

First, install requirements.txt using the following command in a new Python 3.9.15. environment:

pip install -r requirements.txt

The experiment plan is developped with doce. No need to download doce as a doce folder is already provided in the repository.

Additionally, download the pretrained model (PANN ResNet38) by executing the following command:

python3 download/download_pretrained_models.py

REPLICATION: CORRELATION WITH GRAFIC AND LORIENT1K

DOWNLOAD DATASETS

Lorient-1k is already downloaded in the current repository in LORIENT1K_DATASET. It is available at https://zenodo.org/records/5153616, but the current LORIENT1K_DATASET folder also contains the audios which are not available on the zenodo repository. Grafic has not been published yet, please send me a message at modan.tailleur@gmail.com if you want to get this dataset.

RUN EXPERIMENT

To replicate the correlation calculation, you can launch, in this order:

python3 main_doce.py -s groundtruth/ -c
python3 main_doce.py -s normalization/ -c
python3 main_doce.py -s reference/ -c

If you don't have access to GRAFIC yet, please launch

python3 main_doce.py -s groundtruth/dataset=Lorient1k -c
python3 main_doce.py -s normalization/dataset=Lorient1k -c
python3 main_doce.py -s reference/dataset=Lorient1k -c

Then you can launch the following code to generate the result tables. It will automatically add an std evaluation by generating noise in the humanly made annotations (gaussion noise with an std of 0.1), and generating like this 100 different correlation tables from which we can have a correlation std estimation:

python3 utils_plot/plot_result_table.py --dataset Lorient1k
python3 utils_plot/plot_result_table.py --dataset Grafic

Launch the following code to generate the figures in the paper's correlation tables:

python3 utils_plot/plot_relation_annotation_prediction.py

REPLICATION: CENSE LORIENT FIGURES

DOWNLOAD DATASETS

Use the following command to download the Cense Lorient dataset. This dataset being heavy (1.5T), make sure you download it on a device with free space.

python3 download/download_cense_lorient.py

Or in a custom "mydevice/myfolder" folder:

python3 download/download_cense_lorient.py --output "mydevice/myfolder/CenseData/"

RUN EXPERIMENT

Check the multiplication factor to put in front of traffic, voices and birds predictions using the following code. Traffic should be 2.88, voices 1.80, and birds 2.65. Add the argument --h5_path to add "mydevice/myfolder" as the path where the cense Lorient dataset is stored (e.g. python3 cense_pick_random_samples.py --desc winter2020 --h5_path "mydevice/myfolder").

python3 utils_plot/plot_tvb_mf_jasa2023.py

Launch the following code to generate the subsets for each figure:

python3 cense_pick_random_samples.py --desc winter2020
python3 cense_pick_random_samples.py --desc winter2020-3s
python3 cense_pick_random_samples.py --desc music_festival
python3 cense_pick_random_samples.py --desc no_music_festival
python3 cense_pick_random_samples.py --desc church_functional
python3 cense_pick_random_samples.py --desc church_not_functional

Then, run the following code to compute PANN-1/3oct on the subsets. The db_offset is set to -88, calculated on winter2020 dataset, in order to get dBFS from the cense sensors. Please check if this db_offset is close to -88 (printed in terminal) when running the code for winter2020 before going further (1 or 2 dB of difference is fine).

python3 cense_compute_classifier.py --desc winter2020
python3 cense_compute_classifier.py --desc winter2020-3s
python3 cense_compute_classifier.py --desc music_festival
python3 cense_compute_classifier.py --desc no_music_festival
python3 cense_compute_classifier.py --desc church_functional
python3 cense_compute_classifier.py --desc church_not_functional

Run the following code to generate the figures in the './figures/' folder:

python3 cense_create_jasa_figures.py --desc winter2020
python3 cense_create_jasa_figures.py --desc winter2020-3s
python3 cense_create_jasa_figures.py --desc music
python3 cense_create_jasa_figures.py --desc church

DIVERSE

To generate the spectrogram:

python3 utils_plot/plot_spectro.py

To generate the Top 10 of PANN predictions and PANN-1/3oct predictions on a given audio, put your audio "myaudio.wav" in the folder "audio" and run:

python3 prediction.py myaudio.wav

To generate sound from the generated Mel spectrogram:

python3 generate_audio.py myaudio.wav

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network

This repository contains code for the paper:

Tailleur, M., Aumond, P., Lagrange, M., & Tourre, V. (2024). Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network. The Journal of the Acoustical Society of America (JASA).

SETUP

First, install requirements.txt using the following command in a new Python 3.9.15. environment:

pip install -r requirements.txt

The experiment plan is developped with doce. No need to download doce as a doce folder is already provided in the repository.

Additionally, download the pretrained model (PANN ResNet38) by executing the following command:

python3 download/download_pretrained_models.py

REPLICATION: CORRELATION WITH GRAFIC AND LORIENT1K

DOWNLOAD DATASETS

Lorient-1k is already downloaded in the current repository in LORIENT1K_DATASET. It is available at https://zenodo.org/records/5153616, but the current LORIENT1K_DATASET folder also contains the audios which are not available on the zenodo repository. Grafic has not been published yet, please send me a message at modan.tailleur@gmail.com if you want to get this dataset.

RUN EXPERIMENT

To replicate the correlation calculation, you can launch, in this order:

python3 main_doce.py -s groundtruth/ -c
python3 main_doce.py -s normalization/ -c
python3 main_doce.py -s reference/ -c

If you don't have access to GRAFIC yet, please launch

python3 main_doce.py -s groundtruth/dataset=Lorient1k -c
python3 main_doce.py -s normalization/dataset=Lorient1k -c
python3 main_doce.py -s reference/dataset=Lorient1k -c

Then you can launch the following code to generate the result tables. It will automatically add an std evaluation by generating noise in the humanly made annotations (gaussion noise with an std of 0.1), and generating like this 100 different correlation tables from which we can have a correlation std estimation:

python3 utils_plot/plot_result_table.py --dataset Lorient1k
python3 utils_plot/plot_result_table.py --dataset Grafic

Launch the following code to generate the figures in the paper's correlation tables:

python3 utils_plot/plot_relation_annotation_prediction.py

REPLICATION: CENSE LORIENT FIGURES

DOWNLOAD DATASETS

Use the following command to download the Cense Lorient dataset. This dataset being heavy (1.5T), make sure you download it on a device with free space.

python3 download/download_cense_lorient.py

Or in a custom "mydevice/myfolder" folder:

python3 download/download_cense_lorient.py --output "mydevice/myfolder/CenseData/"

RUN EXPERIMENT

Check the multiplication factor to put in front of traffic, voices and birds predictions using the following code. Traffic should be 2.88, voices 1.80, and birds 2.65. Add the argument --h5_path to add "mydevice/myfolder" as the path where the cense Lorient dataset is stored (e.g. python3 cense_pick_random_samples.py --desc winter2020 --h5_path "mydevice/myfolder").

python3 utils_plot/plot_tvb_mf_jasa2023.py

Launch the following code to generate the subsets for each figure:

python3 cense_pick_random_samples.py --desc winter2020
python3 cense_pick_random_samples.py --desc winter2020-3s
python3 cense_pick_random_samples.py --desc music_festival
python3 cense_pick_random_samples.py --desc no_music_festival
python3 cense_pick_random_samples.py --desc church_functional
python3 cense_pick_random_samples.py --desc church_not_functional

Then, run the following code to compute PANN-1/3oct on the subsets. The db_offset is set to -88, calculated on winter2020 dataset, in order to get dBFS from the cense sensors. Please check if this db_offset is close to -88 (printed in terminal) when running the code for winter2020 before going further (1 or 2 dB of difference is fine).

python3 cense_compute_classifier.py --desc winter2020
python3 cense_compute_classifier.py --desc winter2020-3s
python3 cense_compute_classifier.py --desc music_festival
python3 cense_compute_classifier.py --desc no_music_festival
python3 cense_compute_classifier.py --desc church_functional
python3 cense_compute_classifier.py --desc church_not_functional

Run the following code to generate the figures in the './figures/' folder:

python3 cense_create_jasa_figures.py --desc winter2020
python3 cense_create_jasa_figures.py --desc winter2020-3s
python3 cense_create_jasa_figures.py --desc music
python3 cense_create_jasa_figures.py --desc church

DIVERSE

To generate the spectrogram:

python3 utils_plot/plot_spectro.py

To generate the Top 10 of PANN predictions and PANN-1/3oct predictions on a given audio, put your audio "myaudio.wav" in the folder "audio" and run:

python3 prediction.py myaudio.wav

To generate sound from the generated Mel spectrogram:

python3 generate_audio.py myaudio.wav

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network

This repository contains code for the paper:

Tailleur, M., Aumond, P., Lagrange, M., & Tourre, V. (2024). Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network. The Journal of the Acoustical Society of America (JASA).

SETUP

First, install requirements.txt using the following command in a new Python 3.9.15. environment:

pip install -r requirements.txt

The experiment plan is developped with doce. No need to download doce as a doce folder is already provided in the repository.

Additionally, download the pretrained model (PANN ResNet38) by executing the following command:

python3 download/download_pretrained_models.py

REPLICATION: CORRELATION WITH GRAFIC AND LORIENT1K

DOWNLOAD DATASETS

Lorient-1k is already downloaded in the current repository in LORIENT1K_DATASET. It is available at https://zenodo.org/records/5153616, but the current LORIENT1K_DATASET folder also contains the audios which are not available on the zenodo repository. Grafic has not been published yet, please send me a message at modan.tailleur@gmail.com if you want to get this dataset.

RUN EXPERIMENT

To replicate the correlation calculation, you can launch, in this order:

python3 main_doce.py -s groundtruth/ -c
python3 main_doce.py -s normalization/ -c
python3 main_doce.py -s reference/ -c

If you don't have access to GRAFIC yet, please launch

python3 main_doce.py -s groundtruth/dataset=Lorient1k -c
python3 main_doce.py -s normalization/dataset=Lorient1k -c
python3 main_doce.py -s reference/dataset=Lorient1k -c

Then you can launch the following code to generate the result tables. It will automatically add an std evaluation by generating noise in the humanly made annotations (gaussion noise with an std of 0.1), and generating like this 100 different correlation tables from which we can have a correlation std estimation:

python3 utils_plot/plot_result_table.py --dataset Lorient1k
python3 utils_plot/plot_result_table.py --dataset Grafic

Launch the following code to generate the figures in the paper's correlation tables:

python3 utils_plot/plot_relation_annotation_prediction.py

REPLICATION: CENSE LORIENT FIGURES

DOWNLOAD DATASETS

Use the following command to download the Cense Lorient dataset. This dataset being heavy (1.5T), make sure you download it on a device with free space.

python3 download/download_cense_lorient.py

Or in a custom "mydevice/myfolder" folder:

python3 download/download_cense_lorient.py --output "mydevice/myfolder/CenseData/"

RUN EXPERIMENT

Check the multiplication factor to put in front of traffic, voices and birds predictions using the following code. Traffic should be 2.88, voices 1.80, and birds 2.65. Add the argument --h5_path to add "mydevice/myfolder" as the path where the cense Lorient dataset is stored (e.g. python3 cense_pick_random_samples.py --desc winter2020 --h5_path "mydevice/myfolder").

python3 utils_plot/plot_tvb_mf_jasa2023.py

Launch the following code to generate the subsets for each figure:

python3 cense_pick_random_samples.py --desc winter2020
python3 cense_pick_random_samples.py --desc winter2020-3s
python3 cense_pick_random_samples.py --desc music_festival
python3 cense_pick_random_samples.py --desc no_music_festival
python3 cense_pick_random_samples.py --desc church_functional
python3 cense_pick_random_samples.py --desc church_not_functional

Then, run the following code to compute PANN-1/3oct on the subsets. The db_offset is set to -88, calculated on winter2020 dataset, in order to get dBFS from the cense sensors. Please check if this db_offset is close to -88 (printed in terminal) when running the code for winter2020 before going further (1 or 2 dB of difference is fine).

python3 cense_compute_classifier.py --desc winter2020
python3 cense_compute_classifier.py --desc winter2020-3s
python3 cense_compute_classifier.py --desc music_festival
python3 cense_compute_classifier.py --desc no_music_festival
python3 cense_compute_classifier.py --desc church_functional
python3 cense_compute_classifier.py --desc church_not_functional

Run the following code to generate the figures in the './figures/' folder:

python3 cense_create_jasa_figures.py --desc winter2020
python3 cense_create_jasa_figures.py --desc winter2020-3s
python3 cense_create_jasa_figures.py --desc music
python3 cense_create_jasa_figures.py --desc church

DIVERSE

To generate the spectrogram:

python3 utils_plot/plot_spectro.py

To generate the Top 10 of PANN predictions and PANN-1/3oct predictions on a given audio, put your audio "myaudio.wav" in the folder "audio" and run:

python3 prediction.py myaudio.wav

To generate sound from the generated Mel spectrogram:

python3 generate_audio.py myaudio.wav

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network

This repository contains code for the paper:

Tailleur, M., Aumond, P., Lagrange, M., & Tourre, V. (2024). Sound source classification for soundscape analysis using fast third-octave bands data from an urban acoustic sensor network. The Journal of the Acoustical Society of America (JASA).

SETUP

First, install requirements.txt using the following command in a new Python 3.9.15. environment:

pip install -r requirements.txt

The experiment plan is developped with doce. No need to download doce as a doce folder is already provided in the repository.

Additionally, download the pretrained model (PANN ResNet38) by executing the following command:

python3 download/download_pretrained_models.py

REPLICATION: CORRELATION WITH GRAFIC AND LORIENT1K

DOWNLOAD DATASETS

Lorient-1k is already downloaded in the current repository in LORIENT1K_DATASET. It is available at https://zenodo.org/records/5153616, but the current LORIENT1K_DATASET folder also contains the audios which are not available on the zenodo repository. Grafic has not been published yet, please send me a message at modan.tailleur@gmail.com if you want to get this dataset.

RUN EXPERIMENT

To replicate the correlation calculation, you can launch, in this order:

python3 main_doce.py -s groundtruth/ -c
python3 main_doce.py -s normalization/ -c
python3 main_doce.py -s reference/ -c

If you don't have access to GRAFIC yet, please launch

python3 main_doce.py -s groundtruth/dataset=Lorient1k -c
python3 main_doce.py -s normalization/dataset=Lorient1k -c
python3 main_doce.py -s reference/dataset=Lorient1k -c

Then you can launch the following code to generate the result tables. It will automatically add an std evaluation by generating noise in the humanly made annotations (gaussion noise with an std of 0.1), and generating like this 100 different correlation tables from which we can have a correlation std estimation:

python3 utils_plot/plot_result_table.py --dataset Lorient1k
python3 utils_plot/plot_result_table.py --dataset Grafic

Launch the following code to generate the figures in the paper's correlation tables:

python3 utils_plot/plot_relation_annotation_prediction.py

REPLICATION: CENSE LORIENT FIGURES

DOWNLOAD DATASETS

Use the following command to download the Cense Lorient dataset. This dataset being heavy (1.5T), make sure you download it on a device with free space.

python3 download/download_cense_lorient.py

Or in a custom "mydevice/myfolder" folder:

python3 download/download_cense_lorient.py --output "mydevice/myfolder/CenseData/"

RUN EXPERIMENT

Check the multiplication factor to put in front of traffic, voices and birds predictions using the following code. Traffic should be 2.88, voices 1.80, and birds 2.65. Add the argument --h5_path to add "mydevice/myfolder" as the path where the cense Lorient dataset is stored (e.g. python3 cense_pick_random_samples.py --desc winter2020 --h5_path "mydevice/myfolder").

python3 utils_plot/plot_tvb_mf_jasa2023.py

Launch the following code to generate the subsets for each figure:

python3 cense_pick_random_samples.py --desc winter2020
python3 cense_pick_random_samples.py --desc winter2020-3s
python3 cense_pick_random_samples.py --desc music_festival
python3 cense_pick_random_samples.py --desc no_music_festival
python3 cense_pick_random_samples.py --desc church_functional
python3 cense_pick_random_samples.py --desc church_not_functional

Then, run the following code to compute PANN-1/3oct on the subsets. The db_offset is set to -88, calculated on winter2020 dataset, in order to get dBFS from the cense sensors. Please check if this db_offset is close to -88 (printed in terminal) when running the code for winter2020 before going further (1 or 2 dB of difference is fine).

python3 cense_compute_classifier.py --desc winter2020
python3 cense_compute_classifier.py --desc winter2020-3s
python3 cense_compute_classifier.py --desc music_festival
python3 cense_compute_classifier.py --desc no_music_festival
python3 cense_compute_classifier.py --desc church_functional
python3 cense_compute_classifier.py --desc church_not_functional

Run the following code to generate the figures in the './figures/' folder:

python3 cense_create_jasa_figures.py --desc winter2020
python3 cense_create_jasa_figures.py --desc winter2020-3s
python3 cense_create_jasa_figures.py --desc music
python3 cense_create_jasa_figures.py --desc church

DIVERSE

To generate the spectrogram:

python3 utils_plot/plot_spectro.py

To generate the Top 10 of PANN predictions and PANN-1/3oct predictions on a given audio, put your audio "myaudio.wav" in the folder "audio" and run:

python3 prediction.py myaudio.wav

To generate sound from the generated Mel spectrogram:

python3 generate_audio.py myaudio.wav

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages