{ "info": { "author": "nttcslab-sp", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Multimedia :: Sound/Audio :: Analysis" ], "description": "# Kaldiio\n[![pypi](https://img.shields.io/pypi/v/kaldiio.svg)](https://pypi.python.org/pypi/kaldiio)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/kaldiio.svg)](https://pypi.python.org/pypi/kaldiio)\n[![Build Status](https://travis-ci.com/nttcslab-sp/kaldiio.svg?branch=master)](https://travis-ci.com/nttcslab-sp/kaldiio)\n[![codecov](https://codecov.io/gh/nttcslab-sp/kaldiio/branch/master/graph/badge.svg)](https://codecov.io/gh/nttcslab-sp/kaldiio)\n\nA pure python module for reading and writing kaldi ark files\n\n- [Introduction](#introduction)\n - [What is this? What are `ark` and `scp`?](#what-is-this-what-are-ark-and-scp)\n - [Features](#features)\n - [Similar projects](#similar-projects)\n- [Install](#install)\n- [Usage](#usage)\n - [ReadHelper](#readhelper)\n - [WriteHelper](#writehelper)\n- [More low level API](#more-low-level-api)\n\n## Introduction\n### What are `ark` and `scp`?\n`kaldiio` is an IO utility implemented in pure Python language for several file formats used in [kaldi](https://github.com/kaldi-asr/kaldi), which are named as`ark` and `scp`. `ark` and `scp` are used in in order to archive some objects defined in Kaldi, typically it is Matrix object of Kaldi.\n\nIn this section, we describe the basic concept of `ark` and `scp`. More detail about the File-IO in `Kaldi-asr`: http://kaldi-asr.org/doc/io.html\n\n\n#### Basic of File IO in kaldi: Ark and copy-feats\n`ark` is an archive format to save any `Kaldi objects`. This library mainly support `KaldiMatrix/KaldiVector`.\nThis ia an example of ark file of KaldiMatrix: [ark file](tests/arks/test.ark)\n\nIf you have `Kaldi`, you can convert it to text format as following\n\n```bash\n# copy-feats \ncopy-feats ark:test.ark ark,t:text.ark\n```\n\n\n`copy-feats` is designed to have high affinity with unix command line:\n\n1. `ark` can be flushed to and from unix pipe.\n\n cat test.ark | copy-feats ark:- ark,t:- | less # Show the contents in the ark\n `-` indicates standard input stream or output stream.\n1. Unix command can be used as `read-specifier` and `wspecifier`\n\n copy-feats ark:'gunzip -c some.ark.gz |' ark:some.ark\n\n#### Scp file\n`scp` is a text file such as,\n\n```\nuttid1 /some/where/feats.ark:123\nuttid2 /some/where/feats.ark:156\nuttid3 /some/where/feats.ark:245\n```\nThe first column, `uttid1`, indicates the utterance id and the second, `/some/where/feats.ark:123`, is the file path of matrix/vector of kaldi formats. The number after colon is a starting addressof the object of the file.\n\n`scp` looks very simple format, but has several powerful features.\n\n1. Mutual conversion between`ark` and `scp`\n\n copy-feats scp:foo.scp ark:foo.ark # scp -> ark\n copy-feats ark:foo.ark ark,scp:bar.ark,bar.scp # ark -> ark,scp\n\n1. Unix command can be used insead of direct file path\n\n For example, the following scp file can be also used.\n\n uttid1 cat /some/where/feats1.mat |\n uttid2 cat /some/where/feats2.mat |\n uttid3 cat /some/where/feats3.mat |\n\n#### wav.scp\n`wav.scp` is a `scp` to describe wave file paths.\n\n```\nuttid1 /some/path/a.wav\nuttid2 /some/path/b.wav\nuttid3 /some/path/c.wav\n```\n\n`wav.scp` is also can be embeded unix command as normal scp file. This is often used for converting file format in kaldi recipes.\n\n```\nuttid1 sph2pipe -f wav /some/path/a.wv1 |\nuttid2 sph2pipe -f wav /some/path/b.wv1 |\nuttid3 sph2pipe -f wav /some/path/c.wv1 |\n```\n\n### Features\nKaldiio supports:\n\n- Read/Write for archive formats: ark, scp\n - Binary/Text - Float/Double Matrix: DM, FM\n - Binary/Text - Float/Double Vector: DV, FV\n - Compressed Matrix for loading: CM, CM2, CM3\n - Compressed Matrix for writing: All compressoin_method are supported: 1,2,3,4,5,6,7\n - Binary/Text for Int-vector, typically used for `ali` files.\n- Read/Write via a pipe: e.g. \"ark: cat feats.ark |\"\n- Read wav.scp / wav.ark\n- (New!) Some extended ark format **not supported** in Kaldi originally.\n - The ark file for numpy, pickle, wav, flac files.\n\nThe followings are **not supported**\n\n- Write in existing scp file\n- NNet2/NNet3 egs\n- Lattice file\n\n### Similar projects\n- Python-C++ binding\n - https://github.com/pykaldi/pykaldi\n - Looks great. I recommend pykaldi if you aren't particular about pure python.\n - https://github.com/janchorowski/kaldi-python/\n - Maybe not enough maintained now.\n - https://github.com/t13m/kaldi-readers-for-tensorflow\n - Ark reader for tensorflow\n- Pure Python\n - https://github.com/vesis84/kaldi-io-for-python\n - `kaldiio` is based on this module, but `kaldiio` supports more features than it.\n - https://github.com/funcwj/kaldi-python-io\n - Python>=3.6. `nnet3-egs`is also supported.\n\n## Install\n\n```bash\npip install kaldiio\n```\n\n## Usage\n`kaldiio` doesn't distinguish the API for each kaldi-objects, i.e.\n`Kaldi-Matrix`, `Kaldi-Vector`, not depending on whether it is binary or text, or compressed or not,\ncan be handled by the same API.\n\n### ReadHelper\n`ReadHelper` supports sequential accessing for `scp` or `ark`. If you need to access randomly, then use `kaldiio.load_scp`.\n\n\n- Read matrix-scp\n\n```python\nfrom kaldiio import ReadHelper\nwith ReadHelper('scp:file.scp') as reader:\n for key, numpy_array in reader:\n ...\n```\n\n\n- Read gziped ark\n\n```python\nfrom kaldiio import ReadHelper\nwith ReadHelper('ark: gunzip -c file.ark.gz |') as reader:\n for key, numpy_array in reader:\n ...\n\n# Ali file\nwith ReadHelper('ark: gunzip -c exp/tri3_ali/ali.*.gz |') as reader:\n for key, numpy_array in reader:\n ...\n```\n\n\n- Read wav.scp\n\n```python\nfrom kaldiio import ReadHelper\nwith ReadHelper('scp:wav.scp') as reader:\n for key, (rate, numpy_array) in reader:\n ...\n```\n\n\u3000\u3000\u3000\u3000- v2.11.0: Removed `wav` option. You can load `wav.scp` without any addtional argument.\n\n- Read wav.scp with segments\n\n```python\nfrom kaldiio import ReadHelper\nwith ReadHelper('scp:wav.scp', segments='segments') as reader\n for key, (rate, numpy_array) in reader:\n ...\n```\n\n- Read from stdin\n\n```python\nfrom kaldiio import ReadHelper\nwith ReadHelper('ark:-') as reader:\n for key, numpy_array in reader:\n ...\n```\n\n### WriteHelper\n- Write matrices and vectors in a ark with scp\n\n```python\nimport numpy\nfrom kaldiio import WriteHelper\nwith WriteHelper('ark,scp:file.ark,file.scp') as writer:\n for i in range(10):\n writer(str(i), numpy.random.randn(10, 10))\n # The following is equivalent\n # writer[str(i)] = numpy.random.randn(10, 10)\n```\n\n- Write in compressed matrix\n\n```python\nimport numpy\nfrom kaldiio import WriteHelper\nwith WriteHelper('ark:file.ark', compression_method=2) as writer:\n for i in range(10):\n writer(str(i), numpy.random.randn(10, 10))\n```\n\n- Write matrices in text\n\n```python\nimport numpy\nfrom kaldiio import WriteHelper\nwith WriteHelper('ark,t:file.ark') as writer:\n for i in range(10):\n writer(str(i), numpy.random.randn(10, 10))\n```\n\n- Write in gziped ark\n\n```python\nimport numpy\nfrom kaldiio import WriteHelper\nwith WriteHelper('ark:| gzip -c > file.ark.gz') as writer:\n for i in range(10):\n writer(str(i), numpy.random.randn(10, 10))\n```\n- Write matrice to stdout\n\n```python\nimport numpy\nfrom kaldiio import WriteHelper\nwith WriteHelper('ark:-') as writer:\n for i in range(10):\n writer(str(i), numpy.random.randn(10, 10))\n```\n\n\n- (New!) Extended ark format using numpy, pickle, soundfile\n\n```python\nimport numpy\nfrom kaldiio import WriteHelper\n\n# NPY ARK\nwith WriteHelper('ark:-', write_function=\"numpy\") as writer:\n writer(\"foo\", numpy.random.randn(10, 10))\n\n# PICKLE ARK\nwith WriteHelper('ark:-', write_function=\"pickle\") as writer:\n writer(\"foo\", numpy.random.randn(10, 10))\n \n# FLAC ARK\nwith WriteHelper('ark:-', write_function=\"soundfile_flac\") as writer:\n writer(\"foo\", numpy.random.randn(1000))\n```\n\nNote that `soundfile` is an optional module and you need to install it to use this feature.\n\n```sh\npip install soundfile\n```\n\n## More low level API\n`WriteHelper` and `ReadHelper` are high level wrapper of the following API to support kaldi style arguments.\n\n### load_ark\n\n```python\nimport kaldiio\n\nd = kaldiio.load_ark('a.ark') # d is a generator object\nfor key, numpy_array in d:\n ...\n\n# === load_ark can accepts file descriptor, too\nwith open('a.ark') as fd:\n for key, numpy_array in kaldiio.load_ark(fd):\n ...\n\n# === Use with open_like_kaldi\nfrom kaldiio import open_like_kaldi\nwith open_like_kaldi('gunzip -c file.ark.gz |', 'r') as f:\n for key, numpy_array in kaldiio.load_ark(fd):\n ...\n```\n\n- `load_ark` can load both matrices of ark and vectors of ark and also, it can be both text and binary.\n\n### load_scp\n`load_scp` creates \"lazy dict\", i.e.\nThe data are loaded in memory when accessing the element.\n\n```python\nimport kaldiio\n\nd = kaldiio.load_scp('a.scp')\nfor key in d:\n numpy_array = d[key]\n\n\nwith open('a.scp') as fd:\n kaldiio.load_scp(fd)\n\nd = kaldiio.load_scp('data/train/wav.scp', segments='data/train/segments')\nfor key in d:\n rate, numpy_array = d[key]\n```\n\nThe object created by `load_scp` is a dict-like object, thus it has methods of `dict`.\n\n```python\nimport kaldiio\nd = kaldiio.load_scp('a.scp')\nd.keys()\nd.items()\nd.values()\n'uttid' in d\nd.get('uttid')\n```\n\n### load_scp_sequential (from v2.13.0)\n\n`load_scp_sequential` creates \"generator\" as same as `load_ark`.\nIf you don't need random-accessing for each elements\nand use it just to iterate for whole data,\nthen this method possibly performs faster than `load_scp`.\n\n```python\nimport kaldiio\nd = kaldiio.load_scp_sequential('a.scp')\nfor key, numpy_array in d:\n ...\n```\n\n### load_wav_scp\n```python\nd = kaldiio.load_scp('wav.scp')\nfor key in d:\n rate, numpy_array = d[key]\n\n# Supporting \"segments\"\nd = kaldiio.load_scp('data/train/wav.scp', segments='data/train/segments')\nfor key in d:\n rate, numpy_array = d[key]\n```\n\n- v2.11.0: `load_wav_scp` is deprecated now. Use `load_scp`.\n\n### load_mat\n```python\nnumpy_array = kaldiio.load_mat('a.mat')\nnumpy_array = kaldiio.load_mat('a.ark:1134') # Seek and load\n\n# If the file is wav, gets Tuple[int, numpy.ndarray]\nrate, numpy_array = kaldiio.load_mat('a.wav')\n```\n- `load_mat` can load kaldi-matrix, kaldi-vector, and wave\n\n### save_ark\n```python\n\n# === Create ark file from numpy\nkaldiio.save_ark('b.ark', {'key': numpy_array, 'key2': numpy_array2})\n# Create ark with scp _file, too\nkaldiio.save_ark('b.ark', {'key': numpy_array, 'key2': numpy_array2},\n scp='b.scp')\n\n# === Writes arrays to sys.stdout\nimport sys\nkaldiio.save_ark(sys.stdout, {'key': numpy_array})\n\n# === Writes arrays for each keys\n# generate a.ark\nkaldiio.save_ark('a.ark', {'key': numpy_array, 'key2': numpy_array2})\n# After here, a.ark is opened with 'a' (append) mode.\nkaldiio.save_ark('a.ark', {'key3': numpy_array3}, append=True)\n\n\n# === Use with open_like_kaldi\nfrom kaldiio import open_like_kaldi\nwith open_like_kaldi('| gzip a.ark.gz', 'w') as f:\n kaldiio.save_ark(f, {'key': numpy_array})\n kaldiio.save_ark(f, {'key2': numpy_array2})\n```\n### save_mat\n```python\n# array.ndim must be 1 or 2\nkaldiio.save_mat('a.mat', numpy_array)\n```\n- `save_mat` can save both kaldi-matrix and kaldi-vector\n\n\n### open_like_kaldi\n\n``kaldiio.open_like_kaldi`` is a useful tool if you are familiar with Kaldi. This function can performs as following,\n\n```python\nfrom kaldiio import open_like_kaldi\nwith open_like_kaldi('echo -n hello |', 'r') as f:\n assert f.read() == 'hello'\nwith open_like_kaldi('| cat > out.txt', 'w') as f:\n f.write('hello')\nwith open('out.txt', 'r') as f:\n assert f.read() == 'hello'\n\nimport sys\nwith open_like_kaldi('-', 'r') as f:\n assert f is sys.stdin\nwith open_like_kaldi('-', 'w') as f:\n assert f is sys.stdout\n```\n\nFor example, if there are gziped alignment file, then you can load it as:\n\n```python\nfrom kaldiio import open_like_kaldi, load_ark\nwith open_like_kaldi('gunzip -c exp/tri3_ali/ali.*.gz |', 'rb') as f:\n # Alignment format equals ark of IntVector\n g = load_ark(f)\n for k, numpy_array in g:\n ...\n```\n\n### parse_specifier\n\n```python\nfrom kaldiio import parse_specifier, open_like_kaldi, load_ark\nrspecifier = 'ark:gunzip -c file.ark.gz |'\nspec_dict = parse_specifier(rspecifier)\n# spec_dict = {'ark': 'gunzip -c file.ark.gz |'}\n\nwith open_like_kaldi(spec_dict['ark'], 'rb') as fark:\n for key, numpy_array in load_ark(fark):\n ...\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nttcslab-sp/kaldiio", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "kaldiio", "package_url": "https://pypi.org/project/kaldiio/", "platform": "", "project_url": "https://pypi.org/project/kaldiio/", "project_urls": { "Homepage": "https://github.com/nttcslab-sp/kaldiio" }, "release_url": "https://pypi.org/project/kaldiio/2.17.2/", "requires_dist": null, "requires_python": "", "summary": "Kaldi-ark loading and writing module", "version": "2.17.2", "yanked": false, "yanked_reason": null }, "last_serial": 8872466, "releases": { "2.13.2": [ { "comment_text": "", "digests": { "md5": "8000209be8f7dc743d5e7ea13806e05d", "sha256": "36dce8d837cd2b705c6900e6085bdb5e2bfe32ee31acf592aa414d216adab7c1" }, "downloads": -1, "filename": "kaldiio-2.13.2.tar.gz", "has_sig": false, "md5_digest": "8000209be8f7dc743d5e7ea13806e05d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17072, "upload_time": "2019-02-19T02:25:52", "upload_time_iso_8601": "2019-02-19T02:25:52.337712Z", "url": "https://files.pythonhosted.org/packages/25/bd/e41fb569658637eada532d60025dae1fb2d4ac04c94a45160de750d51fd9/kaldiio-2.13.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.3": [ { "comment_text": "", "digests": { "md5": "10265c93b76976920c100bafd122c604", "sha256": "759b2b07544b42812c02400a7b6636dbbc5b7793dfb75e9922a469b01f61f6cd" }, "downloads": -1, "filename": "kaldiio-2.13.3.tar.gz", "has_sig": false, "md5_digest": "10265c93b76976920c100bafd122c604", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17375, "upload_time": "2019-02-20T06:58:33", "upload_time_iso_8601": "2019-02-20T06:58:33.365469Z", "url": "https://files.pythonhosted.org/packages/3e/44/b5838fc3c8ed18cb444a6b9b429233320a0f9a483747c16b88b33ac3fe94/kaldiio-2.13.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.4": [ { "comment_text": "", "digests": { "md5": "b8915a72c03bd323ba7d81af5634702f", "sha256": "2f02ae36a107cf785be808944dd287b2b694d31f9a787f763d5df623b7d54400" }, "downloads": -1, "filename": "kaldiio-2.13.4.tar.gz", "has_sig": false, "md5_digest": "b8915a72c03bd323ba7d81af5634702f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17350, "upload_time": "2019-03-01T06:58:46", "upload_time_iso_8601": "2019-03-01T06:58:46.465610Z", "url": "https://files.pythonhosted.org/packages/8f/6f/ea3d0855fe032cbc334a82102263e0648c8788923b3241282014efbd747c/kaldiio-2.13.4.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.6": [ { "comment_text": "", "digests": { "md5": "ed01d3ddad5c0f9c54dd5c76e3384327", "sha256": "8f6a92dbf922e81f51a29fec4c71e63cbba539a904a0d8c0e34fad20648180f2" }, "downloads": -1, "filename": "kaldiio-2.13.6.tar.gz", "has_sig": false, "md5_digest": "ed01d3ddad5c0f9c54dd5c76e3384327", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19564, "upload_time": "2019-05-27T05:26:50", "upload_time_iso_8601": "2019-05-27T05:26:50.078899Z", "url": "https://files.pythonhosted.org/packages/5c/6f/cf387e530789acbab8ed778a39a3d77cd329e09b1459b72962f6163a2a6c/kaldiio-2.13.6.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.7": [ { "comment_text": "", "digests": { "md5": "01251c9aa61c06209262a23d9342db8c", "sha256": "953285028d271e0d58b74388e54e7e630ccb6fbf940a0d1cd3085f56f63788ec" }, "downloads": -1, "filename": "kaldiio-2.13.7.tar.gz", "has_sig": false, "md5_digest": "01251c9aa61c06209262a23d9342db8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23349, "upload_time": "2019-06-06T02:01:07", "upload_time_iso_8601": "2019-06-06T02:01:07.198078Z", "url": "https://files.pythonhosted.org/packages/08/fb/2445c7dfa3dc187024d27a8a5f8b966b84f9acf13e2f9c02efc1244c24ff/kaldiio-2.13.7.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.8": [ { "comment_text": "", "digests": { "md5": "8cb3cce8d3b2c7698903075806e4c59b", "sha256": "f8982789ba9822be10f38222bdef5f35b799e4d2a5444a9b715158db0f94d7a8" }, "downloads": -1, "filename": "kaldiio-2.13.8.tar.gz", "has_sig": false, "md5_digest": "8cb3cce8d3b2c7698903075806e4c59b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23389, "upload_time": "2019-06-28T07:27:13", "upload_time_iso_8601": "2019-06-28T07:27:13.350834Z", "url": "https://files.pythonhosted.org/packages/f0/a1/43648f5ed6ef7748494589080273f128eeab8fe123f053efd67f4c1ded0b/kaldiio-2.13.8.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.9": [ { "comment_text": "", "digests": { "md5": "6e46291683cb83eea5648209476035c5", "sha256": "a32fea87889cc02a62a2193aff5d8dec7c9b36b1d20f9c92ea84b172ae82323e" }, "downloads": -1, "filename": "kaldiio-2.13.9.tar.gz", "has_sig": false, "md5_digest": "6e46291683cb83eea5648209476035c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20806, "upload_time": "2019-08-20T09:53:16", "upload_time_iso_8601": "2019-08-20T09:53:16.554315Z", "url": "https://files.pythonhosted.org/packages/ca/49/5e588a1fb98f115afc717b2f1fc282972e8b2bee215504f5a49fe9e27967/kaldiio-2.13.9.tar.gz", "yanked": false, "yanked_reason": null } ], "2.14.0": [ { "comment_text": "", "digests": { "md5": "82fd044031bb9c9e4927ff427b17adcf", "sha256": "58031b5d9594861053ca716480beb7022e96d09b55394741b85693a257a40cf6" }, "downloads": -1, "filename": "kaldiio-2.14.0.tar.gz", "has_sig": false, "md5_digest": "82fd044031bb9c9e4927ff427b17adcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21064, "upload_time": "2019-10-29T09:15:03", "upload_time_iso_8601": "2019-10-29T09:15:03.076050Z", "url": "https://files.pythonhosted.org/packages/8a/1d/f8e0affb4df95232f9de9dedb36de87344e2ceccdbbe6f25ed1df3e8aa23/kaldiio-2.14.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.14.1": [ { "comment_text": "", "digests": { "md5": "0cc49afac9c13f32879f32509b70cac6", "sha256": "9bc27f0b403a80438354e2ab114825fd01f460e82fe8597ad9889a9cec768fed" }, "downloads": -1, "filename": "kaldiio-2.14.1.tar.gz", "has_sig": false, "md5_digest": "0cc49afac9c13f32879f32509b70cac6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21205, "upload_time": "2019-10-31T07:30:00", "upload_time_iso_8601": "2019-10-31T07:30:00.228183Z", "url": "https://files.pythonhosted.org/packages/1f/c8/d135543a4374be86c7652d6761674ab17cb3e5f125391d2dcb84eb2c90ff/kaldiio-2.14.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.15.0": [ { "comment_text": "", "digests": { "md5": "ea3c4a212f0681b884c48a169362cf2f", "sha256": "b897214dbbba201f851867483f22c550cc096382fafbf519c2174e7ac01c2964" }, "downloads": -1, "filename": "kaldiio-2.15.0.tar.gz", "has_sig": false, "md5_digest": "ea3c4a212f0681b884c48a169362cf2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21207, "upload_time": "2019-11-27T11:45:23", "upload_time_iso_8601": "2019-11-27T11:45:23.360711Z", "url": "https://files.pythonhosted.org/packages/10/32/618615df07a7f0a1608ca09e637ba8d26ea3d997bcb7c1eebc09a028a6de/kaldiio-2.15.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.15.1": [ { "comment_text": "", "digests": { "md5": "ae669574d9095b271eb32a41e17233a1", "sha256": "52cf75062acd5497b3e5815a6dc82d94c206537133a8e6a13f7749ccd5c5553c" }, "downloads": -1, "filename": "kaldiio-2.15.1.tar.gz", "has_sig": false, "md5_digest": "ae669574d9095b271eb32a41e17233a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21226, "upload_time": "2019-12-10T00:27:22", "upload_time_iso_8601": "2019-12-10T00:27:22.535436Z", "url": "https://files.pythonhosted.org/packages/b7/fd/0415c4d37b7a6b4d0f09fbfb4c507cd949f0817851309aa977e3c384923a/kaldiio-2.15.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.16.0": [ { "comment_text": "", "digests": { "md5": "5f3f152e68856c9f06f38e238552b628", "sha256": "992dd17b8a8f586a61f24f5427bc06e58871cefa0a538b785915974082800c4e" }, "downloads": -1, "filename": "kaldiio-2.16.0.tar.gz", "has_sig": false, "md5_digest": "5f3f152e68856c9f06f38e238552b628", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24146, "upload_time": "2020-09-25T12:55:35", "upload_time_iso_8601": "2020-09-25T12:55:35.138778Z", "url": "https://files.pythonhosted.org/packages/b5/b5/2fb7b77a1160d068790c7664262be2e20c2b21612fc9708e031ffcd98c3e/kaldiio-2.16.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.16.0a1": [ { "comment_text": "", "digests": { "md5": "9713b331056a17fc50c9d6133b2030aa", "sha256": "59be14754a4ea15edce720595d96c0979a6e97c17b72c9fb0685e85fdc21c8bb" }, "downloads": -1, "filename": "kaldiio-2.16.0a1.tar.gz", "has_sig": false, "md5_digest": "9713b331056a17fc50c9d6133b2030aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22697, "upload_time": "2020-09-10T10:23:02", "upload_time_iso_8601": "2020-09-10T10:23:02.774775Z", "url": "https://files.pythonhosted.org/packages/46/58/b970e3f34d844e27535fc08d19b1c7cc34f34969743ed977e1cd1451950b/kaldiio-2.16.0a1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.17.0": [ { "comment_text": "", "digests": { "md5": "75bfec12a4a45f043dadfccb1465f848", "sha256": "02e4f153bae29bce62eee7e2c898292cbd04c85697a996963f6b2e9bbec8b5ef" }, "downloads": -1, "filename": "kaldiio-2.17.0.tar.gz", "has_sig": false, "md5_digest": "75bfec12a4a45f043dadfccb1465f848", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24422, "upload_time": "2020-09-25T16:41:56", "upload_time_iso_8601": "2020-09-25T16:41:56.855808Z", "url": "https://files.pythonhosted.org/packages/a0/f6/a72323a04aa8b6727c319a45d360a4e90dcab2ee6affdd711976610fa50b/kaldiio-2.17.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.17.1": [ { "comment_text": "", "digests": { "md5": "f113ae803e3758f76037862e86a700c3", "sha256": "8209f8c850752ffd0164bd060a01a09045966f3aeea5c28ad41f3dd646d6d049" }, "downloads": -1, "filename": "kaldiio-2.17.1.tar.gz", "has_sig": false, "md5_digest": "f113ae803e3758f76037862e86a700c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24434, "upload_time": "2020-12-10T04:49:29", "upload_time_iso_8601": "2020-12-10T04:49:29.337323Z", "url": "https://files.pythonhosted.org/packages/46/30/2e09a90a41f8e0a0676f4b04946955bb6b463e20c2cbcd50631530f00b1b/kaldiio-2.17.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.17.2": [ { "comment_text": "", "digests": { "md5": "a7c212c0d068b251017c719c87701d0e", "sha256": "51bc2d805ed5b15403501d410adcb2e79fe2bd7f5ef63c20b4ddb345c6a8de01" }, "downloads": -1, "filename": "kaldiio-2.17.2.tar.gz", "has_sig": false, "md5_digest": "a7c212c0d068b251017c719c87701d0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24426, "upload_time": "2020-12-10T23:10:11", "upload_time_iso_8601": "2020-12-10T23:10:11.054116Z", "url": "https://files.pythonhosted.org/packages/5b/64/a615d1f8b31ee3b3eee9b1e3e17b9961757c0c1fb7df5b7dbd9baef004a9/kaldiio-2.17.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a7c212c0d068b251017c719c87701d0e", "sha256": "51bc2d805ed5b15403501d410adcb2e79fe2bd7f5ef63c20b4ddb345c6a8de01" }, "downloads": -1, "filename": "kaldiio-2.17.2.tar.gz", "has_sig": false, "md5_digest": "a7c212c0d068b251017c719c87701d0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24426, "upload_time": "2020-12-10T23:10:11", "upload_time_iso_8601": "2020-12-10T23:10:11.054116Z", "url": "https://files.pythonhosted.org/packages/5b/64/a615d1f8b31ee3b3eee9b1e3e17b9961757c0c1fb7df5b7dbd9baef004a9/kaldiio-2.17.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }