{ "info": { "author": "Arne Leijon", "author_email": "leijon@kth.se", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Topic :: Multimedia :: Sound/Audio", "Topic :: Scientific/Engineering :: Information Analysis" ], "description": "Package **ConfMatrixCalc** implements probabilistic Bayesian analysis\nof phoneme identification test results.\nThe analysis approach was presented and validated in (Leijon et al., 2016).\n\nPhoneme identification tests are used, for example,\nto evaluate the detailed (\"microscopic\") speech-recognition ability of\nlisteners using two or more different hearing aids\nor other sound-transmission instruments or algorithms.\nPhoneme identification performance is often tested using nonsense \"words\" with\na fixed structure, e.g., CVC, VCV, or CVCVC, where\nC is a consonant and V is a vowel.\nThis makes the test material more difficult than real words or sentences,\nbecause the listener can not make use of prior lexical and semantic knowledge.\nHowever, this may actually be an advantage, because interesting test results can be\nobtained at realistic speech-to-noise ratios, where listeners might\notherwise get nearly perfect identification results with an easier test material.\n\nEarly speech research showed that the phoneme identification ability is\ncorrelated with general sentence understanding (Fletcher and Steinberg, 1929, Fig. 11).\n\n## Phoneme Confusion Matrices\nThe test results are usually recorded as two-dimensional arrays of *confusion counts*.\nA matrix element with index (s, r) shows how many times\nthe listener responded by the *r*th category, when the *s*th stimulus was presented.\n\nThe statistical analysis of confusion-matrix data is non-trivial,\nbecause the matrix is usually quite sparse for each listener.\nFor example, in a consonant-identification test with 16 consonants,\neach stimulus type might be presented, say, five times, i.e., 80 presentations in total.\nThen each matrix row will have at least 16 - 5 = 11 elements with a zero count.\nThis makes it difficult to estimate underlying response probabilities and to\nquantify the statistical reliability of observed test results.\nThe Bayesian analysis method handles these problems in a coherent manner.\n\n## Analysis Results\n1. **Overall performance** is indicated by two measures,\n each with a *credible range* to indicate the uncertainty of the estimate:\n\n 1. **Probability of Correct** identification (PC), across all presented phonemes.\n\n 1. The **Mutual Information** (MI) between stimulus and response (Miller and Nicely, 1955),\n sometimes called \"transmitted information\".\n This measure indicates the average amount of information about the stimulus category,\n received by the listener by hearing each presented phoneme.\n\n1. **Detailed performance** is shown by *credible confusion pattern*, i.e., a set of\n stimulus-response pairs where listeners' response probabilities are\n jointly credibly different between test conditions.\n\nThe Bayesian model is hierarchical.\nThe package estimates predictive distributions of results for\n* a random individual in the population from which participants were recruited,\n* each individual in the group of test participants.\n\n## Phoneme Identification Experiments\nThe package can analyse data from simple or rather complex experimental designs,\nincluding the following features:\n\n1. Phoneme identification data may be collected in one or more **Test Conditions**.\n Each test condition may be a combination of categories from one or more *Test Factors*.\n For example, the main test factor may be *Hearing Aid*,\n with categories *A*, *B*, or *Unaided*.\n Another test factor may be, e.g.,\n *Background*, with categories *Quiet*, or *Noisy*.\n A third factor may be *Position*, with categories *C1* or *C2*, indicating\n the consonant position in CVC nonsense words.\n The analysis shows credible differences between categories within the first (main) test factor,\n for each combination of categories in other (secondary) test factors.\n\n1. One or more **Listener Groups** may be included.\n The analysis shows systematic differences between groups.\n\n1. The analysis model does not require anything about the number of\n test presentations for each phoneme category.\n The validation (Leijon et al., 2016) showed that reliable results\n could be derived with as few as five presentations per phoneme.\n The analysis estimates the **statistical credibility**\n of all observed results, given the amount of collected data.\n\n## Package Documentation\nGeneral information is given in the package doc-string that may be accessed by command\n`help(ConfMatrixCalc)`.\n\nSpecific information about the organisation and accepted formats of input data files\nis presented in the doc-string of module cm_data, accessible via `help(ConfMatrixCalc.cm_data)`.\n\nAfter running an analysis, the logging output briefly explains\nthe analysis results presented in figures and tables.\n\n## Usage\n1. Install the most recent package version:\n `python3 -m pip install --upgrade ConfMatrixCalc`\n\n1. Copy the template script `run_cm.py` to your work directory, rename it,\n and edit the copy as guided by comments in the template, to specify\n - your experimental layout,\n - the top input data directory,\n - a directory where all output result files will be stored.\n\n1. Run your edited script: `python3 run_my_cm.py`.\n\n## Requirements\nThis package requires Python 3.6 with Numpy, Scipy, and Matplotlib,\nas well as a support package samppy,\nand the Openpyxl package for reading data from Excel workbook documents.\nThe pip installer will check and install the required packages if needed.\n\n## References\nA. Leijon, G. E. Henter, and M. Dahlquist (2016).\nBayesian analysis of phoneme confusion matrices.\n*IEEE Trans Audio, Speech, and Language Proc* 24(3):469\u2013482.\ndoi: 10.1109/TASLP.2015.2512039.\n\nG. A. Miller and P. E. Nicely (1955).\nAn analysis of perceptual confusions among some English consonants.\n*J Acoust Soc Amer* 27(2):338\u2013352, 1955.\ndoi: 10.1121/1.1907526.\n\nH. Fletcher and J. Steinberg (1929). Articulation testing methods.\n*Bell System Technical Journal* 8:806\u2013854.\ndoi: 10.1002/j.1538-7305.1929.tb01246.x.\n\nThis Python package is a re-implementation and generalization of a similar MatLab package,\ndeveloped by Arne Leijon for *ORCA Europe, Widex A/S, Stockholm, Sweden*.\nThe MatLab development was financially supported by *Widex A/S, Denmark*.\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "phoneme-identification confusion-matrix Bayesian speech", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ConfMatrixCalc", "package_url": "https://pypi.org/project/ConfMatrixCalc/", "platform": "", "project_url": "https://pypi.org/project/ConfMatrixCalc/", "project_urls": null, "release_url": "https://pypi.org/project/ConfMatrixCalc/0.6.0/", "requires_dist": [ "numpy", "scipy", "matplotlib", "samppy", "openpyxl" ], "requires_python": ">=3.6", "summary": "Statistical Analysis of Phoneme Confusion Matrices", "version": "0.6.0" }, "last_serial": 4276056, "releases": { "0.6.0": [ { "comment_text": "", "digests": { "md5": "b7821d9c3ae687e017604b6ab6fdaa73", "sha256": "111f2758f3cf0931b50d1c0ad82bd7d6197b0ce96ff0b79f8141fa5cc03699f4" }, "downloads": -1, "filename": "ConfMatrixCalc-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b7821d9c3ae687e017604b6ab6fdaa73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 43319, "upload_time": "2018-09-16T08:19:09", "url": "https://files.pythonhosted.org/packages/66/46/048856e426e7d86390fd43f04b8b449bc9378eac66e73e808f96665931cc/ConfMatrixCalc-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a19de3e869f1cf1c2d10d504dd38d48b", "sha256": "1f3dc80c90d496f558b978eb4c1828a36eb9954842875a5f77585c521a9011ed" }, "downloads": -1, "filename": "ConfMatrixCalc-0.6.0.tar.gz", "has_sig": false, "md5_digest": "a19de3e869f1cf1c2d10d504dd38d48b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 38015, "upload_time": "2018-09-16T08:19:11", "url": "https://files.pythonhosted.org/packages/4d/d0/d1a67fef9b41107d385aa7e9775ee8168771eaa86cfab62bc37e01a5edea/ConfMatrixCalc-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b7821d9c3ae687e017604b6ab6fdaa73", "sha256": "111f2758f3cf0931b50d1c0ad82bd7d6197b0ce96ff0b79f8141fa5cc03699f4" }, "downloads": -1, "filename": "ConfMatrixCalc-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b7821d9c3ae687e017604b6ab6fdaa73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 43319, "upload_time": "2018-09-16T08:19:09", "url": "https://files.pythonhosted.org/packages/66/46/048856e426e7d86390fd43f04b8b449bc9378eac66e73e808f96665931cc/ConfMatrixCalc-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a19de3e869f1cf1c2d10d504dd38d48b", "sha256": "1f3dc80c90d496f558b978eb4c1828a36eb9954842875a5f77585c521a9011ed" }, "downloads": -1, "filename": "ConfMatrixCalc-0.6.0.tar.gz", "has_sig": false, "md5_digest": "a19de3e869f1cf1c2d10d504dd38d48b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 38015, "upload_time": "2018-09-16T08:19:11", "url": "https://files.pythonhosted.org/packages/4d/d0/d1a67fef9b41107d385aa7e9775ee8168771eaa86cfab62bc37e01a5edea/ConfMatrixCalc-0.6.0.tar.gz" } ] }