1. Đặt vấn đề
Montreal Force Aligner (MFA) là một thư viện Python dùng để align time stamp cho file âm thanh và và file text kịch bản. Timestamp này sẽ dùng để hiển thị từ nào đang được phát âm.
Lệnh mfa align cho phép xuất dữ liệu time stamp ra dạng JSON. Tuy nhiên file JSON này rất to và cồng kềnh. Nhiệm vụ là cần phải sửa đổi mã nguồn gốc của MFA để sửa lại hàm xuất JSON rồi sau đó đóng gói lại thành docker image.
2. Cấu hình môi trường mfa trên local
Đầu tiên bạn cần phải cài đặt conda. Phần này trên mạng nhiều bạn tự tìm hiểu.
Bước 1: Tải mã nguồn
git clone https://github.com/MontrealCorpusTools/Montreal-Forced-Aligner.git
Bước 2: sửa file environment.yml
bỏ đi các dòng lệnh cuối cùng để chỉ còn
  - pip:
      - build
      - twine
Bước 3: Vào thư mục chứa mã nguồn MFA có file environment.yml, chạy lệnh
conda env create -n mfa-dev -f environment.yml
Bước 4: Kích hoạt môi trường mfa-dev vừa đặt ở bước 3
conda active mfa-dev
Bước 5: nạp toàn bộ mã nguồn mfa vào môi trường mfa-dev
Vẫn trong thư mục mã nguồn MFA chạy lệnh
pip install -e .
Bước 6: kiểm tra mfa đã được cài đúng chưa bằng lệnh
mfa version
Nếu đã ok thì chạy lệnh, dấu … thể hiện c
mfa align in/ english_mfa english_mfa out/ --clean --use_mp --output_format json
3. Lập trình debug mfa sử dụng VSCode hoặc Cursor
Bước 1:
Dùng IDE mở thư mục chứa mfa. Tạo thư mục .vscode có file launch.json như sau
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug MFA Align",
      "type": "debugpy",
      "request": "launch",
      "program": "${workspaceFolder}/montreal_forced_aligner/__main__.py",
      "args": ["align", "in_data", "english_mfa", "english_mfa", "out_data", "--clean", "--output_format json"],
      "console": "integratedTerminal",
      "justMyCode": false
    }
  ]
}
Chú ý thay “in_data” bằng đường dẫn thư mục chứa file âm thanh và kịch bản text
còn “out_data” bằng đường dẫn thu mục chứa kết quả sau khi align timestamp
Tham số args thực ra sẽ chạy lệnh
mfa align in_data/ english_mfa english_mfa out_data/ --clean --output_format json 
Bước 2: Trong IDE menu, chọn View > Command Pallete… > Python : Select Interpreter …>
Chọn tiếp Python 3.13.9 (‘mfa-dev’) <-- đây là môi trường conda đã tạo ở các bước trên,
Bước 3: Chạy debug ở file__main.py__ trong thư mục montreal_force_aligner 

Bình luận