{"id":50244851,"url":"https://github.com/opensource-spraakherkenning-nl/Kaldi_NL","last_synced_at":"2026-06-29T20:00:57.686Z","repository":{"id":37390701,"uuid":"56837070","full_name":"opensource-spraakherkenning-nl/Kaldi_NL","owner":"opensource-spraakherkenning-nl","description":"Code related to the Dutch instance and user groups of the KALDI speech recognition toolkit ","archived":false,"fork":false,"pushed_at":"2023-11-01T11:55:01.000Z","size":27459,"stargazers_count":65,"open_issues_count":8,"forks_count":18,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-05-27T08:50:44.517Z","etag":null,"topics":["dutch","kaldi","speech-recognition","speech-recognition-model"],"latest_commit_sha":null,"homepage":"http://www.opensource-spraakherkenning.nl","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opensource-spraakherkenning-nl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-04-22T07:51:38.000Z","updated_at":"2025-03-31T07:17:47.000Z","dependencies_parsed_at":"2023-02-14T19:01:53.839Z","dependency_job_id":"aeaf16ab-91e5-4a6d-b32e-4e6f69b4a739","html_url":"https://github.com/opensource-spraakherkenning-nl/Kaldi_NL","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/opensource-spraakherkenning-nl/Kaldi_NL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensource-spraakherkenning-nl%2FKaldi_NL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensource-spraakherkenning-nl%2FKaldi_NL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensource-spraakherkenning-nl%2FKaldi_NL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensource-spraakherkenning-nl%2FKaldi_NL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opensource-spraakherkenning-nl","download_url":"https://codeload.github.com/opensource-spraakherkenning-nl/Kaldi_NL/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opensource-spraakherkenning-nl%2FKaldi_NL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34941027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"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":["dutch","kaldi","speech-recognition","speech-recognition-model"],"created_at":"2026-05-26T23:00:19.776Z","updated_at":"2026-06-29T20:00:57.666Z","avatar_url":"https://github.com/opensource-spraakherkenning-nl.png","language":"Shell","funding_links":[],"categories":["NLP per Language"],"sub_categories":["NLP in Dutch"],"readme":"# Kaldi NL\n\n\n## Introduction\n\nThese scripts may be used to convert speech contained in audio files into text using the Kaldi open-source speech\nrecognition system.\n\n## Installation\n\nThe software is run from the directory where you cloned this repository.  Kaldi NL depends on a working installation of\nKaldi (http://kaldi-asr.org/), Java, Perl, Python 3, and SoX (http://sox.sourceforge.net/).  They have been tested on\nUbuntu Linux 16.10, 18.04 LTS and 20.04 LTS but are expected to run on other Linux distributions as well. A container\nimage is provided that contains all of the dependencies and models.\n\nBefore running the decoder for the first time, or when you need to change its configuration, please run ``configure.sh``.\nThe ``configure.sh`` script will ask for the location of your Kaldi installation, and for the location to put the models.\n\nA ``decode.sh`` script is dynamically generated based on the selected models, as\nare the decoding graphs needed for Kaldi. This last step may take a while (but on a 16GB machine usually no more than an hour or so).\n\nIt is also possible to install a completely pre-made decoder with models as supplied by certain partners\nin that case you can specify one or more of the following models as a parameter to ``configure.sh``:\n\n* `utwente` - **Starter Pack** - These are the dutch models and decoder graphs originally provided with Kaldi_NL\n* `radboud_OH` - **Oral History** - These are dutch models and decoder graphs trained on oral history interviews\n* `radboud_PR` - **Parliamentary Talks** - These are dutch models and decoder graphs trained on parliamentary talks\n* `radboud_GN` - **Daily Conversation** - These are dutch models and decoder graphs trained on daily conversations\n\nA decode script is supplied for for each, respectively named ``decoder_OH.sh``, ``decoder_PR.sh`` and ``decode_GN.sh``.\n\nThe use of these scripts under macOS is not supported, but we have been able to make them work. Just as with the default\nKaldi recipes, most issues stem from the use of the standard GNU tools. So use gcp, gawk, gsed, gtime, gfile, etc\nin place of cp, awk, sed, time, and file.\nIf you encounter any other issues with these script on macOS, please let us know, especially if you've been able to fix them :-)\n\n### Container with Web Interface\n\nFor end-users and hosting partners, we provide a web-interface offering easy access to *Automatic Speech Recognition for\nDutch* (`asr_nl`), containing all the models from Radboud University. A container image is available to deploy this\nwebservice locally, please see: [Automatic Speech Recognition for\nDutch](https://github.com/opensource-spraakherkenning-nl/asr_nl) for the webservice source and further instructions.\n\n### Container without Web Interface\n\nThere is a prebuilt image from the Docker Hub registry using docker as follows:\nThis contains all the models (but not the webservice).\n\n```\n$ docker pull proycon/kaldi_nl\n```\nYou can also build the container image yourself using a tool like ``docker build``, which is the recommended option if you are deploying this in your own infrastructure. To build a container image with the specified models included in the image:\n\n```\n$ docker build -t proycon/kaldi -f kaldi.Dockerfile\n$ docker build -t proycon/kaldi_nl --build-arg MODELS=\"utwente radboud_OH radboud_PR radboud_GN\" .\n```\n\nIf you want the models downloaded at run-time onto an external data volume, rather than at build time into the image, then add ``--build-arg MODELPATH=/models`` and later *at runtime* set ``-v /path/to/your/models:/models``.\n\n\nRun the container as follows, you may want replace ``decode_OH.sh`` with another decode script corresponding to your desired model.\n\n```\n$ docker run -t -i -v /your/data/path:/data proycon/kaldi_nl\n```\n\nThe `decode.sh` command (or rather one of its variants) from the next section can be appended directly to the docker run line, e.g.:\n\n```\n$ docker run -t -i -v /your/data/path:/data proycon/kaldi_nl ./decode_OH.sh /data/yourinput.wav /data\n```\n## Usage\n\nThe decode script is called with:\n\n`./decode.sh [options] \u003cspeech-dir\u003e|\u003cspeech-file\u003e|\u003ctxt-file containing list of source material\u003e \u003coutput-dir\u003e`\n\nIf you want to use one of the pre-built models, use `decode_OH.sh` or any of the other options instead of the generic `decode.sh`.\n\nAll parameters before the last one are automatically interpreted as one of the three types listed above.\nAfter the process is done, the main results are produced in `\u003coutput-dir\u003e/1Best.ctm`. This file contains a list of all\nwords that were recognised in the audio, with one word per line. The lines follow the standard .ctm format:\n\n`\u003csource file\u003e 1 \u003cstart time\u003e \u003cduration\u003e \u003cword hypothesis\u003e \u003cposterior probability\u003e`\n\nIn addition, some simple text files may be generated, as well as performance metrics in case the source material contains\na suitable reference transcription in .stm format. There's also the option of using a .uem file in order to provide a\npre-segmentation or to limit the amount of audio to transcribe.\n\nAs part of the transcription process, the LIUM speech diarization toolkit is utilized. This produces a directory\n`\u003coutput-dir\u003e/liumlog`, which contains .seg files that provide information about the speaker diarization. For more\ninformation on the content of these files, please visit http://www-lium.univ-lemans.fr/diarization/.\n\n\n## Details\n\nDue to the nature of decoding with Kaldi, its use of FSTs, and the size of the models in the starterpack, a machine with\nless than 8GB of memory will probably not be able to compile the graphs or provide very useful ASR performance. In any case, make sure the number of jobs does not crush your machine (use the --nj parameter). Also be advised that building the docker image requires at least 60GiB of available disk space.\n\nIn the starterpack of Dutch models, the best current performance can be expected when using:\n\n* AM: ``NL/UTwente/HMI/AM/CGN_all/nnet3_online/tdnn``\n    * (slightly better, but much slower: ``NL/UTwente/HMI/AM/CGN_all/nnet3/tdnn_lstm``\n* LM: ``v1.0/KrantenTT.3gpr.kn.int.arpa.gz``\n* Rescore LM: ``NL/UTwente/HMI/LM/KrantenTT`` \u0026 ``v1.0/KrantenTT.4gpr.kn.int.arpa.gz``\n\n## Contribute your own models!\n\nPlease see [the contribution guidelines](CONTRIBUTING.md) and contribute your own models and decoding pipelines!\n\n## Licensing\n\nKaldi-NL is licensed under the Apache 2.0 licence, this concerns only the scripts directly included in this repository\nand where not explicitly noted otherwise. Note that the various models that can be obtained through Kaldi-NL are never by\ndefault covered by this license and may often be licensed differently.\n\nThe models for Dutch (asr_nl) that are installable through this Kaldi_NL distribution are licensed under the [Creative Commons\nAttribution-NonCommercial-ShareAlike license (4.0)](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensource-spraakherkenning-nl%2FKaldi_NL","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopensource-spraakherkenning-nl%2FKaldi_NL","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensource-spraakherkenning-nl%2FKaldi_NL/lists"}