belambert / javafst

Partial Java implementation of OpenFST.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

javafst

Build Status codecov

This is mostly taken from Sphinx with a small amount of clean-up, making it obey Google style checks, etc.

I've needed to extract this code from the Sphinx4 repo a number of times, so I decided to finally give it another home here. I dont plan to make any major modifications, but I might hack on it a little here or there. Please feel free to make contributions.

Automatically generated javadoc here.

You might find JOpenFst to be useful too.

Supported OpenFST operations

Operation javafst
ArcMap
ArcSort Y
Closure
Compose Y
Concat
Connect Y
Decode
Determinize Y
Difference
Disambiguate
Encode
EpsNormalize
Equal
Equivalent
Intersect
Invert
Isomorphic
Minimize
Operation javafst
Project Y
Prune
Push
RandEquivalent
RandGen
Relabel
Replace
Reverse Y
Reweight
RmEpsilon Y
ShortestDistance
ShortestPath
StateMap
Synchronize
TopSort
Union
Verify

TODO

The original code could be modernized in a number of ways, especially to take advantages of Java8 features. Here is a short list of some of the things that could be done:

  • Use null less.
  • The mutable/immutable distinction is a little weird.

Need tests, especially for:

  • FST output
  • Immutable FSTs

For reference you can find the C++ code here.

About

Partial Java implementation of OpenFST.

License:Other


Languages

Language:Java 99.3%Language:Shell 0.7%