{"id":18376863,"url":"https://github.com/bbc/diarize-jruby","last_synced_at":"2025-04-06T20:31:41.081Z","repository":{"id":63958600,"uuid":"10692692","full_name":"bbc/diarize-jruby","owner":"bbc","description":"A simple toolkit for speaker segmentation and identification","archived":false,"fork":false,"pushed_at":"2013-06-15T16:32:37.000Z","size":3208,"stargazers_count":30,"open_issues_count":1,"forks_count":8,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-03-22T06:51:15.814Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-14T16:02:48.000Z","updated_at":"2024-05-14T13:20:06.000Z","dependencies_parsed_at":"2022-11-30T04:01:17.443Z","dependency_job_id":null,"html_url":"https://github.com/bbc/diarize-jruby","commit_stats":null,"previous_names":["bbcrd/diarize-jruby"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Fdiarize-jruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Fdiarize-jruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Fdiarize-jruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbc%2Fdiarize-jruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbc","download_url":"https://codeload.github.com/bbc/diarize-jruby/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247547587,"owners_count":20956579,"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":[],"created_at":"2024-11-06T00:25:11.570Z","updated_at":"2025-04-06T20:31:39.532Z","avatar_url":"https://github.com/bbc.png","language":"Ruby","readme":"diarize-jruby\n=============\n\nThis library provides an easy-to-use toolkit for speaker\nsegmentation (diarization) and identification from audio.\n\nThis library is being used within the BBC R\u0026D World Service \narchive prototype.\n\nSee http://worldservice.prototyping.bbc.co.uk/programmes/X0403940 for\nan example.\n\n\nSpeaker diarization\n-------------------\n\nThis library gives acccess to the algorithm developed by the LIUM \nfor the ESTER 2 evaluation campaign and described in [Meigner2010].\n\nIt wraps a binary JAR file compiled from \nhttp://lium3.univ-lemans.fr/diarization/doku.php/welcome.\n\n\nSpeaker identification\n----------------------\n\nThis library also implements an algorithm for speaker identification\nbased on the comparison of normalised speaker models, which can be \naccessed through the Speaker#match method.\n\nThis algorithm builds on top of the LIUM toolkit and uses the following \ntechniques:\n\n * \"M-Norm\" normalisation of speaker models [Ben2003]\n * The symmetric Kullback-Leibler divergence approximation described in [Do2003]\n * The detection score specified in [Ben2005] \n\nIt also includes support for speaker supervectors [Campbell2006], which \ncan be used in combination with our ruby-lsh library for fast speaker \nidentification.\n\n\nExample use\n-----------\n\nThis gem has been tested with jruby 1.7.0 onwards.\n\n    $ jruby -S gem install diarize-jruby\n    $ jruby -S irb\n    \u003e require 'diarize'\n    \u003e audio = Diarize::Audio.new URI('http://example.com/file.wav')\n    \u003e audio.analyze!\n    \u003e audio.segments\n    \u003e audio.speakers\n    \u003e audio.to_rdf\n    \u003e speakers = audio.speakers\n    \u003e speakers.first.gender\n    \u003e speakers.first.model.mean_log_likelihood\n    \u003e speakers.first.model.components.size\n    \u003e audio.segments_by_speaker(speakers.first)[0].play\n    \u003e audio.segments_by_speaker(speakers.first)[1].play\n    \u003e ...\n    \u003e speakers |= other_speakers\n    \u003e Diarize::Speaker.match(speakers)\n\n\nRunning tests\n-------------\n\n    $ jruby -S rake\n\n\nReferences\n----------\n\n[Meigner2010] S. Meignier and T. Merlin, \"LIUM SpkDiarization: \nAn Open Source Toolkit For Diarization\" in Proc. CMU SPUD Workshop, \nMarch 2010, Dallas (Texas, USA)\n\n[Ben2003] M. Ben and F. Bimbot, \"D-MAP: A Distance-Normalized Map \nEstimation of SPeaker Models for Automatic Speaker Verification\", \nProceedings of ICASSP, 2003\n\n[Do2003] M. N. Do, \"Fast Approximation of Kullback-Leibler Distance \nfor Dependence Trees and Hidden Markov Models\", \nIEEE Signal Processing Letters, April 2003\n\n[Ben2005] M. Ben and G. Gravier and F. Bimbot. \"A model space \nframework for efficient speaker detection\", \nProceedings of INTERSPEECH, 2005\n\n[Campbell2006] W. M. Campbell, D. E. Sturim and D. A. Reynolds, \n\"Support vector machines using GMM supervectors for speaker verification\", \nIEEE Signal Processing Letters, 2006, 13, 308-311\n\n\nLicensing terms and authorship\n------------------------------\n\nSee 'COPYING' and 'AUTHORS' files.\n\nAll code here, except where otherwise indicated, is licensed under\nthe GNU Affero General Public License version 3. This license includes \nmany restrictions. If this causes a problem, please contact us. \nSee \"AUTHORS\" for contact details.\n\nThis library includes a binary JAR file from the LIUM project, which code\nis licensed under the GNU General Public License version 2. See\nhttp://lium3.univ-lemans.fr/diarization/doku.php/licence for more\ninformation.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbc%2Fdiarize-jruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbc%2Fdiarize-jruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbc%2Fdiarize-jruby/lists"}