{ "info": { "author": "Bernardo J.B. Schmitt", "author_email": "bernardo.jb.schmitt@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Human Machine Interfaces", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "AMFM_decompy\n=============\n\nversion 1.0.8.1\n\nThis python package provides the tools necessary for decomposing the voiced part\nof a speech signal into its modulated components, aka AM-FM decomposition. This\ndesignation is used due the fact that, in this method, the signal is modeled as\na sum of amplitude- and frequency-modulated components.\n\nThe goal is to overcome the drawbacks from Fourier-alike techniques, e.g. SFFT,\nwavelets, etc, which are limited in the time-frequency analysis by the so-called\nHeisenberg-Gabor inequality.\n\nThe algorithms here implemented are the QHM (Quasi-Harmonic Model), and its\nupgrades, aQHM (adaptive Quasi-Harmonic Model) and eaQHM (extended adaptive\nQuasi-Harmonic Model). Their formulation can be found at references [2-4].\n\nSince that the tools mentioned above require a fundamental frequency reference,\nthe package also includes the pitch tracker YAAPT (Yet Another Algorithm for\nPitch Tracking) [1], which is extremely robust for both high quality and\ntelephone speech.\n\nThe study of AM-FM decomposition algorithms was the theme from my Master Thesis.\nThe original YAAPT program in MATLAB is provided for free by its authors, while\nthe QHM algorithms I implemented by myself also in MATLAB. I'm porting them now\nto python because:\n\n* the python language is easier to share, read and understand, making it a\n better way to distribute the codes;\n* is more resourceful than MATLAB (has different data structures, scripting\n options, etc), which will be useful for me in future studies;\n* the computational performance from its numeric and scientific packages (numpy\n and scipy) is equivalent to MATLAB;\n* python is free-to-use, while MATLAB is a proprietary software;\n\nEvaluations and future expansions\n=============\n\nAs for the algorithms computational performance, I optimized the YAAPT code, so\nmy pyhton version runs now about twice as fast as the original MATLAB one.\nHowever, the QHM algorithms still run as fast as their counterparts in MATLAB.\nThat's because the main bottleneck of both versions are the matrix dot and\nleast-squares operations. Since numpy and MATLAB are already optimized to perform\nthese tasks using internal Fortran functions, as far as I investigated there's\nno way to speed them up using Cython, for example. Nevertheless, recently I have\nread about numba, which could be applied to improve the AMFM_decompy performance\nsubstantially. Therefore, I may run some tests using it.\n\nIn [1] the YAAPT is compared with well-known pitch trackers like the YIN and\nthe RAPT, and presents the best results. In fact, so far I've been using it,\nthe algorithm has been proved to be indeed very robust. It must be emphasized\nthat I merely translated the code, so I only have an average knowledge about\nits theoretical formulation. For deep questions concerning it, I would advise\nto contact the original authors.\n\nThe QHM-like algorithms present some stability problems concerning small\nmagnitude modulated components, which are already documented at [2,3]. In my\npython code I implemented a workaround to this problem, but it is still a\nsub-optimal solution.\n\nActually, I dedicated a chapter in my Master Thesis to a deeper study about\nthis problem and came up with a better solution. Unfortunately, due stupid\nbureaucratic issues, I don't know if and when my work will be defended and\npublished (to be short, the deadline was expired because me and my advisor\nneeded more time to correct and improve the thesis text. Then we required a\nprorrogation, but the lecturers board declined it. So, basically, I was expelled\nfrom the post-gradute program with a finished and working thesis). Anyway, I'm\nstill trying to figure out do now with my work and as soon as find a solution,\nI'll add my own contributions to this package.\n\nIMPORTANT - Considerations about version 1.0.7 and later versions\n=============\n\nIn the latest release of the original YAAPT MATLAB source code (YAAPT v4.0)\nthe default values from the following parameters have been altered:\n\n* `frame_length` parameter changed from 25 ms to 35 ms;\n* `nccf_thresh1` parameter changed from 0.25 to 0.3;\n\nMoreover, a new parameter called `frame_lengtht` was added (please pay atention\nto the extra \"t\" at the end), which name is quite similar to `frame_length`.\nIn order to avoid confusion between them, an alternative (and preferred) alias\nfor `frame_lengtht` called `tda_frame_length` was used in pYAAPT.py. Nevertheless,\nboth inputs (`frame_lengtht` and `tda_frame_length`) are accepted.\n\nDue these modifications, if you were running AMFM_decompy 1.0.6 or earlier\nversions with their default settings, you may obtain slightly different results\nfrom the ones obtained by running AMFM_decompy 1.0.7 and later versions. with \nthe new default parameters.\n\nTherefore, if you really need to obtain exactly the same results from previous\nversions, you must provide the old parameter values to the yaapt function. For\nexample, a 1.0.6 or earlier code like\n\n`pitch = pYAAPT.yaapt(signal)`\n\nshould be rewritten in the 1.0.7 and later versions as\n\n`pitch = pYAAPT.yaapt(signal, **{'frame_length': 25.0, 'nccf_thresh1': 0.25, 'tda_frame_length': 25.0})`\n\nInstallation\n=============\n\nThe pypi page https://pypi.python.org/pypi/AMFM_decompy/1.0.8 is recommended for\na quick installation. But you can also copy all directories here and then run\n\n```python setup.py install```\n\nin command line. After that, run the test script by typing\n\n`AMFM_test.py`\n\nto check if everything is ok (it can take couple of minutes to calculate the\nresults). This script is a example about how to use the package.\n\nI've tested the installation script and the package itself in Linux and Windows\nsystems (but not in iOS) and everything went fine. So, if a problem comes up,\nit must be probably something about python not finding the files paths.\n\nHow to use\n=============\n\nCheck the AMFM_decompy pdf documentation included in the docs folder or the\nonline documentation at http://bjbschmitt.github.io/AMFM_decompy. The amfm_decompy\nfolder contains the sample.wav file that is used to ilustrate the package's code\nexamples.\n\nCredits and Publications\n=============\n\nThe original MATLAB YAAPT program was written by Hongbing Hu and Stephen\nA.Zahorian from the Speech Communication Laboratory of the State University of\nNew York at Binghamton.\n\nIt is available at http://www.ws.binghamton.edu/zahorian as free software.\nFurther information about the program can be found at\n\n [1] Stephen A. Zahorian, and Hongbing Hu, \"A spectral/temporal method for robust\n fundamental frequency tracking,\" J. Acosut. Soc. Am. 123(6), June 2008.\n\nThe QHM algorithm and its upgrades are formulated and presented in the following publications:\n\n [2] Y. Pantazis, , PhD Thesis, University of Creta, 2010.\n\n [3] Y. Pantazis, O. Rosec and Y. Stylianou, , IEEE Transactions on Audio, Speech and\n Language Processing, vol. 19, n 2, 2011.\n\n [4] G. P. Kafentzis, Y. Pantazis, O. Rosec and Y. Stylianou, , in IEEE International Conference on Acoustics,\n Speech and Signal Processing (ICASSP), 2012.\n\nCopyright and contact\n=============\n\nThe AMFM_decompy is free to use, share and modify under the terms of the MIT\nlicense.\n\nQuestions, comments, suggestions, and contributions are welcome. Please contact\nme at\n\nbernardo.jb.schmitt@gmail.com.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bjbschmitt/AMFM_decompy/", "keywords": "Python,speech,pitch,QHM,YAAPT,modulated components,AM-FM decomposition", "license": "LICENSE.txt", "maintainer": "", "maintainer_email": "", "name": "AMFM_decompy", "package_url": "https://pypi.org/project/AMFM_decompy/", "platform": "", "project_url": "https://pypi.org/project/AMFM_decompy/", "project_urls": { "Homepage": "https://github.com/bjbschmitt/AMFM_decompy/" }, "release_url": "https://pypi.org/project/AMFM_decompy/1.0.8.1/", "requires_dist": null, "requires_python": "", "summary": "Package containing the tools necessary for decomposing a speech signal into its modulated components, aka AM-FM decomposition.", "version": "1.0.8.1" }, "last_serial": 4045051, "releases": { "1.0.4": [ { "comment_text": "", "digests": { "md5": "ba04b9a44e30d7b6ceb39eb42fbfe878", "sha256": "a127c1ef36f94a8a09a0f52b5a51c0933740d36f0fefd10984d3876d9a4a961e" }, "downloads": -1, "filename": "AMFM_decompy-1.0.4_.tar.gz", "has_sig": false, "md5_digest": "ba04b9a44e30d7b6ceb39eb42fbfe878", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1123744, "upload_time": "2016-09-23T19:20:15", "url": "https://files.pythonhosted.org/packages/bc/78/461bf168f9896ba2ee8b235620aade59f01d253f337a0591496488f21abb/AMFM_decompy-1.0.4_.tar.gz" } ], "1.0.5-1": [ { "comment_text": "", "digests": { "md5": "a9ad472510f75d03db28a62f8ad8fb30", "sha256": "82362fa8205b65dfa0836b92689e22b54530cb21014398c71c9c8f6e0d549398" }, "downloads": -1, "filename": "AMFM_decompy-1.0.5.1.tar.gz", "has_sig": false, "md5_digest": "a9ad472510f75d03db28a62f8ad8fb30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 604992, "upload_time": "2016-09-26T20:23:40", "url": "https://files.pythonhosted.org/packages/21/85/8b2024ebf6d59b0109182acbec50968b5c7c1dda406454ad1590413d5d1d/AMFM_decompy-1.0.5.1.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "3d57ee56df11ef89f5424c619c54359a", "sha256": "311bbe1cf1f2fc49b716a6c984e8a5f541bedaf76d55f62b79ff9ab9dc6407cd" }, "downloads": -1, "filename": "AMFM_decompy-1.0.6.tar.gz", "has_sig": false, "md5_digest": "3d57ee56df11ef89f5424c619c54359a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 605026, "upload_time": "2017-01-23T18:34:10", "url": "https://files.pythonhosted.org/packages/1d/fa/2020dc91c6428c6c64da57298b72f7ac01137bf789aa7f0a77fd2ab326a3/AMFM_decompy-1.0.6.tar.gz" } ], "1.0.6.1": [ { "comment_text": "", "digests": { "md5": "e7b460f5ff7c7460bb7a634f4c97e95b", "sha256": "863500d80a7182df766da15c32b78a117418bdbc5be9a5b5fb15c8bc9a36cf61" }, "downloads": -1, "filename": "AMFM_decompy-1.0.6.1.tar.gz", "has_sig": false, "md5_digest": "e7b460f5ff7c7460bb7a634f4c97e95b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 605103, "upload_time": "2017-03-13T17:26:36", "url": "https://files.pythonhosted.org/packages/da/3b/4badcaa298adaa135e3cda2bbc3aac40cff5386003aea9c9291cc2276c12/AMFM_decompy-1.0.6.1.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "ab9e64360d3ffb08390e8f324754ae21", "sha256": "1ba9942f0421bdf4fcd43e4992d2d48f5044663bf8e8acdb98a16b7e4dbc7dd5" }, "downloads": -1, "filename": "AMFM_decompy-1.0.7.tar.gz", "has_sig": false, "md5_digest": "ab9e64360d3ffb08390e8f324754ae21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 741881, "upload_time": "2017-07-28T03:04:12", "url": "https://files.pythonhosted.org/packages/7d/cc/3f434a6e08b362975862453b8b28f70b5d57b0ebebf2054888b44adc6be1/AMFM_decompy-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "95e809796c72842f0ce6190cbcf8c77e", "sha256": "f2584c3ea71e1a415444e8274d66279107e5dbfa38338a4e3db2db47a2f10b62" }, "downloads": -1, "filename": "AMFM_decompy-1.0.8.tar.gz", "has_sig": false, "md5_digest": "95e809796c72842f0ce6190cbcf8c77e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 739753, "upload_time": "2018-06-22T02:31:18", "url": "https://files.pythonhosted.org/packages/76/e4/0ee668be5460dd7febf540549207bd35f292b4e230f264bc123750839e81/AMFM_decompy-1.0.8.tar.gz" } ], "1.0.8.1": [ { "comment_text": "", "digests": { "md5": "bde1a6424729e40f48322f11e5552382", "sha256": "eb700fb31250f699d9c13cf03940644dfccef31fa9f798fba1091b0168414d19" }, "downloads": -1, "filename": "AMFM_decompy-1.0.8.1.tar.gz", "has_sig": false, "md5_digest": "bde1a6424729e40f48322f11e5552382", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 739851, "upload_time": "2018-07-09T20:41:21", "url": "https://files.pythonhosted.org/packages/81/13/d8e107563199974936848db475bf3afed373fa6ad3516d35de580aec87ba/AMFM_decompy-1.0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bde1a6424729e40f48322f11e5552382", "sha256": "eb700fb31250f699d9c13cf03940644dfccef31fa9f798fba1091b0168414d19" }, "downloads": -1, "filename": "AMFM_decompy-1.0.8.1.tar.gz", "has_sig": false, "md5_digest": "bde1a6424729e40f48322f11e5552382", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 739851, "upload_time": "2018-07-09T20:41:21", "url": "https://files.pythonhosted.org/packages/81/13/d8e107563199974936848db475bf3afed373fa6ad3516d35de580aec87ba/AMFM_decompy-1.0.8.1.tar.gz" } ] }