{"id":13693941,"url":"https://github.com/fulldecent/formant-analyzer","last_synced_at":"2025-04-09T23:19:10.968Z","repository":{"id":13235247,"uuid":"15919893","full_name":"fulldecent/formant-analyzer","owner":"fulldecent","description":"iOS application for finding formants in spoken sounds","archived":false,"fork":false,"pushed_at":"2024-10-31T14:30:17.000Z","size":9202,"stargazers_count":59,"open_issues_count":17,"forks_count":15,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-02T16:59:02.045Z","etag":null,"topics":["app","application","ios","language","language-learning","mature","speech-processing","speech-recognition","speech-therapy","swift"],"latest_commit_sha":null,"homepage":"https://fulldecent.github.io/formant-analyzer/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fulldecent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["fulldecent"],"custom":["https://www.paypal.me/fulldecent","https://amazon.com/hz/wishlist/ls/EE78A23EEGQB"]}},"created_at":"2014-01-15T00:07:12.000Z","updated_at":"2025-03-03T17:40:05.000Z","dependencies_parsed_at":"2022-08-25T03:01:35.798Z","dependency_job_id":null,"html_url":"https://github.com/fulldecent/formant-analyzer","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fformant-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fformant-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fformant-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fformant-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fulldecent","download_url":"https://codeload.github.com/fulldecent/formant-analyzer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248125691,"owners_count":21051784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","application","ios","language","language-learning","mature","speech-processing","speech-recognition","speech-therapy","swift"],"created_at":"2024-08-02T17:01:20.790Z","updated_at":"2025-04-09T23:19:10.944Z","avatar_url":"https://github.com/fulldecent.png","language":"Swift","funding_links":["https://github.com/sponsors/fulldecent","https://www.paypal.me/fulldecent","https://amazon.com/hz/wishlist/ls/EE78A23EEGQB"],"categories":["Media"],"sub_categories":["Audio"],"readme":"FORMANT PLOTTER\n------------------------\n\nBuy on the App Store: https://itunes.apple.com/us/app/formant-analyzer/id799183655?mt=8\u0026uo=4\u0026at=11l6hc\u0026ct=fnd\n\nThis is an iOS project to analyze formants. The user speaks and the formant is plotted on the screen immediately. It is designed for speaking a single vowel syllable. It will try to isolate the vowel sound from any surrounding consonants if it can.\n\n\u003cimg src=\"http://i.imgur.com/PnmTS53.png\"\u003e\n\n\nFormant Research\n------------------------\n\nOther related tools and formant information\n\n  * Praat: http://www.fon.hum.uva.nl/praat/\n  * WaveSurfer: https://sourceforge.net/projects/wavesurfer/\n  * Perry R. Cook, \"Identification of control parameters in an articulatory vocal tract model, with applications to the synthesis of singing\", 1990, Ph.D Dissertation, CCRMA\n    https://ccrma.stanford.edu/~kglee/m220c/formant.html\n\n````\nVowel formant chart:\n\nvowel\t\tF1\tF2\tF3\nee\tmale\t270\t2290\t3010\n\tfemale\t310\t2790\t3310\n\tchild\t370\t3200\t3730\ne\tmale\t530\t1840\t2480\n\tfemale\t610\t2330\t2990\n\tchild\t690\t2610\t3570\nae\tmale\t660\t1720\t2410\n\tfemale\t850\t2050\t2850\n\tchild\t1030\t2320\t3320\nah\tmale\t730\t1090\t2440\n\tfemale\t590\t1220\t2810\n\tchild\t680\t1370\t3170\noo\tmale\t300\t870\t2240\n\tfemale\t370\t950\t2670\n\tchild\t430\t1170\t3260\n````\n\n  * Speech Acoustics Made Easy http://web.archive.org/web/20120914101638/http://www.cochlear.com/files/assets/speech_acoustics_made_easy.pdf\n  * English vowel word reference http://www.fonetiks.org/engsou2am.html\n  * Chinese vowel diagram http://en.wikipedia.org/wiki/Chinese_vowel_diagram\n  * Wiki page http://en.wikipedia.org/wiki/Formant\n  * The National Center for Voice and Speech http://www.ncvs.org/ncvs/tutorials/voiceprod/tutorial/filter.html\n  * Linguistics 110 Berkeley http://linguistics.berkeley.edu/~kjohnson/ling110/Homework_assignments/HW7_PlotVowels/PlotYourVowels.pdf\n  * MATLAB Speech Signal Analysis http://www.phon.ucl.ac.uk/courses/spsci/matlab/lect10.html\n  * MATLAB Formant Tracker example http://www.mathworks.com/matlabcentral/fileexchange/8959-formant-tracker\n  * Formant Java example http://chronos.ece.miami.edu/~dasp/SeniorProject/Presentation/416Presentation.pdf\n  * Digital Bubble Bath - Don H. Johnson Great discussion on formant analysis and practical implementation http://www.clear.rice.edu/elec431/projects96/digitalbb/formants.html\n  * https://github.com/MLSpeech/DeepFormants\n  * https://2020.ieeeicassp.org/\n  * http://htk.eng.cam.ac.uk/\n  * https://github.com/jaekookang/p2fa_py3\n  * https://github.com/gre/zpeech\n\nThe Formant Plotter\n------------------------\n\nThe program starts in green state. When the user starts talking (i.e. RMS goes above 0dBm for at least 0.1 seconds), the program goes into listening state and records the sound. When the user stops talking (i.e. RMS goes below 0dBm for at least 0.1 seconds), the program returns to ready state and draws graphs.\n\nGraph drawing is done as follows:\nThe recorded sound is truncated to remove the first and last 10% of the data. Then perform a Fast Fourier Transform (FFT) with autocorrelation. The result is plotted linear from 0 - 4000 Hz on the X axis and from -60 to 0 dB log scale on the Y axis.\n\nThe second graph is drawn as follows:\nAn image is placed on the background for the chart (you create an image to start with) and two dots are plotted on the chart, representing the highest and lowest sample value from the recording. That's it.\n\nThe correct algorithm which takes the FFT results which were plotted above and creates the vowel plot is discussed in Formant Research above.\n\nSome potential next steps include:\n* Use autocorrelation to increase trimming accuracy\n* Windowing on the truncated sound buffer so that edge samples have an attenuated effect\n* Root polishing. The code has been written but commented out (please see PlotView.m). If we can test and refine this part, we will have better estimates of roots of LPC polynomials, and formant frequencies. We may not want VERY accurate estimates of formant frequencies and may not need root polishing.\n* Elimination of weak roots (far away from unit circle). They do not produce a peak in H(w) and should be ignored. I hope that if we reduce order of LPC, we may not see such weak roots. This should be investigated after reduction of LPC filter order.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulldecent%2Fformant-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffulldecent%2Fformant-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulldecent%2Fformant-analyzer/lists"}