{"id":17354097,"url":"https://github.com/trishume/popclick","last_synced_at":"2025-07-26T16:39:29.518Z","repository":{"id":23781012,"uuid":"27156310","full_name":"trishume/PopClick","owner":"trishume","description":"Detecting lip popping noises to trigger an action.","archived":false,"fork":false,"pushed_at":"2016-03-17T22:08:10.000Z","size":48,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T04:49:56.909Z","etag":null,"topics":["algorithm","audio-recognition","spectrograph"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trishume.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-26T02:36:10.000Z","updated_at":"2025-01-17T19:54:44.000Z","dependencies_parsed_at":"2022-08-22T04:50:53.303Z","dependency_job_id":null,"html_url":"https://github.com/trishume/PopClick","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishume%2FPopClick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishume%2FPopClick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishume%2FPopClick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trishume%2FPopClick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trishume","download_url":"https://codeload.github.com/trishume/PopClick/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248968741,"owners_count":21191158,"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":["algorithm","audio-recognition","spectrograph"],"created_at":"2024-10-15T17:18:59.611Z","updated_at":"2025-04-14T21:52:07.847Z","avatar_url":"https://github.com/trishume.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lip Popping Recognizer\n\nThis project implements a simple algorithm for recognizing when the user\nmakes a popping noise with their lips. The plan is to use this in concert\nwith my [eye tracker](https://theeyetribe.com/) as a way to click without\nusing my hands.\n\nIt is currently being rewritten as a [Vamp plugin](http://vamp-plugins.org/) in C++.\nI develop the Vamp plugin in Sublime Text, compile it to a dylib and then load it in [Sonic Visualizer](http://www.sonicvisualiser.org/)\nwhich is a great tool for developing audio recognition algorithms.\n\nI plan on expanding this to recognize other mouth noises. This is an unsolved\nproblem in audio recognition as it has very different goals from other domains like speech recognition:\n\n1. Noises are much easier to distinguish from each other. You can look at a spectrograph and identify if something is the noise you want, not so for a spoken word.\n2. Goal is to be resource efficient and real-time. Generally speech recognizers don't do this because good results require heavy processing.\n3. Highly reliable, very low false positives only a few false negatives. This is only possible because of the ease of distinguishing.\n\n## Sonic Visualizer Screenshot\n\n![Screenshot](http://i.imgur.com/2UsEBmQ.png)\n\nThe top row is a spectrograph, the middle is a debug visualization of the algorithm state, the bottom row is the waveform and some parameters.\nThe red lines on the bottom row are when a lip pop can be recognized (if it was real time), the three lip pops and three non-pops are correctly classified.\n\nThis is the layout I use for debugging the algorithm, [Sonic Visualizer](http://www.sonicvisualiser.org/) allows me to inspect values and scroll and zoom around the test audio file.\n\n## Building\n\nRun `make -f Makefile.osx` on osx, change the `.osx` to the correct Makefile if you are on another platform.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrishume%2Fpopclick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrishume%2Fpopclick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrishume%2Fpopclick/lists"}