%global _empty_manifest_terminate_build 0 Name: python-torch-stoi Version: 0.1.2 Release: 1 Summary: Computes Short Term Objective Intelligibility in PyTorch License: MIT URL: https://github.com/mpariente/pytorch_stoi Source0: https://mirrors.aliyun.com/pypi/web/packages/4a/bb/0a3122124f18d1091274af1fe59bc77218143f4fc35fa48914e89a7431e9/torch_stoi-0.1.2.tar.gz BuildArch: noarch %description ## PyTorch implementation of STOI [![Build Status][travis-badge]][travis] [![PyPI Status](https://badge.fury.io/py/torch-stoi.svg)](https://badge.fury.io/py/torch-stoi) Implementation of the classical and extended Short Term Objective Intelligibility in PyTorch. See also [Cees Taal's website](http://www.ceestaal.nl/code/) and the [python implementation](https://github.com/mpariente/pystoi) ### Install ```bash pip install torch_stoi ``` ## Important warning **This implementation is intended to be used as a loss function only.** It doesn't replicate the exact behavior of the original metrics but the results should be close enough that it can be used as a loss function. See the Notes in the [`NegSTOILoss`](./torch_stoi/stoi.py) class. Quantitative comparison coming soon hopefully :rocket: ### Usage ```python import torch from torch import nn from torch_stoi import NegSTOILoss sample_rate = 16000 loss_func = NegSTOILoss(sample_rate=sample_rate) # Your nnet and optimizer definition here nnet = nn.Module() noisy_speech = torch.randn(2, 16000) clean_speech = torch.randn(2, 16000) # Estimate clean speech est_speech = nnet(noisy_speech) # Compute loss and backward (then step etc...) loss_batch = loss_func(est_speech, clean_speech) loss_batch.mean().backward() ``` ### Comparing NumPy and PyTorch versions : the static test Values obtained with the NumPy version are compared to the PyTorch version in the following graphs. ##### 8kHz Classic STOI measure Extended STOI measure ##### 16kHz Classic STOI measure Extended STOI measure 16kHz signals used to compare both versions contained a lot of silence, which explains why the match is very bad without VAD. ### Comparing NumPy and PyTorch versions : Training a DNN Coming in the near future ### References * [1] C.H.Taal, R.C.Hendriks, R.Heusdens, J.Jensen 'A Short-Time Objective Intelligibility Measure for Time-Frequency Weighted Noisy Speech', ICASSP 2010, Texas, Dallas. * [2] C.H.Taal, R.C.Hendriks, R.Heusdens, J.Jensen 'An Algorithm for Intelligibility Prediction of Time-Frequency Weighted Noisy Speech', IEEE Transactions on Audio, Speech, and Language Processing, 2011. * [3] J. Jensen and C. H. Taal, 'An Algorithm for Predicting the Intelligibility of Speech Masked by Modulated Noise Maskers', IEEE Transactions on Audio, Speech and Language Processing, 2016. [travis]: https://travis-ci.com/mpariente/pytorch_stoi [travis-badge]: https://travis-ci.com/mpariente/pytorch_stoi.svg?branch=master %package -n python3-torch-stoi Summary: Computes Short Term Objective Intelligibility in PyTorch Provides: python-torch-stoi BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-torch-stoi ## PyTorch implementation of STOI [![Build Status][travis-badge]][travis] [![PyPI Status](https://badge.fury.io/py/torch-stoi.svg)](https://badge.fury.io/py/torch-stoi) Implementation of the classical and extended Short Term Objective Intelligibility in PyTorch. See also [Cees Taal's website](http://www.ceestaal.nl/code/) and the [python implementation](https://github.com/mpariente/pystoi) ### Install ```bash pip install torch_stoi ``` ## Important warning **This implementation is intended to be used as a loss function only.** It doesn't replicate the exact behavior of the original metrics but the results should be close enough that it can be used as a loss function. See the Notes in the [`NegSTOILoss`](./torch_stoi/stoi.py) class. Quantitative comparison coming soon hopefully :rocket: ### Usage ```python import torch from torch import nn from torch_stoi import NegSTOILoss sample_rate = 16000 loss_func = NegSTOILoss(sample_rate=sample_rate) # Your nnet and optimizer definition here nnet = nn.Module() noisy_speech = torch.randn(2, 16000) clean_speech = torch.randn(2, 16000) # Estimate clean speech est_speech = nnet(noisy_speech) # Compute loss and backward (then step etc...) loss_batch = loss_func(est_speech, clean_speech) loss_batch.mean().backward() ``` ### Comparing NumPy and PyTorch versions : the static test Values obtained with the NumPy version are compared to the PyTorch version in the following graphs. ##### 8kHz Classic STOI measure Extended STOI measure ##### 16kHz Classic STOI measure Extended STOI measure 16kHz signals used to compare both versions contained a lot of silence, which explains why the match is very bad without VAD. ### Comparing NumPy and PyTorch versions : Training a DNN Coming in the near future ### References * [1] C.H.Taal, R.C.Hendriks, R.Heusdens, J.Jensen 'A Short-Time Objective Intelligibility Measure for Time-Frequency Weighted Noisy Speech', ICASSP 2010, Texas, Dallas. * [2] C.H.Taal, R.C.Hendriks, R.Heusdens, J.Jensen 'An Algorithm for Intelligibility Prediction of Time-Frequency Weighted Noisy Speech', IEEE Transactions on Audio, Speech, and Language Processing, 2011. * [3] J. Jensen and C. H. Taal, 'An Algorithm for Predicting the Intelligibility of Speech Masked by Modulated Noise Maskers', IEEE Transactions on Audio, Speech and Language Processing, 2016. [travis]: https://travis-ci.com/mpariente/pytorch_stoi [travis-badge]: https://travis-ci.com/mpariente/pytorch_stoi.svg?branch=master %package help Summary: Development documents and examples for torch-stoi Provides: python3-torch-stoi-doc %description help ## PyTorch implementation of STOI [![Build Status][travis-badge]][travis] [![PyPI Status](https://badge.fury.io/py/torch-stoi.svg)](https://badge.fury.io/py/torch-stoi) Implementation of the classical and extended Short Term Objective Intelligibility in PyTorch. See also [Cees Taal's website](http://www.ceestaal.nl/code/) and the [python implementation](https://github.com/mpariente/pystoi) ### Install ```bash pip install torch_stoi ``` ## Important warning **This implementation is intended to be used as a loss function only.** It doesn't replicate the exact behavior of the original metrics but the results should be close enough that it can be used as a loss function. See the Notes in the [`NegSTOILoss`](./torch_stoi/stoi.py) class. Quantitative comparison coming soon hopefully :rocket: ### Usage ```python import torch from torch import nn from torch_stoi import NegSTOILoss sample_rate = 16000 loss_func = NegSTOILoss(sample_rate=sample_rate) # Your nnet and optimizer definition here nnet = nn.Module() noisy_speech = torch.randn(2, 16000) clean_speech = torch.randn(2, 16000) # Estimate clean speech est_speech = nnet(noisy_speech) # Compute loss and backward (then step etc...) loss_batch = loss_func(est_speech, clean_speech) loss_batch.mean().backward() ``` ### Comparing NumPy and PyTorch versions : the static test Values obtained with the NumPy version are compared to the PyTorch version in the following graphs. ##### 8kHz Classic STOI measure Extended STOI measure ##### 16kHz Classic STOI measure Extended STOI measure 16kHz signals used to compare both versions contained a lot of silence, which explains why the match is very bad without VAD. ### Comparing NumPy and PyTorch versions : Training a DNN Coming in the near future ### References * [1] C.H.Taal, R.C.Hendriks, R.Heusdens, J.Jensen 'A Short-Time Objective Intelligibility Measure for Time-Frequency Weighted Noisy Speech', ICASSP 2010, Texas, Dallas. * [2] C.H.Taal, R.C.Hendriks, R.Heusdens, J.Jensen 'An Algorithm for Intelligibility Prediction of Time-Frequency Weighted Noisy Speech', IEEE Transactions on Audio, Speech, and Language Processing, 2011. * [3] J. Jensen and C. H. Taal, 'An Algorithm for Predicting the Intelligibility of Speech Masked by Modulated Noise Maskers', IEEE Transactions on Audio, Speech and Language Processing, 2016. [travis]: https://travis-ci.com/mpariente/pytorch_stoi [travis-badge]: https://travis-ci.com/mpariente/pytorch_stoi.svg?branch=master %prep %autosetup -n torch_stoi-0.1.2 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-torch-stoi -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Jun 08 2023 Python_Bot - 0.1.2-1 - Package Spec generated