{ "info": { "author": "David Nicholson", "author_email": "nicholdav@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython" ], "description": "\n# crowsetta\n[![Build Status](https://travis-ci.com/NickleDave/crowsetta.svg?branch=master)](https://travis-ci.com/NickleDave/crowsetta)\n[![Documentation Status](https://readthedocs.org/projects/crowsetta/badge/?version=latest)](https://crowsetta.readthedocs.io/en/latest/?badge=latest)\n[![DOI](https://zenodo.org/badge/159904494.svg)](https://zenodo.org/badge/latestdoi/159904494)\n[![PyPI version](https://badge.fury.io/py/crowsetta.svg)](https://badge.fury.io/py/crowsetta)\n\n`crowsetta` is a tool to work with any format for annotating vocalizations: speech, birdsong, \nmouse ultrasonic calls (insert your favorite animal vocalization here).\n**The goal of** `crowsetta` **is to make sure that your ability to work with a dataset \nof vocalizations does not depend on your ability to work with any given format for \nannotating that dataset.** What `crowsetta` gives you is **not** yet another format for \nannotation (I promise!); instead you get some nice data types that make it easy to \nwork with any format: namely, `Sequence`s made up of `Segment`s.\n\n```Python\n >>> from crowsetta import Segment, Sequence\n >>> a_segment = Segment.from_keyword(\n ... label='a',\n ... onset_Hz=16000,\n ... offset_Hz=32000,\n ... file='bird21.wav'\n ... )\n >>> list_of_segments = [a_segment] * 3\n >>> seq = Sequence(segments=list_of_segments)\n >>> print(seq)\n Sequence(segments=[Segment(label='a', onset_s=None, offset_s=None, onset_Hz=16000, \n offset_Hz=32000, file='bird21.wav'), Segment(label='a', onset_s=None, offset_s=None, \n onset_Hz=16000, offset_Hz=32000, file='bird21.wav'), Segment(label='a', onset_s=None, \n offset_s=None, onset_Hz=16000, offset_Hz=32000, file='bird21.wav')])\n```\n\nYou can load annotation from your format of choice into `Sequence`s of `Segment`s \n(most conveniently with the `Transcriber`, as explained below) and then use the \n`Sequence`s however you need to in your program.\n\nFor example, if you want to loop through the `Segment`s of each `Sequence`s to \npull syllables out of a spectrogram, you can do something like this, very Pythonically:\n\n```Python\n >>> syllables_from_sequences = []\n >>> for a_seq in seq:\n ... seq_dict = seq.to_dict() # convert to dict with \n ... spect = some_spectrogram_making_function(seq['file'])\n ... syllables = []\n ... for seg in seq.segments:\n ... syllable = spect[:, seg.onset:seg.offset] ## spectrogram is a 2d numpy array\n ... syllables.append(syllable)\n ... syllables_from_sequences.append(syllables)\n```\n\nAs mentioned above, `crowsetta` provides you with a `Transcriber` that comes equipped\nwith convenience functions to do the work of converting for you. \n\n```Python\n from crowsetta import Transcriber\n scribe = Transcriber()\n seq = scribe.to_seq(file=notmat_files, format='notmat')\n```\n\nYou can even easily adapt the `Transcriber` to use your own in-house format, like so:\n\n```Python\n from crowsetta import Transcriber\n scribe = Transciber(user_config=your_config)\n scribe.to_csv(file_'your_annotation_file.mat',\n csv_filename='your_annotation.csv')\n```\n\n## Features\n\n- convert annotation formats to `Sequence` objects that can be easily used in a Python program\n- convert `Sequence` objects to comma-separated value text files that can be read on any system\n- load comma-separated values files back into Python and convert to other formats\n- easily use with your own annotation format\n\nYou might find it useful in any situation where you want \nto share audio files of song and some associated annotations, \nbut you don't want to require the user to install a large \napplication in order to work with the annotation files.\n\n## Getting Started\nYou can install with pip:\n`$ pip install crowsetta`\n\nTo learn how to use `crowsetta`, please see the documentation at: \n\n\n## Project Information\n\n### Background\n\n`crowsetta` was developed for two libraries:\n- `hybrid-vocal-classifier` \n- `vak` \n\nTesting relies on the `Vocalization Annotation Formats Dataset` which you may find useful if you need\nsmall samples of different audio files and associated annotation formats\n- on Figshare: \n- built from this GitHub repository: \n\n### Support\n\nIf you are having issues, please let us know.\n\n- Issue Tracker: \n\n### Contribute\n\n- Issue Tracker: \n- Source Code: \n\n### CHANGELOG\nYou can see project history and work in progress in the [CHANGELOG](./doc/CHANGELOG.md)\n\n### License\n\nThe project is licensed under the [BSD license](./LICENSE).\n\n### Citation\nIf you use `crowsetta`, please cite the DOI:\n[![DOI](https://zenodo.org/badge/159904494.svg)](https://zenodo.org/badge/latestdoi/159904494)\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/NickleDave/crowsetta", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "crowsetta", "package_url": "https://pypi.org/project/crowsetta/", "platform": "", "project_url": "https://pypi.org/project/crowsetta/", "project_urls": { "Homepage": "https://github.com/NickleDave/crowsetta" }, "release_url": "https://pypi.org/project/crowsetta/2.0.0/", "requires_dist": [ "numpy", "scipy", "attrs", "evfuncs", "koumura", "coverage ; extra == 'dev'", "jupyterlab ; extra == 'dev'", "sphinx ; extra == 'docs'", "ipython ; extra == 'docs'" ], "requires_python": ">=3.6.0", "summary": "A tool to work with any format for annotating vocalizations", "version": "2.0.0" }, "last_serial": 5547739, "releases": { "0.2.0a1": [ { "comment_text": "", "digests": { "md5": "8cd88d60cb7110d57b3314f3e56ef255", "sha256": "568be544a5b0f12efae5a969b95a43b53fed2d04c4dbf41afa44dd1ffacd99fd" }, "downloads": -1, "filename": "crowsetta-0.2.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "8cd88d60cb7110d57b3314f3e56ef255", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 15987, "upload_time": "2018-12-23T20:20:09", "url": "https://files.pythonhosted.org/packages/e8/a9/5019281ccd0ae398e15f8081701acfc6f3b70007ca93ef433685b090f332/crowsetta-0.2.0a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc824c03e9ccd6d0e3d3f92b553de8a3", "sha256": "09cd0808d07c91bc349faa17d39e35c3bd12b1d677d34bab6df5aee21d383836" }, "downloads": -1, "filename": "crowsetta-0.2.0a1.tar.gz", "has_sig": false, "md5_digest": "cc824c03e9ccd6d0e3d3f92b553de8a3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 14476, "upload_time": "2018-12-23T20:20:11", "url": "https://files.pythonhosted.org/packages/4f/ae/8119457df9b122b920bf00decb3e57f12dff1b4c38d338f8c2ac3813d970/crowsetta-0.2.0a1.tar.gz" } ], "0.2.0a2": [ { "comment_text": "", "digests": { "md5": "d22bf7cb7221582bd91c79abe024debe", "sha256": "d93904b781107fc2878b3127fe313896e6ab131ef8478f0abfd8624f3253b219" }, "downloads": -1, "filename": "crowsetta-0.2.0a2-py3-none-any.whl", "has_sig": false, "md5_digest": "d22bf7cb7221582bd91c79abe024debe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 22570, "upload_time": "2018-12-26T16:30:28", "url": "https://files.pythonhosted.org/packages/b6/33/35e823d1db2495be5a6fa57fd2f4617c678dbe3c896ecb652ab9430db654/crowsetta-0.2.0a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c397ed55dd98868c225aff277c1be07f", "sha256": "91059187aae534605b8200f148bffcdf06c7897eb4b80443774b80aaba5b8643" }, "downloads": -1, "filename": "crowsetta-0.2.0a2.tar.gz", "has_sig": false, "md5_digest": "c397ed55dd98868c225aff277c1be07f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 16271, "upload_time": "2018-12-26T16:30:30", "url": "https://files.pythonhosted.org/packages/ad/7c/60ba2a77c44fc3cf1e8d8eb7810b3cce0315c2224247734f7cc7bd194a0a/crowsetta-0.2.0a2.tar.gz" } ], "0.2.0a3": [ { "comment_text": "", "digests": { "md5": "c27ff9834119a7495be742d35cc17bac", "sha256": "12a05d8f6e4a5d47717464276b11fe07870632340717d79d7972a1885e88e868" }, "downloads": -1, "filename": "crowsetta-0.2.0a3-py3-none-any.whl", "has_sig": false, "md5_digest": "c27ff9834119a7495be742d35cc17bac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 22570, "upload_time": "2018-12-26T16:53:52", "url": "https://files.pythonhosted.org/packages/bd/9a/6ca6a6bee7128cfba0ea991544c2432bf9aa39ca9d23d906e4bdc8efaa2c/crowsetta-0.2.0a3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0bebe784a9c4b3d6a02d7946925ceb14", "sha256": "08c1ec05f64aba02109bfd959be476a9134f99a4bfe5cfad502a0968a909e239" }, "downloads": -1, "filename": "crowsetta-0.2.0a3.tar.gz", "has_sig": false, "md5_digest": "0bebe784a9c4b3d6a02d7946925ceb14", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 16275, "upload_time": "2018-12-26T16:53:54", "url": "https://files.pythonhosted.org/packages/db/bb/ff78671afc4947fa770d7ffd9829259f99c5e9f443ed27d246c8281c77b7/crowsetta-0.2.0a3.tar.gz" } ], "0.2.0a4": [ { "comment_text": "", "digests": { "md5": "1013040a433bbe4e408857a1fc96b560", "sha256": "cdadc96dc40b96027c694565e665248b06ffa0a7424e1eb1f160630cbf9304aa" }, "downloads": -1, "filename": "crowsetta-0.2.0a4-py3-none-any.whl", "has_sig": false, "md5_digest": "1013040a433bbe4e408857a1fc96b560", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 25207, "upload_time": "2018-12-31T19:16:54", "url": "https://files.pythonhosted.org/packages/be/a4/34f1c8f2605870829987a2b365ee833f96d18aaa70ecbcf3e227db9e5d61/crowsetta-0.2.0a4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7bf62b3df94de5b4928cac65bff96fe", "sha256": "c96d3e1f45419e05e70713090efcb8cc3e166db078f0c9dd0952af088f20d7c4" }, "downloads": -1, "filename": "crowsetta-0.2.0a4.tar.gz", "has_sig": false, "md5_digest": "e7bf62b3df94de5b4928cac65bff96fe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 23333, "upload_time": "2018-12-31T19:16:56", "url": "https://files.pythonhosted.org/packages/77/48/b5784549323911a73ff59c90181e91f04998e3dbaba972612e10741217d3/crowsetta-0.2.0a4.tar.gz" } ], "0.2.0a5": [ { "comment_text": "", "digests": { "md5": "3a0595d14ac95f7f1a3ddfcec8ed6351", "sha256": "15c1f105296519df49853778aaacacf0204c8b1317e3fb7672387f27d1b61097" }, "downloads": -1, "filename": "crowsetta-0.2.0a5-py3-none-any.whl", "has_sig": false, "md5_digest": "3a0595d14ac95f7f1a3ddfcec8ed6351", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 30091, "upload_time": "2019-01-07T04:45:33", "url": "https://files.pythonhosted.org/packages/3b/44/473a84cd72e37b5cf46a5c160be53b02de8bb627d9fd95f5e7e8b300e4d0/crowsetta-0.2.0a5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c14033ac174d8b6a166cdeaa9bfe70f", "sha256": "4409e56df16d8344236f7bb7b01319501b34a0a1923d793c2095f9d8c2c1e851" }, "downloads": -1, "filename": "crowsetta-0.2.0a5.tar.gz", "has_sig": false, "md5_digest": "4c14033ac174d8b6a166cdeaa9bfe70f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 24690, "upload_time": "2019-01-07T04:45:35", "url": "https://files.pythonhosted.org/packages/6f/f4/feb12b19941e329afe24de76f1eb91da3188967c94928d26a56f70bcfb92/crowsetta-0.2.0a5.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "de74fd7cc19b5d444c949bc2b651c971", "sha256": "695d50e5edb03300d7b342d5941b9f6b4499269d5ec32194935b6509cb5c2d29" }, "downloads": -1, "filename": "crowsetta-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "de74fd7cc19b5d444c949bc2b651c971", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 35971, "upload_time": "2019-05-05T15:36:00", "url": "https://files.pythonhosted.org/packages/7e/ab/91a44100c98e7b5254a2e6c54d3f2bc5303680daab68d3029666cb098b08/crowsetta-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8762b369d486c5140715b7b067fbc37f", "sha256": "74e8b00e7ed17036152f635078b6ba8c28a95d9364322af3fb943e99535a5ccb" }, "downloads": -1, "filename": "crowsetta-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8762b369d486c5140715b7b067fbc37f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 31980, "upload_time": "2019-05-05T15:36:01", "url": "https://files.pythonhosted.org/packages/27/da/8063c36f2cd4e2492b4b962d617dad12cc096c415be626aab371188ff373/crowsetta-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "ab8fa3cd78ac5f11cc1813c5ea9963fd", "sha256": "aeeaead80ffdfe58d7a8feb3335c9642b7fa159d417ad201badfd3a4410932b1" }, "downloads": -1, "filename": "crowsetta-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ab8fa3cd78ac5f11cc1813c5ea9963fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 35127, "upload_time": "2019-05-07T14:58:44", "url": "https://files.pythonhosted.org/packages/87/74/012e171805000131ad9c96f7ed04984a9321c407f76b2c22374478bd23fc/crowsetta-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af70a24e1c416fae3a98472d4cff26b2", "sha256": "c6b83adb40fb93bf3e01d65a8b5832b351fc13675c67d5b85b93750af0f8e9e5" }, "downloads": -1, "filename": "crowsetta-1.1.0.tar.gz", "has_sig": false, "md5_digest": "af70a24e1c416fae3a98472d4cff26b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 32673, "upload_time": "2019-05-07T14:58:45", "url": "https://files.pythonhosted.org/packages/96/f8/2bcd018500e002466bb6e0638314cb1dd93c410cc9f5eb40f534c73704be/crowsetta-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "f8c3a20e358382ab42e1737db8504302", "sha256": "787595789686a29b73ba68faed0efeb7743decc8a7bca6244cc6fec21b57f7d4" }, "downloads": -1, "filename": "crowsetta-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f8c3a20e358382ab42e1737db8504302", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 36291, "upload_time": "2019-05-07T16:18:08", "url": "https://files.pythonhosted.org/packages/70/d0/7dddbec13ea17369003e69f9efc4010d49900cc5726dcfc588c9c274fa5a/crowsetta-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0312b719ea710584fc54796f5aadab2a", "sha256": "b65a672f0184d1cddd916a2808f38e9c9954c79b40a2bcc71b5471cbb4aa6240" }, "downloads": -1, "filename": "crowsetta-1.1.1.tar.gz", "has_sig": false, "md5_digest": "0312b719ea710584fc54796f5aadab2a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 32907, "upload_time": "2019-05-07T16:18:09", "url": "https://files.pythonhosted.org/packages/22/3f/8219231d0a37e6dec9285aa94de64522b0f7bcd027d3dc28f725c9b7e500/crowsetta-1.1.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "bfa8dd43ad24a71205cb2c17a709126d", "sha256": "1a36b3bbf4a22a6865b70b27e87c65b03c22456379b30d28094e46da92d13a11" }, "downloads": -1, "filename": "crowsetta-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bfa8dd43ad24a71205cb2c17a709126d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 39367, "upload_time": "2019-07-17T21:10:20", "url": "https://files.pythonhosted.org/packages/77/86/a85bb60c70a658632de0a98d3706b553ef98ead942fdf72975438da417b8/crowsetta-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ec65f50bd5c51519f01d0eda291bd21", "sha256": "844a1ef510766f601e6f3087d817608e71caa3e3e52e83ed34259c6235be3863" }, "downloads": -1, "filename": "crowsetta-2.0.0.tar.gz", "has_sig": false, "md5_digest": "4ec65f50bd5c51519f01d0eda291bd21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 34479, "upload_time": "2019-07-17T21:10:22", "url": "https://files.pythonhosted.org/packages/e5/a1/9f831d1fd8586698210c204cb5a42a3ba2ce4823e7471125f17fae1dab9a/crowsetta-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bfa8dd43ad24a71205cb2c17a709126d", "sha256": "1a36b3bbf4a22a6865b70b27e87c65b03c22456379b30d28094e46da92d13a11" }, "downloads": -1, "filename": "crowsetta-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bfa8dd43ad24a71205cb2c17a709126d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 39367, "upload_time": "2019-07-17T21:10:20", "url": "https://files.pythonhosted.org/packages/77/86/a85bb60c70a658632de0a98d3706b553ef98ead942fdf72975438da417b8/crowsetta-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ec65f50bd5c51519f01d0eda291bd21", "sha256": "844a1ef510766f601e6f3087d817608e71caa3e3e52e83ed34259c6235be3863" }, "downloads": -1, "filename": "crowsetta-2.0.0.tar.gz", "has_sig": false, "md5_digest": "4ec65f50bd5c51519f01d0eda291bd21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 34479, "upload_time": "2019-07-17T21:10:22", "url": "https://files.pythonhosted.org/packages/e5/a1/9f831d1fd8586698210c204cb5a42a3ba2ce4823e7471125f17fae1dab9a/crowsetta-2.0.0.tar.gz" } ] }