You are on page 1of 27

Phân loại ngữ âm và phonologic của các âm vị tiếng Anh của phần đầu tiên của mô-đun này

có thể truyền cảm hứng cho


kỹ sư âm thanh nhiều loại ý tưởng về cách nhận ra các loại âm vị khác nhau của máy tự động - với mục tiêu cuối cùng là
nhận ra âm vị, và âm tiết và những lời từ đang ở. Ví dụ, người ta có thể phát hiện ra các nguyên âm đang tìm kiếm
formants cố định. Fricatives có tiếng nói cũng sẽ có formants cố định, nhưng cũng có một thành phần băng thông rộng,
tần số cao do nguồn kích thích được sản xuất bởi sự co thắt trong đường thanh âm. Diphthongs có thể được phát hiện
tại lướt của formants, v.v.

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.

2.1. Phân biệt speech / silence dựa trên năng lượng


Để phân biệt phân đoạn speech với các silence, chúng ta nên tìm hiểu
càng nhiều thuộc tính đáng tin cậy càng tốt tạo ra sự khác biệt giữa trạng thái speech và trạng thái silence. Thật không
may trong trường hợp silence giọng nói phân đôi, dường như chỉ có một thứ đáng tin cậy và đơn giản đủ: cấp độ, tốt
hơn cho các phân đoạn giọng nói. Chúng tôi nói đó là điều đáng tiếc, bởi vì chỉ thuộc tính này cũng không hoàn toàn
đáng tin cậy, vì im lặng không bao giờ thực sự là im lặng; luôn có một chút tiếng ồn từ môi trường có thể sánh ngang với
âm thanh giọng nói yếu nhất, chẳng hạn như ma sát. Nếu tiếng ồn này cho thấy bất kỳ đặc điểm miền thời gian nào khác
có thể phân biệt nó với dạng sóng giọng nói, chúng ta nên sử dụng chúng. B Nhưng nó dường như không phải vậy, vì các
đặc điểm của tiếng ồn xung quanh là hoàn toàn phụ thuộc vào môi trường ghi, dựa trên đó rất ít giả định
có thể được thực hiện. Nói cách khác, chúng ta phải tìm các đặc điểm của trạng thái mà điều đó không thể được đặc
trưng, không phải trong các thuật ngữ chung. Trong tần số miền, có thể chụp ảnh phổ của tiếng ồn xung quanh. Điều này
có thể giúp ích trong việc mô tả đặc điểm của nó, nhưng miễn là chúng ta ở trong miền thời gian, chúng ta chỉ có thể giả
định rằng mức độ slilence ít hơn phân khúc hữu thanh và vô thanh, và sử dụng điều này làm tiêu chí phân biệt.
2.1.1 Thuộc tính phân biệt
Hình 2.1 trình bày dạng sóng của câu nói "crash", được bao quanh bởi một một chút im lặng. Nếu bạn đang xem tài liệu
này trong định dạng điện tử, bạn có thể phóng to các phân đoạn im lặng và tự mình thấy rằng ngay cả ở đó, dạng sóng
không hoàn toàn bằng không và có một chút nhiễu loạn. Nhưng
các điều kiện ghi vẫn đủ tốt để đạt được Tỷ lệ tín hiệu thành tiếng ồn - (Signal-to-Noise Ratio) (SNR)-mức dB lớn nhất
của dạng sóng vì e rằng mức dB là sàn tiếng ồn - khoảng 60 decibel. Do đó, nó khá dễ dàng để phát hiện ra bằng mắt
thường nơi có các phân đoạn im lặng. Chúng tôi có thể làm điều này bởi vì mắt có được tầm nhìn tổng thể về đường bao
(envelope), hoặc đường viền (contour), của dạng sóng. Câu hỏi chúng tôi giải quyết trong phần sau là làm thế nào, tại
cấp độ xử lý tín hiệu, để có được đường bao (envelope) này?

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.

2.1.3. Algorithm (Thuật toán):

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.

Cài đặt ngưỡng


Ngưỡng phân biệt trạng thái được sử dụng trong thuật toán hữu thanh – vô thanh được trình bày trong [Kondoz, 2004],
nhưng nó không được cho biết làm thế nào những điều này nên được xác định. Tài liệu được trình bày trong tiểu mục
này do đó là tài liệu gốc.
Phương pháp được đề xuất ở đây xác định ngưỡng chỉ dựa trên sự chồng chéo giá trị, bỏ qua phần còn lại của dữ liệu.
Các giá trị chồng chéo của Hình 2.3 được sắp xếp và trình bày trong Hình 2.4. Trong phần trình bày này, chúng tôi sử
dụng f và g để biểu thị các giá trị hàm thuộc tính của hàm dưới và các trạng thái có giá trị trên trùng nhau. Giới hạn dưới
và giới hạn trên của khoảng chồng chéo nằm ở min (g) và max (f) - mặc dù min (f) và max (g) có thể đã được sử dụng
tương đương. Nf và Ng là số trùng nhau giá trị f và g. Những con số này được sử dụng để chuẩn hóa trục x của các ô, để
có trọng số bằng nhau cho các tập giá trị xung đột 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

4. Đặt i và p là số giá trị của f và g dưới và trên T tương ứng, tức là

, trong đó <và > được coi là toán tử boolean, 1 if true, 0 if false

5. Đặt j và q đều là -1.


6. Vì vậy, miễn là i khác j hoặc p khác q, hãy lặp lại các bước sau.
7. Đánh giá mặt trái (left hand side) của (2.8). Nếu nó là số dương, hãy đặt Tmin = T. Nếu không,
đặt Tmax = T.
8. Đặt
9. Đặt j = i, và q = p.

10. Đặt

Đưa ra quyết định

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

Các âm bật (plosives) có im lặng khô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?

2.1.4 Hậu nhận xét (A posteriori comments)

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

2.2.1 Các thuộc tính và chức năng phân biệt


Các chức năng thuộc tính được liệt kê trong phần này, đối với hai chức năng đầu tiên, chung cho tất cả sách Tôi có thể
bắt gặp điều đó sử dụng quy trình miền thời gian theo thuật toán-cho sự phân biệt voiced-unvoiced [Rabiner và Schafer,
1978, Kondoz, 2004]. Tuy nhiên, điều thứ ba là đặc biệt của [Kondoz, 2004], trong đó một số chức năng thuộc tính khác
được đề cập: tương tự tuần hoàn, đỉnh của giọng nói, độ nghiêng phổ và tỷ lệ năng lượng được nhấn mạnh trước. Tuy
nhiên một số thuộc tính này là không đơn giản và / hoặc tính toán rẻ về mặt tính toán. Vì lý do này, tôi chỉ chọn ba điều
sau đây, vì chúng hoạt động tốt và chúng dễ dàng và rẻ về mặt tính toán để có được. Trên thực tế, tất cả chúng đều có
thể thu được dưới dạng đầu ra của bộ lọc FIR, rất thuận tiện để truy cập Matlab thông qua việc sử dụng chức năng bộ
lọc.
STE và MA một lần nữa
Hãy để chúng tôi gắn bó với câu nói "crash" của chúng tôi. Nếu bạn tham khảo Hình 2.7, bạn sẽ thấy rằng MA thường ít
hơn trong các phân đoạn unvoiced so với các phân đoạn voiced. Do đó, chúng tôi sẽ sử dụng MA một lần nữa, giống như
mô tả ở 2.1.2

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

trong đó sgn (.) là hàm signum,


Hình 2.9: Quang phổ của “crash”. Mật độ năng lượng của các phân đoạn unvoiced thấp dưới 1kHz và trở thành trên
1kHz, trong khi điều ngược lại là đúng cho các phân đoạn voiced.

Bây giờ nếu bạn tiến hành thay thế

bạn sẽ thấy rằ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.

Tỷ lệ năng lượng dải thấp / toàn dải (LF)


Thuộc tính cuối cùng mà chúng ta sẽ xem xét ở đây liên quan đến sự tương phản sự phân bố phổ giữa các phân đoạn
voiced và unvoiced. Xem xét hình- 2,9, bạn nên nhận thấy rằng các âm vị unvoiced thể hiện một băng thông rộng, lớp
năng lượng bị bôi bẩn bắt đầu từ tần số 3kHz (xấp xỉ) và bên trên. Mặt khác, phổ cường độ của đoạn voiced được thấy là
dày đặc hơn ở phần dưới của nó. Đây là những đặc điểm có thể nhìn thấy trong
miền tần số,nhưng có thể được khai thác trong miền thời gian trong một Tỷ lệ năng lượng dải thấp / toàn dải (LF), được
hiển thị cho câu nói "crash" trong Hình 2.10. Đây là tỷ lệ STE của phiên bản được lọc low-pass của tín hiệu qua tín hiệu
thông thường. Điểm cắt của bộ lọc thông thấp có thể là đặt ở tần số 1kHz. Về mặt hình thức, điều này là

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.

Chuẩn hóa các chức năng thuộc tính


Thuật toán được trình bày bởi Kondoz trong [Kondoz, 2004] là "khôn ngoan" theo nghĩa mà nó không chỉ tính đến việc
liệu một hàm thuộc tính có ở trên hoặc thấp hơn sự phân biệt ngưỡng mà còn là chức năng "chắc chắn" như thế nào
yêu cầu các chỉ số thời gian được voiced hoặc unvoiced. Ví dụ, nhìn lại tại Hình 2.6, rõ ràng là vùng đạt mức cao nhất của
MA tương ứng cho một đoạn speech, trong khi MA ở phần thấp nhất của nó biểu thị sự silence. Tuy nhiên, khi gần đến
ngưỡng, sự chắc chắn về việc liệu speech là voiced hoặc unvoiced giảm bớt. Nói chung, chúng tôi sẽ đồng ý rằng ở
ngưỡng cao hơn hay thấp hơn của hàm thuộc tính, mức độ chắc chắn càng lớn hơn.

Để 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.

ĐƯA RA QUYẾT ĐỊNH

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.

2.2.3. VÍ DỤ KẾT QUẢ


Tôi đã triển khai thuật toán Kondoz, được hoàn thành bằng cách thiết lập ngưỡng của chúng tôi và loại bỏ jitter, như
một chương trình Matlab. Để kiểm tra chương trình, tôi đã sử dụng ghi âm bài phát biểu được nghe trong bản nhạc High
Speech Commercial Break từ tiếng Ailen nhà soạn nhạc Roger Doyle’s Babel: Album KBBL 1999. Toàn bộ đoạn ghi âm nói
rằng “Here’s our High-Speed Commercial Break. Record it now and listen back innormal speed at your convenience.” Là
tín hiệu đào tạo, tôi đã sử dụng mỗi “commercial break”. Thuật toán sau đó đã được chạy trên toàn bộ bản ghi và
kết quả có thể được hình dung trong Hình 2.13. Tín hiệu được điều chỉnh bằng giọng nói có thể là đã nghe ở đây 1
và điều chỉnh không lập hóa đơn, ở đây 2 . Vui nhất là chơi lại các điện thoại chưa lập hóa đơn được nối với nhau, ở đây
3

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.

3.1 Tự tương quan (Autocorrelation)


Sự tự tương quan của một tín hiệu cho biết một tín hiệu giống nhau như thế nào khi dịch chuyển. (Điều này có nghĩa là
gì sẽ trở nên rõ ràng trong phần sau.) Nó là một trường hợp tương quan chéo đặc biệt, trong đó hai tín hiệu khác nhau
được so sánh khi chúng được dịch chuyển dọc theo nhau. Tương quan và tự động tương quan là các phép toán thường
được biểu thị bằng toán tử dấu sao, (x* y) [n] biểu thị mối tương quan của x với y với độ trễ n mẫu. Đối với sự tự tương
quan của x, chúng ta cũng có thể sử dụng phím tắt xx, tức là

Định nghĩa toán học của tự tương quan là

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 [.

Sự đối xứng của tự tương quan (Symmetry of autocorrelation)


Nhận ra rằng tự tương quan là đối xứng về 0 sẽ làm giảm bớt cả tính toán các tín hiệu tự tương quan và đơn giản hóa
công thức của nó. Các tính chất đối xứng là xx [n] = xx [−n], được thể hiện bằng sự thay thế của p cho m + n trong (3.6),

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.

3.4 Tự tương quan trong thời gian ngắn (Short-Time Autocorrelation)


Trong phương trình (3.11), phân tích tự tương quan của x kéo dài trong khoảng [0, N [, bất kể giá trị của x nằm ngoài
khoảng này là bao nhiêu. Phân tích này có thể là "trượt" (slid), nghĩa là, được lấy trên một khoảng [m, m + N [, với bất kỳ
số nguyên m nào. Cho một chỉ số m, chúng ta có thể nhận được toàn bộ, tín hiệu tự tương quan độ dài N, và m có thể tự
kéo dài một khoảng có độ dài M, tạo ra một mặt phẳng tự tương quan của MN các giá trị. Theo dõi đỉnh tự tương quan
lớn nhất dọc theo chỉ số trượt m có tiềm năng mang lại sự phát triển của giai đoạn theo thời gian. Trên thực tế, chúng
tôi đang đưa ra giả định rằng tín hiệu giọng nói phát triển đủ chậm để tần số cơ bản của nó có thể được coi là không đổi
trong N mẫu của cửa sổ, nhưng chúng tôi nhận thức rằng, về lâu dài, điều cơ bản này rất dễ bị thay đổi. Chính những
thay đổi này mà chúng tôi quan tâm theo dõi, để có được các đường bao cao độ nói trên.

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.

Vectơ này được mô tả theo thuật toán dễ dàng hơn:

Đối với vectơ đầu vào a có độ dài N,.


Trong ký hiệu của thuật toán này, ký hiệu ← là toán tử gán.

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.

3.9 Mô tả thuật toán "theo dõi nặng" (Description of a “heavy-track” algorithm)


Điểm bắt đầu của thuật toán theo dõi cao độ (pitch tracking) dựa trên tự tương quan trước được gửi trong phần này là
giả định sau:

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:

• các cột liền kề, tức là j = l ± 1,

• đỉ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ó

đỉnh Am, j sao cho | m - k | ≤ | i - k |.

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.

You might also like