Festival đã hỗ trợ việc lấy pitchmark tự động tuy nhiên việc lấy được pitchmark tốt là rất quan trọng, một đoạn carrier có quá nhiều, hay quá ít pitchmark đều không tốt. Lấy pitchmark tự động rất dễ bị rơi vào trường hợp này. Đây là cách tôi thực hiện để có thể lấy được một pitch mark tốt dựa theo hướng dẫn của [15].
Script make_pm_wave có được gọi với một vài tham số mà ta cần phải quan tâm như sau:
min – là khoảng thời gian ngắn nhất giữa hai pitchmark (được tính bằng giây)
max – là khoảng thời gian dài nhất giữa hai pitchmark (được tính bằng giây)
def – là chu kỳ pitchmark mặc định. Thông thường được đặt là 0.01 giây. wave_end – đặt pitch mark cuối cùng ở kết thúc của sóng.
lx_lf – cận dưới của tần số lx_hf – cận trên của tần số
Các bước để lấy pitch của 1 file, ví dụ file wav/vn_0001.wav:
Sửa giá trị min và max cho phù hợp với giọng người đọc. Một người đọc là nam nên đặt min = 0.005, max = 0.012 (tức là 200 đến 80 Hz). Nếu người đọc là nữ, nên đặt min = 0.0033, max = 0.7 (tương đương với (300 tới 140 Hz).
Chạy script bin/make_pm_wave wav/vn_0001.wav để lấy pitchmark. Chạy script make_pmlab_pm. Script này đổi file pitchmark thành một file
có thể biểu diễn được bằng công cụ emulabel (công cụ đã có sẵn trong Festival): bin/make_pmlab_pm pm/vn_0001.pm
Hình 10 Pitchmark của sóng "taa taa taa"
Ta phải lặp lại việc hiệu chỉnh các thông số cho tới khi thu được một pitch mark như ý.