{"id":26157204,"url":"https://github.com/linagora-labs/ssak","last_synced_at":"2025-10-05T04:45:53.468Z","repository":{"id":281317310,"uuid":"944902562","full_name":"linagora-labs/ssak","owner":"linagora-labs","description":"SSAK contains helpers and tools to process data and train/infer ASR models.","archived":false,"fork":false,"pushed_at":"2025-10-01T13:12:14.000Z","size":4243,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-01T14:39:56.250Z","etag":null,"topics":["asr","data-processing","kaldi","machine-learning","nemo","speech-recognition","speech-to-text","toolkit","whisper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linagora-labs.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":"2025-03-08T07:38:58.000Z","updated_at":"2025-07-30T09:25:52.000Z","dependencies_parsed_at":"2025-05-23T16:05:01.338Z","dependency_job_id":"72f847ed-f6fe-48f9-bd83-d60f0e334b29","html_url":"https://github.com/linagora-labs/ssak","commit_stats":null,"previous_names":["linagora-labs/ssak"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/linagora-labs/ssak","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linagora-labs%2Fssak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linagora-labs%2Fssak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linagora-labs%2Fssak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linagora-labs%2Fssak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linagora-labs","download_url":"https://codeload.github.com/linagora-labs/ssak/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linagora-labs%2Fssak/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278411261,"owners_count":25982367,"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","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["asr","data-processing","kaldi","machine-learning","nemo","speech-recognition","speech-to-text","toolkit","whisper"],"created_at":"2025-03-11T09:58:18.555Z","updated_at":"2025-10-05T04:45:53.462Z","avatar_url":"https://github.com/linagora-labs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Speech Swiss Army Knife (SSAK)\n\n![SSAK logo](assets/logos/logo-SSAK.png)\n\nThis repository contains helpers and tools to train end-to-end ASR, and do inference with ASR.\n\nIt is based on SpeechBrain and HuggingFace's Transformers packages, which are both based on PyTorch.\nIt also includes inference with Vosk for (baseline) kaldi models.\n\nThe main data format is the one of Kaldi, i.e. folders with files:\n```\n├── [segments]   : utterance -\u003e file id, start, end\n├── text         : utterance -\u003e annotation\n├── utt2dur      : utterance -\u003e duration (use tools/kaldi/utils/get_utt2dur.sh if you are missing this file)\n└── wav.scp      : file id (or utterance if no segments) -\u003e audio file [with sox/flac conversion]\n```\nand also optionally (not exploited in most cases):\n```\n├── spk2gender   : speaker -\u003e gender\n├── spk2utt      : speaker -\u003e list of utterances\n└── utt2spk      : utterance -\u003e speaker\n```\n\nThis repository focus on the following features:\n- Text cleaning and normalization, to train and evaluate acoustic and language models\n- Tools to manage labeled audio. For instance cut transcriptions into smaller chunks of audio, with corresponding timestamps\n- Scripts to convert data into different formats\n- Scripts to train models with common frameworks\n- Scripts to decode with models from common frameworks\n\n## Repository Folder Structure\n\n```\n├── ssak/      : Main python library\n│   ├── infer/          : Functions and scripts to run inference and evaluate models\n│   ├── train/          : Scripts to train models (transformers, speechbrain, ...)\n│   └── utils/          : Helpers\n├── tools/           : Scripts to cope with audio data (data curation, ...)\n│   ├── kaldi/utils/    : Scripts to check and complete kaldi's data folders (.sh and .pl scripts)\n│   ├── LeVoiceLab/     : Scripts to convert data from/to LeVoiceLab format (see https://speech-data-hub.levoicelab.org/)\n│   ├── nemo/           : Scripts to manipulate, prepare and convert data to NeMo format\n│   └── scraping/       : Scripts to scrape a collection of documents (docx, pdf...) or the web\n├── docker/          : Docker environment\n└── tests/           : Unittest suite\n    ├── data/           : Data to run the tests\n    ├── expected/       : Expected outputs for some non-regression tests\n    ├── unittests/      : Code of the tests\n    └── run_tests.py    : Entrypoint to run tests\n```\n\n## Installation\n\n### Requirements\n\n```\nsudo apt-get install \\\n        sox \\\n        libsox-fmt-mp3 \\\n        libsox-dev \\\n        ffmpeg \\\n        libssl-dev \\\n        libsndfile1 \\\n        python3-dev \\\n        portaudio19-dev \\\n        libcurl4-openssl-dev \\\n        xvfb\n\npip3 install -r requirements.txt\npip3 install -r tools/requirements.txt\n```\n\nFor scraping tools you may also need additional dependencies:\n```\nsudo add-apt-repository ppa:mozillateam/ppa\nsudo apt-get update\nsudo apt-get install -y --no-install-recommends firefox-esr\n```\n\n\n### Docker\n\nIf not done, pull the docker image:\n```\ndocker pull lintoai/ssak:latest\n```\nor build it:\n```\ndocker build -t lintoai/ssak:latest .\n```\n\nRun it, with advised options:\n```\ndocker run -it --rm \\\n    --shm-size=4g \\\n    --user $(id -u):$(id -g) \\\n    --env HOME=~ --workdir ~ \\\n    -v /home:/home \\\n    --name ssak_workspace \\\n    lintoai/ssak:latest\n```\n(also add `--gpus all` to use GPU).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinagora-labs%2Fssak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinagora-labs%2Fssak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinagora-labs%2Fssak/lists"}