{"id":18909012,"url":"https://github.com/chdh/klatt-syn","last_synced_at":"2025-04-15T05:32:20.327Z","repository":{"id":143882587,"uuid":"178323255","full_name":"chdh/klatt-syn","owner":"chdh","description":"Klatt formant synthesizer","archived":false,"fork":false,"pushed_at":"2023-10-11T11:36:46.000Z","size":24,"stargazers_count":59,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T13:06:42.703Z","etag":null,"topics":["formant","klatt","klatt-synthesizer","klattsyn","speech-synthesis","synthesizer","voice-synthesis"],"latest_commit_sha":null,"homepage":"http://www.source-code.biz/klattSyn","language":"TypeScript","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/chdh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-29T03:09:31.000Z","updated_at":"2025-03-31T12:03:47.000Z","dependencies_parsed_at":"2024-10-27T12:22:36.730Z","dependency_job_id":null,"html_url":"https://github.com/chdh/klatt-syn","commit_stats":{"total_commits":14,"total_committers":1,"mean_commits":14.0,"dds":0.0,"last_synced_commit":"bd58429e00d72b41fb7c7598340249d3bf455224"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdh%2Fklatt-syn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdh%2Fklatt-syn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdh%2Fklatt-syn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdh%2Fklatt-syn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chdh","download_url":"https://codeload.github.com/chdh/klatt-syn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249015579,"owners_count":21198823,"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":["formant","klatt","klatt-synthesizer","klattsyn","speech-synthesis","synthesizer","voice-synthesis"],"created_at":"2024-11-08T09:30:07.387Z","updated_at":"2025-04-15T05:32:20.040Z","avatar_url":"https://github.com/chdh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KlattSyn - Klatt Formant Synthesizer\n\nThis is a redevelopment of the classic [Klatt](https://en.wikipedia.org/wiki/Dennis_H._Klatt) cascade-parallel formant synthesizer.\nThe program code is written in TypeScript, which is compiled to JavaScript.\nIt can run within a web browser or with [Node](https://nodejs.org).\n\nThis implementation of a Klatt synthesizer has been developed by Christian d'Heureuse in 2019\nand is based on the following documents and source code:\n\n* D.H. Klatt (1980), \"Software for a cascade/parallel formant synthesizer\"\n  ([PDF](https://www.source-code.biz/klattSyn/Klatt-1980.pdf))\n* D.H. \u0026 L.C. Klatt (1990), \"Analysis, synthesis and perception of voice quality variations among male and female talkers\"\n  ([PDF](https://www.source-code.biz/klattSyn/Klatt-1990.pdf))\n* Fortran source code published in Klatt (1980), [github.com/jh4xsy/klatt80](https://github.com/jh4xsy/klatt80)\n* klsyn, last known C version developed by D.H. Klatt himself (1983 - 1986)\n  ([PDF](https://www.source-code.biz/klattSyn/klsynman.pdf)),\n  [github.com/rsprouse/klsyn/tree/master/c](https://github.com/rsprouse/klsyn/tree/master/c)\n* klatt 3.03, comp.speech C version (1994), re-implementation in C of Klatt's Fortran code by Jon Iles and Nick Ing-Simmons,\n  [comp.speech-klatt.3.04.tar.gz](https://www.source-code.biz/klattSyn/comp.speech-klatt.3.04.tar.gz)\n* klatt 3.04, modernized and cleaned up by Reece H. Dunn (2011 - 2015),\n  [github.com/rhdunn/klatt](https://github.com/rhdunn/klatt)\n* eSpeak NG Klatt module (2015 - 2018),\n  [github.com/espeak-ng/espeak-ng/blob/master/src/libespeak-ng/klatt.c](https://github.com/espeak-ng/espeak-ng/blob/master/src/libespeak-ng/klatt.c)\n* Praat KlattGrid module (2008 - 2019),\n  [github.com/praat/praat/blob/master/dwtools/KlattGrid.cpp](https://github.com/praat/praat/blob/master/dwtools/KlattGrid.cpp)\n\n**Online demo**: [www.source-code.biz/klattSyn](https://www.source-code.biz/klattSyn)\u003cbr\u003e\n**NPM package**: [klatt-syn](https://www.npmjs.com/package/klatt-syn)\u003cbr\u003e\n**GUI application**: [github.com/chdh/klatt-syn-app](https://github.com/chdh/klatt-syn-app)\n\n## A note on amplitudes\n\nThe meaning of amplitude parameters has changed in this implementation of the Klatt synthesizer.\n\nAmplitude values in dB are always relative.\nIn this implementation, we use positive dB values to amplify and negative dB values to attenuate a signal.\n0 is used to pass a signal unchanged. -99 is used to mute a signal.\n\nThe original Klatt synthesizer used dB values in the range 0 to 87 for amplitude parameters.\n0 was used to mute a signal. 57 was used to pass a signal unchanged.\n\n[Klatt (1980)](https://www.source-code.biz/klattSyn/Klatt-1980.pdf) states:\n\"\u003ci\u003eThe amplitudes of the formant peaks generated by the parallel vocal tract model have been constrained such\nthat, if A1 to A5 are all set to 60 dB, the transfer function will approximate that found in the cascade model.\u003c/i\u003e\"\nThis is no longer the case.\n\nThe following table can be used to pragmatically map old values to new values for amplitude parameters in dB:\n\n| Old dB | New dB |\n| ----: | ---: |\n| 87    | 30   |\n| 57    | 0    |\n| 27    | -30  |\n| 0     | -99  |\n\nIn addition, most amplitude parameter values were internally adjusted in the old source code.\nTo find the corresponding new value, An adjustment value must be subtracted.\n\n| Old symbol | Linear factor | Adjustment dB | Parameter |\n| :--- |  ---: | ---: | :--- |\n| AP | 0.05 | -26.0 | Aspiration amplitude |\n| AF | 0.25 | -12.0 | Frication amplitude |\n| AB | 0.05 | -26.0 | Parallel bypass amplitude |\n| A1 | 0.4  | -8.0 | Parallel formant 1 amplitude (L1) |\n| A2 | 0.15 | -16.5 | Parallel formant 2 amplitude (L2) |\n| A3 | 0.06 | -24.4 | Parallel formant 3 amplitude (L3) |\n| A4 | 0.04 | -28.0 | Parallel formant 4 amplitude (L4) |\n| A5 | 0.022 | -33.2 | Parallel formant 5 amplitude (L5) |\n| A6 | 0.03 | -30.5 | Parallel formant 6 amplitude (L6) |\n| AN | 0.6  |  -4.4 | Parallel nasal amplitude |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchdh%2Fklatt-syn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchdh%2Fklatt-syn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchdh%2Fklatt-syn/lists"}