AI & ML interests

None defined yet.

Organization Card

Montreal Forced Aligner – Polyglot Implementation

Multiple language implementations of the same forced alignment API for load balancing and educational purposes.

This project provides several API wrappers around Montreal Forced Aligner (MFA), implemented in different programming languages but exposing the same HTTP interface.


Available Languages

  • Python – Native Montreal Forced Aligner implementation
  • Node.js – JavaScript wrapper
  • Go – Go wrapper
  • More languages can be added as needed

Each implementation runs independently and exposes the same API, allowing them to be used interchangeably.


Why Multiple Languages?

Load Balancing

More implementations mean more concurrent processing spaces.

Each service can handle jobs independently, increasing total alignment capacity.

Learning Resource

This project demonstrates how the same alignment service can be implemented in multiple programming languages.

Developers can study the implementations to understand how to integrate Montreal Forced Aligner across different ecosystems.

Flexibility

Contributors can use their preferred programming language while still maintaining compatibility with the overall system.

All code is open source and available under the MIT License.


How It Works

All implementations expose the same HTTP API:

POST /align

Submit an alignment job.

GET /job/{id}

Check the status of a specific job.

GET /queue/status

Check if the service has available capacity.

The ArchNemix controller automatically routes jobs to any available service instance.


Model

This project uses Montreal Forced Aligner (MFA) with compatible acoustic models and pronunciation dictionaries to perform speech-to-text forced alignment.


Performance

  • ~5–20 seconds per job (depending on audio length)
  • 2 concurrent jobs per service
  • Total capacity increases as more language implementations are added

Part of ArchNemix

These services are part of the ArchNemix Text-to-Video pipeline.

They are not primarily intended for standalone use, but they can still be used independently.


Contributing

Want to add another language implementation?

  1. Fork any existing implementation
  2. Translate it into your preferred programming language
  3. Keep the same API contract

This ensures compatibility with the ArchNemix controller.


License

MIT

models 0

None public yet

datasets 0

None public yet