Giter Site home page Giter Site logo

Speech and Natural Language Processing

Awesome

A curated list of speech and natural language processing resources. Other lists can be found in this list. If you want to contribute to this list (please do), send me a pull request.

Table of Contents

SaaS Apis

^ back to top ^

NLP SaaS

Finite State Toolkits and Regular Expressions

^ back to top ^

  • Carmel Finite-state toolkit, EM and Bayesian (Gibbs sampling) training for FST and context-free derivation forests/
  • Categorial semiring Categorial semiring as described in Sproat et al. 2014
  • dk.brics.automaton Java toolkit for FSAs and regular expression.
  • Fare Fare is a finite state and regular expression libary for the .NET framework written in C#. am is a JavaScript library for working with automata and formal grammars for regular and context-free languages
  • Foma Finite-state compiler and C library
  • fsm2.0 Thomas Hanneforths fsm 2.0 library written C++ has a few nice operations such as three-way composition
  • fstrain A toolkit for training finite-state models
  • jopenfst Java port of the C++ OpenFst library; originally forked from the CMU Sphinx project
  • Kleene programming language High level finite state programming language built on top of OpenFst.
  • MIT FST Toolkit WFST toolkit no maintained anymore but feature a few commands not found in other toolkits
  • MoMs-for-StochasticLanguages Spectral and other training algorithms for WFSAs.
  • n Shortest Path for PDT n Shortest Path for PDT
  • Noam "Noam is a JavaScript library for working with automata and formal grammars for regular and context-free languages". Also has pretty cool examples using
  • viz.js
  • OpenFst OpenFst is a library for constructing, combining, optimizing, and searching weighted finite-state transducers (FSTs).
  • openfst-utils Nice set of utilities for OpenFst includes implementation of Categorial semirings.openfst-utils.
  • openlat Toolkit for manipulating word lattice built on top of OpenFst. Includes support for reading and writing HTK compatible lattices.
  • PyFst Python interface to OpenFst
  • SFST - Stuttgart Finite State Transducer Tools "SFST is a toolbox for the implementation of morphological analysers and other tools which are based on finite state transducer technology."
  • Treba "Treba is a basic command-line tool for training, decoding, and calculating with weighted (probabilistic) finite state automata (PFSA) and Hidden Markov Models (HMMs)."

Many of the tools in the machine translation section also implement interesting graph and semiring operations.

Language Modelling Toolkits

^ back to top ^

  • Bayesian Recurrent Neural Network for Language Modeling This is a C/C++ implementation for Bayesian recurrent neural network for language modeling (BRNNLM)
  • Berkeley LM
  • Bigfatlm Provides Hadoop training of Kneser-ney language models, written in Java.
  • CSLM "Continuous Space Language Model toolkit. CSLM toolkit is open-source software which implements the so-called continuous space language model.
  • DALM Double array language model.
  • KenLM Kenneth Heafield's language model toolkit, uses a very fast and low memory representation.
  • lwlm lwlm is an exact, full Bayesian implementation of the Latent Words Language Model (Deschacht and Moens, 2009).
  • Maximum Entropy Modeling Le Zhang has a comprehensive set of links related MaxEnt models.
  • Maximum entropy language models: SRILM extension "This patch adds the functionality to train and apply maximum entropy (MaxEnt) language models to the SRILM toolkit. Currently, only N-gram features are supported"
  • mitlm My personal favourite LM toolkit, super fast and seems to get slightly higher accuracy.
  • MSRLM "This scalable language-model tool is used to build language models from large amounts of data. It supports modified absolute discounting and Kneser-Ney smoothing."
  • OpenGrm Language modelling toolkit for use with OpenFst.
  • cpyp C++ library for modeling with Pitman-Yor processes
  • RandLM Bloom filter based random language models
  • RNNLM Recurrent neural network language model toolkit.
  • Refr Re-ranking framework from the Johns-Hopkins workshop on confusion language modelling.
  • rwthlm A toolkit for training neural network language models (feedforward, recurrent, and long short-term memory neural networks). The software was written by Martin Sundermeyer.
  • SRILM Very popular toolkit, source code avaliable but only non-free for commerical use.

Speech Recognition

^ back to top ^

  • AaltoASR Aalto Automatic Speech Recognition tools
  • Barista Barista is an open-source framework for concurrent speech processing.
  • Bavieca New open source toolkit featuring static and dynamic decoders.
  • kaldi-nnet-dur-model Neural network phone duration model on top of the Kaldi speech recognition framework, (Interspeech paper)
  • CMU Sphinx Open Source Toolkit For Speech Recognition Project by Carnegie Mellon University
  • HTK "The Hidden Markov Model Toolkit (HTK) is a portable toolkit for building and manipulating hidden Markov models."
  • Juicer Juicer is a Weighted Finite State Transducer (WFST) based decoder for Automatic Speech Recognition (ASR).
  • Julius "Julius is a high-performance, two-pass large vocabulary continuous speech recognition (LVCSR) decoder software for speech-related researchers and developers."
  • Kaldi Modern open source toolkit lead by Dan Povey featuring many state-of-the-art techniques.
  • OpenDcd An Open Source WFST based Speech Recognition Decoder.
  • Phonetisaurus Josef Novak's super fast WFST based Phoneticizer, site also has some really nice tutorials slides.
  • Sail Align SailAlign is an open-source software toolkit for robust long speech-text alignment implementing an adaptive, iterative speech recognition and text alignment scheme that allows for the processing of very long (and possibly noisy) audio and is robust to transcription errors. It is mainly written as a perl library but its functionality also depends...
  • SCARF: A Segmental CRF Toolkit for Speech Recognition "SCARF is a toolkit for doing speech recognition with segmental conditional random fields."
  • trainc David Rybach and Michael Riley's tool for direct construction of context-dependency transducers (Interspeech best paper).
  • RASR RWTH ASR -The RWTH Aachen University Speech Recognition System

Signal Processing

^ back to top ^

Text-to-Speech

^ back to top ^

  • HTS HMM-based speech synthesis
  • RusPhonetizer Grammar rules and dictionaries for the phonetic transcription of Russian sentences

Speech Data

^ back to top ^

  • cmudict CMUdict (the Carnegie Mellon Pronouncing Dictionary) is a free pronouncing dictionary of English.
  • LibriSpeech ASR corpus LibriSpeech is a corpus of approximately 1000 hours of 16kHz read English speech, prepared by Vassil Panayotov with the assistance of Daniel Povey. The data is derived from read audiobooks from the LibriVox project, and has been carefully segmented and aligned.
  • TED-LIUM Corpus The TED-LIUM corpus was made from audio talks and their transcriptions available on the TED website.

Machine Translation

^ back to top ^

  • Berkeley Aligner "...a word alignment software package that implements recent innovations in unsupervised word alignment."
  • cdec "Decoder, aligner, and model optimizer for statistical machine translation and other structured prediction models based on (mostly) context-free formalisms"
  • Jane "Jane is RWTH's open source statistical machine translation toolkit. Jane supports state-of-the-art techniques for phrase-based and hierarchical phrase-based machine translation."
  • Joshua Hierarchical and syntax based machine translation decoder written in Java.
  • Moses Standard open source machine translation toolkit.
  • alignment-with-openfst
  • zmert Nice Java Mert implementation by Omar F. Zaidan

Machine Learning

^ back to top ^

  • BIDData BIDMat is a matrix library intended to support large-scale exploratory data analysis. Its sister library BIDMach implements the machine learning layer.
  • libFM: Factorization Machine Library
  • sofia-ml Fast incremental learning algorithms for classification, regression, ranking from Google.
  • Spearmint Spearmint is a package to perform Bayesian optimization according to the algorithms outlined in the paper: Practical Bayesian Optimization of Machine Learning Algorithms Jasper Snoek, Hugo Larochelle and Ryan P. Adams Advances in Neural Information Processing Systems, 2012

Deep Learning

^ back to top ^

  • Benchmarks - Comparison of different convolution network implementations.
  • Cafee - Really active deep learning toolkit with support for cuDNN and lots of other backends.
  • cuDNN - Deep neural network from Nvidia with paper here. Torch 7 has support for cuDnn and here are some Python wrappers.
  • CURRENNT - Munich Open-Source CUDA RecurREnt Neural Network Toolkit described in this paper
  • gensim - Python topic modeling toolkit with word2vec implementation. Extremly easy to use and to install.
  • Glove Global vectors for word representation.
  • GroundHog Neural network based machine translation toolkit.
  • KALDI LSTM C++ implementation of LSTM (Long Short Term Memory), in Kaldi's nnet1 framework. Used for automatic speech recognition, possibly language modeling etc.
  • OxLM: Oxford Neural Language Modelling Toolkit Neural network toolkit for machine translation described in the paper here
  • Neural Probabilistic Language Model Toolkit "NPLM is a toolkit for training and using feedforward neural language models (Bengio, 2003). It is fast even for large vocabularies (100k or more): a model can be trained on a billion words of data in about a week, and can be queried in about 40 μs, which is usable inside a decoder for machine translation."
  • RNNLM2WFST Tool to convert RNNLMs to WFSTs
  • ViennaCL ViennaCL is a free open-source linear algebra library for computations on many-core architectures (GPUs, MIC) and multi-core CPUs.

Natural Language Processing

^ back to top ^

  • BLLIP reranking parser "BLLIP Parser is a statistical natural language parser including a generative constituent parser (first-stage) and discriminative maximum entropy reranker (second-stage)."
  • OpenNLP The Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text.
  • SEAL Set expander for any language described in this paper
  • Stanford CoreNLP "Stanford CoreNLP provides a set of natural language analysis tools written in Java"
  • SPLAT "SPLAT, the Speech Processing & Linguistic Analysis Tool is an open source Python3.4 library and command line tool designed to be intuitive, efficient, and fast. Given a text, SPLAT can calculate a variety of metrics to help you with your research!"

Applications

^ back to top ^

Other Tools

^ back to top ^

  • GraphViz.sty Really handy tool adding dot languge directly to a LaTex document, useful for tweaking the small colorized WFST figure in papers and presentations.

Blogs

^ back to top ^

Books

^ back to top ^

awesome-nlp's Projects

agriculture_knowledgegraph icon agriculture_knowledgegraph

农业知识图谱(KG):农业领域的信息检索,命名实体识别,关系抽取,分类树构建,数据挖掘

awesome-nlp icon awesome-nlp

A curated list of speech and natural language processing resources

bert-as-service icon bert-as-service

Mapping a variable-length sentence to a fixed-length vector using BERT model

bustag icon bustag

a tag and recommend system for old bus driver

chinese-bert-wwm icon chinese-bert-wwm

Pre-Training with Whole Word Masking for Chinese BERT(中文BERT-wwm系列模型)

chinesetextualinference icon chinesetextualinference

ChineseTextualInference project including chinese corpus build and inferecence model, 中文文本推断项目,包括88万文本蕴含中文文本蕴含数据集的翻译与构建,基于深度学习的文本蕴含判定模型构建.

datasets icon datasets

Poetry-related datasets developed by THUAIPoet (Jiuge) group.

deepfacelab icon deepfacelab

DeepFaceLab is a tool that utilizes deep learning to recognize and swap faces in pictures and videos. Includes prebuilt ready to work standalone Windows 7,8,10 binary (look readme.md).

dianjing icon dianjing

点睛 - 头条号文章标题生成工具 (Dianjing, AI to write Title for Articles)

easy12306 icon easy12306

使用机器学习算法完成对12306验证码的自动识别

faceswap icon faceswap

Non official project based on original /r/Deepfakes thread. Many thanks to him!

fastnlp icon fastnlp

fastNLP: A Modularized and Extensible NLP Framework. Currently still in incubation.

gpt2-chinese icon gpt2-chinese

Chinese version of GPT2 training code, using BERT tokenizer.

gpt2-chitchat icon gpt2-chitchat

GPT2 for Chinese chitchat/用于中文闲聊的GPT2模型(实现了DialoGPT的MMI**)

gpt2-ml icon gpt2-ml

GPT2 for Multiple Languages, including pretrained models. GPT2 多语言支持, 15亿参数中文预训练模型

ml-nlp icon ml-nlp

此项目是机器学习(Machine Learning)、深度学习(Deep Learning)、NLP面试中常考到的知识点和代码实现,也是作为一个算法工程师必会的理论基础知识。

novel-plus icon novel-plus

novel-plus 是一个多端(PC、WAP)阅读 、功能完善的小说 CMS 系统。包括小说推荐、小说检索、小说排行、小说阅读、小说书架、小说评论、小说爬虫、会员中心、作家专区、充值订阅、新闻发布等功能。

nsfw_data_scraper icon nsfw_data_scraper

Collection of scripts to aggregate image data for the purposes of training an NSFW Image Classifier

open icon open

The most boring open source you've ever seen ....

paperlist icon paperlist

A paper list of automatic poetry generation, analysis, translation, etc.

py12306 icon py12306

🚂 12306 购票助手,支持分布式,多账号,多任务购票以及 Web 页面管理

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.