summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-pydrobert-kaldi.spec439
-rw-r--r--sources1
3 files changed, 441 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..4ed1b73 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
+[![Build status](https://ci.appveyor.com/api/projects/status/lvjhj9pgju90wn8j?svg=true)](https://ci.appveyor.com/project/sdrobert/pydrobert-kaldi)
+[![Documentation Status](https://readthedocs.org/projects/pydrobert-kaldi/badge/?version=latest)](https://pydrobert-kaldi.readthedocs.io/en/latest/?badge=latest)
+[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](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
+[![Build status](https://ci.appveyor.com/api/projects/status/lvjhj9pgju90wn8j?svg=true)](https://ci.appveyor.com/project/sdrobert/pydrobert-kaldi)
+[![Documentation Status](https://readthedocs.org/projects/pydrobert-kaldi/badge/?version=latest)](https://pydrobert-kaldi.readthedocs.io/en/latest/?badge=latest)
+[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](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
+[![Build status](https://ci.appveyor.com/api/projects/status/lvjhj9pgju90wn8j?svg=true)](https://ci.appveyor.com/project/sdrobert/pydrobert-kaldi)
+[![Documentation Status](https://readthedocs.org/projects/pydrobert-kaldi/badge/?version=latest)](https://pydrobert-kaldi.readthedocs.io/en/latest/?badge=latest)
+[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](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
diff --git a/sources b/sources
new file mode 100644
index 0000000..41e09ad
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+332e9d4274313a0bbb116ea349100d17 pydrobert-kaldi-0.6.3.tar.gz