Coidemo/mlx-forced-aligner

CTC Forced Alignment on Apple Silicon using MLX - torch-free word/character-level timestamps

0

stars

6

commits

Python

primary language

Apr 7, 2026

updated

README

mlx-forced-aligner

CTC Forced Alignment on Apple Silicon using MLX.

PyTorch不要で、wav2vec2を使った文字・単語レベルのタイムスタンプ生成を行います。

Requirements

  • macOS with Apple Silicon (M1/M2/M3/M4)
  • Python 3.10+

Installation

pip install mlx-forced-aligner

Usage

Python API

from mlx_forced_aligner import ForcedAligner

aligner = ForcedAligner()  # デフォルト: 日本語モデル (Coidemo/wav2vec2-japanese-mlx)
result = aligner.align("audio.wav", "こんにちは世界")

for word in result.words:
    print(f"{word.word}: {word.start_time:.3f} - {word.end_time:.3f}")

セグメント付きアライメント

segments = [
    {"start": 0.0, "end": 5.0, "text": "こんにちは"},
    {"start": 5.0, "end": 10.0, "text": "世界"},
]
result = aligner.align("audio.wav", "", segments=segments)

CLI

# テキストをアライメント
mlx-align align audio.wav "こんにちは世界"

# セグメントファイルを使用
mlx-align align audio.wav --segments segments.json

# HuggingFaceモデルをMLX形式に変換
mlx-align convert --model jonatasgrosman/wav2vec2-large-xlsr-53-japanese

License

MIT

Contributors

ikoanedi5

6 commits

Coidemo/mlx-forced-aligner

CTC Forced Alignment on Apple Silicon using MLX - torch-free word/character-level timestamps

0

stars

6

commits

Python

primary language

Apr 7, 2026

updated

README

mlx-forced-aligner

CTC Forced Alignment on Apple Silicon using MLX.

PyTorch不要で、wav2vec2を使った文字・単語レベルのタイムスタンプ生成を行います。

Requirements

  • macOS with Apple Silicon (M1/M2/M3/M4)
  • Python 3.10+

Installation

pip install mlx-forced-aligner

Usage

Python API

from mlx_forced_aligner import ForcedAligner

aligner = ForcedAligner()  # デフォルト: 日本語モデル (Coidemo/wav2vec2-japanese-mlx)
result = aligner.align("audio.wav", "こんにちは世界")

for word in result.words:
    print(f"{word.word}: {word.start_time:.3f} - {word.end_time:.3f}")

セグメント付きアライメント

segments = [
    {"start": 0.0, "end": 5.0, "text": "こんにちは"},
    {"start": 5.0, "end": 10.0, "text": "世界"},
]
result = aligner.align("audio.wav", "", segments=segments)

CLI

# テキストをアライメント
mlx-align align audio.wav "こんにちは世界"

# セグメントファイルを使用
mlx-align align audio.wav --segments segments.json

# HuggingFaceモデルをMLX形式に変換
mlx-align convert --model jonatasgrosman/wav2vec2-large-xlsr-53-japanese

License

MIT

Contributors

ikoanedi5

6 commits

Languages

Python

100.0%