diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-11 18:29:31 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 18:29:31 +0000 |
| commit | 593032cdff3f58ed5333c05a80886fcade9e6807 (patch) | |
| tree | 88708192f42e1f6634a5c3769e1a67827ebb5a3f /python-pesq.spec | |
| parent | aae41e0852e99e00b3672b0d9446c9a13b2fe78c (diff) | |
automatic import of python-pesq
Diffstat (limited to 'python-pesq.spec')
| -rw-r--r-- | python-pesq.spec | 507 |
1 files changed, 507 insertions, 0 deletions
diff --git a/python-pesq.spec b/python-pesq.spec new file mode 100644 index 0000000..14de994 --- /dev/null +++ b/python-pesq.spec @@ -0,0 +1,507 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pesq +Version: 0.0.4 +Release: 1 +Summary: Python Wrapper for PESQ Score (narrow band and wide band) +License: MIT License +URL: https://github.com/ludlows/python-pesq +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/22/e6/f8bdcef3238ac10fb3ce37d150e9b03a152d971febd681f088c6e5e17d8e/pesq-0.0.4.tar.gz +BuildArch: noarch + + +%description +# pesq +[](https://doi.org/10.5281/zenodo.6549559) +[](https://pepy.tech/project/pesq) +[](https://pepy.tech/project/pesq) + +PESQ (Perceptual Evaluation of Speech Quality) Wrapper for Python Users + +This code is designed for numpy array specially. + +# Requirements + + C compiler + numpy + cython + +# Build and Install +```bash +$ git clone https://github.com/ludlows/python-pesq.git +$ cd python-pesq +$ pip install . # for python 2 +$ pip3 install . # for python 3 +$ cd .. +$ rm -rf python-pesq # remove the code folder since it exists in the python package folder +``` + +# Install with pip + +```bash +# PyPi Repository +$ pip install pesq + + +# The Latest Version +$ pip install https://github.com/ludlows/python-pesq/archive/master.zip + +# or + +$ pip3 install https://github.com/ludlows/python-pesq/archive/master.zip +``` + +# Usage for narrowband and wideband Modes + +Please note that the sampling rate (frequency) should be 16000 or 8000 (Hz). + +And using 8000Hz is supported for narrowband only. + +The code supports error-handling behaviors now. + +```python +def pesq(fs, ref, deg, mode='wb', on_error=PesqError.RAISE_EXCEPTION): + """ + Args: + ref: numpy 1D array, reference audio signal + deg: numpy 1D array, degraded audio signal + fs: integer, sampling rate + mode: 'wb' (wide-band) or 'nb' (narrow-band) + on_error: error-handling behavior, it could be PesqError.RETURN_VALUES or PesqError.RAISE_EXCEPTION by default + Returns: + pesq_score: float, P.862.2 Prediction (MOS-LQO) + """ +``` +Once you select `PesqError.RETURN_VALUES`, the `pesq` function will return -1 when an error occurs. + +Once you select `PesqError.RAISE_EXCEPTION`, the `pesq` function will raise an exception when an error occurs. + +It supports the following errors now: `InvalidSampleRateError`, `OutOfMemoryError`,`BufferTooShortError`,`NoUtterancesError`,`PesqError`(other unknown errors). + +```python +from scipy.io import wavfile +from pesq import pesq + +rate, ref = wavfile.read("./audio/speech.wav") +rate, deg = wavfile.read("./audio/speech_bab_0dB.wav") + +print(pesq(rate, ref, deg, 'wb')) +print(pesq(rate, ref, deg, 'nb')) +``` + +# Usage for `multiprocessing` feature + +```python +def pesq_batch(fs, ref, deg, mode='wb', n_processor=None, on_error=PesqError.RAISE_EXCEPTION): + """ + Running `pesq` using multiple processors + Args: + on_error: + ref: numpy 1D (n_sample,) or 2D array (n_file, n_sample), reference audio signal + deg: numpy 1D (n_sample,) or 2D array (n_file, n_sample), degraded audio signal + fs: integer, sampling rate + mode: 'wb' (wide-band) or 'nb' (narrow-band) + n_processor: cpu_count() (default) or number of processors (chosen by the user) or 0 (without multiprocessing) + on_error: PesqError.RAISE_EXCEPTION (default) or PesqError.RETURN_VALUES + Returns: + pesq_score: list of pesq scores, P.862.2 Prediction (MOS-LQO) + """ +``` +this function uses `multiprocessing` features to boost time efficiency. + +When the `ref` is an 1-D numpy array and `deg` is a 2-D numpy array, the result of `pesq_batch` is identical to the value of `[pesq(fs, ref, deg[i,:],**kwargs) for i in range(deg.shape[0])]`. + +When the `ref` is a 2-D numpy array and `deg` is a 2-D numpy array, the result of `pesq_batch` is identical to the value of `[pesq(fs, ref[i,:], deg[i,:],**kwargs) for i in range(deg.shape[0])]`. + + +# Correctness + +The correctness is verified by running samples in audio folder. + +PESQ computed by this code in wideband mode is 1.0832337141036987 + +PESQ computed by this code in narrowband mode is 1.6072081327438354 + +# Note + +Sampling rate (fs|rate) - No default. Must select either 8000Hz or 16000Hz. + +Note there is narrowband (nb) mode only when sampling rate is 8000Hz. + +The original C source code is modified. + +# Who is using `pesq` + +Please click [here](https://github.com/ludlows/python-pesq/network/dependents) to see these repositories, whose owners include `Facebook Research`, `SpeechBrain`, `NVIDIA` .etc. + +# Cite this code + +``` + @software{miao_wang_2022_6549559, + author = {Miao Wang and + Christoph Boeddeker and + Rafael G. Dantas and + ananda seelan}, + title = {{ludlows/python-pesq: supporting for + multiprocessing features}}, + month = may, + year = 2022, + publisher = {Zenodo}, + version = {v0.0.4}, + doi = {10.5281/zenodo.6549559}, + url = {https://doi.org/10.5281/zenodo.6549559}} +``` + +# Acknowledgement + +This work was funded by the Natural Sciences and Engineering Research Council of Canada. + +This work was also funded by the Concordia University, Montreal, Canada. + +%package -n python3-pesq +Summary: Python Wrapper for PESQ Score (narrow band and wide band) +Provides: python-pesq +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pesq +# pesq +[](https://doi.org/10.5281/zenodo.6549559) +[](https://pepy.tech/project/pesq) +[](https://pepy.tech/project/pesq) + +PESQ (Perceptual Evaluation of Speech Quality) Wrapper for Python Users + +This code is designed for numpy array specially. + +# Requirements + + C compiler + numpy + cython + +# Build and Install +```bash +$ git clone https://github.com/ludlows/python-pesq.git +$ cd python-pesq +$ pip install . # for python 2 +$ pip3 install . # for python 3 +$ cd .. +$ rm -rf python-pesq # remove the code folder since it exists in the python package folder +``` + +# Install with pip + +```bash +# PyPi Repository +$ pip install pesq + + +# The Latest Version +$ pip install https://github.com/ludlows/python-pesq/archive/master.zip + +# or + +$ pip3 install https://github.com/ludlows/python-pesq/archive/master.zip +``` + +# Usage for narrowband and wideband Modes + +Please note that the sampling rate (frequency) should be 16000 or 8000 (Hz). + +And using 8000Hz is supported for narrowband only. + +The code supports error-handling behaviors now. + +```python +def pesq(fs, ref, deg, mode='wb', on_error=PesqError.RAISE_EXCEPTION): + """ + Args: + ref: numpy 1D array, reference audio signal + deg: numpy 1D array, degraded audio signal + fs: integer, sampling rate + mode: 'wb' (wide-band) or 'nb' (narrow-band) + on_error: error-handling behavior, it could be PesqError.RETURN_VALUES or PesqError.RAISE_EXCEPTION by default + Returns: + pesq_score: float, P.862.2 Prediction (MOS-LQO) + """ +``` +Once you select `PesqError.RETURN_VALUES`, the `pesq` function will return -1 when an error occurs. + +Once you select `PesqError.RAISE_EXCEPTION`, the `pesq` function will raise an exception when an error occurs. + +It supports the following errors now: `InvalidSampleRateError`, `OutOfMemoryError`,`BufferTooShortError`,`NoUtterancesError`,`PesqError`(other unknown errors). + +```python +from scipy.io import wavfile +from pesq import pesq + +rate, ref = wavfile.read("./audio/speech.wav") +rate, deg = wavfile.read("./audio/speech_bab_0dB.wav") + +print(pesq(rate, ref, deg, 'wb')) +print(pesq(rate, ref, deg, 'nb')) +``` + +# Usage for `multiprocessing` feature + +```python +def pesq_batch(fs, ref, deg, mode='wb', n_processor=None, on_error=PesqError.RAISE_EXCEPTION): + """ + Running `pesq` using multiple processors + Args: + on_error: + ref: numpy 1D (n_sample,) or 2D array (n_file, n_sample), reference audio signal + deg: numpy 1D (n_sample,) or 2D array (n_file, n_sample), degraded audio signal + fs: integer, sampling rate + mode: 'wb' (wide-band) or 'nb' (narrow-band) + n_processor: cpu_count() (default) or number of processors (chosen by the user) or 0 (without multiprocessing) + on_error: PesqError.RAISE_EXCEPTION (default) or PesqError.RETURN_VALUES + Returns: + pesq_score: list of pesq scores, P.862.2 Prediction (MOS-LQO) + """ +``` +this function uses `multiprocessing` features to boost time efficiency. + +When the `ref` is an 1-D numpy array and `deg` is a 2-D numpy array, the result of `pesq_batch` is identical to the value of `[pesq(fs, ref, deg[i,:],**kwargs) for i in range(deg.shape[0])]`. + +When the `ref` is a 2-D numpy array and `deg` is a 2-D numpy array, the result of `pesq_batch` is identical to the value of `[pesq(fs, ref[i,:], deg[i,:],**kwargs) for i in range(deg.shape[0])]`. + + +# Correctness + +The correctness is verified by running samples in audio folder. + +PESQ computed by this code in wideband mode is 1.0832337141036987 + +PESQ computed by this code in narrowband mode is 1.6072081327438354 + +# Note + +Sampling rate (fs|rate) - No default. Must select either 8000Hz or 16000Hz. + +Note there is narrowband (nb) mode only when sampling rate is 8000Hz. + +The original C source code is modified. + +# Who is using `pesq` + +Please click [here](https://github.com/ludlows/python-pesq/network/dependents) to see these repositories, whose owners include `Facebook Research`, `SpeechBrain`, `NVIDIA` .etc. + +# Cite this code + +``` + @software{miao_wang_2022_6549559, + author = {Miao Wang and + Christoph Boeddeker and + Rafael G. Dantas and + ananda seelan}, + title = {{ludlows/python-pesq: supporting for + multiprocessing features}}, + month = may, + year = 2022, + publisher = {Zenodo}, + version = {v0.0.4}, + doi = {10.5281/zenodo.6549559}, + url = {https://doi.org/10.5281/zenodo.6549559}} +``` + +# Acknowledgement + +This work was funded by the Natural Sciences and Engineering Research Council of Canada. + +This work was also funded by the Concordia University, Montreal, Canada. + +%package help +Summary: Development documents and examples for pesq +Provides: python3-pesq-doc +%description help +# pesq +[](https://doi.org/10.5281/zenodo.6549559) +[](https://pepy.tech/project/pesq) +[](https://pepy.tech/project/pesq) + +PESQ (Perceptual Evaluation of Speech Quality) Wrapper for Python Users + +This code is designed for numpy array specially. + +# Requirements + + C compiler + numpy + cython + +# Build and Install +```bash +$ git clone https://github.com/ludlows/python-pesq.git +$ cd python-pesq +$ pip install . # for python 2 +$ pip3 install . # for python 3 +$ cd .. +$ rm -rf python-pesq # remove the code folder since it exists in the python package folder +``` + +# Install with pip + +```bash +# PyPi Repository +$ pip install pesq + + +# The Latest Version +$ pip install https://github.com/ludlows/python-pesq/archive/master.zip + +# or + +$ pip3 install https://github.com/ludlows/python-pesq/archive/master.zip +``` + +# Usage for narrowband and wideband Modes + +Please note that the sampling rate (frequency) should be 16000 or 8000 (Hz). + +And using 8000Hz is supported for narrowband only. + +The code supports error-handling behaviors now. + +```python +def pesq(fs, ref, deg, mode='wb', on_error=PesqError.RAISE_EXCEPTION): + """ + Args: + ref: numpy 1D array, reference audio signal + deg: numpy 1D array, degraded audio signal + fs: integer, sampling rate + mode: 'wb' (wide-band) or 'nb' (narrow-band) + on_error: error-handling behavior, it could be PesqError.RETURN_VALUES or PesqError.RAISE_EXCEPTION by default + Returns: + pesq_score: float, P.862.2 Prediction (MOS-LQO) + """ +``` +Once you select `PesqError.RETURN_VALUES`, the `pesq` function will return -1 when an error occurs. + +Once you select `PesqError.RAISE_EXCEPTION`, the `pesq` function will raise an exception when an error occurs. + +It supports the following errors now: `InvalidSampleRateError`, `OutOfMemoryError`,`BufferTooShortError`,`NoUtterancesError`,`PesqError`(other unknown errors). + +```python +from scipy.io import wavfile +from pesq import pesq + +rate, ref = wavfile.read("./audio/speech.wav") +rate, deg = wavfile.read("./audio/speech_bab_0dB.wav") + +print(pesq(rate, ref, deg, 'wb')) +print(pesq(rate, ref, deg, 'nb')) +``` + +# Usage for `multiprocessing` feature + +```python +def pesq_batch(fs, ref, deg, mode='wb', n_processor=None, on_error=PesqError.RAISE_EXCEPTION): + """ + Running `pesq` using multiple processors + Args: + on_error: + ref: numpy 1D (n_sample,) or 2D array (n_file, n_sample), reference audio signal + deg: numpy 1D (n_sample,) or 2D array (n_file, n_sample), degraded audio signal + fs: integer, sampling rate + mode: 'wb' (wide-band) or 'nb' (narrow-band) + n_processor: cpu_count() (default) or number of processors (chosen by the user) or 0 (without multiprocessing) + on_error: PesqError.RAISE_EXCEPTION (default) or PesqError.RETURN_VALUES + Returns: + pesq_score: list of pesq scores, P.862.2 Prediction (MOS-LQO) + """ +``` +this function uses `multiprocessing` features to boost time efficiency. + +When the `ref` is an 1-D numpy array and `deg` is a 2-D numpy array, the result of `pesq_batch` is identical to the value of `[pesq(fs, ref, deg[i,:],**kwargs) for i in range(deg.shape[0])]`. + +When the `ref` is a 2-D numpy array and `deg` is a 2-D numpy array, the result of `pesq_batch` is identical to the value of `[pesq(fs, ref[i,:], deg[i,:],**kwargs) for i in range(deg.shape[0])]`. + + +# Correctness + +The correctness is verified by running samples in audio folder. + +PESQ computed by this code in wideband mode is 1.0832337141036987 + +PESQ computed by this code in narrowband mode is 1.6072081327438354 + +# Note + +Sampling rate (fs|rate) - No default. Must select either 8000Hz or 16000Hz. + +Note there is narrowband (nb) mode only when sampling rate is 8000Hz. + +The original C source code is modified. + +# Who is using `pesq` + +Please click [here](https://github.com/ludlows/python-pesq/network/dependents) to see these repositories, whose owners include `Facebook Research`, `SpeechBrain`, `NVIDIA` .etc. + +# Cite this code + +``` + @software{miao_wang_2022_6549559, + author = {Miao Wang and + Christoph Boeddeker and + Rafael G. Dantas and + ananda seelan}, + title = {{ludlows/python-pesq: supporting for + multiprocessing features}}, + month = may, + year = 2022, + publisher = {Zenodo}, + version = {v0.0.4}, + doi = {10.5281/zenodo.6549559}, + url = {https://doi.org/10.5281/zenodo.6549559}} +``` + +# Acknowledgement + +This work was funded by the Natural Sciences and Engineering Research Council of Canada. + +This work was also funded by the Concordia University, Montreal, Canada. + +%prep +%autosetup -n pesq-0.0.4 + +%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-pesq -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.4-1 +- Package Spec generated |
