{ "info": { "author": "Dror Ayalon", "author_email": "d.stamail@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Topic :: Multimedia :: Sound/Audio :: Analysis" ], "description": "[![GitHub license](https://img.shields.io/github/license/Naereen/StrapDown.js.svg)](https://github.com/Naereen/StrapDown.js/blob/master/LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\n# AudioOwl\nAudioOwl is using [librosa](https://librosa.github.io/librosa/index.html) and [RNN models](http://madmom.readthedocs.io/en/latest/index.html) to run fast analysis of music files \ud83c\udfb8.\n\n**Jump to:**\n- [Quickstart](https://github.com/dodiku/AudioOwl#quickstart)\n- [Installation](https://github.com/dodiku/AudioOwl#installation)\n- [Usage](https://github.com/dodiku/AudioOwl#usage)\n- [Output data explained](https://github.com/dodiku/AudioOwl#output-data-explained)\n\n> Mix your music automatically with [MixingBear](https://github.com/dodiku/MixingBear) - Automatic beat-mixing of music files \ud83c\udf9a\n\n![AudioOwl](https://raw.githubusercontent.com/dodiku/AudioOwl/master/Images/AudioOwl.png)\n\n# Quickstart\nAnalyze a WAV audio file -\n```python\nimport audioowl\ndata = audioowl.analyze_file(path='my_music_file.wav', sr=22050)\n\nprint (data)\n==> {'sample_rate': 22050,\n 'duration': 36.096009070294784,\n 'beat_samples': [12794, 40148, 66179, 93092, ...,\n 'notes': [2,2,2,2,3,3,3,1,1,...]\n ...}\n```\n\nor an MP3 file -\n```python\ndata = audioowl.analyze_file(path='my_music_file.mp3', sr=22050)\n```\n\nGet beat times in samples (``data['beat_samples']``) -\n```python\nimport matplotlib.pyplot as plt\n\nwaveform = audioowl.get_waveform('drums.mp3', sr=22050)\ndata = audioowl.analyze_file('drums.mp3', sr=22050)\n\nplt.figure()\nplt.vlines(data['beat_samples'], -1.0, 1.0)\nplt.plot(waveform)\nplt.show()\n```\n![plotting beats](https://raw.githubusercontent.com/dodiku/AudioOwl/master/Images/plot_drums_beats.png)\n\n# Installation\n> Tested on Python 3.6 or later\n\n\n> \u26a0\ufe0f AudioOwl needs **ffmpeg** to be installed on your machine.\n> The easiest way to install ffmpeg (at least on a Mac) is using homebrew. [See instructions here](https://gist.github.com/clayton/6196167).\n\nThe latest stable release is available on PyPI. \nInstall it using the following command -\n\n```bash\n$ pip install audioowl\n```\n\n# Usage\nGiven an audio file, AudioOwl generates an objects with many useful information about your file \ud83d\udcaa.\n\n## ``audioowl.get_waveform()``\nReturns a numpy array that contains that audio file time series. \n\nSupported keyword arguments for ``audioowl.get_waveform()``:\n- ``path`` - Local path to the audio file.\n- ``sr`` *[optional]* - Requested sample rate for the analyzed file. This does not have to be the actual sample rate of the file, but the sample rate that will be used for the analysis. default = 22050.\n\n## ``audioowl.analyze_file()``\nReturns an object (dictionary) with the analysis results. \n\nThe ``audioowl.analyze_file()`` function allows you to use the path to the audio file.\n\n\nSupported keyword arguments for ``audioowl.analyze_file()``:\n- ``path`` - Local path to the audio file.\n- ``sr`` *[optional]* - Requested sample rate for the analyzed file. This does not have to be the actual sample rate of the file, but the sample rate that will be used for the analysis. default = 22050.\n\n## ``audioowl.analyze_samples()``\nReturns a numpy array that contains that audio file time series. \n\nThe ``audioowl.analyze_samples()`` function allows you to use an audio time series (as numpy array).\n\nExample -\n\n```python\nimport audioowl\n\ntime_series = audioowl.get_waveform('my_music_file.wav')\ndata = audioowl.analyze_samples(y=time_series, sr=44100)\n```\nSupported keyword arguments for ``audioowl.analyze_samples()``:\n- ``y`` - Time series. Must be a numpy array, with shape (1,) for mono, and (2,) for stereo.\n- ``sr`` - Requested sample rate for the analyzed file. This does not have to be the actual sample rate of the file, but the sample rate that will be used for the analysis.\n\n## Output data explained\nThe return value of all function is a an object (dictionary) with the analysis results.\nIn case where the return value is stored in ``data``:\n```python\nimport audioowl\ndata = audioowl.analyze_file(path='my_music_file.wav', sr=22050)\n```\nThe ``data`` object will include the following properties:\n\n```python\n\n data['sample_rate'] # [int] sample rate\n\n data['duration'] # [float] file duration\n\n data['beat_samples'] # [list] beat location in samples\n\n data['number_of_beats'] # [list] number of detected beats\n\n data['tempo_float'] # [float] detected tempo as a float\n\n data['tempo_int'] # [int] detected tempo as an int\n\n data['zero_crossing'] # [list] detected zero level crossing, in samples detected\n\n data['noisiness_median'] # [float] nosiness value as a median, across the file\n\n data['noisiness_sum'] # [float] nosiness value as a sum, across the file\n\n data['notes'] # [list] notes across the file, based on chromagram of hop_length=512 samples.\n # notes legend:\n # 0 c\n # 1 c#\n # 2 d\n # 3 d#\n # 4 e\n # 5 f\n # 6 f#\n # 7 g\n # 8 g#\n # 9 a\n # 10 a#\n # 11 b\n\n data['dominant_note'] # [int] most dominant (frequent) note across the file\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/dodiku/AudioOwl", "keywords": "Fast and simple music and audio analysis using RNN in Python", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "audioowl", "package_url": "https://pypi.org/project/audioowl/", "platform": "", "project_url": "https://pypi.org/project/audioowl/", "project_urls": { "Homepage": "https://github.com/dodiku/AudioOwl" }, "release_url": "https://pypi.org/project/audioowl/0.0.14/", "requires_dist": null, "requires_python": "", "summary": "Fast and simple music and audio analysis using RNN in Python", "version": "0.0.14" }, "last_serial": 4049519, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "1356a516e30f6c3a27fd50f9db18810b", "sha256": "8df669ba8466606920f7224aad4727df55c9e6467e14b19774f436417f8558d9" }, "downloads": -1, "filename": "audioowl-0.0.10.tar.gz", "has_sig": false, "md5_digest": "1356a516e30f6c3a27fd50f9db18810b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4791, "upload_time": "2018-04-26T01:28:14", "url": "https://files.pythonhosted.org/packages/8a/db/c31f823a420f9b436903e0629d69332e2d1e93f11a70d9a729db4eebd8e4/audioowl-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "c668f350b81a06e7c8c53f250b8fd600", "sha256": "b2fe8fb560e69327c61a976aa17909ea4b95d82757522aaf10794fba9afd51af" }, "downloads": -1, "filename": "audioowl-0.0.11.tar.gz", "has_sig": false, "md5_digest": "c668f350b81a06e7c8c53f250b8fd600", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4792, "upload_time": "2018-04-26T01:50:13", "url": "https://files.pythonhosted.org/packages/b5/99/4fe1a7e20a279b29efa7111a7374f29d30e59f13212693052e4ae818b629/audioowl-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "80752f1f490980e6917a9079fa776f98", "sha256": "f31fc891324ceed6afeb918a29b98ef373e12dbbabfb093f40dc4399e9ac3fcd" }, "downloads": -1, "filename": "audioowl-0.0.12.tar.gz", "has_sig": false, "md5_digest": "80752f1f490980e6917a9079fa776f98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4589, "upload_time": "2018-04-26T01:55:22", "url": "https://files.pythonhosted.org/packages/8d/90/1e206a5155aecdfd90d838a149ecd7131a021406bc56c4dac9a11181df55/audioowl-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "94341dac0c2db28edf5528072274db32", "sha256": "9563de35ba05c6b49e5ba88f0ba40ea7f8f9deb45d8b00cba92de008a9eaca96" }, "downloads": -1, "filename": "audioowl-0.0.13.tar.gz", "has_sig": false, "md5_digest": "94341dac0c2db28edf5528072274db32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4641, "upload_time": "2018-04-26T17:35:30", "url": "https://files.pythonhosted.org/packages/b1/95/79122f1fb98c7f11b0698007a3e60d8db247f6be437e5e8763439d54b30f/audioowl-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "cb30e4dd7b5321122fb71755e8adecf3", "sha256": "6bdd855a11b15c8cfa07219d2cf3e0fd709478ba400995173109423abb20ca80" }, "downloads": -1, "filename": "audioowl-0.0.14.tar.gz", "has_sig": false, "md5_digest": "cb30e4dd7b5321122fb71755e8adecf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4666, "upload_time": "2018-07-11T03:45:26", "url": "https://files.pythonhosted.org/packages/46/70/b8986b8cd5cce2f21d552906a7fc143cd68cb6df1a3dfb36615a33ed38b1/audioowl-0.0.14.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "c8fa0ab004f058515f04d67ced2e0dbd", "sha256": "0c44076836c6e7642df10ba0a9f6b35009ece3dc4973c8f911eb6cac571fb71e" }, "downloads": -1, "filename": "audioowl-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c8fa0ab004f058515f04d67ced2e0dbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2060, "upload_time": "2018-04-17T03:17:07", "url": "https://files.pythonhosted.org/packages/17/10/c095a170bdd5ced7e3baa73d6568310ef32fec46d43fe7e93d129cafbaed/audioowl-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3a7b404f937fcdd8b3ef4b2200670f5c", "sha256": "9cd9b02f404800094ec368c7f5c617d763619af7e653aae659f73d326207fb6d" }, "downloads": -1, "filename": "audioowl-0.0.3.tar.gz", "has_sig": false, "md5_digest": "3a7b404f937fcdd8b3ef4b2200670f5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3505, "upload_time": "2018-04-17T04:31:55", "url": "https://files.pythonhosted.org/packages/ce/98/60c42230459a8f3c07d0f66c92d28c9f290f1a6599bdaebc63461ff986dc/audioowl-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "91062bbe013d78ed9af2bbb6b57dff77", "sha256": "0dfdbd7c60959c78da7a1c97258831eb0cfbf4c1b7bb23ba1ab078c75d0c76ff" }, "downloads": -1, "filename": "audioowl-0.0.4.tar.gz", "has_sig": false, "md5_digest": "91062bbe013d78ed9af2bbb6b57dff77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4162, "upload_time": "2018-04-26T00:06:18", "url": "https://files.pythonhosted.org/packages/f9/1f/64df983dad15433e08db92d156527f96b26b7657e836697e6d654f5ac343/audioowl-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "fcd52e3c7c8734be4200edb3b659fab3", "sha256": "799493ec134b0bddf40fa3abf17da937ee2fe0b2afbe67b1c4ad1e361dcb7467" }, "downloads": -1, "filename": "audioowl-0.0.5.tar.gz", "has_sig": false, "md5_digest": "fcd52e3c7c8734be4200edb3b659fab3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4737, "upload_time": "2018-04-26T01:18:27", "url": "https://files.pythonhosted.org/packages/cf/0e/74dd94533a50435563182ff3e76d52a570e7d2309501529574e9daa0c632/audioowl-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "22051a1808208626ab16f4695846bc49", "sha256": "d39d88c239f671c073cdd07d250f12934e5c4a46c51719eed07c37112e7b588b" }, "downloads": -1, "filename": "audioowl-0.0.6.tar.gz", "has_sig": false, "md5_digest": "22051a1808208626ab16f4695846bc49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4760, "upload_time": "2018-04-26T01:20:24", "url": "https://files.pythonhosted.org/packages/dd/c3/30c8b8506ab83cb2bf40341d0a21c82a3411d5a5b0e662414cf2e446519f/audioowl-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "725d9aa7425cdf704a8deabe1d1eea6b", "sha256": "a04f511c82cd321655b0ff9d4ce035e835d8096d0bf04c048a93a4ec349e6777" }, "downloads": -1, "filename": "audioowl-0.0.7.tar.gz", "has_sig": false, "md5_digest": "725d9aa7425cdf704a8deabe1d1eea6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4759, "upload_time": "2018-04-26T01:22:09", "url": "https://files.pythonhosted.org/packages/a9/00/7c1d7e600451c19df7746f42456c6b14fa8389f2fd65661e27595207f655/audioowl-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "963521e622d6b3ea172fe3609058b319", "sha256": "05bb0281a03ade2b7cd12143a87003146b4840bccf8d0056af2d1bedd93c2445" }, "downloads": -1, "filename": "audioowl-0.0.8.tar.gz", "has_sig": false, "md5_digest": "963521e622d6b3ea172fe3609058b319", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4767, "upload_time": "2018-04-26T01:23:53", "url": "https://files.pythonhosted.org/packages/a0/7d/7f61cccb73b12c69f1f1a0396dafed90aa55d8512694ac1757f6fb420683/audioowl-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "216e31f029f59d050b5e75c8762e3300", "sha256": "f78e0ea206499c780fe4f74249014552078c77f8c8038bec5d34e386bea6edfa" }, "downloads": -1, "filename": "audioowl-0.0.9.tar.gz", "has_sig": false, "md5_digest": "216e31f029f59d050b5e75c8762e3300", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4790, "upload_time": "2018-04-26T01:26:40", "url": "https://files.pythonhosted.org/packages/1a/41/02c939c215450dfb1fb76eeed62145bf3223bbb3b58e3b561262efe7bbe7/audioowl-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cb30e4dd7b5321122fb71755e8adecf3", "sha256": "6bdd855a11b15c8cfa07219d2cf3e0fd709478ba400995173109423abb20ca80" }, "downloads": -1, "filename": "audioowl-0.0.14.tar.gz", "has_sig": false, "md5_digest": "cb30e4dd7b5321122fb71755e8adecf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4666, "upload_time": "2018-07-11T03:45:26", "url": "https://files.pythonhosted.org/packages/46/70/b8986b8cd5cce2f21d552906a7fc143cd68cb6df1a3dfb36615a33ed38b1/audioowl-0.0.14.tar.gz" } ] }