Trong bài viết này, chỉ sử dụng các bước tiền xử lý đơn giản trên tập các đỉnh của tín hiệu tổng tích lũy của sóng tiếng nói hữu thanh, chúng tôi đã đề xuất một thuật toán mới để ước lượng các điểm PM mà không cần phải thực hiện bước ước lượng các giá trị F0. Thực nghiệm đã chứng tỏ phương pháp đề xuất cho kết quả tương đương với các phương pháp truyền thống.
Nghiên cứu khoa học cơng nghệ THUẬT TỐN ƯỚC LƯỢNG CÁC ĐIỂM ĐÁNH DẤU PITCH CỦA SÓNG TIẾNG NÓI TRONG MIỀN THỜI GIAN DỰA TRÊN TẬP ĐỈNH CỦA TÍN HIỆU TỔNG TÍCH LŨY Tạ Yên Thái1*, Nguyễn Văn Hùng2, Vũ Thị Hải Hà3, Đặng Duy An4 Tóm tắt: Để định vị điểm đánh dấu pitch (PM) sóng tiếng nói, thuật tốn biết phải ước lượng giá trị đường F0 trước Đây bước u cầu sử dụng mơ hình phức tạp không diễn giải cách trực quan Trong báo này, sử dụng bước tiền xử lý đơn giản tập đỉnh tín hiệu tổng tích lũy sóng tiếng nói hữu thanh, chúng tơi đề xuất thuật tốn để ước lượng điểm PM mà không cần phải thực bước ước lượng giá trị F0 Thực nghiệm chứng tỏ phương pháp đề xuất cho kết tương đương với phương pháp truyền thống Ngoài báo đề xuất áp dụng thuật toán để tổng hợp đường F0 âm tiết tiếng Việt dựa biểu diễn điệu dạng qTA Xu Từ khóa: Hữu thanh/vơ thanh; Điểm đánh dấu chu kỳ pitch; Epoch; Pulse, Đỉnh; Tổng tích lũy; Cộng chồng đồng bộ; Tổng hợp tiếng nói; Mơ hình Xu; Lương hóa xấp xỉ hướng đích qTA MỞ ĐẦU Để biến đổi đường F0 ngữ đoạn âm thanh, âm tiết thành ngữ đoạn có đường F0 thay đổi, âm tiết mang điệu khác, cần xác định dạng đường F0 đích điểm đánh dấu pitch (PM-Pitch mark, Pulse) âm gốc [1, 2], sau sử dụng cơng cụ nắn chỉnh đường F0 chẳng hạn thuật tốn PSOLA [3] Do việc xác định giá trị đường F0 ngữ đoạn tiếng nói, điểm PM cách điệu để khái quát cho đường F0 âm đích điểm quan trọng để tổng hợp tiếng Việt [3] Vấn đề ước lượng giá trị F0 xác định điểm đánh dấu chu kỳ pitch (các điểm PM, gọi điểm đánh dấu chu kỳ F0) vấn đề mở, có nhiều thuật tốn để ước lượng F0 xác định điểm PM, xem chẳng hạn [2, 4-7] Ngoài ra, hầu hết phương pháp dựa thuật toán quy hoạch động kiểu Talkin [6], kỹ thuật xác định PM dựa nhiều giai đoạn [2], kỹ thuật xác định PM miền tần số [7] v.v Các tiếp cận xác định điểm PM sóng tiếng nói, nói chung lựa chọn điểm PM dựa điểm đỉnh thung lũng sóng tiếng nói [7,8] Ngồi có tiếp cận dựa điểm Pulse (xung) kiểu phần mềm Praat [9] Các điểm Pulse Praat xác định xung quanh điểm tín hiệu tiếng nói đổi dấu từ âm sang dương, điểm thung lũng đỉnh Các phương pháp xác định điểm PM bao gồm hai bước: ước lượng giá trị F0 phần tiếng nói hữu (tạm gọi giá trị F0 ”thơ”), sau định vị điểm PM Điều xuất phát từ nguyên nhân biên độ tín hiệu tiếng nói miền thời gian thường biến đổi xung quanh điểm PM Một điểm PM không thiết điểm có biên độ lớn so với đỉnh sóng tiếng nói khác kề Vì vậy, xác định điểm PM dựa trực tiếp sóng tiếng nói khơng cần phân chia tín hiệu tiếng nói đầu vào thành khung (yêu cầu bắt buộc cần ước lượng F0) việc tính tốn đơn giản, khơng phải vận dụng phép biến đổi tín hiệu sang miền tần số kết điểm PM không bị ảnh hưởng tham số độ dài khung Đây tiếp cận chúng tơi đề xuất báo Phần lại báo tổ chức sau: Phần 2, trình bày số nghiên cứu liên quan thuật toán Talkin theo tiếp cận tối ưu hàm mục tiêu dạng quy hoạch động, Tạp chí Nghiên cứu KH&CN quân sự, Số 58, 12 - 2018 147 Công nghệ thông tin & Cơ sở toán học cho tin học tiếp cận xác định điểm chu kỳ dựa điểm Pulse Praat; Phần đề xuất thuật toán sử dụng tín hiệu tổng tích lũy để xác định điểm PM; Các kết thực nghiệm đưa phần 4; Kết luận cho phần NGHIÊN CỨU LIÊN QUAN Trong cơng trình [2,6,8,9,10,11] thuật toán định vị điểm PM thường gồm hai bước xử lý, bước ước lượng giá trị F0 thô việc việc sử dụng hệ số tự tương quan ( nói chung giá trị F0 thô ước lượng bước khơng tạo đường trơn) Tín hiệu tiếng nói đầu vào chia thành khung thời gian ngắn (gọi frame) có độ dài nằm khoảng 10-30 ms (mili giây), hai khung liên tiếp chồng lên với độ dài chồng lên số P (P thuộc khoảng 5-15ms) Trên khung thời gian ngắn framet, ta tính hệ số tự tương quan sau: def M 1 k (1) k 0, M 1, Rk ,t framet (i) framet (k i ),1 t T i 0 , {frame t (i)}iM 01 mẫu tín hiệu tiếng nói framet , M số lượng mẫu framet T số lượng khung Tiếp theo, ước lượng giá trị F0 khung tính hiệu ngắn framet sau: F0 (t ) fs , fs tần số lấy mẫu tín hiệu tiếng nói k0,t def k0,t arg max{R k ,t } 1 k M 1 Độ xác ước lượng F0 thô theo công thức phụ thuộc vào tham số độ dài khung (với tiếng nói có tần số F0 thấp giọng nam chẳng hạn tham số độ dài cửa sổ phải đủ lớn), ngồi k0,t khơng đỉnh phù hợp [6] Về phương pháp chuẩn hóa hệ số tự tương quan ước lượng F0 khác sử dụng thuật toán quy hoạch động(để chọn đỉnh phù hợp) xem thuật tốn RAPT [6]} KỸ THUẬT ĐỀ XUẤT Trong phần này, chúng tơi trình bày kỹ thuật xác định điểm PM tập hợp đỉnh tín hiệu tổng tích lũy Sử dụng tín hiệu tổng tích lũy, đỉnh (peaks, điểm cực đại địa phương) tín hiệu biên tập (loại bỏ, chèn thay thế) thông qua nhiều bước tiền xử lý Các bước tiền xử lý tương đối đơn giản, khơng cần tính tốn phức tạp đặc điểm tín hiệu tổng tích lũy Tiếp theo đề xuất phương pháp xác định điểm chu kỳ pitch dựa đỉnh, điểm thung lũng điểm tín hiệu tiếng nói gốc 3.1 Phân đoạn tiếng nói định hữu thanh/vơ Bước để xác định điểm chu kỳ pitch ngữ đoạn tiếng nói phân đoạn tiếng nói/nền thiết lập định tính hữu thanh/vơ cho đoạn tiếng nói Để thực nhiệm vụ này, sử dụng giá trị lượng giá trị đo số lần đổi dấu tín hiệu tiếng nói gốc sau: Giá trị lượng khung: def M t 1, T , Et x(t 1)*M i (2) , Độ đo số lần đổi dấu tính từ mẫu trở trước xác định sau: i 0 Z x ( m) 148 M m n m M 1 sign( xn ) sign( xn 1 ) , m M 1, N , (3) T Y Thái, …, Đ D An, “Thuật toán ước lượng điểm … tín hiệu tổng tích lũy.” Nghiên cứu khoa học công nghệ , N số lượng mẫu sóng tiếng nói đầu vào sign(x) hàm dấu x Chúng ta có luật định sau: A1: Khung tiếng nói framet0 thuộc Et0 E *max{Et } (4) 1t T A2: mẫu xm thuộc phần vô (5) Z x (m) z Các tham số E z xác định thực nghiệm (chẳng hạn, chọn E = 1/30, z = 0.17) 3.2 Tập đỉnh tín hiệu tổng tích lũy phương pháp xác định điểm PM tín hiệu tiếng nói gốc Định nghĩa 3.1: Trên đoạn tiếng nói miền thời gian (hoặc miền tần số) khơng giảm tính tổng quát giả sử tín hiệu x lấy mẫu đoạn [-a, a] với a>0 đó, x {x j }1 j N xác định dãy tổng tích lũy s {s j}1 j N , def j s1 x1 j 2, N , s j s j 1 xj xt dt (6) (a) (b) Hình (a) Câu “Trời nghe trở gió ầm ầm mặt nước” trích truyện “Dế mèn phiêu lưu ký” (b) Tín hiệu tổng tích lũy đoạn tín hiệu âm tiết /gió/ Với x {x j}1 j N , ký hiệu z x z x hai tập giá trị thời gian tín hiệu tiếng nói đổi dấu từ dương sang âm ngược lại sau: def def z x i | xi xi 1 0 , z x i | xi xi 1 0 (7) Ngoài ra, ký hiệu def def x i | xi 0 , x i | xi 0 (8) peak(x) tập đỉnh x (để xác định peak(x), xem [14]) Chúng ta có tính chất sau thể tính chất đỉnh tín hiệu tổng tích lũy quan hệ với điểm tín hiệu tiếng nói gốc: Tính chất 1: (i) peak s z x peak s z x , s tín hiệu tổng tích lũy x (ii) Nếu i, j x s , s i i 1 , , s j dãy số đơn điệu tăng, i, j x si , si 1 , , s j dãy số đơn điệu giảm Chứng minh (i) i peak s si si 1 si si 1 xi si si 1 xi 1 si 1 si xi xi 1 i z x Tạp chí Nghiên cứu KH&CN quân sự, Số 58, 12 - 2018 149 Công nghệ thơng tin & Cơ sở tốn học cho tin học Do peak s z x (ii) i, j x k i, j 1, xk sk 1 sk xk sk 1 sk Ngoài ra, i, j x k i, j 1, xk sk 1 sk xk sk 1 sk Hình thể mục (i) tính chất Các điểm PM định vị điểm đỉnh tín hiệu tổng tích lũy khoanh vòng tròn nhỏ, quy chiếu tiếng nói gốc, chúng điểm tín hiệu tiếng nói gốc tín hiệu gốc đổi dấu từ dương sang âm (a) Quy chiếu đỉnh tín hiệu tổng tích lũy điểm thời gian tín hiệu tiếng nói gốc( điểm đổi dấu khoanh tròn nhỏ) (b) Các đỉnh tín hiệu tổng tích lũy tương ứng Hình Quy chiếu đỉnh tín hiệu tổng tích lũy sang điểm tín hiệu tiếng nói gốc (các đỉnh khoanh tròn, điểm này, tín hiệu tiếng nói gốc đổi dấu từ dương sang âm của) Hình Phân đoạn tự động thành 7- đoạn hữu câu “Đừng lo, xem mây vận trời đêm có đổi gió.” – Trích truyện “Dế mèn phiêu lưu ký”, đoạn hiển thị cặp đường viền đứt nét đỏ-xanh( sử dụng thuật tốn bước 1) Hình thể q trình xác định tín hiệu tổng tích lũy đoạn hữu tín hiệu tiếng nói đầu vào Ở nhấn mạnh tín hiệu tổng tích lũy khơng tính lần tồn tín hiệu tiếng nói gốc (a) (b) Hình (a) Một phần tín hiệu đoạn thứ hai 7- đoạn hữu (b) Tín hiệu tổng tích lũy tương ứng 150 T Y Thái, …, Đ D An, “Thuật toán ước lượng điểm … tín hiệu tổng tích lũy.” Nghiên cứu khoa học cơng nghệ Trên hình 4.b ta thấy tín hiệu tổng tích lũy có đỉnh nhiều so với đỉnh tín hiệu tiếng nói gốc Các đỉnh điểm đánh dấu pitch tín hiệu tiếng nói gốc khơng phân biệt giá trị biên độ so với đỉnh tín hiệu xung quanh Ngược lại với tín hiệu tổng tích lũy, đỉnh điểm đánh dấu pitch thường có giá trị biên độ cao điểm tín hiệu xung quanh Từ chúng tơi đề xuất tiếp cận mới, việc tìm điểm đánh dấu pitch dựa đỉnh sóng âm gốc thay việc xác định điểm PM từ tập đỉnh tín hiệu tổng tích lũy tín hiệu gốc (xem mục (i) tính chất 1) Các tập đánh dấu pitch: Tiếp theo, đề xuất cách xác định PM tín hiệu tiếng nói gốc Xuất phát từ tập PM tín hiệu tổng tích lũy chúng tơi xác định tập PM tiếng nói gốc dựa tập đỉnh tập thung lũng Định nghĩa 3.1: Giả sử x {x j}1 j N đoạn tín hiệu tiếng nói hữu s {s j}1 j N tín hiệu tổng tích lũy x Giả sử PMZ x pmz j tập PM s (được xác đinh tập đỉnh s) Chúng ta ký hiệu PMZ x , PM x PM x tập PM suy dẫn từ giá trị PM kề PMZ x , chúng xác định sau: def PMZ x {k / j , k min{l/l peak ( s ), pmz j 1 l pmz j } def PM x {k / j : k min{l / l peak ( x), pmz j 1 l pmz j }} def PM x k / j , k min{l / l peak ( x), pmz j 1 l pmz j }} (9) (10) (11) Để xác định tập điểm chu kỳ pitch PMZ x trước hết cần xác định tập đỉnh tín hiệu tổng tích lũy peak(sk), sau sử dụng luật loại bỏ chèn để chọn điểm chu kỳ pitch tín hiệu tiếng nói gốc Do tính chất tốn học tín hiệu tổng tích lũy sử dụng luật đơn giản trực giác sau để xác định PMZ x đoạn tiếng nói hữu thứ k: B1: (Chọn phần tử PM đầu tiên) PMZ k, x { pk ,1} , đó: def meank sk ,n n peak { sk } # peak{sk } , pk ,1 arg sk ,n meank n peak { sk } (12) (PM pk,1 sk, đỉnh sk có biên độ khơng ngưỡng meank) B2: (Bổ sung PM tạm thời tiếp theo) Nếu tồn m peak(sk) (13) m pk , j [fs / f0,max ,fs / f0,min ] với pk , j max{PMZ k, x } PMZ k, x PMZ k, x {m} B3: (Xóa PM tạm thời) Nếu có PM tạm thời liên tiếp pk,j-1, pk,j PMZ k, x cho: pk , j pk , j1 [fs / f0,max ,fs / f0,min ] (14) PMZ k, x PMZ k, x \ { pk , j } B4: (Xóa PM tạm thời) Nếu có PM tạm thời liên tiếp pk,j-1, pk,j, pk,j+1 PMZ k, x cho Tạp chí Nghiên cứu KH&CN quân sự, Số 58, 12 - 2018 151 Công nghệ thơng tin & Cơ sở tốn học cho tin học min{ pk , j pk , j1 , pk , j1 pk , j } 0.5* max{ pk , j pk , j1 , pk , j1 pk , j } sk , p sk , p ,s k , j1 k , pk , j1 k, j (15) PMZ k, x PMZ k, x \ { pk , j } B5: (Chèn đỉnh vào tập PM tạm thời) Nếu có PM tạm thời liên tiếp pk,j-1, pk,j, pk,j+1 PMZ k, x cho p k , j p k , j * ( p k , j p k , j ) (16) PMZ k, x PMZ k, x {m} , với m chọn: (17) m peak ( S k ) : pk , j m pk , j 1 , m ( pk , j pk , j 1 ) / ( tham số thực nghiệm, > 1) B6: (Thay giá trị PM tạm thời) Nếu có PM tạm thời liên tiếp pk,j-1, pk,j , pk,j+1 PMZ k, x cho: m peak S p k , j T /2, pk , j T /2 def t p k, j L / 2, pk , j L / sk ,t sk ,m gán lại pk,j = m, với L pk , j pk , j 1 , pk , j 1 pk , j (18) Sử dụng luật B1-B6, thuật toán xác định PM từ tập đỉnh tín hiệu tổng tích lũy thiết lập sau: Thuật toán 1: EPM (Ước lượng PM tín hiệu tiếng nói) Đầu vào: Tín hiệu tiếng nói {x m }1 m N miền thời gian Tần số lấy mẫu fs , [f0,min, f0,max] khoảng giá trị F0 Đầu ra: Số đoạn hữu K, tập PM tương ứng với kiểu pm p k , j 1 k K ,1 j n k k , j 1 k K ,1 j n k ,2 , pmk, j 1 k K ,1 j nk , p k , j 1 k K ,1 j n k ,2 , , với pm k , j 1 k K ,1 j n k , pmk, j 1 k K ,1 j nk tập PM kiểu truyền thống Bước 1: Phân đoạn tín hiệu đầu vào {x m }1 m N thành K đoạn hữu thanh, {x m }Nk ,1 m Nk ,2 lại đoạn vơ Bước 2: Lặp, đoạn hữu {x m }Nk ,1 m Nk ,2 , k 1, K xác định PMZ x, k : 2.1: Xác định tín hiệu tổng tích lũy sk ={s m }Nk ,1 m Nk ,2 , k 1, K sử dụng công thức (6) 2.2: Xác định tập đỉnh sk, tính giá trị trung bình biên độ đỉnh sk: meank sk ,n / # peak sk ,n n peak { S k } 2.3: Xác định PM PMZ x,k luật B1 2.4 Lặp lại bước 2.5-2.8 Khi điều kiện luật B2-B7 đúng: 2.5 Sử dụng luật B2 để mở rộng PMZ x, k 2.6: Sử dụng luật B3 B5 để rút gọn PMZ x, k 2.7: Sử dụng luật B5 để mở rộng PMZ x, k 2.8: Sử dụng luật B6 để gán lại giá trị phần tử PMZ x, k 2.9: Dừng thu PMZ x,k 152 T Y Thái, …, Đ D An, “Thuật tốn ước lượng điểm … tín hiệu tổng tích lũy.” Nghiên cứu khoa học cơng nghệ 2.10: Xác định tập PM từ đỉnh đoạn tiếng nói hữu thứ k {x m }Nk ,1 m Nk ,2 Với khoảng PM liên tiếp PMZ x , tìm pmk, j max peak xn p k , j n pk , j 1 thu PM x,k {pmk, j } 2.11: Xác định tập PM từ điểm thung lũng đoạn tiếng nói hữu thứ k {x m }Nk ,1 m Nk ,2 Với khoảng PM liên tiếp PMZ x , tìm pmk, j peak xn p k , j n pk , j 1 thu PM x,k {pmk, j } Bước 3: Xác định tập PM tương tự kiểu Praat [9], tương tự bước trên, lấy điểm thung lũng tín hiệu tổng tích lũy thu của{x } PMZ x,k = p k, j m Nk ,1 m Nk ,2 x Bước 4: Đặt PMZ PMZ 1 k K , k 1, K x ,k , PMZ x PMZx ,k , PM x PM x,k PM x PM x,k 1 k K 1 k K 1 k K Trả lại: K, PMZ x , PMZ x , PM x PM x Độ phức tạp thuật toán O(N) Lưu đồ thuật tốn đề xuất (Hình 5) xây dựng sau: Bắt đầu Phân đoạn tiếng nói giá trị lượng Phân đoạn hữu thanh/vô số ZC Xác định tín hiệu tổng tích lũy đoạn hữu Xác định tập đỉnh tín hiệu tổng tích lũy đoạn hữu Tiền xử lý chọn đỉnh xác định chu kỳ pitch Xác định điểm PM Kết thúc Hình Lưu đồ xử lý thuật toán đề xuất 3.3 Áp dụng biến đổi điệu âm tiết tiếng Việt Để thử nghiệm thuật toán xác định PM đề xuất, phần ứng dụng vào tổng hợp điệu – chuyển tín hiệu tiếng nói âm tiết mang ngang (thanh Tạp chí Nghiên cứu KH&CN quân sự, Số 58, 12 - 2018 153 Cơng nghệ thơng tin & Cơ sở tốn học cho tin học không dấu âm tiết không tận p-t-c/ch) thành tín hiệu âm tiết mang dấu (huyền, sắc, nặng, hỏi ngã) Chúng ta thực bước tiến phân tích để tổng hợp sau: Bước Xác định đường cách điệu F0 điệu mong muốn sử dụng biểu diễn qTA mơ hình Xu [12,13]: (19) f t at b (ct dt g )e t Với tín hiệu âm tiết cho trước, sử dụng thủ tục tối ưu giải hàm mục tiêu (24) sau ước lượng tham số [a,b,c,d,g,k] (λ > 0, đặt k=e-λ nên 0