npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

low-resource-languages

v1.0.1

Published

Resources for conservation, development, and documentation of endangered, minority, and low or under-resourced human languages.

Downloads

35

Readme

Low Resource Languages

Greenkeeper badge Build Status

Resources for conservation, development, and documentation of low resource (human) languages.

According to some estimates, half of the 7,000~ currently spoken languages are expected to become extinct this century. However, there is a lot of work by academics, independent scholars, organizations, communities, and individuals which goes towards stopping or slowing this trend. This list is intended to provide a list of open source code that would be useful for documenting, conserving, developing, preserving, or working with endangered languages.

Slack Group

We have a Slack group for live discussion. Join Us Here!

Publication

A white paper describing this repository was published at the LREC 2016 CCURL Workshop (Collaboration and Computing for Under-Resourced Languages). The paper is in this repository, in the papers folder. Download the raw paper here: Open Source Code Serving Endangered Languages.

Contribute

To edit this list on GitHub, simply click here. If you would like to discuss anything at all related to this, please open an issue. If you know of any resource available that is not on this list, please add it, either using the link above or by submitting pull requests.

There are more details on contributing in the CONTRIBUTING guide.

If you're interested in discussing the list in some offline capacity, get in touch with @RichardLitt. I'd be more than happy to have a phone call or email exchange.

Table of Contents

Table of Contents generated with DocToc

Definitions

Endangered languages are human languages that are in danger of extinction. This list also encompasses minority languages - languages which are spoken by a stable, but small, population (for example, Maltese or Hawai'ian); and low- or under-resourced languages, which may be spoken by a large population but are under-represented digitally (for instance, Quechua). These languages share certain characteristics in common; the most pertinent is sparse data and a lack of resources, ranging from spell-checkers to grammars to machine translation corpora. Other under-resourced languages that do not fall under this list include constructed languages (for instance, Klingon or Na'vi), computer languages (for instance, Javascript or Lua), and extinct languages that are so sparse as to be rendered computationally irrelevant for most purposes (for instance, Tocharian).

Open Source "promotes a universal access via a free license to a product's design or blueprint, and universal redistribution of that design or blueprint, including subsequent improvements to it by anyone." (Wiki). This is important because money and resources allocated towards a language or project that are not open source is spent at the expense of possible extensibility elsewhere.

This list used to be named endangered-languages. It was renamed to reflect that endangerment is a loaded term that both may not reflect the views of language communities speaking minority languages. low-resource-languages focuses this list on a lack of digital resources compared to other, high resourced languages.

Tools which are built for these languages are not included (unless relevant for dialects or variants): Arabic, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, Flemish, French, German, Greek, Hebrew, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Norwegian, Norwegian (Bokmål), Persian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Valencian, Vietnamese. This list comes from the list of most popular content languages for websites, on this Wikipedia page. Other metrics could be used - if you have another one, please suggest it!

This list is particularly good at one thing; showing the kinds of tools that exist in the field, generically. However, for in depth research into a specific language or tool suite, it does not perform exceptionally well. For instance, listing all of the Firefox language packs or Apertium language modules for each low resource language would be unhelpful, as would be including all of the tools available for Basque noted in the ACL Wiki, which would mainly mean cataloguing tools through the IXA group, some of which are open source, and some are not. Instead, view this list as a starting point for more research.

Looking for resources for code languages? Take a look at the awesome lists collection.

Generic Repositories

Single language lexicography projects and utilities

Utilities

  • Project for Free Electronic Dictionaries Is a project for a java MIDlet for mobile phones - for indigenous language dictionaries.
  • Webonary Site which hosts digital dictionaries for single languages.
  • WeSay - Allows language communities to build their own dictionaries. https://software.sil.org/wesay/ (by the SIL International).

Software

  • 4lang - Concept dictionary using Eilenberg machines.
  • accentuate.us a.k.a. "charlifter". Statistical Unicodification of plain text for many languages
  • alignment-with-openfst - This is an implementation of the CRF autoencoder framework for four tasks: bitext word alignment, part-of-speech tagging, code switching, dependency parsing.
  • Apertium Apertium is a toolbox to build open-source shallow-transfer machine translation systems, especially suitable for related language pairs: it includes the engine, maintenance tools, and open linguistic data for several language pairs.
  • ark-tweet-nlp - CMU ARK Twitter Part-of-Speech Tagger (Fork).
  • ArtOfReading - Index and processing scripts related to the Art Of Reading illustration collection.
  • bayesline - A Multinomial Bayesian Classification for Language Identification.
  • bible-corpus-tools - A collection of tools for reading/processing the multilingual Bible corpus.
  • BloomDesktop - Bloom Desktop is a hybrid c#/javascript/html/css Windows application that dramatically "lowers the bar" for language communities who want books in their own languages. Bloom delivers a low-training, high-output system where mother tongue speakers and their advocates work together to foster both community authorship and access to external materia… https://bloomlibrary.org/.
  • BloomLibrary - Bloom Library Single Page App, using AngularJS & Bootstrap, Parse.com backend. https://bloomlibrary.org/.
  • brain - Neural networks in JavaScript.
  • Bristol Uni MT Morphology tools - This repo is a mirror of scripts previously available on http://www.cs.bris.ac.uk/Research/MachineLearning/Morphology/resources.jsp. Included: Ukwabelana - An open-source morphological Zulu corpus and EMMA: A Novel Evaluation Metric for Morphological Analysis.
  • brown-cluster - C++ implementation of the Brown word clustering algorithm.
  • CasualCon CasualConc is a concordance program that runs natively on Mac OS X 10.5 Leopard or later. It was originally designed for casual use (preliminary analysis or non-research purposes), though [the maintainer] has been using it for his own research (and may others have). It can generate kwic concordance lines, word clusters, collocation analysis, and word count.
  • cdec - Decoder, aligner, and model optimizer for statistical machine translation and other structured prediction models based on (mostly) context-free formalisms.
  • charlint Charlint is a character normalization/checking tool written in Perl. Among else, it implements Normalization Form C of Unicode TR 15, as a test platform for Early Uniform Normalization in the W3C Character Model.
  • chorus - A version control system designed to enable workflows appropriate for typical language development teams who are geographically distributed.
  • clam - Computational Linguistics Application Mediator -- Quickly turn NLP applications into RESTful webservices with a web-application front-end. You provide a specification of your command line application, its input, output and parameters, and CLAM wraps around your application to form a fully fledged RESTful webservice.
  • CMU Sphinx CMUSphinx is a speaker-independent large vocabulary continuous speech recognizer released under BSD style license. It is also a collection of open source tools and resources that allows researchers and developers to build speech recognition systems.
  • cnminlangwebcollect - Chinese minorities website languages detection and websites collection.
  • Cog - Cog is a tool for comparing languages using lexicostatistics and comparative linguistics techniques. It can be used to automate much of the process of comparing word lists from different language varieties. http://sillsdev.github.io/cog/.
  • convertextract - Convert Excel, Word and PowerPoint files with non-Unicode text (like text requiring SIL fonts) into Unicode, while preserving original file's formatting.
  • CorpusTools - Phonological CorpusTools http://phonologicalcorpustools.github.io/CorpusTools/.
  • CTK - Built around LDC's champollion sentence aligner kernel, Champollion Tool Kit (CTK) aims to providing ready-to-use parallel text sentence alignment tools for as many language pairs as possible. (Original project is on SourceForge: http://champollion.sourceforge.net).
  • DataTags - A system to assess the sensitivity and privacy risk of a dataset, and assign a tag to describe how the dataset must be transfered, stored and accessed. (Fork).
  • dataverse - A data repository framework to share and publish research data.
  • Dative - Dative: software for linguistic fieldwork http://www.dative.ca.
  • dative - A single-page application that interacts with multiple linguistic fieldwork web service databases. Website.
  • DeepLearnToolbox - Matlab/Octave toolbox for deep learning. Includes Deep Belief Nets, Stacked Autoencoders, Convolutional Neural Nets, Convolutional Autoencoders and vanilla Neural Nets. Each method has examples to get you started.
  • Desmeme - Database and tools for exploring linguistic templates.
  • dictdb - dictionary database for language translation.
  • discoursegraphs - Python-based tool to convert and merge multilayer annotated linguistic data.
  • divvun-gramcheck - This program does FST lookup on forms specified as Constraint Grammar format readings, and looks up error-tags in an XML file with human-readable messages. It is meant to be used as a late stage of a grammar checker pipeline.
  • DLTK - Deutsch Language Tool Kit. More.
  • epitran - Grapheme to Phoneme conversion (G2P) for many low-resource languages.
  • ELDER: Endangered Language Data Electronic Repository - Endangered Language Data Electronic Repository: A web-based ontologically-compliant collaborative linguistic data cataloguing tool.
  • enchant - enchant spellchecking library https://abiword.github.io/enchant/.
  • exsite9 - ExSite9 is a desktop application that was built to facilitate researchers easily and quickly tagging their data files with descriptive metadata and subsequently packaging their data files and associated metadata ready for submission to a repository. ExSite9 also allows for the structural organisation of said files within actually moving their physical location on your local file storage; allowing you to correctly organise your files and metadata ready for packaging.
  • fast_align - Simple, fast unsupervised word aligner.
  • fastText - Library for fast text representation and classification.
  • FieldWorks - FieldWorks is a suite of software tools for language and cultural data, with support for complex scripts. https://software.sil.org/fieldworks/ FieldWorks Language Explorer (or FLEx, for short) is designed to help field linguists perform many common language documentation and analysis tasks. It can help you: elicit and record lexical information, create dictionaries, interlinearize texts, analyze discourse features, study morphology.
  • Franc - Natural language detection http://wooorm.com/franc/.
  • FwDocumentation - Developer documentation for FieldWorks (software tools for language and cultural data, with support for complex scripts).
  • FwLocalizations - Localizations for FieldWorks.
  • FwSupportTools - Additional tools for FieldWorks development.
  • Gaia - Gaia is a HTML5-based Phone UI for the Boot 2 Gecko Project. NOTE: For details of what branches are used for what releases, see the wiki. If you're interested in setting up a keyboard in new language, see this.
  • giellakbd-ios - An open source reimplementation of Apple's native iOS keyboard with a specific focus on support for localised keyboards.
  • giella-ime - A fork of LatinIME (by Google for Android), targeting marginalised languages that also deserve first-class status on mobile operating systems.
  • giza-pp - GIZA++ is a statistical machine translation toolkit that is used to train IBM Models 1-5 and an HMM word alignment model. This package also contains the source for the mkcls tool which generates the word classes necessary for training some of the alignment models.
  • gv-crawl - Global Voices bitext crawler for creating parallel corpora.
  • Glottolog data - Glottolog provides comprehensive reference information for the world's languages.
  • Gramadóir - Grammar checking engine that is designed for the rapid development of grammar checkers for minority languages and other languages with limited computational resources.
  • grind - An InDesign 5.5 plug-in designed allow graphite enabled smart fonts to be used in Adobe InDesign. This project integrates SIL's Graphite 2 smart font technology with our own implementation of a paragraph composer plugin.
  • hermitcrab - HermitCrab.NET is a flexible morphological/phonological parser that takes an item-and-process approach.
  • hfst-ospell - HFST spell checker library and command line tool.
  • hfst-ospell-js - Node bindings for hfst-ospell.
  • hfst-optimized-lookup - HFST optimized-lookup standalone library and command line tool.
  • hundict - bilingual dictionary extractor from parallel corpora.
  • hunspell - Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.
  • huntag - a sequential tagger for NLP using Maximum Entropy Learning and Hidden Markov Models.
  • icu-dotnet - C# wrapper for ICU4C.
  • icu4c - Mirror of svn project at http://source.icu-project.org/repos/icu/icu/. The FieldWorks branch has some FieldWorks specific enhancements.
  • iLanguage - A semi-unsupervised language independent morphological analyzer useful for stemming unknown language text, or getting a rough estimate of possible parses for morphemes in a word. Input: a corpus. Uses compression, maximum entropy and fieldlinguistics.
  • ipa-help - IPA Helps.
  • itweets-geodata - Geodata from Indigenous Tweets.
  • jQuery.ime - jQuery based input methods library.
  • kbdgen - Generate keyboards and keyboard layouts for various operating systems.
  • koreksyon - Tools for developing and implementing spell-checking and grammar-checking capabilities in low-resource languages.
  • l20n.js - L20n reinvents software localization. Users should be able to benefit from the entire expressive power of natural languages. L20n keeps simple things simple, and at the same time makes complex things possible. This is the JavaScript implementation of L20n. http://l20n.org.
  • langid.py - Stand-alone language identification system.
  • langtech A host of resources provided in SVN by the University of Tromsø. Details are here and in English here.
  • leebock/languages - Application files for the Smithsonian endangered languages story map.
  • LEGO Unified Concepticon - Material relating to the LEGO Unified Concepticon.
  • Lex4All - pronunciation LEXicons for Any Low-resource Language http://lex4all.github.io/lex4all/.
  • lexdb - LexDB is a lexical cognate tracking database. It stores the full provenance of all lexemes and cognate judgements, and allows export into a number of nexus dialects. The database is written in the flexible python/django web framework.
  • LfMerge - Send/Receive for languageforge.org.
  • liblevenshtein - A library for generating Finite State Transducers based on Levenshtein Automata.
  • libpalaso - Palaso Library: A set of .Net libraries useful for developers of Language Software.
  • LinGO Grammar Matrix The LinGO Grammar Matrix is a framework for the development of broad-coverage, precision, implemented grammars for diverse languages.
  • Lingpy - LingPy: Python library for quantitative tasks in historical linguistics http://lingpy.org.
  • Linguistica Linguistica is a program designed to explore the unsupervised learning of natural language, with primary focus on morphology (word-structure). It runs under Windows, Mac OS X and Linux, and is written in C++ within the Qt development framework. Its demands on memory depend on the size of the corpus analyzed.
  • long-press - jQuery plugin to ease the writing of accented or rare characters. http://toki-woki.net/lab/long-press/.
  • low-resource-pos-tagging-2014 Low-Resource POS-Tagging: 2014
  • lrl - For work concerning low resource languages.
  • MacVoikko - An OS X spelling server based on Voikko.
  • Machine - Machine is a natural language processing library for .NET that is focused on providing tools for processing resource-poor languages (used by FLEx).
  • Make-extensions - Scripts for generating hunspell spellchecking extensions.
  • maxent - Maximum Entropy Modeling Toolkit for Python and C++ http://homepages.inf.ed.ac.uk/lzhang10/maxent_toolkit.html.
  • mgiza - A word alignment tool based on famous GIZA++, extended to support multi-threading, resume training and incremental training.
  • Minority Translate Minority Translate is a simple program for helping content generation on smaller sized Wikipedias (actually any sized) by giving pointers to existing articles in other language Wikipedias, so that the user can easily translate or adapt existing texts and thus increase the size and useability of their Wikipedia editions.
  • morfessor - Morfessor is a tool for unsupervised and semi-supervised morphological segmentation.
  • morpholm - Morphology-aware language models.
  • morph-test - A python script to run tests for generation and analysis of a morphological transducer built using the Giella infrastructure. Works with Hfst, Xerox' fst tools, and with Foma.
  • mosesdecoder - Moses, the machine translation system.
  • moz-l10n-tiers - Creates a pseudo-locale to evaluate string prioritization for l10n.
  • mukurtucms - The Mukurtu Content Management System (CMS) is an Internet- based platform designed to enable archiving of digital cultural resources
  • mythes - MyThes is a simple thesaurus that uses a structured text data file and an index file with binary search to lookup words and phrases and return information on part of speech, meanings, and synonyms.
  • myWorkSafe - Smart & Simple Backup for Language Development Workers. http://software.sil.org/myworksafe/.
  • nabu - nabu is a digital media item management system that provides a catalog of audio and video items, metadata for these items, and information about the workflow status of the items. www.paradisec.org.au
  • Natural - Javascript general natural language facilities for node.
  • NIST 2008 Open Machine Translation Evalutation
  • NLTK - Python Natural Language Tool Kit. NLTK Source http://www.nltk.org/.
  • node-panlex - node.js client for PanLex.
  • norma - A tool for automatic spelling normalization.
  • nplm - Fork of https://nlg.isi.edu/software/nplm/ with some efficiency tweaks and adaptation for use in mosesdecoder.
  • octothorpe - CouchDB-powered wiki thing.
  • OdtXslt - Perform XSLT transform on contents of a package (such as ODT, Docx, etc.).
  • old-webapp - Online Linguistic Database --- software for creating web applications to collaboratively document languages.http://www.onlinelinguisticdatabase.org.
  • old - The Online Linguistic Database (OLD): software for linguistic fieldwork. http://www.onlinelinguisticdatabase.org.
  • old-pyramid - Online Linguistic Database migrated to the Pyramid framework.
  • OmegaT-hfst-tokenizer - OmegaT-hfst-tokenizer provides fst-based tokenisation in OmegaT.
  • OpenDataKit Open Data Kit (ODK) is an open-source suite of tools that helps organizations author, field, and manage mobile data collection solutions
  • OpenNLP - The Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text. Website.
  • ops-devbox - Ansible playbook for a (linux) developer machine.
  • panlex-tools - This package contains scripts to transform lexical resources into a format suitable for importing into PanLex. Documentation may be found at https://dev.panlex.org.
  • pdsc-collection-viewer - Paradisec Collection Browser
  • paradigm - PARADIGM is a .Net (C#) implementation of Joseph E. Grimes' 1983 work entitled "Affix Positions and Cooccurrences: The PARADIGM Program".
  • pathway - Preparing language data for publication.
  • pdfdroplet - Library and GUI for imposition of PDF pages (e.g. 2-up) http://software.sil.org/pdfdroplet/.
  • pepper - Pepper is a pluggable, Java-based, open source converter framework for linguistic data.
  • Persephone - Persephone aims to make state-of-the-art phonemic transcription accessible to people involved in language documentation, who have a training corpus of about one to four hours of transcribed speech.
  • phonology-assistant - Phonology Assistant is a discovery tool. Provided with a corpus of phonetic data, it automatically charts the sounds and through its searching capabilities, helps a user discover and test the rules of sound in a language.
  • pressagio - Pressagio is a library that predicts text based on n-gram models. For example, you can send a string and the library will return the most likely word completions for the last token in the string.
  • PrimerPro - The purpose of PrimerPro is to assist the literacy worker in the development of primers for a given language.
  • pyDelphin - Python libraries for DELPH-IN (Friendly Fork).
  • RBGParser - Graph-based Dependency Parser.
  • Rosetta Pangloss - The Rosetta Project's Pangloss system.
  • salm - SALM: Suffix Array and its Applications in Empirical Language Processing by Joy.
  • Salt - A graph-based model to store and manipulate linguistic data.
  • saymore - A tool for making common Language Documentation tasks such as keeping all the resulting files and meta data organized, converting files to archive formats, and transcription.
  • Secwepemc-Facebook - Translate Facebook into unsupported languages.
  • SegParser - Randomized Greedy algorithm for joint segmentation, POS tagging and dependency parsing.
  • SeedLing - Building and Using A Seed Corpus for the Human Language Project.
  • Skype in your language - Translate Skype into unsupported languages.
  • solid - Solid is a software tool that can be used to check, clean up, and convert Standard Format (e.g. Toolbox) lexicon data.
  • SPHERE Conversion Tools Many LDC corpora contain speech files in NIST SPHERE format. The programs below convert SPHERE files to other formats.
  • StandardFormatLib - Standard Format Library.
  • Stanford CoreNLP - Stanford CoreNLP: A Java suite of core NLP tools. https://stanfordnlp.github.io/CoreNLP/.
  • Stanford CoreNLP Python - Python wrapper for Stanford CoreNLP tools.
  • stanza - Stanford NLP group's shared Python tools.
  • str2ipa - Pronunciation dictionaries for languages with close-to-phonetic writing systems.
  • sugali - This is a legacy repository of the language identification project for many (many) languages project for the software project course, NLP projects for low-resource languages.
  • SuGarLike - Language Identification for Low Resource Languages (by Susanne, Guy and Liling).
  • SyllabiPy - Python interface for universal syllabification algorithms
  • tasty-imitation-keyboard - A custom keyboard for iOS8+ that serves as a tasty imitation of the default Apple keyboard. Built using Swift and the latest Apple technologies!.
  • TECkit - A Text Encoding Conversion toolkit.
  • teny - Tools for low-resource machine translation.
  • TeraDict - Translate English words into hundreds of languages!.
  • Tesseract.js - Pure Javascript OCR for 62 Languages 📖🎉🖥 http://tesseract.projectnaptha.com/.
  • TexNLP - TexNLP: Texas Natural Language Processing tools.
  • TiMBL TiMBL is an open source software package implementing several memory-based learning algorithms, among which IB1-IG, an implementation of k-nearest neighbor classification with feature weighting suitable for symbolic feature spaces, and IGTree, a decision-tree approximation of IB1-IG. All implemented algorithms have in common that they store some representation of the training set explicitly in memory. During testing, new cases are classified by extrapolation from the most similar stored cases.
  • Toney - Tone Classification Software.
  • Field Linguist's Toolbox - Toolbox is a data management and analysis tool for field linguists. It is especially useful for maintaining lexical data, and for parsing and interlinearizing text, but it can be used to manage virtually any kind of data.
  • Toolbox Scripts for ELAN - Mirror of Alexander Koenig's Toolbox Scripts https://tla.mpi.nl/tools/tla-tools/elan/thirdparty/.
  • ToolsForFieldLinguistics - A collection of scripts and recipes for linguistics.
  • transcriber - An HTML5 transcription tool for Aikuma
  • translitit-engine - A transliteration engine written in JavaScript.
  • Tsammalex data - Tsammalex is a multilingual lexical database on plants and animals.
  • tweet2learn - An app to make it easier to use your native language on Twitter.
  • twitter_langid - A hierarchical character-word neural network for language identification.
  • UniversalDependencies docs - Universal Dependencies online documentation http://universaldependencies.org/docs/.
  • UniversalDependencies tools - Various utilities for processing the data.
  • VocBench VocBench is a web-based, multilingual, editing and workflow tool that manages thesauri, authority lists and glossaries using SKOS-XL.
  • wavesurfer.js - Navigable waveform built on Web Audio and Canvas https://wavesurfer-js.org/ (Also has an ELAN plugin).
  • web-scriptureforge - platform for Scripture-related web apps.
  • web-template - This is a web-based template that may be used to present language learning resources to aid language revitalization efforts. It includes a talking dictionary, and a phrasicon, containing sentences and phrases.
  • webcorpus - This project is a collection of scripts and programs for creating a webcorpus from crawled data.
  • wikt2dict - Wiktionary parser tool for many language editions.
  • Word Generator WordGenerator generates hypothetical words from specifications of their syllable structure.
  • WordBoundary - An experiment in the detection and segmentation of word boundaries.
  • wordbyword - WordByWord is a free, open source, easy-to-use multimedia vocabulary trainer developed by Vera Ferreira, Peter Bouda, and Ricardo Filipe at CIDLeS with the support of the Foundation for Endangered Languages.
  • WSI4URLang - Word Sense Induction (WSI) for Under-resourced Languages (URLang).
  • XDXF_Makedict - XDXF dictionary format and "makedict" dictionary converting software (official repository).

Keyboard Layout Configuration Helpers

  • Keyboard - Virtual Keyboard using jQuery ~ https://mottie.github.io/Keyboard/.
  • Keyboards - Open Source Keyman keyboards.
  • Keyman - Keyman cross platform input methods. Keyman makes it possible for you to type in over 1,000 languages on Windows, iPhone, iPad, Android tablets and phones, and even instantly in your web browser. Website.
  • keyboardlayouteditor - Keyboard Layout Editor https://code.google.com/archive/p/keyboardlayouteditor/.
  • lipika-ime - Input Method Engine (IME) for Mac OS X with built-in support for all Indic Languages.
  • XKeyboardConfig - The non-arch keyboard configuration database for X Window. The goal is to provide the consistent, well-structured, frequently released open source of X keyboard configuration data for X Window System implementations (free, open source and commercial). The project is targeted to XKB-based systems.

Annotation

  • AGTK - AGTK is a suite of software components for building tools for annotating linguistic signals, time-series data which documents any kind of linguistic behavior (e.g. audio, video). The internal data structures are based on annotation graphs. (Original project is on SourceForge: https://sourceforge.net/projects/agtk/).
  • brendano - Graph Fragment Language for Easy Syntactic Annotation https://www.cs.cmu.edu/~ark/FUDG/.
  • ELAN ELAN is a professional tool for the creation of complex annotations on video and audio resources.
  • eopas - ETHNOER Online Presentation and Annotation System.
  • FLAT - FoLia Linguistic Annotation Tool - FLAT is a web-based linguistic annotation environment based around the FoLiA format (http://proycon.github.io/folia/), a rich XML-based format for linguistic annotation. FLAT allows users to view annotated FoLiA documents and enrich these documents with new annotations, a wide variety of linguistic annotation types is supported through the FoLiA paradigm. It is a document-centric tool that fully preserves and visualises document structure.
  • gfl_syntax - Graph Fragment Language for Easy Syntactic Annotation https://www.cs.cmu.edu/~ark/FUDG/.
  • graf-python - The library graf-python is an open source Python implemenation to parse and write GrAF/XML files as described in ISO 24612. The parser of the library creates an annotation graph from the files. The user may then query the annotation graph via the API of graf-python.
  • kwaras - Tools for ELAN corpus management.
  • LDC Word Aligner LDC Word Aligner is a software tool used for manual annotation of word alignment developed to support Arabic-English and Chinese-English word alignment tasks. It has a clean, easy-to-use interface. Since its development in 2009, LDC has used LDC Word Aligner to generate over 1,000,000 tokens of annotated word alignment data from a variety of genres including broadcast, newswire and web-based sources. Website.
  • poio-analyzer - Poio is a collection of software tools for linguists working in language documentation, descriptive linguistics and/or language typology. It allows linguists to manage and analyze their data. The Poio Interlinear Editor allows to add morpho-syntactic annotations to transcriptions. It supports various file formats for input, but will only output standardized XML defined by the Corpus Encoding Standard and the Text Encoding Initiative. Several tools for analyzing linguistic data will be made available to further process annotated data. Poio tools are written in Python and are based on PyQt.
  • poio-api - Poio API is a free and open source Python library to access and search data from language documentation in your linguistic analysis workflow. It converts file formats like Elan’s EAF, Toolbox files, Typecraft XML and others into annotation graphs as defined in ISO 24612. Those graphs, for which we use an implementation called “Graph Annotation F…
  • poio-doc - Documentation of the Poio project.
  • pyannotation - PyAnnotation is a Python Library to access and manipulate linguistically annotated corpus files.
  • XTrans Trans is a next generation multi-platform, multilingual, multi-channel transcription tool that supports manual transcription and annotation of audio recordings. The XTrans toolkit provides new and efficient solutions to common transcription challenges and addresses critical gaps in existing tools.Designed with input from experienced human transcribers working with real world data, XTrans provides a flexible and intuitive graphical user interface for a multitude of speech annotation tasks including (virtual) segmentation of audio into smaller units like turns and sentences; speaker identification; orthographic transcription in any language; and labeling of structural elements of the transcript like topics.

Format Specifications

  • spec - The official specification for the DLx linguistic data format. https://digitallinguistics.github.io/spec/.
  • FoLiA FoLiA: Format for Linguistic Annotation - FoLiA is a rich XML-based annotation format for the representation of language resources (including corpora) with linguistic annotations. A wide variety of linguistic annotations are support, making FoLiA a useful format for NLP tasks and data interchange. http://proycon.github.io/folia/
  • xdxf_makedict - XDXF dictionary format and "makedict" dictionary converting software (official repository).

i18n-related Repositories

  • Express-Lingua - An i18n middleware for the Express.js framework.
  • Polyglot.js Give your JavaScript the ability to speak many languages.
  • Transifex - System for providing a nice, userfriendly/project oriented approach to translating .po files. Great for non-technical users, free for open-source projects, decent for minority languages; however, it can take a while to get a new language added to the Transifex system because the ticketing system Transifex uses results in them losing tickets sometimes. Provides translation memory, ability to appoint reviewers, etc. Transifex used to have an open source system that you could host on your own, but that seems to have disappeared.

Audio automation

  • arctic-prompts - Generate prompts PDF for CMU ARCTIC dataset.
  • AudioWebService - a simple nodejs server which accepts upload of audio and runs it through praat.
  • AuToBI - Automatic prosodic annotation tool written in Java.
  • BashScriptsForPhonetics - (Fork of a dormant project).
  • esv-text-audio-aligner - ESV Text/Audio Aligner to programmatically obtain the timings for each word in the corresponding audio.
  • html5-audio-read-along - HTML5 Audio Read-Along.
  • ipa-chart - International Phonetic Alphabet (IPA) Unicode Chart and Character Picker.
  • kaldi-svn-archive - An read-only archive of the original Kaldi SVN repository (mainly to keep sandboxes available).
  • kaldi - This is now the official location of the Kaldi project.
  • lex4all - pronunciation LEXicons for Any Low-resource Language (Fork of a student project).
  • Montreal-Forced-Aligner - Python interface for forced text/speech alignment.
  • node-pocketsphinx
  • opensauce - GNU Octave-compatible version of VoiceSauce.
  • pocketsphinx - PocketSphinx is a lightweight speech recognition engine, specifically tuned for handheld and mobile devices, though it works equally well on the desktop.
  • pocketsphinx-ios-demo - Simple demo for iOS.
  • pocketsphinx-python - Python module installed with setup.py.
  • pocketsphinx-ruby - Ruby speech recognition with Pocketsphinx.
  • pocketsphinx-wp-demo - Demo to run pocketsphinx on WP8 platform.
  • pocketsphinx.js - Speech recognition in JavaScript.
  • praat-py - From my PhD days: Praat-Py is a custom build of Praat, the computer program used by linguists for doing phonetic analysis on sound files, to allow for scripts to be written in the Python programming language, rather than in Praat's built-in language. (Fork of a dormant project).
  • Praat-Scripts - Mietta's Scripts.
  • PraatTextGridJS - A small library which can parse TextGrid into json and json into TextGrid.
  • PraatontheWeb - Web implementation of Praat. Source code, running demo scripts on web, samples and documentation.
  • prosodicParsing - different kinds of HMMs to use for incorporating prosody into basic parsing.
  • Prosodylab-Aligner - Python interface for forced audio alignment using HTK and SoX.
  • prosodylab.alignertools
  • Recordmp3js - Record MP3 files directly from the browser using JS and HTML.
  • sphinx4 - Pure Java speech recognition library.
  • sphinxbase
  • sphinxtrain
  • TLSphinx - Swift wrapper around Pocketsphinx.

Text-to-Speech (TTS)

  • espeak - eSpeak is a compact open source software speech synthesizer for English and other languages, for Linux and Windows. http://espeak.sourceforge.net.
  • MARY TTS - MARY TTS -- an open-source, multilingual text-to-speech synthesis system written in pure java http://mary.dfki.de.
  • Ossian - Ossian is a collection of Python code for building text-to-speech (TTS) systems, with an emphasis on easing research into building TTS systems with minimal expert supervision.

Text automation

  • clld - Cross Linguistic Linked Data python library.
  • LaTeX2HTML5 - LaTeX web components.
  • MultilingualCorporaExtractor - Node io Spider for extracting multilingual corpora (Fork of a student project).
  • SeedLing - Building and Using A Seed Corpus for the Human Language Project (Fork of a student project).

Experimentation

  • experigen - A framework for creating linguistic experiments.
  • GamifyPsycholinguisticsExperiments - A simple node server to gamify linguistics experiments, runs offline on a laptop for small scale experiements and online on a server for large scale experiments. Data is sent to a Google spreadsheet. (Fork of a dormant project).
  • OpenSesame - Graphical experiment builder for the social sciences.
  • OPrime - Open Source Experimentation Libraries - Online and Offline for Android and HTML5.
  • psychopyMegProsody - Runs MegProsody using PsychoPy.
  • PsychScript - A HTML5/Javascript library for running behavioural experiments online.

Flashcards

  • Anki - Anki is a program to make and share flaschard decks (including audio) for any language or writing system. https://apps.ankiweb.net/.
  • awesome-anki - A curated list of awesome Anki add-ons, decks and resources.
  • VocabLift - Language-learning tool that uses vocabulary from LIFT-format dictionaries produced by programs such as Fieldworks Language Explorer and WeSay.

Natural language generation

  • OpenCCG - OpenCCG library for parsing and realization with CCG. Includes mini-grammars for Inuit, Nezperce, Basque and others.

Computing systems

Android Applications

  • Aikuma - Android software for recording and translation.
  • Android Speech Recognition Trainer - Speech recognition training app for low resource languages which interfaces with FieldDB corpora.
  • android-template - This is a template of an Android word-learning app that may be used a way to introduce a language. It includes a quiz. For the documentation, go to http://eddersko.github.io/android-template/.
  • AndroidFieldDB - An Android app which lets the user build a custom visual and auditory vocabulary, useful for guided anomia treatment and self designed language lessons by heritage speakers.
  • AndroidFieldDBElicitationRecorder - A general purpose video recording tool.
  • AndroidLanguageLessons - Lets heritage speakers create self designed language lessons. https://play.google.com/store/apps/details?id=com.github.opensourcefieldlinguistics.fielddb.lessons.georgian.
  • AndroidProductionExperiment - Android App to run perception experiments.
  • Bevara - Android Phone Application designed for Linguistic Fieldwork to help preserve, maintain, and save endangered languages.
  • ojoVoz - A mobile app for sending georeferenced image and voice recordings from an Adroid phone to an email address. For more information, please go to http://sautiyawakulima.net/ojovoz/.
  • pocketsphinx-android - pocketsphinx build for Android.
  • pocketsphinx-android-demo

Chrome Extensions

  • babelfrog - Chrome extension to help learn languages as you browse.
  • DictionaryChromeExtension - Dictionary for websites in low-resource languages. App and codebase which connects to a Wiktionary to provide definitions of any term on any website (current languages Cherokee 194,426 entries, Inuktitut 251 entries, Kartuli 7,363 entries, Plains Cree (incubation) 0 entries) use.

FieldDB

FieldDB is actively worked on by the FieldDB (Formally known as OpenSourceFieldlinguistics) group. These repos explicitly work with it but could be repurposed for other projects.

  • FieldDB - An offline/online field database which adapts to its user's terminology and I-Language, has plugins for various data automation routines along the process of primary data collection to cleaning to publication and archival. use.

FieldDB Webservices/Components/Plugins

  • AndroidLanguageLearningClientForFieldDB-sikuli - Sikuli tests for AndroidLanguageLearningClientForFieldDB.
  • AuthenticationWebService - A node.js web service which mananges users and corpora creation and authentication.
  • bower-fielddb-angular - A bower repository which hosts fielddb-angular components, bower install fielddb-angular --save.
  • bower-fielddb - A bower repository which hosts fielddb core components, bower install fielddb --save.
  • fielddb-spreadsheet-sikuli - sikuli tests for the spreadsheet module use.
  • FieldDBActivityFeed - A fielddb activity feed widget which can be embedded in other codebases, websites etc use.
  • FieldDBGlosser - A semi-unsupervised language independent morphological analyzer useful for stemming unknown language text, or getting a rough estimate of possible parses for morphemes in a word. bower install fielddb-glosser --save.
  • FieldDBLexicon - A lexicon browser/editor web widget for FieldDB databases.
  • LanguageClassDashboard - App which provides a view of FieldDB corpora for language teachers use.
  • LexiconWebService - A node.js ElasticSearch wrapper for indexing/training lexicons from corpora.
  • LexiconWebServiceSample - A node.js web server which implements the fieldlinguist's lexicon API for the FieldDB project.

Academic Research Paper-Specific Repositories

  • Gargantua - Fast Unsupervised Sentence Aligner described in "Improved unsupervised sentence alignment for symmetrical and asymmetrical parallel corpora", COLING 2010.
  • ldc-kiy - Materials for: The experimental state of mind in elicitation: illustrations from tonal fieldwork. Dubmitted to Language Documentation & Conservation, How to study a tone language.
  • Learning to map into a Univerisal POS tagset Yuan Zhang, Roi Reichart, Regina Barzilay and Amir Globerson
  • low-resource-pos-tagging-2014 and low-resource-pos-tagging-2014 Published in: Learning a Part-of-Speech Tagger from Two Hours of Annotation. Dan Garrette and Jason Baldridge. In Proceedings of NAACL 2013. And in: Real-World Semi-Supervised Learning of POS-Taggers for Low-Resource Languages. Dan Garrette, Jason Mielens, and Jason Baldridge. In Proceedings of ACL 2013.
  • orthotree - Linguistic family tree based on orthographic distance.
  • type-supervised-tagging-2012emnlp This repository contains the code, scripts, and instructions needed to reproduce the results in the paper: Type-Supervised Hidden Markov Models for Part-of-Speech Tagging with Incomplete Tag Dictionaries. Dan Garrette and Jason Baldridge. In Proceedings of EMNLP 2012. This code is frozen as of the version used to obtain the results in the paper. It will not be maintained. To see the updated code, visit nlp
  • visualizing-language - For visualizations of WALS and other typological databases.
  • WALS-APiCS - Code for working with WALS-APiCS (Atlas of Pidgin and Creole Language Structures) complexity metrics.

Example Repositories

These are repositories that are generally only interesting for training purposes or seeing how something is done.

Fonts

  • fontinline - Make inline stroke paths from an outline font.
  • Noto Fonts - Noto is Google’s free font family that aims to support all the world’s scripts. Its design goal is to achieve visual harmonization across languages. Noto fonts are under Apache License 2.0.
  • Unicodify Unicodify is a suite of programs for converting text in a variety of 8-bit encodings to Unicode (using the UTF-16 encoding). Unicodify was particularly designed to handle HTML-based text using non-ISCII 8-bit fonts to render South Asian scripts. However, elements of the suite can map other types of non-ASCII 8-bit encodings, such as Latin-2, ISCII and PASCII.

Corpora

These corpora are useful for working with tools on endangered languages. Monolingual corpora that are more for archival efforts should most likely not be included here.

  • bible-corpus - A multilingual parallel corpus created from translations of the Bible.
  • poio-corpus - The Poio Corpus is a freely available collection of language resources for the lesser-used languages. The data is extracted from free sources like Wikipedia, dictionaries, documents, websites and others.

Organizations

On GitHub

  • batumi - Speech recognition and natural language processing for low-resource languages
  • BloomBooks
  • unicode-cldr - Unicode Common Locale Data Repository (CLDR) Project http://cldr.unicode.org
  • cmusphinx - Mirror of the SourceForge repositories
  • dativebase - Tools for working with OLD.
  • divvun - The Divvun group at UiT develops proofing tools, keyboard apps and other language technology solutions for minority languages, especially the Sámi languages. Website.
  • FieldDB
  • HFST - Helsinki Finite-State Technology. Website.
  • hunspell
  • keymanapp - Website.
  • langtech - Language Technology Group, University of Melbourne
  • lex4all
  • longnow
  • MontrealCorpusTools
  • moses-smt - Statistical Machine Translation.
  • mukurtucms
  • NLTK - Natural Language Toolkit.
  • PhonologicalCorpusTools)
  • Projet de recherche sur l'écriture - Crowdsourcing or conducting large scale psycholinguistics experiments (or statistically significant field linguistics).
  • prosodylab - Prosodylab at McGill University, Canada
  • SIL International (Dev) SIL International- Another SIL organization, with many repositories.
  • SIL International - SIL (originally known as the Summer Institute of Linguistics, Inc.) is probably the leading organization which provides software and tools tailored for use by field linguists and lexicographers working on endangered languages. A little known fact is that much of it's code is open sourced on GitHub and SIL is happy to recieve open source contributions and collaborate on open source projects.
  • SIL NRSI - SIL Non-Roman Script Initiative. The NRSI is a department of SIL International, whose task is to provide assistance, research and development for SIL International and its partners to support the use of non-Roman and complex scripts in language development.
  • StanfordNLP https://nlp.stanford.edu
  • ucsd-field-lab - University of California, San Diego
  • [U