{"id":15136476,"url":"https://github.com/jech/galene-stt","last_synced_at":"2025-10-23T11:31:28.794Z","repository":{"id":250798896,"uuid":"835458329","full_name":"jech/galene-stt","owner":"jech","description":"Speech-to-text support for Galene","archived":false,"fork":false,"pushed_at":"2025-01-09T17:51:23.000Z","size":107,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T18:05:56.186Z","etag":null,"topics":["galene","stt","videoconference","webrtc","whisper","whisper-cpp"],"latest_commit_sha":null,"homepage":"https://galene.org","language":"Go","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/jech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":null,"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":"2024-07-29T22:10:53.000Z","updated_at":"2025-01-09T17:51:26.000Z","dependencies_parsed_at":"2024-08-10T23:32:19.362Z","dependency_job_id":"cdcafb89-896e-4c78-8c3f-6b4346aa4b2a","html_url":"https://github.com/jech/galene-stt","commit_stats":{"total_commits":18,"total_committers":1,"mean_commits":18.0,"dds":0.0,"last_synced_commit":"355b3825aaa99442bce5a965c03a2bbc3a46c0b7"},"previous_names":["jech/galene-stt"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-stt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-stt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-stt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-stt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jech","download_url":"https://codeload.github.com/jech/galene-stt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237821555,"owners_count":19371784,"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":["galene","stt","videoconference","webrtc","whisper","whisper-cpp"],"created_at":"2024-09-26T06:22:03.762Z","updated_at":"2025-10-23T11:31:28.787Z","avatar_url":"https://github.com/jech.png","language":"Go","readme":"# Speech-to-text support for Galene\n\nGalene-stt is an implementation of real-time speech-to-text (automatic\nsubtitling) for the [Galene][1] videoconferencing server.  Depending on\nhow it is run, galene-stt may either produce a transcript of a conference,\nor display captions in real time.\n\nGalene-stt connects to a Galene server using the same protocol as any\nother client, and may therefore be run on any machine that can connect to\nthe server.  This allows running galene-stt on a machine with a powerful\nGPU without requiring a GPU to be available on the server.\n\n\n## Installation\n\nBuild and install whisper.cpp:\n\n```\ngit clone https://github.com/ggml-org/whisper.cpp\ncd whisper.cpp\ncmake -Bbuild\ncd build\nmake -j\nsudo make install\nsudo ldconfig\ncd ..\n```\n\nWhisper.cpp does not scale well on the CPU, for production usage is is\nnecessary to run on a GPU.  If you have the CUDA compiler installed,\nyou can build with GPU support by replacing the third line with:\n```\ncmake -Bbuild -DGGML_CUDA=1\n```\nIt is also possible to run whisper.cpp over *Vulkan* or (reportedly)\n*Core ML*, please see the whisper.cpp documentation for details.\n\nNow download your favourite model:\n```\ncd models\n./download-ggml-model.sh medium\ncd ../..\n```\n\nInstall the `libopus` library.  For example, under Debian, do\n```\napt install libopus-dev\n```\n\nBuild galene-stt:\n```\ngit clone https://github.com/jech/galene-stt\ncd galene-stt\nCGO_ENABLED go build -ldflags='-s -w'\n```\n\nPut the models where galene-stt will find them:\n```\nln -s ../whisper.cpp/models .\n```\n\n\n## Usage\n\nBy default, galene-stt produces a transcript on standard output:\n```\n./galene-stt https://galene.org:8443/group/public/stt/\n```\n\nIn order to produce real-time captions, create a user called\n`speech-to-text` with the `caption` permission in your Galene group:\n```json\n{\n    \"users\": {\n       \"speech-to-text\": {\"permissions\": \"caption\", \"password\": ...}\n    }\n}\n```\nThen run galene-stt with the `-caption` flag:\n```\n./galene-stt -caption https://galene.org:8443/group/public/stt/\n```\n\nGalene-stt defaults to english; for other languages, use the `-lang` flag:\n```\n./galene-stt -lang fr https://galene.org:8443/group/public/stt/\n```\n\nIf galene-stt reports dropped audio, then your machine is not fast enough\nfor the selected model.  Specify a faster model using the `-model`\ncommand-line option.  In my testing, however, models smaller than *medium*\ndid not produce useful output.\n\n```\n./galene-stt -caption -model models/ggml-tiny.bin \\\n             https://galene.org:8443/group/public/stt/\n```\n\n— Juliusz Chroboczek\n\n\n[1]: https://galene.org\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjech%2Fgalene-stt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjech%2Fgalene-stt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjech%2Fgalene-stt/lists"}