diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 19:52:11 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 19:52:11 +0000 |
commit | 23dd4629bc29a7ce531e7be3bf3cf06cdd810df8 (patch) | |
tree | 455bf96fdda3a7c4c3056ee8e45ce2943349a6af | |
parent | f5e59b85dd8e349d43bf6b24a455ce9e1f7971be (diff) |
automatic import of python-pyloudnorm
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pyloudnorm.spec | 426 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 428 insertions, 0 deletions
@@ -0,0 +1 @@ +/pyloudnorm-0.1.1.tar.gz diff --git a/python-pyloudnorm.spec b/python-pyloudnorm.spec new file mode 100644 index 0000000..23bd42a --- /dev/null +++ b/python-pyloudnorm.spec @@ -0,0 +1,426 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyloudnorm +Version: 0.1.1 +Release: 1 +Summary: Implementation of ITU-R BS.1770-4 loudness algorithm in Python. +License: MIT +URL: https://github.com/csteinmetz1/pyloudnorm +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/75/b5/39d59c44ecd828fabfdbd796b50a561e6543ca90ef440ab307374f107856/pyloudnorm-0.1.1.tar.gz +BuildArch: noarch + +Requires: python3-scipy +Requires: python3-numpy +Requires: python3-future + +%description + +# pyloudnorm [](https://travis-ci.org/csteinmetz1/pyloudnorm)  +Flexible audio loudness meter in Python. + +Implementation of [ITU-R BS.1770-4](https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-4-201510-I!!PDF-E.pdf). <br/> +Allows control over gating block size and frequency weighting filters for additional control. + +For full details on the implementation see our [paper](https://csteinmetz1.github.io/pyloudnorm-eval/paper/pyloudnorm_preprint.pdf) with a summary in our [AES presentation video](https://www.youtube.com/watch?v=krSJpQ3d4gE). + +## Installation +You can install with pip as follows +``` +pip install pyloudnorm +``` + +For the latest releases always install from the GitHub repo +``` +pip install git+https://github.com/csteinmetz1/pyloudnorm +``` +## Usage + +### Find the loudness of an audio file +It's easy to measure the loudness of a wav file. +Here we use PySoundFile to read a .wav file as an ndarray. +```python +import soundfile as sf +import pyloudnorm as pyln + +data, rate = sf.read("test.wav") # load audio (with shape (samples, channels)) +meter = pyln.Meter(rate) # create BS.1770 meter +loudness = meter.integrated_loudness(data) # measure loudness +``` + +### Loudness normalize and peak normalize audio files +Methods are included to normalize audio files to desired peak values or desired loudness. +```python +import soundfile as sf +import pyloudnorm as pyln + +data, rate = sf.read("test.wav") # load audio + +# peak normalize audio to -1 dB +peak_normalized_audio = pyln.normalize.peak(data, -1.0) + +# measure the loudness first +meter = pyln.Meter(rate) # create BS.1770 meter +loudness = meter.integrated_loudness(data) + +# loudness normalize audio to -12 dB LUFS +loudness_normalized_audio = pyln.normalize.loudness(data, loudness, -12.0) +``` + +### Advanced operation +A number of alternate weighting filters are available, as well as the ability to adjust the analysis block size. +Examples are shown below. +```python +import soundfile as sf +import pyloudnorm as pyln +from pyloudnorm import IIRfilter + +data, rate = sf.read("test.wav") # load audio + +# block size +meter1 = pyln.Meter(rate) # 400ms block size +meter2 = pyln.Meter(rate, block_size=0.200) # 200ms block size + +# filter classes +meter3 = pyln.Meter(rate) # BS.1770 meter +meter4 = pyln.Meter(rate, filter_class="DeMan") # fully compliant filters +meter5 = pyln.Meter(rate, filter_class="Fenton/Lee 1") # low complexity improvement by Fenton and Lee +meter6 = pyln.Meter(rate, filter_class="Fenton/Lee 2") # higher complexity improvement by Fenton and Lee +meter7 = pyln.Meter(rate, filter_class="Dash et al.") # early modification option + +# create your own IIR filters +my_high_pass = IIRfilter(0.0, 0.5, 20.0, rate, 'high_pass') +my_high_shelf = IIRfilter(2.0, 0.7, 1525.0, rate, 'high_shelf') + +# create a meter initialized without filters +meter8 = pyln.Meter(rate, filter_class="custom") + +# load your filters into the meter +meter8._filters = {'my_high_pass' : my_high_pass, 'my_high_shelf' : my_high_shelf} + +``` + +## Dependancies +- **SciPy** ([https://www.scipy.org/](https://www.scipy.org/)) +- **NumPy** ([http://www.numpy.org/](http://www.numpy.org/)) + + +## Citation +If you use pyloudnorm in your work please consider citing us. +``` +@inproceedings{steinmetz2021pyloudnorm, + title={pyloudnorm: {A} simple yet flexible loudness meter in Python}, + author={Steinmetz, Christian J. and Reiss, Joshua D.}, + booktitle={150th AES Convention}, + year={2021}} +``` + +## References + +> Ian Dash, Luis Miranda, and Densil Cabrera, "[Multichannel Loudness Listening Test](http://www.aes.org/e-lib/browse.cfm?elib=14581)," +> 124th International Convention of the Audio Engineering Society, May 2008 + +> Pedro D. Pestana and Álvaro Barbosa, "[Accuracy of ITU-R BS.1770 Algorithm in Evaluating Multitrack Material](http://www.aes.org/e-lib/online/browse.cfm?elib=16608)," +> 133rd International Convention of the Audio Engineering Society, October 2012 + +> Pedro D. Pestana, Josh D. Reiss, and Álvaro Barbosa, "[Loudness Measurement of Multitrack Audio Content Using Modifications of ITU-R BS.1770](http://www.aes.org/e-lib/browse.cfm?elib=16714)," +> 134th International Convention of the Audio Engineering Society, May 2013 + +> Steven Fenton and Hyunkook Lee, "[Alternative Weighting Filters for Multi-Track Program Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19215)," +> 143rd International Convention of the Audio Engineering Society, October 2017 + +> Brecht De Man, "[Evaluation of Implementations of the EBU R128 Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19790)," +> 145th International Convention of the Audio Engineering Society, October 2018. + + + +%package -n python3-pyloudnorm +Summary: Implementation of ITU-R BS.1770-4 loudness algorithm in Python. +Provides: python-pyloudnorm +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyloudnorm + +# pyloudnorm [](https://travis-ci.org/csteinmetz1/pyloudnorm)  +Flexible audio loudness meter in Python. + +Implementation of [ITU-R BS.1770-4](https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-4-201510-I!!PDF-E.pdf). <br/> +Allows control over gating block size and frequency weighting filters for additional control. + +For full details on the implementation see our [paper](https://csteinmetz1.github.io/pyloudnorm-eval/paper/pyloudnorm_preprint.pdf) with a summary in our [AES presentation video](https://www.youtube.com/watch?v=krSJpQ3d4gE). + +## Installation +You can install with pip as follows +``` +pip install pyloudnorm +``` + +For the latest releases always install from the GitHub repo +``` +pip install git+https://github.com/csteinmetz1/pyloudnorm +``` +## Usage + +### Find the loudness of an audio file +It's easy to measure the loudness of a wav file. +Here we use PySoundFile to read a .wav file as an ndarray. +```python +import soundfile as sf +import pyloudnorm as pyln + +data, rate = sf.read("test.wav") # load audio (with shape (samples, channels)) +meter = pyln.Meter(rate) # create BS.1770 meter +loudness = meter.integrated_loudness(data) # measure loudness +``` + +### Loudness normalize and peak normalize audio files +Methods are included to normalize audio files to desired peak values or desired loudness. +```python +import soundfile as sf +import pyloudnorm as pyln + +data, rate = sf.read("test.wav") # load audio + +# peak normalize audio to -1 dB +peak_normalized_audio = pyln.normalize.peak(data, -1.0) + +# measure the loudness first +meter = pyln.Meter(rate) # create BS.1770 meter +loudness = meter.integrated_loudness(data) + +# loudness normalize audio to -12 dB LUFS +loudness_normalized_audio = pyln.normalize.loudness(data, loudness, -12.0) +``` + +### Advanced operation +A number of alternate weighting filters are available, as well as the ability to adjust the analysis block size. +Examples are shown below. +```python +import soundfile as sf +import pyloudnorm as pyln +from pyloudnorm import IIRfilter + +data, rate = sf.read("test.wav") # load audio + +# block size +meter1 = pyln.Meter(rate) # 400ms block size +meter2 = pyln.Meter(rate, block_size=0.200) # 200ms block size + +# filter classes +meter3 = pyln.Meter(rate) # BS.1770 meter +meter4 = pyln.Meter(rate, filter_class="DeMan") # fully compliant filters +meter5 = pyln.Meter(rate, filter_class="Fenton/Lee 1") # low complexity improvement by Fenton and Lee +meter6 = pyln.Meter(rate, filter_class="Fenton/Lee 2") # higher complexity improvement by Fenton and Lee +meter7 = pyln.Meter(rate, filter_class="Dash et al.") # early modification option + +# create your own IIR filters +my_high_pass = IIRfilter(0.0, 0.5, 20.0, rate, 'high_pass') +my_high_shelf = IIRfilter(2.0, 0.7, 1525.0, rate, 'high_shelf') + +# create a meter initialized without filters +meter8 = pyln.Meter(rate, filter_class="custom") + +# load your filters into the meter +meter8._filters = {'my_high_pass' : my_high_pass, 'my_high_shelf' : my_high_shelf} + +``` + +## Dependancies +- **SciPy** ([https://www.scipy.org/](https://www.scipy.org/)) +- **NumPy** ([http://www.numpy.org/](http://www.numpy.org/)) + + +## Citation +If you use pyloudnorm in your work please consider citing us. +``` +@inproceedings{steinmetz2021pyloudnorm, + title={pyloudnorm: {A} simple yet flexible loudness meter in Python}, + author={Steinmetz, Christian J. and Reiss, Joshua D.}, + booktitle={150th AES Convention}, + year={2021}} +``` + +## References + +> Ian Dash, Luis Miranda, and Densil Cabrera, "[Multichannel Loudness Listening Test](http://www.aes.org/e-lib/browse.cfm?elib=14581)," +> 124th International Convention of the Audio Engineering Society, May 2008 + +> Pedro D. Pestana and Álvaro Barbosa, "[Accuracy of ITU-R BS.1770 Algorithm in Evaluating Multitrack Material](http://www.aes.org/e-lib/online/browse.cfm?elib=16608)," +> 133rd International Convention of the Audio Engineering Society, October 2012 + +> Pedro D. Pestana, Josh D. Reiss, and Álvaro Barbosa, "[Loudness Measurement of Multitrack Audio Content Using Modifications of ITU-R BS.1770](http://www.aes.org/e-lib/browse.cfm?elib=16714)," +> 134th International Convention of the Audio Engineering Society, May 2013 + +> Steven Fenton and Hyunkook Lee, "[Alternative Weighting Filters for Multi-Track Program Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19215)," +> 143rd International Convention of the Audio Engineering Society, October 2017 + +> Brecht De Man, "[Evaluation of Implementations of the EBU R128 Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19790)," +> 145th International Convention of the Audio Engineering Society, October 2018. + + + +%package help +Summary: Development documents and examples for pyloudnorm +Provides: python3-pyloudnorm-doc +%description help + +# pyloudnorm [](https://travis-ci.org/csteinmetz1/pyloudnorm)  +Flexible audio loudness meter in Python. + +Implementation of [ITU-R BS.1770-4](https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-4-201510-I!!PDF-E.pdf). <br/> +Allows control over gating block size and frequency weighting filters for additional control. + +For full details on the implementation see our [paper](https://csteinmetz1.github.io/pyloudnorm-eval/paper/pyloudnorm_preprint.pdf) with a summary in our [AES presentation video](https://www.youtube.com/watch?v=krSJpQ3d4gE). + +## Installation +You can install with pip as follows +``` +pip install pyloudnorm +``` + +For the latest releases always install from the GitHub repo +``` +pip install git+https://github.com/csteinmetz1/pyloudnorm +``` +## Usage + +### Find the loudness of an audio file +It's easy to measure the loudness of a wav file. +Here we use PySoundFile to read a .wav file as an ndarray. +```python +import soundfile as sf +import pyloudnorm as pyln + +data, rate = sf.read("test.wav") # load audio (with shape (samples, channels)) +meter = pyln.Meter(rate) # create BS.1770 meter +loudness = meter.integrated_loudness(data) # measure loudness +``` + +### Loudness normalize and peak normalize audio files +Methods are included to normalize audio files to desired peak values or desired loudness. +```python +import soundfile as sf +import pyloudnorm as pyln + +data, rate = sf.read("test.wav") # load audio + +# peak normalize audio to -1 dB +peak_normalized_audio = pyln.normalize.peak(data, -1.0) + +# measure the loudness first +meter = pyln.Meter(rate) # create BS.1770 meter +loudness = meter.integrated_loudness(data) + +# loudness normalize audio to -12 dB LUFS +loudness_normalized_audio = pyln.normalize.loudness(data, loudness, -12.0) +``` + +### Advanced operation +A number of alternate weighting filters are available, as well as the ability to adjust the analysis block size. +Examples are shown below. +```python +import soundfile as sf +import pyloudnorm as pyln +from pyloudnorm import IIRfilter + +data, rate = sf.read("test.wav") # load audio + +# block size +meter1 = pyln.Meter(rate) # 400ms block size +meter2 = pyln.Meter(rate, block_size=0.200) # 200ms block size + +# filter classes +meter3 = pyln.Meter(rate) # BS.1770 meter +meter4 = pyln.Meter(rate, filter_class="DeMan") # fully compliant filters +meter5 = pyln.Meter(rate, filter_class="Fenton/Lee 1") # low complexity improvement by Fenton and Lee +meter6 = pyln.Meter(rate, filter_class="Fenton/Lee 2") # higher complexity improvement by Fenton and Lee +meter7 = pyln.Meter(rate, filter_class="Dash et al.") # early modification option + +# create your own IIR filters +my_high_pass = IIRfilter(0.0, 0.5, 20.0, rate, 'high_pass') +my_high_shelf = IIRfilter(2.0, 0.7, 1525.0, rate, 'high_shelf') + +# create a meter initialized without filters +meter8 = pyln.Meter(rate, filter_class="custom") + +# load your filters into the meter +meter8._filters = {'my_high_pass' : my_high_pass, 'my_high_shelf' : my_high_shelf} + +``` + +## Dependancies +- **SciPy** ([https://www.scipy.org/](https://www.scipy.org/)) +- **NumPy** ([http://www.numpy.org/](http://www.numpy.org/)) + + +## Citation +If you use pyloudnorm in your work please consider citing us. +``` +@inproceedings{steinmetz2021pyloudnorm, + title={pyloudnorm: {A} simple yet flexible loudness meter in Python}, + author={Steinmetz, Christian J. and Reiss, Joshua D.}, + booktitle={150th AES Convention}, + year={2021}} +``` + +## References + +> Ian Dash, Luis Miranda, and Densil Cabrera, "[Multichannel Loudness Listening Test](http://www.aes.org/e-lib/browse.cfm?elib=14581)," +> 124th International Convention of the Audio Engineering Society, May 2008 + +> Pedro D. Pestana and Álvaro Barbosa, "[Accuracy of ITU-R BS.1770 Algorithm in Evaluating Multitrack Material](http://www.aes.org/e-lib/online/browse.cfm?elib=16608)," +> 133rd International Convention of the Audio Engineering Society, October 2012 + +> Pedro D. Pestana, Josh D. Reiss, and Álvaro Barbosa, "[Loudness Measurement of Multitrack Audio Content Using Modifications of ITU-R BS.1770](http://www.aes.org/e-lib/browse.cfm?elib=16714)," +> 134th International Convention of the Audio Engineering Society, May 2013 + +> Steven Fenton and Hyunkook Lee, "[Alternative Weighting Filters for Multi-Track Program Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19215)," +> 143rd International Convention of the Audio Engineering Society, October 2017 + +> Brecht De Man, "[Evaluation of Implementations of the EBU R128 Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19790)," +> 145th International Convention of the Audio Engineering Society, October 2018. + + + +%prep +%autosetup -n pyloudnorm-0.1.1 + +%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-pyloudnorm -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.1-1 +- Package Spec generated @@ -0,0 +1 @@ +e320557e8a4fb72fca22f3d3f18b9c2d pyloudnorm-0.1.1.tar.gz |