diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-31 05:42:54 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-31 05:42:54 +0000 |
commit | f733cc13fac722539a3fdd8a31c20115b7168afe (patch) | |
tree | c762066ef3ba918e7d326be6ba3712cbf9a6e854 | |
parent | c805761b5f366f8643ef8db8fd3fce6e7270c5f3 (diff) |
automatic import of python-pydrobert-kaldi
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pydrobert-kaldi.spec | 439 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 441 insertions, 0 deletions
@@ -0,0 +1 @@ +/pydrobert-kaldi-0.6.3.tar.gz diff --git a/python-pydrobert-kaldi.spec b/python-pydrobert-kaldi.spec new file mode 100644 index 0000000..b90a0ff --- /dev/null +++ b/python-pydrobert-kaldi.spec @@ -0,0 +1,439 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pydrobert-kaldi +Version: 0.6.3 +Release: 1 +Summary: Python wrapper for Kaldi +License: Apache-2.0 +URL: https://github.com/sdrobert/pydrobert-kaldi +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4c/4e/9a6c6d7d17f056f35a6a7545f9d33abe493bb0b98297ff7d4ce6d1c00b88/pydrobert-kaldi-0.6.3.tar.gz + +Requires: python3-numpy +Requires: python3-torch + +%description +[](https://ci.appveyor.com/project/sdrobert/pydrobert-kaldi) +[](https://pydrobert-kaldi.readthedocs.io/en/latest/?badge=latest) +[](https://opensource.org/licenses/Apache-2.0) + +# pydrobert-kaldi + +Some [Kaldi](http://kaldi-asr.org/) bindings for Python. I started this project +because I wanted to seamlessly incorporate [Kaldi's I/O +mechanism](http://kaldi-asr.org/doc/io.html) into the gamut of Python-based +data science packages (e.g. Theano, Tensorflow, CNTK, PyTorch, etc.). The code +base is expanding to wrap more of Kaldi's feature processing and mathematical +functions, but is unlikely to include modelling or decoding. + +Eventually, I plan on adding hooks for Kaldi audio features and pre-/post- +processing. However, I have no plans on porting any code involving modelling or +decoding. + +**This is student-driven code, so don't expect a stable API. I'll try to use +semantic versioning, but the best way to keep functionality stable is by +forking.** + +## Documentation + +- [Latest](https://pydrobert-kaldi.readthedocs.io/en/latest/) + +## Input/Output + +Most I/O can be performed with the `pydrobert.kaldi.io.open` function: + + +``` python +from pydrobert.kaldi import io +with io.open('scp:foo.scp', 'bm') as f: + for matrix in f: + ... +``` + +`open` is a factory function that determines the appropriate underlying stream +to open, much like Python's built-in `open`. The data types we can read (here, +a `BaseMatrix`) are listed in `pydrobert.kaldi.io.enums.KaldiDataType`. Big +data types, like matrices and vectors, are piped into Numpy arrays. Passing an +extended filename (e.g. paths to files on discs, `'-'` for stdin/stdout, +`'gzip -c a.ark.gz |'`, etc.) opens a stream from which data types can be read +one-by-one and in the order they were written. Alternatively, prepending the +extended filename with `'ark[,[option_a[,option_b...]]:'` or `'scp[,...]:'` and +specifying a data type allows one to open a Kaldi table for iterator-like +sequential reading (`mode='r'`), dict-like random access reading (`mode='r+'`), +or writing (`mode='w'`). For more information on the open function, consult the +docstring. + +The submodule `pydrobert.kaldi.io.corpus` contains useful wrappers around Kaldi +I/O to serve up batches of data to, say, a neural network: + +``` python +train = ShuffledData('scp:feats.scp', 'scp:labels.scp', batch_size=10) +for feat_batch, label_batch in train: + ... +``` + +## Logging and CLI + +By default, Kaldi error, warning, and critical messages are piped to standard +error. The `pydrobert.kaldi.logging` submodule provides hooks into python's +native logging interface: the `logging` module. The :class:`KaldiLogger` can +handle stack traces from Kaldi C++ code, and there are a variety of decorators +to finagle the kaldi logging patterns to python logging patterns, or vice +versa. + +You'd likely want to explicitly handle logging when creating new kaldi-style +commands for command line. `pydrobert.kaldi.io.argparse` provides +:class:`KaldiParser`, an :class:`ArgumentParser` tailored to Kaldi +inputs/outputs. It is used by a few command-line entry points added by this +package. See the [Command-Line +Interface](http://pydrobert-kaldi.readthedocs.io/en/latest/cli.html) page for +details. + +## Installation + +Prepackaged binaries of tagged versions of `pydrobert-kaldi` are available for +most 64-bit platforms (Windows, Glibc Linux, OSX) and most active Python +versions (3.7-3.11) on both [conda](https://docs.conda.io/en/latest/) and +[PyPI](https://pypi.org/). + +To install via [conda](https://docs.conda.io/en/latest/) + +``` sh + conda install -c sdrobert pydrobert-kaldi +``` + +A [conda-forge](https://conda-forge.org/) version is TBD. + +To install via [PyPI](https://pypi.org/) + +``` sh + pip install pydrobert-kaldi +``` + +You can also try building the cutting-edge version. To do so, you'll need to +first install [SWIG 4.0](https://www.swig.org/) and an appropriate C++ +compiler, then + +``` sh + pip install git+https://github.com/sdrobert/pydrobert-kaldi.git +``` + +The current version does not require a BLAS install, though it likely will in +the future as more is wrapped. + +## License + +This code is licensed under Apache 2.0. + +Code found under the `src/` directory has been primarily copied from Kaldi. +`setup.py` is also strongly influenced by Kaldi's build configuration. Kaldi is +also covered by the Apache 2.0 license; its specific license file was copied +into `src/COPYING_Kaldi_Project` to live among its fellows. + +## How to Cite + +Please see the [pydrobert page](https://github.com/sdrobert/pydrobert) for more +details. + + +%package -n python3-pydrobert-kaldi +Summary: Python wrapper for Kaldi +Provides: python-pydrobert-kaldi +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-pydrobert-kaldi +[](https://ci.appveyor.com/project/sdrobert/pydrobert-kaldi) +[](https://pydrobert-kaldi.readthedocs.io/en/latest/?badge=latest) +[](https://opensource.org/licenses/Apache-2.0) + +# pydrobert-kaldi + +Some [Kaldi](http://kaldi-asr.org/) bindings for Python. I started this project +because I wanted to seamlessly incorporate [Kaldi's I/O +mechanism](http://kaldi-asr.org/doc/io.html) into the gamut of Python-based +data science packages (e.g. Theano, Tensorflow, CNTK, PyTorch, etc.). The code +base is expanding to wrap more of Kaldi's feature processing and mathematical +functions, but is unlikely to include modelling or decoding. + +Eventually, I plan on adding hooks for Kaldi audio features and pre-/post- +processing. However, I have no plans on porting any code involving modelling or +decoding. + +**This is student-driven code, so don't expect a stable API. I'll try to use +semantic versioning, but the best way to keep functionality stable is by +forking.** + +## Documentation + +- [Latest](https://pydrobert-kaldi.readthedocs.io/en/latest/) + +## Input/Output + +Most I/O can be performed with the `pydrobert.kaldi.io.open` function: + + +``` python +from pydrobert.kaldi import io +with io.open('scp:foo.scp', 'bm') as f: + for matrix in f: + ... +``` + +`open` is a factory function that determines the appropriate underlying stream +to open, much like Python's built-in `open`. The data types we can read (here, +a `BaseMatrix`) are listed in `pydrobert.kaldi.io.enums.KaldiDataType`. Big +data types, like matrices and vectors, are piped into Numpy arrays. Passing an +extended filename (e.g. paths to files on discs, `'-'` for stdin/stdout, +`'gzip -c a.ark.gz |'`, etc.) opens a stream from which data types can be read +one-by-one and in the order they were written. Alternatively, prepending the +extended filename with `'ark[,[option_a[,option_b...]]:'` or `'scp[,...]:'` and +specifying a data type allows one to open a Kaldi table for iterator-like +sequential reading (`mode='r'`), dict-like random access reading (`mode='r+'`), +or writing (`mode='w'`). For more information on the open function, consult the +docstring. + +The submodule `pydrobert.kaldi.io.corpus` contains useful wrappers around Kaldi +I/O to serve up batches of data to, say, a neural network: + +``` python +train = ShuffledData('scp:feats.scp', 'scp:labels.scp', batch_size=10) +for feat_batch, label_batch in train: + ... +``` + +## Logging and CLI + +By default, Kaldi error, warning, and critical messages are piped to standard +error. The `pydrobert.kaldi.logging` submodule provides hooks into python's +native logging interface: the `logging` module. The :class:`KaldiLogger` can +handle stack traces from Kaldi C++ code, and there are a variety of decorators +to finagle the kaldi logging patterns to python logging patterns, or vice +versa. + +You'd likely want to explicitly handle logging when creating new kaldi-style +commands for command line. `pydrobert.kaldi.io.argparse` provides +:class:`KaldiParser`, an :class:`ArgumentParser` tailored to Kaldi +inputs/outputs. It is used by a few command-line entry points added by this +package. See the [Command-Line +Interface](http://pydrobert-kaldi.readthedocs.io/en/latest/cli.html) page for +details. + +## Installation + +Prepackaged binaries of tagged versions of `pydrobert-kaldi` are available for +most 64-bit platforms (Windows, Glibc Linux, OSX) and most active Python +versions (3.7-3.11) on both [conda](https://docs.conda.io/en/latest/) and +[PyPI](https://pypi.org/). + +To install via [conda](https://docs.conda.io/en/latest/) + +``` sh + conda install -c sdrobert pydrobert-kaldi +``` + +A [conda-forge](https://conda-forge.org/) version is TBD. + +To install via [PyPI](https://pypi.org/) + +``` sh + pip install pydrobert-kaldi +``` + +You can also try building the cutting-edge version. To do so, you'll need to +first install [SWIG 4.0](https://www.swig.org/) and an appropriate C++ +compiler, then + +``` sh + pip install git+https://github.com/sdrobert/pydrobert-kaldi.git +``` + +The current version does not require a BLAS install, though it likely will in +the future as more is wrapped. + +## License + +This code is licensed under Apache 2.0. + +Code found under the `src/` directory has been primarily copied from Kaldi. +`setup.py` is also strongly influenced by Kaldi's build configuration. Kaldi is +also covered by the Apache 2.0 license; its specific license file was copied +into `src/COPYING_Kaldi_Project` to live among its fellows. + +## How to Cite + +Please see the [pydrobert page](https://github.com/sdrobert/pydrobert) for more +details. + + +%package help +Summary: Development documents and examples for pydrobert-kaldi +Provides: python3-pydrobert-kaldi-doc +%description help +[](https://ci.appveyor.com/project/sdrobert/pydrobert-kaldi) +[](https://pydrobert-kaldi.readthedocs.io/en/latest/?badge=latest) +[](https://opensource.org/licenses/Apache-2.0) + +# pydrobert-kaldi + +Some [Kaldi](http://kaldi-asr.org/) bindings for Python. I started this project +because I wanted to seamlessly incorporate [Kaldi's I/O +mechanism](http://kaldi-asr.org/doc/io.html) into the gamut of Python-based +data science packages (e.g. Theano, Tensorflow, CNTK, PyTorch, etc.). The code +base is expanding to wrap more of Kaldi's feature processing and mathematical +functions, but is unlikely to include modelling or decoding. + +Eventually, I plan on adding hooks for Kaldi audio features and pre-/post- +processing. However, I have no plans on porting any code involving modelling or +decoding. + +**This is student-driven code, so don't expect a stable API. I'll try to use +semantic versioning, but the best way to keep functionality stable is by +forking.** + +## Documentation + +- [Latest](https://pydrobert-kaldi.readthedocs.io/en/latest/) + +## Input/Output + +Most I/O can be performed with the `pydrobert.kaldi.io.open` function: + + +``` python +from pydrobert.kaldi import io +with io.open('scp:foo.scp', 'bm') as f: + for matrix in f: + ... +``` + +`open` is a factory function that determines the appropriate underlying stream +to open, much like Python's built-in `open`. The data types we can read (here, +a `BaseMatrix`) are listed in `pydrobert.kaldi.io.enums.KaldiDataType`. Big +data types, like matrices and vectors, are piped into Numpy arrays. Passing an +extended filename (e.g. paths to files on discs, `'-'` for stdin/stdout, +`'gzip -c a.ark.gz |'`, etc.) opens a stream from which data types can be read +one-by-one and in the order they were written. Alternatively, prepending the +extended filename with `'ark[,[option_a[,option_b...]]:'` or `'scp[,...]:'` and +specifying a data type allows one to open a Kaldi table for iterator-like +sequential reading (`mode='r'`), dict-like random access reading (`mode='r+'`), +or writing (`mode='w'`). For more information on the open function, consult the +docstring. + +The submodule `pydrobert.kaldi.io.corpus` contains useful wrappers around Kaldi +I/O to serve up batches of data to, say, a neural network: + +``` python +train = ShuffledData('scp:feats.scp', 'scp:labels.scp', batch_size=10) +for feat_batch, label_batch in train: + ... +``` + +## Logging and CLI + +By default, Kaldi error, warning, and critical messages are piped to standard +error. The `pydrobert.kaldi.logging` submodule provides hooks into python's +native logging interface: the `logging` module. The :class:`KaldiLogger` can +handle stack traces from Kaldi C++ code, and there are a variety of decorators +to finagle the kaldi logging patterns to python logging patterns, or vice +versa. + +You'd likely want to explicitly handle logging when creating new kaldi-style +commands for command line. `pydrobert.kaldi.io.argparse` provides +:class:`KaldiParser`, an :class:`ArgumentParser` tailored to Kaldi +inputs/outputs. It is used by a few command-line entry points added by this +package. See the [Command-Line +Interface](http://pydrobert-kaldi.readthedocs.io/en/latest/cli.html) page for +details. + +## Installation + +Prepackaged binaries of tagged versions of `pydrobert-kaldi` are available for +most 64-bit platforms (Windows, Glibc Linux, OSX) and most active Python +versions (3.7-3.11) on both [conda](https://docs.conda.io/en/latest/) and +[PyPI](https://pypi.org/). + +To install via [conda](https://docs.conda.io/en/latest/) + +``` sh + conda install -c sdrobert pydrobert-kaldi +``` + +A [conda-forge](https://conda-forge.org/) version is TBD. + +To install via [PyPI](https://pypi.org/) + +``` sh + pip install pydrobert-kaldi +``` + +You can also try building the cutting-edge version. To do so, you'll need to +first install [SWIG 4.0](https://www.swig.org/) and an appropriate C++ +compiler, then + +``` sh + pip install git+https://github.com/sdrobert/pydrobert-kaldi.git +``` + +The current version does not require a BLAS install, though it likely will in +the future as more is wrapped. + +## License + +This code is licensed under Apache 2.0. + +Code found under the `src/` directory has been primarily copied from Kaldi. +`setup.py` is also strongly influenced by Kaldi's build configuration. Kaldi is +also covered by the Apache 2.0 license; its specific license file was copied +into `src/COPYING_Kaldi_Project` to live among its fellows. + +## How to Cite + +Please see the [pydrobert page](https://github.com/sdrobert/pydrobert) for more +details. + + +%prep +%autosetup -n pydrobert-kaldi-0.6.3 + +%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-pydrobert-kaldi -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.3-1 +- Package Spec generated @@ -0,0 +1 @@ +332e9d4274313a0bbb116ea349100d17 pydrobert-kaldi-0.6.3.tar.gz |