{"id":26382661,"url":"https://github.com/crispinprojects/diphone-talker","last_synced_at":"2026-05-21T04:03:04.003Z","repository":{"id":255256691,"uuid":"849021305","full_name":"crispinprojects/diphone-talker","owner":"crispinprojects","description":"Diphone Speech Synthesizer for speaking dates","archived":false,"fork":false,"pushed_at":"2026-02-24T18:13:43.000Z","size":36391,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-24T22:45:01.423Z","etag":null,"topics":["console-application","date-reader","diphone","linux","speech-synthesizer"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crispinprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-28T20:42:49.000Z","updated_at":"2026-02-24T18:14:47.000Z","dependencies_parsed_at":"2024-08-28T22:12:57.448Z","dependency_job_id":"8ff81690-aacc-42d8-b4b4-fba536e54069","html_url":"https://github.com/crispinprojects/diphone-talker","commit_stats":null,"previous_names":["crispinprojects/talkdp","crispinprojects/diphone-talker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/crispinprojects/diphone-talker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fdiphone-talker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fdiphone-talker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fdiphone-talker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fdiphone-talker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crispinprojects","download_url":"https://codeload.github.com/crispinprojects/diphone-talker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crispinprojects%2Fdiphone-talker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33288126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T02:57:32.698Z","status":"ssl_error","status_checked_at":"2026-05-21T02:57:31.990Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["console-application","date-reader","diphone","linux","speech-synthesizer"],"created_at":"2025-03-17T06:18:02.594Z","updated_at":"2026-05-21T04:03:03.997Z","avatar_url":"https://github.com/crispinprojects.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Diphone Speech Synthesizer\n\nA code example of a diphone speech synthesizer for speaking dates. It is some of the early development code for the [Talk Calendar](https://github.com/crispinprojects/talkcalendar) project. It has been developed using C and is a Linux console application.\n\n\n## How is Speech Generated?\n\nWords are formed as sequences of elementary speech units. A phoneme is the smallest unit of sound that distinguishes one word from another word and there are 44 phonemes in the English language. A diphone is a sound unit composed of two adjacent partial phonemes i.e. the second half of the first phoneme and the first half of the second phoneme. The synthesizer uses a set of pre-recorded diphone sound samples and concatenates diphone audio to produce speech output for a given text input.\n\nIf phoneme one is represented as p1=[1 2 3] and phoneme two p2=[4 5 6] then the diphone derived from p1 and p2 is d1-2 =[2 3 4 5]. Phonemes are the \"steady state\" of a sound while diphones capture coarticulation which is the way the mouth moves from the middle of one sound to the middle of the next. The most complex part of speech is the transition between sounds. Recording the transition (i.e. the diphone) and then \"gluing\" diphones together at the stable centres of the phonemes produces much more natural speech than just playing phonemes back-to-back. With 44 phonemes there would theoretically be 44 squared diphone combinations (=1936). However, many combinations never occur in natural speech or are very rare and so typically a diphone count of around 1600 is used with standard English.\n\nThe voice used by the diphone speech synthesizer is derivative work based on the diphone collection created by Alan W Black and Kevin Lenzo which is free for use for any purpose (commercial or otherwise) and subject to the light restrictions [detailed here](https://github.com/hypnaceae/DiphoneSynth/blob/master/diphones_license.txt). There is information about recording your own diphones [here](http://festvox.org/bsv/x2401.html) and in the speech synthesis lecture by Professor Alan W Black [here](https://www.youtube.com/watch?v=eDjtEsOvouM\u0026t=1459s). \n\n## Build From Source\n\nThe C source code for the diphone speech synthesizer for reading out dates is provided in the src directory and has been developed using Debian Trixie.\n\n### Building on Debian Trixie\n\nTo build the diphone speech synthesizer from source you need the gcc compiler and the Make build system. You need to install the following package.\n\n```\nsudo apt install build-essential\n```\n\nThe package:\n\n```\nsudo apt install alsa-utils\n```\n\nis needed but should be installed by default. \n\nUse the MAKEFILE to compile the code. Just run \"make\" inside the source code folder.\n\n```\nmake\n```\n\nTo run the diphone speech synthesizer called  talker from the terminal use\n\n```\n./talker\n```\nThis will read out the current date.\n\n## Summary\n\nThe code has been developed from scratch and is not dependent on any other audio processing libraries and provides a working C code example of a diphone speech synthesizer which may be useful for educational purposes. It compiles and runs and reads out a date. I have developed a talking calendar called [Talk Calendar](https://github.com/crispinprojects/talkcalendar) which uses a more advanced diphone concatenation speech synthesizer.\n\n## Versioning\n\n[SemVer](http://semver.org/) is used for versioning. The version number has the form 0.0.0 representing major, minor and bug fix changes.\n\n## Author\n\n* **Alan Crispin** [Github](https://github.com/crispinprojects)\n\n\n## Project Status\n\nActive.\n\n## Acknowledgements\n\n* [Diphone Source and License](https://github.com/hypnaceae/DiphoneSynth/blob/master/diphones_license.txt)\n\n* Diphone collection and synthesis Alan W. Black and Kevin Lenzo [2000](https://www.cs.cmu.edu/~awb/papers/ICSLP2000_diphone.pdf)\n\n* [Geany](https://www.geany.org/) can be used as a source code editor. Geany is lightweight and has an integrated terminal for building the application. To install the Geany IDE use the command below.\n\n* [Talk Calendar](https://github.com/crispinprojects/talkcalendar)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrispinprojects%2Fdiphone-talker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrispinprojects%2Fdiphone-talker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrispinprojects%2Fdiphone-talker/lists"}