初めに
まだ試験的ですが以下のライブラリが出てきていたので触ってみます
対応言語は英語のみのため、日本語を使いたい場合は自前で学習する必要があります。
モデル/アーキテクチャ
- Wav2Vec2 によるフレームレベルの音素予測
- 強制アラインについては、予測された音素 posterior を、Viterbi decodingで転写音素列に整列して時間境界を得る
開発環境
- Windows 11
- uv
環境構築
uvが入っている前提で以下を実行します
uv sync
実行
サンプルデータを使って実行してみます
uv run python scripts\\run_inference_workflow.py --examples-dir examples --output-dir outputs
出力結果 (0.wav)は以下のようになります
File type = "ooTextFile" Object class = "TextGrid" xmin = 0 xmax = 2.37 tiers? <exists> size = 2 item []: item [1]: class = "IntervalTier" name = "phones" xmin = 0 xmax = 2.37 intervals: size = 8 intervals [1]: xmin = 0 xmax = 0.42 text = "[SIL]" intervals [2]: xmin = 0.42 xmax = 0.57 text = "B" intervals [3]: xmin = 0.57 xmax = 1.37 text = "ER" intervals [4]: xmin = 1.37 xmax = 1.43 text = "D" intervals [5]: xmin = 1.43 xmax = 1.51 text = "HH" intervals [6]: xmin = 1.51 xmax = 1.73 text = "AW" intervals [7]: xmin = 1.73 xmax = 2.05 text = "S" intervals [8]: xmin = 2.05 xmax = 2.37 text = "[SIL]" item [2]: class = "IntervalTier" name = "words" xmin = 0 xmax = 2.37 intervals: size = 3 intervals [1]: xmin = 0 xmax = 0.42 text = "[SIL]" intervals [2]: xmin = 0.42 xmax = 2.05 text = "birdhouse" intervals [3]: xmin = 2.05 xmax = 2.37 text = "[SIL]"