Professional Documents
Culture Documents
Hình ảnh ở đây rất phức tạp, và mọi thứ nói dễ hơn làm. Đối với chúng tôi, một điểm khởi đầu đơn giản hơn nên được
tìm thấy. Sự phân biệt hữu thanh/Vô thanh/Im lặng (VUS) thường được đưa ra cho một người khởi đầu trong sách giáo
khoa [Rabiner và Schafer, 1978, Kondoz, 2004]. Đây là những gì chúng tôi hướng tới trong chương này. Có vẻ như không
nhiều, nhưng đó là một khởi đầu cho nhận dạng giọng nói, cho phép sự tách biệt của tất cả các âm vị hữu thanh khỏi tất
cả các âm vị vô thanh. (Các âm vị liên quan đến cả hai ví dụ các trích dẫn của hợp âm thanh và sự co thắt đường thanh
âm thực sự là cả hợp âm và không được chỉnh âm, nhưng bây giờ chúng ta hãy giữ cho nó đơn giản.)
Trong chương này, chúng ta sẽ đề cập đến các kỹ thuật xử lý miền thời gian và các kỹ thuật khá đơn giản. Những điều
này sẽ cung cấp cho chúng ta thông tin cấp độ về tín hiệu giọng nói của chúng ta, trên đó chúng ta sẽ sử dụng một chút
số liệu thống kê và dựa vào việc ra quyết định theo thuật toán để
đưa ra phương pháp phân biệt tự động của chúng ta. Chỉ cần lưu ý rằng cách tiếp cận mà chúng ta đang thực hiện ở đây
là một trong nhiều phương pháp. Một ví dụ về cách tiếp cận dựa nhiều hơn vào số liệu thống kê và ít dựa trên heuristics
dựa trên Hidden Markov Mô hình [Rabiner, 1989, Plannerer, 2005, Pelton, 1993]. Để có cái nhìn tổng quan hơn về các
phương pháp được sử dụng trong nhận dạng giọng nói, xem [Plannerer, 2005].
Ở đây chúng ta sẽ bắt đầu với một đơn giản - nhưng không đáng tin cậy trong tất cả các vòng
cumstances - cách tự động phân biệt lời nói và sự im lặng. Như được mô tả, thuộc tính duy nhất của dạng sóng có liên
quan là mức thời gian ngắn của nó (short-time level). Chúng tôi sẽ theo một thủ tục phân biệt voiced-unvoiced, đó là
một cách tiếp cận tương tự để phân biệt speech-silence, nhưng liên quan đến tạo ra các thuộc tính khác nhau của dạng
sóng, trái ngược với một thuộc tính duy nhất. Nhiều nhất kết quả học tập quan trọng của cuộc hành trình này có lẽ sẽ là
việc học một số kiến thức cơ bản về xử lý tín hiệu, áp dụng cho các lĩnh vực khác ngoài nhận dạng giọng nói. Rất nhiều
phần còn lại của tài liệu sẽ mang tính thuật toán cao hơn, quảng cáo tài liệu hoc, vốn có trong cách tiếp cận "thực hành"
của chúng tôi. Thuật toán khía cạnh của sự phân biệt unvoiced tiếng chủ yếu dựa trên và lấy cảm hứng từ
phương pháp được tìm thấy trong [Kondoz, 2004]. Một phần trong số đó là của riêng tôi, và một phần nhỏ của nó sẽ
là ... của bạn! Một cơ hội tuyệt vời để rèn luyện trí não của bạn, và cũng học cách sử dụng Matlab để triển khai và kiểm
tra (các) phương pháp của bạn.
Để tóm tắt lại trước khi chúng ta bắt đầu, có hai phần chính trong chương này-
phần cuối của mô-đun: phần phân biệt speech-silence, và phần voiced-unvoice. Các thủ tục được tìm thấy trong mỗi
phần là tương tự. Lúc đầu, chúng tôi xem xét dạng sóng giọng nói và thử tìm các thuộc tính phân biệt hai trạng thái mà
chúng tôi muốn phân biệt. Sau đó, chúng tôi xem các thuộc tính này có thể được chức năng hóa như thế nào, hoặc cách
chúng ta có thể xử lý dạng sóng để thu được sự đo lường các thuộc tính phân biệt này. Cuối cùng, chúng tôi đưa ra một
thuật toán sử dụng các phép đo này để quyết định phân đoạn nào của đầu vào thuộc về trạng thái nào.
Hình 2.1: Đọc "Crash" được phân đoạn trong Voiced, Unvoiced and Silence (VUS) cho trạng thái.
2.1.2 Các hàm thuộc tính ứng viên (Candidate attribute functions)
Ở đây chúng tôi sẽ trình bày hai chức năng chính: Năng lượng trong thời gian ngắn (Short-Time Energy) (STE) và Độ lớn
trung bình (Mean Average / Magnitude Average) (MA). Hai chức năng này của "crash" dạng sóng được chuẩn hóa và
chồng lên dạng sóng trong Hình 2.2.
STE thu được bằng cách tính tổng bình phương của các giá trị dạng sóng trên một số lượng mẫu hữu hạn, N,
trong khi MA tính giá trị tuyệt đối (được biểu thị bằng dấu ngoặc thẳng đứng |. |) trong số các giá trị dạng sóng giống
nhau này,
Hình 2.2: Cách nói tương tự, với Năng lượng trong thời gian ngắn (STE) và Độ lớn trung bình (MA) phác thảo. Do quá
trình bình phương liên quan đến tính toán STE, các giá trị dạng sóng cực đoan tạo ra sự nhấn mạnh trong phép đo STE.
MA phản ánh tốt hơn đường bao dạng sóng như chúng ta thấy, đó là tại sao nó thường được ưa thích hơn trong việc
phân biệt dựa trên cấp độ. [Kondoz, 2004]
Ở đây, lưu ý rằng các giá trị STE và MA tại chỉ mục n sử dụng N giá trị trong quá khứ, bao gồm giá trị hiện tại n, tức là x
[n], x [n − 1], ..., x [n − N +1]. Đối với thực tế sử dụng, chúng ta nên sử dụng N giá trị tập trung xung quanh n, từ n − N / 2
đến n + N / 2−1. Các định nghĩa chính thức, tuy nhiên, phải như vậy, để có được một sự tương đương giữa STE như
được thể hiện trong (2.1) và với tích chập của hình vuông của dạng sóng với một cửa sổ hình chữ nhật,
nơi
và đầu ra của bộ lọc FIR bậc N − 1, có các hệ số b0, b1, ..., bN – 1 là ones (là một),
Chúng ta sẽ xem lý thuyết tích chập và bộ lọc chi tiết hơn trong thời gian tới. Sự bằng nhau/ Phương trình (2.3), (2.4) và
(2.5) thực sự ở đây để thanh minh cho khoảng lùi của tóm tắt trong (2.1) và (2.2), và có thể dùng làm tài liệu tham khảo
sau này tài liệu phát tay. Lưu ý rằng các điểm tương đương giống nhau có thể được vẽ bằng MA.
Quay lại chủ đề của chúng tôi về STE và MA và cách chúng phản ánh đường viền của dạng sóng, thực tế là STE là bình
phương của các giá trị dạng sóng được sử dụng, trái ngược với giá trị tuyệt đối, nhấn mạnh các giá trị biên độ lớn. Đây
là lý do tại sao biên độ dạng sóng khiêm tốn của đoạn/khúc (segments) không được thể hiện theo tỷ lệ trong đường đứt
nét STE của Hình 2.2. Vì lý do này, MA thường được ưu tiên như một tiêu chí phân biệt [Kondoz, 2004], nhưng STE vẫn
là thước đo tiêu chuẩn, chỉ còn một bước nữa từ cường độ thời gian ngắn (short-time intensity),
và hai từ Root-Mean-Square (RMS) trong thời gian ngắn,
Bây giờ chúng ta có hai cách để đo mức độ của dạng sóng của chúng ta. Phần còn lại là tìm ra chi tiết cách sử dụng các
biện pháp này trong bài phân biệt speech-silence.
Nếu tất cả các giá trị STE hoặc MA cho phân đoạn speech lớn hơn giá trị silence , sẽ có ngưỡng T sao cho STEspeech ≥ T,
và STEsilence ≤ T. Việc tìm kiếm ngưỡng này sau đó sẽ rất nhỏ và T có thể được sử dụng để xác định một cách chắc chắn
trạng thái cơ bản của bất kỳ chỉ mục thời gian nào.
Hình 2.3: Sự chồng chéo giá trị trạng thái: không phải lúc nào cũng đúng rằng phân đoạn silence MA ít hơn MA phân
đoạn speech, như hiển thị ở đây. Nói chung, chúng tôi nói rằng các giá trị hàm thuộc tính của một trạng thái chồng chéo
lên nhau ở một mức độ nào đó với những điều này của trạng thái khác.
Tất nhiên, nó không phải là đơn giản, và thường có một số chồng chéo. Điều này được minh họa trong Hình 2.3, có thể
thấy rằng, mặc dù xu hướng chung, có một số giá trị MA speech thấp hơn MA silence. Câu hỏi chúng ta phải giải quyết
bây giờ là ngưỡng phải thiết lập như thế nào, liên quan đến sự chồng chéo này.
Hình 2.4: Xác định ngưỡng sao cho khu vực nhầm lẫn là bình đẳng giữa các trạng thái.
Một cách tiếp cận dễ dàng là đặt T là giá trị trung bình trong vùng chồng chéo lên nhau, tức là ở nửa trên trong Hình 2.4.
Tuy nhiên, điều này có thể không "công bằng" đến một trong các trạng thái. Trong ví dụ này, bạn thấy rằng phần lớn
nhất của các giá trị chồng chéo của trạng thái silence sẽ được tìm thấy dưới ngưỡng,
trong khi phần lớn nhất của trạng thái speech sẽ được coi là thuộc về Trạng thái 1. Chúng ta hãy gọi phần của trạng thái
nằm ở phía bên trái của ngưỡng "khu vực nhầm lẫn" của trạng thái đó. Công bằng cho cả hai trạng thái, ngưỡng nên
được điều chỉnh để khu vực nhầm lẫn bằng nhau ở cả hai trạng thái. Điều này có thể được xây dựng theo phương pháp
toán học như
Một cách dễ dàng và nhanh chóng để tìm giá trị của T thỏa mãn 2.8) là sử dụng tìm kiếm nhị phân. Thông thường, đây là
một thuật toán để tìm một giá trị trong tập hợp các giá trị có thứ tự hữu hạn. Ở đây, giá trị chúng tôi muốn tìm có thể
không nằm trong f hay g. Thời điểm thích hợp để dừng tìm kiếmlà khi nào, từ một lần lặp lại tiếp theo, số giá trị của f và
g thấp hơn hoặc cao hơn T không thay đổi. Do đó, thuật toán có thể được xây dựng dưới dạng:
1. Từ các chức năng thuộc tính chồng chéo, chỉ giữ lại sự chồng chéo, phần mà bạn lưu trữ trong vectơ f và g.
2. Đặt Tmin và Tmax là vùng nhỏ nhất và lớn nhất của vùng này chồng lên nhau.
3. Đặt
10. Đặt
Ngưỡng đối với chức năng thuộc tính duy nhất của chúng tôi hiện đã được tiết lộ. Trong trường hợp này,
đưa ra quyết định xem liệu một chỉ số thời gian có tương ứng với một trong hai trạng thái hay không chỉ đơn giản là tìm
hiểu xem hàm thuộc tính tại thời điểm đó chỉ mục có giá trị íthơn hoặc nhiều hơn ngưỡng. Kết quả thuật toán của chúng
tôi được áp dụng cho tín hiệu huấn luyện của chúng tôi “crash ” được thể hiện trong Hình 2.5. Lưu ý rằng ở đây, chúng
ta có xác định các phân đoạn Speech và Silence dựa trên chính tín hiệu mà chúng tôi có đang sử dụng cho phần
"training" của thuật toán. Nhớ lại rằng tín hiệu này, phát âm "crash", được phân đoạn theo cách thủ công trong các phần
speech và silence , và chính từ các giá trị MA chồng chéo của phân đoạn của chúng tôi là ngưỡng T đã được xác định. Tuy
nhiên, ngưỡng này hiện có thể được sử dụng cho phân biệt speech-silence các cách nói khác, miễn là chúng được ghi lại
trong hoàn cảnh tương tự về tiếng ồn của môi trường. Điều này được thể hiện trong Hình 2.6, trong đó ngưỡng được
xác định khi phát biểu "crash" được sử dụng để
speech-silence phân biệt "hit".
Hình 2.5: Ra quyết định đơn giản trong trường hợp chỉ có một chức năng thuộc tính:đặt bất kỳ giá trị nào của hàm dưới
ngưỡng đó với một trạng thái và trên ngưỡng, với trạng thái khác.
Hình 2.6: Ngưỡng được xác định dựa trên câu nói "crash" được sử dụng để nói- phân biệt đối xử "hit". Hai từ đã được
ghi lại trong cùng một môi trường
"Hit" có tính năng dừng vô thanh / t /. Sự phân biệt speech-silence dựa trên năng lượng đã phân loại một cách dễ hiểu
điểm dừng trước khi bùng nổ (burst) là khoảng lặng(silence), nhưng điều này là trong một từ, vì vậy nó không nên được
coi là im lặng, phải không?
Bạn có thể thiết kế và triển khai một phương pháp có thể khắc phục điều này không?
Mặc dù về chi tiết và cách thực hiện nó có vẻ hơi giống nhau ở lúc đầu, phương pháp này trong ý tưởng của nó cực kỳ
đơn giản và trực quan: phân đoạn tín hiệu theo cách thủ công trong phần speech và phần silence; đo MA của cả hai ; đặt
một ngưỡng trong vùng chồng lấn; đo MA của bất kỳ tín hiệu lời nói nào đã được ghi lại trong các điều kiện tương tự;
phân loại mọi lúc các chỉ số có MA dưới ngưỡng là khoảng lặng. Những hạn chế chính của cách tiếp cận này, trước tiên,
nó yêu cầu phân đoạn thủ công sơ bộ của một tín hiệu, thứ hai, rằng tất cả các tín hiệu mà phương pháp này sau đó
được sử dụng được ghi lại trong môi trường tương tự và cuối cùng nhưng không kém phần quan trọng, rằng SNR của
điều kiện ghi âm đủ lớn để tạo ra sự khác biệt giữa speech và silence của năng lượng thấp. Thông tin thêm về các đặc
điểm của tiếng ồn môi trường có thể hữu ích trong việc khắc phục hạn chế cuối cùng này, ít nhất là ở một phần nào đó.
Nhưng điều này, một lần nữa, nhiều hơn là phương sách của miền tần số phân tích.
Bây giờ chúng tôi ở trong miền thời gian. Bây giờ chúng ta có một phương pháp
để phân biệt silence-speech hoạt động khá tốt, chúng ta có thể tiến hành phân biệt hữu thanh-vô thanh trong bài phát
biểu các phần đc trả về bằng phương pháp. Do đó, chúng tôi sẽ kết thúc bằng sự phân biệt hoàn toàn với VUS.
2.2. Phân biệt Voiced/ Unvoiced
Sự phân biệt voiced – unvoiced cùng một ý tưởng với phần trước phân biệt tiếng nói-im lặng, nó xảy ra đối với các thuộc
tính mô tả một cách tương phản các trạng thái cần phân biệt và thiết lập cho mỗi ngưỡng. Tuy nhiên, lần này có nhiều
hơn một thuộc tính như vậy. Các do đó, sự phức tạp thêm ở đây liên quan đến cách sử dụng một số chức năng thuộc
tính và các ngưỡng trong phần cuối của phân biệt voiced-unvoiced, bởi vì, như bạn mong đợi, không phải tất cả các hàm
thuộc tính sẽ đồng bộ ở trên hoặc dưới ngưỡng phân biệt tương ứng. Những xung đột tiềm ẩn này sẽ phải được giải
quyết. Đây sẽ là chủ đề của Phần 2.2.2. Nhưng trước đó , chúng ta hãy xem xét các hàm thuộc tính sẽ đóng vai trò là cơ
sở cho sự phân biệt.
Hình 2.7: Câu nói "crash" với phác thảo MA một lần nữa, nhưng tập trung vào phần speech
Hình 2.8: Dạng sóng trong các phân đoạn unvoiced “dày đặc” hơn, nhiều biến phình ra, dao động nhanh hơn so với các
đoạn có tiếng. Điều này được phản ánh trong Tỷ lệ giao nhau bằng không (ZCR).
Tỷ lệ giao nhau bằng không (ZCR)
Vẫn nhìn vào dạng sóng "crash", bạn có thể nhận thấy rằng phân đoạn unvoiced, mặc dù năng lượng thấp hơn, thể hiện
dạng sóng dày đặc hơn, hỗn loạn hơn. Một chỉ báo về “mật độ” (density) này là tốc độ mà dạng sóng vượt qua trục
không, hoặc Tỷ lệ cắt ngang bằng không (ZCR). ZCR của câu nói "crash" đã được chuẩn hóa và xếp chồng lên dạng sóng
trong Hình 2.8, và có thể được thấy rằng nó cao hơn đáng kể trong các phân khúc unvoiced. Về mặt hình thức, Hàm ZCR
có thể được biểu thị bằng
tức là ZCR một lần nữa tương đương với tích chập của y với cửa sổ hình chữ nhật. Tương tự như vậy, ZCR có thể được
coi là đầu ra của một sự sắp xếp (order) N - 1 bộ lọc FIR với những cái cho hệ số, được cung cấp bằng y.
với STELP là STE của bản sao được lọc thông thấp của đầu vào x. Hãy để chúng tôi không đi sâu vào lý thuyết bộ lọc ngay
bây giờ; ở cấp độ thực tế, nó sẽ được giải thích bằng cách nào, trong Matlab, bạn có thể lấy các hệ số bộ lọc thích hợp và
sử dụng chúng trong chức năng bộ lọc để lấy tín hiệu đã lọc này.
Hình 2.10: Tỷ lệ năng lượng dải thấp / toàn dải rõ ràng là lớn hơn đối với phân đoạn voiced, dễ lấy và do đó là một ứng
cử viên sáng giá trong phân biệt.
2.2.2 Cân nhắc đối số của bạn trước khi đi đến quyết định
Vì vậy, chúng tôi đã chọn ba hàm thuộc tính, có thể sẽ là hầu hết thời gian thỏa thuận về việc liệu chỉ số thời gian nào
voiced hay unvoiced. Tuy nhiên, nó cũng sẽ không phải lúc nào cũng vậy, và đối với tình huống như vậy, thuật toán ra
quyết định cần được xây dựng.
Để tính toán độ chắc chắn, Kondoz chuẩn hóa (normalize) những hàm thuộc tính, như giá trị max đạt 1, min đạt -1, và
ngưỡng = 0. Tiếp theo, 2 hoặc nhiều hơn nhưng hàm thuộc tính dc chuẩn hóa có thể cùng được thêm vào, và nó cùng
với độ chắc chắn lớn nhất làm cho tổng dương nếu voiced và âm nếu unvoiced. Bây giờ chúng tôi trình bày rõ ràng sự
chuẩn hóa này.
Chúng tôi sẽ gọi một trong những hàm thuộc tính là f, mới fmin là giá trị nhỏ nhất, fmax là giá trị lớn nhất. Nó chuẩn hóa
phiên bản g (version g). Để đáp ứng tiêu chí, g phải là một hàm tổng hợp (composite function), với pphần dương map với
phần trên của ngưỡng ở trong hàm gốc từ 0 đến 1 , và phần âm tương tự với phía âm. Thông thường chúng ta có
Hai thành phần g+ và g- là hàm tuyến tính (linear function) với đầu vào là hàm f.
Hệ số a+, a-, b+, b- phải đc điều chỉnh theo mục đích của chúng tôi. Đó là vấn đề cơ bản của giải quyết phương trình 2 ẩn
số. Chúng tôi thấy rằng
Hình 2.11: Hàm thuộc tính chuẩn hóa: giá trị của hình 2.3 được biến đổi tuyến tính thành khoảng [−1, 1] và có tâm là 0
xung quanh ngưỡng.
Chỉ cần thử và thay thế fmax, T và fmin cho f, và bạn sẽ thấy rằng bạn nhận được kết quả 1, 0 và −1, như dự định. Để
hoàn thành cuộc thảo luận này, chúng tôi đưa ra trong Hình 2.11 một ví dụ đồ họa về kết quả của quá trình chuẩn hóa,
với Hàm MA chuẩn hóa đã thấy trong Hình 2.3.
Sự phân biệt unvoiced hiện có thể được thực hiện dựa trên tổng các giá trị của ba hàm chuẩn hóa của chúng tôi. Chúng
ta có thể tạo ra một giá trị hai hàm, là 1 ở mọi nơi tổng này là dương và 0 khi âm,
Lý do tại sao, trong (2.18), gZCR bị phủ định là vì, trái ngược với MA và LF, giá trị của ZCR dưới ngưỡng tương ứng với các
phân đoạn voiced. Cũng vì vậy, lý do cho sự hiện diện của chỉ số phụ jit trong VUjit sẽ trở nên rõ ràng trong phần phụ
tiếp theo.
Loại bỏ jitter
Một hàm VU như được thấy trong (2.18) vẫn có thể thể hiện hiện tượng chập chờn (jitter), tức là không hợp lý dao động
nhanh dần đều giữa hai trạng thái. Tỷ lệ điện thoại trong giọng nói có thể là đếm đến khoảng mười giây và do đó tốc độ
thay đổi trạng thái phải là nhiều nhất. Tuy nhiên, chúng tôi vẽ trong Hình 2.12 một ảnh chụp nhanh của hàm Vujit xuất
bằng thuật toán hiện tại của chúng tôi trên một tín hiệu giọng nói tùy ý. Giữa thời gian 0,5 và 0,55 giây, jitter nhìn thấy
trong đường liền nét là một trăm thay đổi mỗi giây, cao một cách bất hợp lý. Một cách dễ dàng và thích hợp để loại bỏ
jitter này là thông qua việc sử dụng Trung bình trong thời gian ngắn (thường được gọi là trung bình chạy) (Short-Time
Average STA). Chức năng này rất tương tự như các hàm thời gian ngắn mà chúng ta đã thấy cho đến nay:
STA được chồng lên trong các đường đứt nét đối với đầu vào, chức năng jittery trong Hình 2.12. Rõ ràng là ở đó tất cả
các giá trị mà STA vượt quá 0,5 nên được coi là voiced. Hàm VU cuối cùng của chúng tôi
Hình 2.12: Loại bỏ jitter tiềm ẩn trong hàm VU (đường liền nét) của chúng tôi bằng cách sử dụng trung bình trong thời
gian ngắn (đường đứt nét). Tất cả các chỉ số thời gian có STA ở trên 0,5 cuối cùng được coi là tiếng nói.
Hình 2.13: Thuật toán Kondoz ’(đã hoàn thành) chạy trên Hình 2.13: Thuật toán Kondoz '(đã hoàn thành) chạy trên đoạn
ghi âm chất lượng cao . Chỉ câu nói "commercial break" (dài khoảng 1 giây) đã được sử dụng để đào tạo (training).
CHƯƠNG 3: ƯỚC TÍNH CAO ĐỘ MIỀN THỜI GIAN – TIME DOMAIN PITCH ESTIMATION
Trong phần này, chúng ta sẽ tập trung vào các phân đoạn VOICED trong tín hiệu tiếng nói (speech signal), và kiểm tra các
cách ước tính tần số hoặc cao độ cơ bản của chúng. (1Chúng tôi vẫn đang hạn chế các phương pháp tiếp cận theo miền
thời gian.) Tần số cơ bản, nghịch đảo của giai đoạn cơ bản, là tốc độ tại đó một dao động bắt đầu một chu kỳ mới. Mặt
khác, pitch là cảm nhận đối của tần số cơ bản. The American Standards Association định nghĩa nó, vào năm 1960, là
“thuộc tính của cảm giác thính giác về mặt mà âm thanh có thể được sắp xếp theo thang âm nhạc ”[Moore, 2004]. Theo
bản chất cảm quan của nó, nó khó có thể được đo lường, nhưng khi, trong xử lí tiếng nói, chúng tôi nói về "đo lường âm
độ/ độ cao", chúng tôi thực sự đang nói về đo tần số cơ bản của âm thanh giọng nói.
Ai cũng biết rằng ngữ điệu của lời nói rất quan trọng đối với quá trình truyền đạt ý nghĩa. Ngay từ cái nhìn đầu tiên, có vẻ
như ngữ điệu dựa trên ba thuộc tính: độ to, thời lượng của âm tiết và đường viền cao độ. Do đó, có thể nói rằng cao độ
góp phần vào độ dễ hiểu của lời nói. Ở đâu có liên quan xử lý tiếng nói, đường nét giọng nói được sử dụng [Rabiner và
Schafer, 1978] để nhận dạng người nói. Mặt khác, rõ ràng là đường nét giọng nói là không thể thiếu để thêm chủ nghĩa
hiện thực cho việc dựa trên formant (tức là thuần túy tổng hợp, không sử dụng tổng hợp giọng nói) được ghi âm trước.
P Pitch xuất hiện như một thuộc tính cần thiết cho tất cả các mô hình trong xử lí tiếng nói. Trong các mô hình bộ lọc
nguồn, âm thanh được mô hình hóa dưới dạng bộ lọc cộng hưởng, được nạp – cho âm hữu thanh (voiced)- một hệ
thống xung lực mượt mà [Quatieri, 2002, Rabiner và Schafer, 1978, Kondoz, 2004]. Tất nhiên Khoảng thời gian của chuỗi
xung lực này phù hợp với chu kỳ của áp suất không khí dao động qua thanh môn. Theo một cách tiếp cận khác được gọi
là (Tổng hợp mô hình hóa hình sin) Sinusoidal Modeling Synthesis (SMS) [McAulay and Quatieri, 1986, III and Serra,
1987, Serra and Smith, 1990], một tổng số hình sin liên quan đến tần số hài hòa (và ở một mức độ nào đó, cả về biên độ)
được coi là thành phần chính của âm hữu thanh (voiced), âm thanh còn lại là âm thanh ngẫu nhiên ở thành phần mức độ
thấp (tức là ồn ào) . Thực tế là những hình sin này "liên quan đến hài hòa" (harmonically related) có nghĩa là tần số của
mỗi tần số là bội số nguyên của tần số cơ bản. Do đó, bằng cách biết tần suất cơ bản này, người ta cũng biết, ít nhất đến
một số gần đúng phù hợp, tần số của tất cả các hình sin. Đi đến ước tính pitch là bước đầu tiên đối với SMS.
Phương pháp miền thời gian để ước tính pitch mà chúng tôi sẽ đưa ra đáng chú ý nhất là dựa trên tự tương quan. Hàm
khác biệt về độ lớn trung bình (The Average Magnitude Difference Function) (AMDF) cũng đáng xem xét; nó là một
phương pháp rất gần với phương pháp tự tương quan, nhưng rẻ hơn về mặt tính toán so với tự tương quan được tính
toán trong miền thời gian. Tuy nhiên, chúng ta sẽ thấy trong Chap 5 rằng Biến đổi Fourier Nhanh (Fast Fourier
Transform) (FFT) có thể được sử dụng để tính toán tương quan với chi phí thấp hơn đáng kể, đánh bại ngay cả tính toán
hiệu quả của AMDF. Mặt khác, bạn nên biết rằng các phương pháp này không phải là phương pháp duy nhất mà người
ta có thể nghĩ ra cho ước tính cao độ miền thời gian (time domain pitch estimation). Trong [Gold and Rabiner, 1969], ví
dụ, một thuật toán "Mã hóa" (encodes) dạng sóng lời nói dưới dạng các chuỗi xung đồng bộ, có ý nghĩa và nhằm mục
đích suy ra chu kỳ của dạng sóng từ tính tuần hoàn của những xung này đã được phát triển. Phương pháp này có từ cuối
những năm 60 và hấp dẫn vì chi phí tính toán nhẹ của nó. Tuy nhiên, việc thực hiện vẫn còn xa so với sự đơn giản như
phương pháp tự tương quan và AMDF.
Cả hai phương pháp này đều khai thác thực tế rằng nếu một tín hiệu x [n] là tuần hoàn, và khoảng thời gian này kéo dài
các mẫu NT, khi đó dạng sóng giống nhau ở mọi các mẫu NT khác, hoặc
Cách mỗi phương pháp khai thác điều này là điểm duy nhất mà hai phương pháp khác nhau.
Trong (3.3) x được xem như một tín hiệu lý thuyết, với miền kéo dài đến vô cùng. x [n] có thể là sin [n], hoặc x^2,... Tuy
nhiên, đối với tổng khoảng thời gian vô hạn để hội tụ (tức là tổng đến một giá trị hữu hạn), x phải là một hình sin,hoặc
một tổng của chúng. Trong trường hợp đó, giá trị tự tương quan lớn nhất được tìm thấy ở chỉ mục 0, trong đó nó chỉ
đơn giản là tổng bình phương của các giá trị của x, nói cách khác, năng lượng của nó:
Ngoài ra, nếu x là tuần hoàn và tuân theo Công thức (3.1), thì dễ dàng thấy rằng xx [n] = xx [n + kNT]. Do đó, tự tương
quan tối đa sẽ cũng được tìm thấy ở chỉ số NT cũng như 0. Do đó, việc tìm thấy đỉnh khác này là tương đương với việc
tìm chu kỳ của x, và do đó tần số của nó. Đây là những gì phương pháp tự tương quan để ước lượng cao độ nhằm mục
đích thực hiện.
Tuy nhiên, phương trình (3.3) không thực tế để phân tích độ dài hữu hạn của tín hiệu. Tổng không được kéo dài trong
khoảng [−∞, ∞], mà là một khoảng thời gian. Tương tự như vậy, các chỉ số tự tương quan n mà xx khác 0 sẽ cũng kéo dài
một khoảng hữu hạn. Tìm ra ranh giới của những khoảng thời gian này là mục đích của phần 3.2 và 3.3.
3.2 Trên những giá trị nào của m? (Over what values of m?)
Trong thực tế, các tín hiệu mà chúng ta đang xử lý có độ dài hữu hạn. Về lý thuyết, chúng tôi mô phỏng điều này bằng
cách nhân tín hiệu có độ dài vô hạn x với một trực cửa sổ chữ nhật (c.f. (Equation) Phương trình (refeq: chữ nhật)).
Chúng tôi biểu thị tín hiệu nhân cửa số xw, tức là xw [n] = x [n] w [n]. Đây là tín hiệu cho thấy chúng ta sẽ tương quan với
chính nó để lấy xx, như trong
Việc viết phương trình (3.5) có thể được trình bày rõ ràng hơn, bằng cách hạn chế tổng kết khoảng thời gian (interval
summation). Cửa sổ hình chữ nhật của chúng ta là 0 cho tất cả n bên ngoài khoảng [0, N [, và do đó, xw cũng vậy. Theo
phần mở rộng, điều này có nghĩa là tích xw [m] xw [m + n] khác 0 nếu m ∈ [0, N [và m + n ∈ [0, N [. Hai điều kiện này chỉ
có thể được tóm tắt thành một, rằng m ∈ [0, N [∩ [−n, N - n], hay ngắn gọn hơn, m ∈ [max (0, −n), min (0, −n) + N [.
Chúng tôi có thể dựa trên cơ sở định dạng (3.5) bằng cách sử dụng x thay vì xw như sau:
Ở đây chúng ta thấy rằng tự tương quan của một tín hiệu có độ dài N đối với một chỉ số tự tương quan là tổng của nhiều
nhất N số hạng. Bây giờ chúng ta hãy xem những gì chỉ số giá trị tự tương quan của tín hiệu có độ dài hữu hạn là khác 0.
3.3 Trên những giá trị nào của n? (Over what values of n?)
Trong một ký hiệu sigma có b - a + 1 số hạng được cộng với nhau. Nói cách khác, giới hạn dưới a phải nhiều
nhất bằng giới hạn trên b, hoặc b ≥ a. Điều này tất nhiên là hợp lệ cho Công thức (3.6). Điều kiện tổng kết khác 0 của
chúng tôi là
Chúng ta phải tìm các giá trị của n mà (3.7) là đúng. Đối với n = 0, nó sẽ đc miễn là N> 0. Do đó, giới hạn ngoài cùng bên
trái sẽ dành cho n âm, và ngoài cùng bên phải, đối với n dương. Trong đó n âm, min (0, −n) là 0 và max (0, −n) = −n.
Chúng tôi thay thế các giá trị này thành (3.7) và thấy rằng
Trong đó n dương, min (0, −n) là −n, max (0, −n) là 0, và do đó (3.7) trở thành
Bây giờ chúng ta có ranh giới bên trái và bên phải của sự tự tương quan không-0 của chúng ta
khoảng,] - N, N [.
Hình 3.1: Một dạng sóng bán chu kỳ cửa sổ tái tạo và sự tự tương quan của nó
Do tính đối xứng này, (3.6) cần được tính cho n chỉ trong khoảng [0, N [. Ngoài ra, bạn sẽ nhận thấy rằng nó ngụ ý rằng
giới hạn dưới, m = max (0, −n) = 0, và giới hạn trên, min (0, −n) + N - 1 = N - n - 1. Do đó, công thức cuối cùng cho tự
tương quan đơn giản là
Hình 3.1 ở đây được đưa ra dưới dạng hỗ trợ trực quan cho phần giới thiệu này trên tự tương quan. Dạng sóng (biểu đồ
phía trên) ở đây được nhân với một cửa sổ hình chữ nhật có độ dài N. Ban đầu nó là một dạng sóng gần tuần hoàn, và
sự tuần hoàn được phác thảo bằng cách quay vòng của hai cực đại tuần hoàn. Đỉnh trung tâm và đỉnh lớn nhất bên phải
cũng được khoanh tròn trong tương quan chéo (ô dưới), và không phải ngẫu nhiên mà thời gian trôi đi giữa các vòng
tròn ở dạng sóng và tự tương quan là giống nhau. Lưu ý, tuy nhiên, xu hướng phân rã trong tự tương quan, do cửa sổ
của dạng sóng. Để đảm bảo rằng, bất chấp sự phân rã này, đỉnh tự tương quan tương ứng- đến chu kỳ (period, tuần
hoàn) của dạng sóng vẫn lớn thứ hai sau trung tâm đỉnh, hình chữ nhật phải đủ dài (ít nhất hai lần khoảng thời gian của
dạng sóng tương quan, như chúng ta sẽ thấy ở phần sau). Cuối cùng, hãy chú ý đến sự đối xứng của tự tương quan về 0.
Bây giờ chúng ta đang đi từ một ký hiệu tự tương quan tiêu chuẩn sang một Ký hiệu ngắn hạn Ký hiệu tự tương quan
thời gian ngắn hạn Short-Time Autocorrelation (STAC). Ký hiệu được sử dụng trong phần sau được lấy cảm hứng trực
tiếp từ biến đổi Fourier trong thời gian ngắn Short-Time Fourier Transform (STFT), một lược đồ phân tích tần suất thời
gian mà bạn có nhiều khả năng gặp phải, bạn có nên theo đuổi các nghiên cứu về xử lý tín hiệu.
Let
trong đó R được gọi là kích thước bước nhảy, tức là số lượng mẫu giữa một phân tích và tiếp theo. Phù hợp với ký hiệu
trong Công thức (3.12), chúng tôi biểu thị mặt phẳng tự tương quan dưới dạng
Kết quả trong (3.14) thu được sau sự phát triển tương tự như trong Phần-3.2. Bạn thấy rằng việc thu được tín hiệu tự
tương quan xx [n, u] chỉ là một vấn đề chuyển các mẫu uR phân tích sang phải. Một ví dụ về một mặt phẳng tự tương
quan xx [n, u] được cho trong Hình 3.2. Ở đây, sự tự tương quan được cho là chuẩn hóa vì các giá trị tự tương quan của
mỗi khung
được chia cho giá trị tự tương quan lớn nhất, tại chỉ số 0 (tức là xx [n, u] được chia cho xx [0, u]). Do đó, đỉnh tự tương
quan trung tâm luôn là (đoạn tiếp theo sau hình 3.2)
Hình 3.2: Mặt phẳng tự tương quan chuẩn hóa trên giọng nói tiếng Đức “Lektion dreizehn ”.
1. Ở những nơi khác, các phân đoạn mà các đường ngang sạch sẽ, sáng sủa, nổi lên là những nơi mà dạng sóng là tuần
hoàn nhất, nơi dây thanh quản cung cấp đối với hầu hết các kích thích của đường thanh âm. Trên thực tế, giá trị mà các
mức tăng đỉnh tương quan không trung tâm lớn nhất có thể được coi là sự phân biệt voiced-unvoiced. Chúng tôi chỉ
không sử dụng nó để phân biệt VUS ở trên bởi vì chi phí tính toán của tự tương quan.
Chi phí tính toán cũng là lý do tại sao kích thước bước nhảy R không đơn giản 1. Trong loại phân tích 2 chiều của tín hiệu
âm thanh, nơi lấy mẫu tần số có thể rất cao, khối lượng lớn dữ liệu và tính toán có thể dễ dàng trở nên áp đảo ngay cả
trên các máy tính ngày nay. Thay vì máy tính tự tương quan mỗi mẫu liên tiếp, chúng ta bỏ qua R của chúng giữa mỗi
mẫu phân tích. Số R này được gọi là kích thước bước nhảy. Nó thường có nguồn gốc từ điều kiện về độ dài của cửa sổ, N
và hệ số chồng chéo của cửa sổ, mà chúng tôi ở đây gọi O, như trong
O thường được đặt thành 2, 4 hoặc 8. Để cập nhật hàm tự tương quan mọi mẫu N / 2, N / 4 hoặc N / 8 nói chung là đủ
để theo dõi thời gian ngắn các biến thể của cao độ - nhớ lại giả định rằng cao độ của tín hiệu Dù sao cũng được giả định
là không đổi trong khoảng thời gian N mẫu! Thực tế, tự tương quan là một phân tích tính toán đắt tiền.
Trong phương trình (3.11), phép tính xx [0], một mẫu tự tương quan, lấy N phép nhân. Giá trị của x [1] nhận N - 1, của x
[2] nhận N - 2, và như thế... Nói chung, bạn thấy rằng phép tính x [n] nhận N – n các phép nhân. Để xem có bao nhiêu
phép toán được ngụ ý trong phép tính của toàn bộ tín hiệu tự tương quan một chiều, chúng tôi tính tổng N - n là n đi từ
0 đến N - 1,
Trong ký hiệu big-oh, bạn thấy rằng chúng ta có ở đây sự phức tạp về tính toán của O (N^2). Nếu chúng tôi thực hiện
phép tính này từng mẫu của một tín hiệu đến có độ dài M, sau đó tính toán sẽ đi O (M.N^2). chúng tôi tốt hơn hết là
không tính toán tự tương quan cho mỗi chỉ mục mẫu, và bỏ qua R chúng mỗi lần thay vào đó, để đưa ra tổng số phép
nhân để tạo ra mặt phẳng tự tương quan. Nói nghiêm túc, đây vẫn là O (N^2) phức tạp, và do đó
vẫn không lớn. Chúng ta sẽ thấy, trong Chương 5, làm thế nào nó có thể được rút gọn thành O (MN log N). Tuy nhiên
Chúng tôi không đạt được điều đó bây giờ. Trong khi chờ đợi, chúng ta sẽ thấy Hàm chênh lệch độ lớn trung bùnh
(Average Magnitude Difference Function), tương tự trong tính toán và các thuộc tính đối với tự tương quan, nhưng
trong đó mỗi thuật ngữ của quá trình tổng kết bao gồm một số phép trừ như trái ngược với phép nhân, vốn rẻ hơn về
mặt tính toán.
3.5 Hàm chênh lệch độ lớn trung bình (AMDF) Average Magnitude Difference Function
AMDF là một phương tiện phổ biến khác để ước tính chu kỳ của dạng sóng trong miền thời gian. Đối với tín hiệu có độ
dài vô hạn, nó có thể được biểu thị bằng
AMDF tại chỉ số 0 bằng 0 và đối với tín hiệu tuần hoàn x, vì vậy nó ở mọi chỉ số là bội số nguyên của chu kỳ của dạng
sóng. Do đó, một phương pháp ước tính khoảng thời gian chỉ đơn giản là tìm giá trị AMDF thấp nhất ở bên phải của
điểm giảm trung tâm và tra cứu chỉ số độ trễ tương ứng.
Tương tự như tự tương quan, AMDF ngoài các chỉ số] - N, N [là không tương quan (mặc dù lúc này, không nhất thiết là
0), và d [n] = d [−n]. Điều này mang lại cho chúng tôi việc xây dựng
Hình 3.3: Tín hiệu cửa sổ hình chữ nhật đã thấy trong Hình 3.1 (phía trên biểu đồ) và Hàm Chênh lệch Độ lớn Trung bình
của nóA (biểu đồ dưới).
Biểu đồ của AMDF trên tín hiệu cửa sổ đã được sử dụng cho Hình 3.1 được thể hiện trong Hình 3.3. Xu hướng giảm dần
tuyến tính do cửa sổ làm cho nó không phù hợp để tìm kiếm giá trị thấp nhất ở bên phải của trung tâm nhúng, vì điều
này sẽ chỉ vào rìa của tín hiệu AMDF chứ không phải giảm liên quan đến chu kỳ. Tuy nhiên, sự khác biệt giữa mức giảm
và mức đỉnh ở một trong hai bên có thể được sử dụng: lớn nhất vẫn sẽ là, sau trung tâm dip, sự nhúng tương ứng với
chu kỳ của dạng sóng.
3.6 Ước tính cao độ dựa trên tự tương quan (Autocorrelation-based pitch estimate)
Trong tự tương quan của các tín hiệu gần chu kỳ, có cửa sổ, tương quan đỉnh- tương ứng với độ trễ thời gian của khoảng
thời gian - mà chúng ta có thể gọi là đỉnh của tuần hoàn - là đỉnh lớn nhất sau đỉnh trung tâm, với điều kiện là cửa sổ đủ
dài (ít nhất gấp đôi thời kỳ cơ bản). Trong tín hiệu giọng nói, điều này áp dụng cho các điện thoại, ở cấp độ ngữ âm, tuân
theo định nghĩa của nguyên âm (c.f. Mục 1.3). Một số điện thoại thể hiện tính chu kỳ, nhưng cũng hỗn hợp với tiếng ồn,
chẳng hạn như trong tiếng nói ma sát. Sự hiện diện của tiếng ồn này có thể ảnh hưởng đến sự nổi bật của thời kỳ đỉnh
cao. Aperiodic nghe như vậy, mặt khác, như những ma sát unvoiced không thể hiện bất kỳ sự tự tương quan nào cao
điểm, ngoại trừ đỉnh 0 độ trễ. Trên thực tế, tự tương quan của một tín hiệu ngẫu nhiên kéo dài trong một khoảng thời
gian vô hạn và giá trị trung bình 0 là 0 ở mọi nơi khác nhưng tại lag 0. Ba trường hợp được đề cập này được minh họa
trong Hình 3.4, với
Hình 3.4: Dạng sóng và tự tương quan của âm vị hữu thanh / 2 / (“sun có giọng fricative / z / (“lazy”) và fricative / s /
(“sun”)
dạng sóng và tự tương quan của lồng tiếng (phần trên), hỗn hợp (phần giữa) và điện thoại chưa lập hóa đơn (ô dưới).
Xem cách kích thích không có hóa đơn xuất hiện như thế nào ở dạng sóng của thanh fricative / z / lần lượt mang lại tiếng
ồn trong tự tương quan lấy nét. Điều này cho thấy rằng ước tính cao độ dựa trên tự tương quan có thể hưởng lợi từ tính
năng lọc thông thấp sơ bộ của dạng sóng, để xóa tín hiệu tự tương quan của đỉnh tạp, nhiễu.
Tất cả điều này để nói rằng trong những trường hợp có điều kiện tốt, giai đoạn cơ bản thực sự được tìm thấy ở chỉ mục
của đỉnh cao thứ hai, nhưng đây không phải luôn luôn là trường hợp này. Chúng ta có thể nói rằng, đối với các tín hiệu
thể hiện một số tính chu kỳ, đỉnh lớn thứ hai thường là đỉnh của chu kỳ, nhưng độ tin cậy về pitch theo dõi dựa trên phát
hiện duy nhất của đỉnh lớn nhất là không hoàn thành.
Phát hiện cao độ dựa trên tự tương quan có thể được hưởng lợi từ việc cân nhắc bổ sung. Đây sẽ là chủ đề của phần
này, sau phần tiếp theo thuật toán phát hiện tối đa và trình diễn được đưa ra trong Phần 3.7.
3.7 Phát hiện đỉnh tự tương quan tối đa (Maximum autocorrelation peak detection)
Trong phần này, chúng tôi mô tả thuật toán phát hiện tối đa và đưa ra trình diễn khả năng phát hiện cao độ chỉ dựa trên
thuật toán này, về cơ bản để hiển thị giới hạn của nó trong ngữ cảnh xử lý tiếng nói. Thuật toán nổi tiếng và đơn giản, và
hầu hết các ngôn ngữ lập trình đề xuất các hàm hoặc các phương thức có chức năng tương đương. Tuy nhiên, nó vẫn
được hiển thị ở đây như một bài tập về xây dựng thuật toán. Chữ ký của thuật toán (algorithm signature) là
tức là đã cho một vectơ a có độ dài N, hàm max () trả về chỉ số j của mục lớn nhất trong a. Nếu tất cả các phần tử trong a
đều bằng nhau, tức là ai = aj ∀i, j ∈ [1, N], 1 Được trả lại. Lập chỉ mục trong một bắt đầu từ 1; coi ai = 0 nếu i / ∈ [1, N].
Tuy nhiên, hãy nhớ lại rằng, trong trường hợp tự tương quan, đỉnh lớn nhất được tìm thấy ở độ trễ 0, trong khi đỉnh này
không được phát hiện. Giải pháp là sử dụng làm đầu vào cho max () một vectơ có cùng độ dài với vectơ tự tương quan,
đó là 0 ở chỉ số 1 và đối với bất kỳ chỉ số nào, giá trị tự tương quan không tối đa cục bộ và giữ các giá trị tự tương quan
này ở nơi khác.
Hình 3.5: Mặt phẳng tự tương quan của chuỗi lời nói và theo dõi đỉnh (vạch đen). Thông tin khoảng thời gian được trả về
cho các phân đoạn không phải là định kỳ hiệu quả có thể không thực tế và thất thường.
Sau đó, đối với mỗi khung tự tương quan, chỉ số của tự tương quan có thể được tìm thấy dưới dạng i = max (peak ([xx [0,
u], xx [1, u], ..., xx [N - 1, u])) và các chỉ số được sử dụng như một "theo dõi tuần hoàn" (period track). Cách tiếp cận này
đã được sử dụng trên mặt phẳng tự tương quan của chuỗi lời nói có sẵn để thử giọng ở đây 3. Trong Hình 3.5, theo dõi
đỉnh tự tương quan được đánh dấu bằng line màu đen. Răng cưa giới hạn dải - sóng 4 có cao độ sau cao độ của trình tự
này như được theo dõi bằng phương pháp này đã được tạo. Như kích thước bước nhảy R của mặt phẳng tự tương quan
của chúng ta không phải là 1, phép nội suy tuyến tính được sử dụng để xác định cao độ của sóng răng cưa giữa tâm của
mỗi khung tự tương quan. Đối với biên độ của nó, nó là Năng lượng Thời gian Ngắn (Short-Time Energy) được chuẩn hóa
của 1kHz tín hiệu giọng nói low-passed.
Việc ước tính pitch của các phân đoạn unvoiced là vô ích và có thể được thấy trong Hình 3.5, cho kết quả không thực tế
và / hoặc thất thường. Trên thứ hai 6,5, ví dụ, khoảng thời gian được chỉ định dưới 1 mili giây tương ứng với tần số vượt
quá 1kHz, điều này là không thực tế. Nhảy thất thường ở đâu có liên quan, lọc trung vị đôi khi được sử dụng để làm trơn
chu kỳ, nghĩa là đặt giá trị trung bình của các chỉ số đỉnh xung quanh chỉ số đỉnh hiện tại thay cho chỉ số cao nhất này. Do
đó, các yếu tố ngoại lai được loại bỏ một cách hiệu quả, nhưng điều này có sự bất tiện là đầu ra có thể không tương ứng
chính xác đến các chỉ số nơi các đỉnh thực sự nằm, đặc biệt là gần các phần cuối của các phân đoạn. Để giữ tính minh
bạch ở mức tối ưu, có thể ưu tiên sử dụng từ các đỉnh tìm kiếm được biết là không phải là ứng cử viên hợp lý. Đây là chủ
đề của Phần 3.8.
3.8 Giảm phạm vi tìm kiếm (Reducing the scope of the search)
Rõ ràng là không có đỉnh cao nào được tìm thấy cho các khung tự tương quan nơi tín hiệu không theo chu kỳ - trong các
phân đoạn unvoiced - hoặc nơi không có tín hiệu được tìm thấy hoàn toàn - trong các phân đoạn silence. Sản phẩm cuối
cùng của nghiên cứu của chúng tôi về sự phân biệt Voiced-Unvoiced-Silence (VUS) có thể tìm thấy ở đây, trong việc loại
trừ khỏi pitch tracking các khung tự tương quan được tìm thấy trong phân đoạn unvoiced hoặc silence.
Phạm vi có thể được giới hạn hơn nữa đối với các vùng trễ thời gian tương ứng đến các giai đoạn thực tế có thể gặp
trong lời nói của con người. Quỹ cao nhất tần số tinh thần một con người có thể được tìm thấy để sản xuất bằng dây
thanh quản của anh ấy / cô ấy được biết là nằm trong vùng lân cận của 1kHz và cao nhất, 40Hz. Các cao độ này tương
ứng với khoảng thời gian 1 và 25 mili giây. Nếu loại người nói không được biết trước, khu vực tìm kiếm tự tương quan
độ trễ có thể được hạn chế trong khoảng thời gian này; tuy nhiên nó có thể bị hạn chế nhiều hơn nếu phạm vi giọng nói
cụ thể của người nói mà tiếng nói được phân tích đã được biết.
Cuối cùng, người ta đã thảo luận rằng, phân đoạn giọng nói càng tuần hoàn, là đỉnh tuần hoàn. Dưới một mức nhất định,
các đỉnh tự tương quan có thể được tìm thấy là không đáng tin cậy. Trên cơ sở này, một ngưỡng phát hiện đỉnh tương
quan có thể được đặt, dưới đó các đỉnh là loại trừ khỏi tìm kiếm. Giá trị này, được xác định theo kinh nghiệm (tức là dựa
trên quan sát dữ liệu trong tầm tay), có khả năng nằm trong phạm vi từ 0,1 đến 0,2, đối với tín hiệu tự tương quan
chuẩn hóa. Tuy nhiên, đây là đối tượng của điều chỉnh tùy thuộc vào độ dài của cửa sổ được sử dụng và có thể cả về Tỷ
lệ tín hiệu trên nhiễu (Signal-to-Noise Ratio ) của môi trường ghi.
Trong Hình 3.6, phạm vi phát hiện đỉnh được giảm xuống thành các phân đoạn được phân loại như đã nói lên sự phân
biệt VUS của chúng tôi, giới hạn trong dải tần từ 50 đến 500Hz, và (chuẩn hóa) các đỉnh tự tương quan dưới 0,2 đã bị
loại khỏi tìm kiếm.
Lợi nhuận chính ở đây là việc xóa sạch các ước tính vào những thời điểm không liên quan, và trong vấn đề này, sự phân
biệt VUS của chúng tôi dường như là nguyên nhân chính dẫn đến nâng cao chất lượng. Mặt khác, một số bước nhảy
không mong muốn vẫn có thể được nhìn thấy: ngay trước giây thứ 5, và những người ở và sau giây thứ 7. Các trường
hợp cho thấy rằng quy luật về đỉnh lớn nhất không phải lúc nào cũng đúng. Tôi đề xuất ngắn gọn ở đây một thuật toán
theo dõi quảng cáo chiêu hàng dựa trên tự tương quan mà kết hợp hai giả định thay vì một: rằng đỉnh lớn nhất nói
chung là đỉnh chu kỳ và đỉnh chu kỳ đó của các khung liền kề là gần nhau nhất.
Hình 3.6: Theo dõi chu kỳ dựa trên giả định đỉnh lớn nhất, nhưng lại nghiêm ngặt đối với các phân đoạn voiced có độ trễ
và ngưỡng cao nhất. Răng cưa sóng theo các biến thể cao độ tương ứng có sẵn ở đây.
Nếu hai đỉnh trong các khung liền kề nằm trong sự liên tục của một đỉnh khác (one another), thì đỉnh gần nhất với một
trong hai trong khung của người kia là đỉnh khác.
Đỉnh cao trong tính liên tục của các bản nhạc dạng khác, một bản nhạc được xác định bởi sự liên tiếp của hai hay nhiều
đỉnh tuân theo quy tắc trên. 5
5 Tuy nhiên, lưu ý rằng nghịch đảo không nhất thiết phải đúng, nghĩa là trong các khung, các đỉnh gần nhau nhất không
nhất thiết phải là sự tiếp diễn của nhau. Vì lý do này là mong muốn đặt các ngưỡng phát hiện đỉnh như vậy trong mặt
phẳng tự tương quan của chúng tôi.
Vẫn chưa làm rõ đâu là đỉnh gần nhất với đỉnh khác có nghĩa. Cho Ai, j là một đỉnh trong ma trận A (tức là Ai − 1, j <Ai, j>
Ai + 1, j), và Ak,l là một đỉnh khác trong một cột khác. Một đỉnh có thể được truy tìm giữa Ai, j và Ak, l nếu:
• đỉnh Ak, l gần nhất với Ai, j, tức là không có đỉnh Am, l
sao cho | m - i | ≤ | k - i |,
• ngược lại, đỉnh Ai, j gần đúng nhất với Ak, l, không có
Các đỉnh liền kề sau đó được nối với nhau trong các đoạn đường. Như ví dụ, chúng ta hãy xem xét ma trận thưa thớt sau
đứng như mặt phẳng tự tương quan của chúng ta và có các mục nhập khác 0 đại diện cho các đỉnh. Kết quả của việc nối
các mục khác 0 theo các quy tắc trên là được thể hiện trong Hình 3.7. Trong hình, tọa độ (6,1) không gắn với (6,3) bởi vì
không phải chúng không đứng trong các cột liền kề (quy tắc 1.). (6,1) không gắn với (7,2) hoặc (5,2) vì đó là khoảng cách
bằng cả hai (quy tắc 2.). Cuối cùng, đỉnh gần nhất từ (7,2) trong cột 3 là (5,3), nhưng đỉnh thì không được rút ra bởi vì
gần nhất từ (5,3) trong cột 2 là (5,2), phá vỡ thứ hai điều kiện, vi phạm tính tương hỗ của các điều kiện 2. và 3.
Các track có thể được biểu thị dưới dạng tập hợp các bộ giá trị, các mục nhập đầu tiên và thứ hai của mỗi bộ đại diện
cho các chỉ số hàng và cột của ma trận. Trong ví dụ trên, tập hợp mô tả rãnh trên cùng sẽ là T = {(1, 1), (1, 2), (2, 3)}. Tập
hợp các bản vẽ có thể được thu thập trong T, một tập hợp các bản nhạc bộ, nơi Ti là i^th track trong tập hợp. Trong ví dụ
của chúng tôi, chúng tôi sẽ có
T = {{(1, 1), (1, 2), (2, 3)}, {(3, 1), (4, 2)}, {(5, 2), (5, 3)} }, và, ví dụ, T3 = {(5, 2), (5, 3)}.
như những điều được đề cập trong Phần 3.8, nếu không, các tuyến đường có thể đạt đến các đỉnh mà không nên thuộc
về.
Hình 3.8 minh họa quá trình được áp dụng cho mặt phẳng tự tương quan kích thước đầy. Ngoài ra, tài liệu về xử lý ma
trận thành các track (rãnh) như vậy, với các thuật toán chi tiết, có thể được tìm thấy trong Phụ lục A.
Hình 3.7: Theo dõi truy tìm trên cơ sở đỉnh cao gần nhất nghiêm ngặt có đối ứng
Cho đến thời điểm này, các tuyến đường chồng chéo là có thể được nhìn thấy, như trong Hình 3.8. Vì có thể có một
ước tính khoảng thời gian chỉ tại một thời điểm, nó phải được quyết định cho mỗi khung mà theo dõi. Đây là nơi chúng
tôi khai thác hai quan sát khác: đối với dạng sóng gần tuần hoàn có cửa sổ, đỉnh của chu kỳ nói chung là lớn nhất, và các
bản nhạc track với cao độ thực tế sự tiến triển có xu hướng dài hơn.
Cả hai phẩm chất này có thể được kết hợp với nhau bằng cách tính trọng lượng của mỗi bản nhạc, hoặc tổng của giá trị
tương quan mà nó chứa. Do đó, càng lớn à nhiều hơn nữa các đỉnh tạo thành một track, trọng lượng lớn nhất của nó.
Cách tiếp cận của chúng tôi từ đó đến nay là đơn giản: đối với một khung đã cho, đỉnh được chọn sẽ là đỉnh thuộc về
đường chồng chéo với nhiều nhất cân nặng (weight).
Do đó, tập hợp các đường đi của tự tương quan sẽ được xử lý thành tập C các đường bao cao độ. Đường viền giống như
các track, tập hợp các bộ chỉ mục, ngoại trừ các chuyến tham quan trong cùng một tập hợp không trùng lặp. Ngoài ra,
khi, từ khung hình này sang khung hình khác, track đã chọn sẽ thay đổi, một đường bao được kết thúc và một đường
viền mới được tạo ra, vì nó bị loại trừ rằng một đường bao cao độ kéo dài nhiều hơn một track. Kết quả là, các đường
bao là tập con của các đường, tức là Ti ⊆ Cj.
Dưới đây là mô tả thuật toán không chính thức về việc tạo tập đường bao C từ track set T:
1.Đối với mỗi cột trong mặt phẳng tự tương quan, lặp lại điều sau.
2. Tìm chỉ số của các track trùng lặp với cột hiện tại. Nếu có bất kỳ điều gì, hãy tiếp tục.
3. Trong các track đã chọn, hãy chọn track có trọng lượng lớn nhất.
4. Nếu track này khác với track được chọn trong cột trước, tạo một phân đoạn mới.
5. Nối vào phần đuôi của phân đoạn mới nhất là mục nhập của track đã chọn có chỉ mục cột khớp với cột hiện tại.
Hình 3.8: Các dấu vết tự tương quan được truy tìm theo quy trình được mô tả.
Quy trình này để lại các track ổn định nhất, đại diện cho diễn biến tuần hoàn của các phân đoạn voiced theo một cách có
vẻ đáng tin cậy. Sự biểu hiện trình tự được cho trong Hình 3.9. Theo các ví dụ trước về pitch tracking, một sóng răng cưa
đồng bộ cao độ đã được tạo ra và có sẵn ở đây.
Hình 3.9: Các đường bao chu kỳ thu được bằng thuật toán theo dõi nặng của chúng tôi.