Trong chương 2, chúng ta đã biết, trước khi ghép nối ta cần thực hiện hai thao tác: thay đổi cao độ tần số cơ bản với PSOLA [13] và làm trơn biên ghép nối. PSOLA có sử dụng thao tác cửa sổ hóa còn làm trơn sử dụng các đỉnh tiếng nói ở đầu và cuối của các đoạn âm thanh.
Thao tác dò tìm đỉnh tiếng nói khá phức tạp phải dùng đến một thuật toán riêng để giải quyết. Như vậy, chi phí tính toán của thuật toán này cũng không nhỏ. Nếu như với mỗi đoạn tiếng nói của mỗi bán âm tiết được lưu trong CSDL, ta tìm trước các đỉnh tiếng nói và cũng lưu vào CSDL thì chi phí tính toán khi sinh tiếng nói sẽ giảm đi rất nhiều. Tôi đã sử dụng phần mềm Praat [22] để xác định các đỉnh tiếng nói ứng với các bán âm tiết và lưu vào CSDL.
Hình 3.3: Xác định các đỉnh tiếng nói.
Thao tác cửa sổ tuy chỉ tính toán với một công thức đơn giản nhưng chi phí để tính hàm cos cũng không nhỏ trên hệ thống có tài nguyên hạn chế. Để giải quyết vấn đề này, chúng ta có thể lưu sẵn giá trị của hàm cửa số ứng với mỗi mẫu. Chúng ta biết rằng mỗi frame tiếng nói có độ dài từ 10ms – 30ms để đảm bảo giả thiết tuần hoàn. Số mẫu N của mỗi frame thuộc miền [
1000 10fs , 1000 30fs ]. Trong trường hợp của tôi, tần số lấy mẫu fs là 11 kHz, mỗi frame có độ dài 20ms. Khi này, có thể tính được N bằng 220 và chúng ta có thể dễ dàng lưu lại 220 giá trị của hàm cửa sổ