You are on page 1of 20

Translated from English to Vietnamese - www.onlinedoctranslator.

com

thể loại mô tả ngữ âm vai trò ngữ âm


nguyên âm đường thanh quản cố định; phần trung tâm của một âm
miệng không đóng lại; không tiết
có âm thanh ma sát
phụ âm luồng không khí bị chặn lề của âm tiết
hoàn toàn hoặc ồn ào
do co thắt
bạch tuộc đơn tiết; lướt đi cfnguyên âm
từ một nguyên âm sang một nguyên

âm khác

Bán nguyên âm cfnguyên âm cfphụ âm


tai mũi họng sự kích thích vinh quang; cfphụ âm
đường thanh âm hoàn toàn
đóng cửa; âm thanh phát
ra ở lỗ mũi
ma sát không có hóa đơn dòng không khí ổn định, cfphụ âm
hỗn loạn do co thắt
tiếng nói xích mích cfma sát không có hóa đơn cfphụ âm
+ kích thích bổ sung của
đường thanh âm bằng dây
thanh âm
điểm dừng không có hóa đơn tích tụ áp lực be- cfphụ âm
sự co thắt toàn bộ phía sau,
sự tái tạo đột ngột sau đó
cho thuê

tiếng dừng lại cfđiểm dừng không có hóa cfphụ âm


đơn+ kích thích nhỏ từ
dây thanh âm trước khi phát
hành
phiền não giải phóng dần áp cfphụ âm
suất không khí sau
khi co lại hoàn toàn;
nối của /t /hoặc /d /
với /S/hoặc /Z /,tương
ứng
Thì thầm luồng không khí ổn định, cfphụ âm
hỗn loạn ở thanh môn

Bảng 1.10:Recapitulatio2N9trên các danh mục âm vị


chương 2

Lồng tiếng / Không hóa đơn / Im


lặng phân biệt đối xử thông qua
xử lý miền thời gian

30
Việc phân loại ngữ âm và ngữ âm của các âm vị tiếng Anh trong 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 ý
tưởng về cách tự động nhận ra các loại âm vị khác nhau - với mục tiêu cuối
cùng là nhận dạng các âm vị, âm tiết và các từ mà chúng có. Ví dụ, người ta
có thể phát hiện các nguyên âm đang tìm kiếm các công thức cố định. Ma
sát có tiếng cũng sẽ có các chất tạo dạng cố định, nhưng cũng có thành
phần tần số cao, băng thông rộng do nguồn kích thích tạo ra bởi sự co thắt
trong đường thanh âm. Diphthongs có thể được phát hiện khi lướt qua của
họ, v.v.
Bức tranh ở đây rất phức tạp, nói thì 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 có Lồng tiếng / Không có Hóa đơn / Im lặng (VUS) thường được
đưa ra cho phần bắt đầ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. Nó có vẻ không nhiều, nhưng nó là một bước khởi
đầu cho Nhận dạng giọng nói, cho phép tách tất cả các âm vị được lồng tiếng khỏi tất cả các âm vị
chưa được chỉnh sửa. (Các âm vị liên quan đến cả sự kích thích của hợp âm và sự co thắt của đường
thanh âm thực sự là cả âm và không â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 thứ này sẽ cung cấp cho chúng tôi những phần thông tin cấp
cao hơn về tín hiệu giọng nói của chúng tôi, trên hết chúng tôi 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 tôi. Chỉ cần lưu ý rằng cách tiếp cận mà chúng tôi đ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 thống kê và ít
dựa trên heuristics là dựa trên Mô hình Markov ẩn [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, hãy xem [Plannerer, 2005].
Ở đây chúng ta sẽ bắt đầu với một cách đơn giản - nhưng không đáng tin cậy trong
mọi trường hợp - tự động phân biệt lời nói và sự im lặng. Như đã 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ó. Chúng tôi sẽ theo dõi
thủ tục phân biệt giọng nói không hóa đơn, là một cách tiếp cận tương tự đối với phân
biệt giọng nói - im lặng, nhưng liên quan đến một số 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. Kết quả học tập quan trọng nhất của
hành trình này có lẽ sẽ là 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. 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,đặc biệtvật chất vốn có trong cách tiếp cận "thực hành" của
chúng tôi. Khía cạnh thuật toán đối với sự phân biệt đối xử có giọng nói không có hóa
đơn phần lớn dựa 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ỏ

31
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, đồng thời 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 của mô-đun: phần phân biệt giọng nói-im lặng và phần được lồng tiếng.
Các thủ tục được tìm thấy trong mỗi là tương tự. Đầu tiên, 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ể
như thế nào có chức năng, hoặc cách chúng ta có thể xử lý dạng sóng để thu
được phép đo 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 của đầu vào
thuộc về trạng thái nào.

2.1 Phân biệt giọng nói / im lặng dựa trên năng lượng
Để phân biệt lời nói với các đoạn im lặng, chúng ta nên tìm ra 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 lời nói và trạng
thái im lặng. Thật không may trong trường hợp phân đôi lời nói - im lặng,
dường như chỉ có một thứ đủ đáng tin cậy và dễ hiểu: mức độ, cao hơn cho các
phân đoạn lời nói. Chúng tôi nói rằng điều đó là không may, 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 môi trường có thể sánh ngang với âm
thanh giọng nói yếu ớt nhất, chẳng hạn như tiếng ma sát không có âm thanh.
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. Nhưng nó
dường như không, vì các đặc tính của tiếng ồn nền hoàn toàn phụ thuộc vào
môi trường ghi âm, do đó rất ít giả định có thể được đưa ra. Nói cách khác,
chúng ta phải tìm ra các đặc điểm của một trạng thái không thể được đặc
trưng hóa, chứ không phải trong các thuật ngữ chung. Trong miền tần số, có
thể lấy bản in phổ của tiếng ồn nền có thể giúp xác định đặc tính 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 độ im lặng nhỏ hơn mức độ tiếng ồn. và các phân đoạn chưa được
lập hóa đơn 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 đối xử


Hình 2.1 trình bày dạng sóng của câu nói "sụp đổ", được bao quanh bởi
một chút im lặng. Nếu bạn đang xem tài liệu này ở định dạng điện tử, bạn

32
"tai nạn"
1
Biên độ

-1
S U V U S
Thời gian

Hình 2.1:Utterance "crash" được phân đoạn ở các trạng thái Có Lồng tiếng, Không có Hóa đơn và
Im lặng (VUS).

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 âm vẫn đủ tốt để đạt được Tỷ lệ tín hiệu trên tiếng ồn (SNR) - mức
dB tối đa của dạng sóng e rằng mức dB của tầng tạp âm - xấp xỉ 60 decibel. Do
đó, bằng mắt thường khá dễ dàng phát hiện ra vị trí của các phân đoạn im
lặng. Chúng ta có thể làm điều này bởi vì mắt của chúng ta có được tầm nhìn
tổng thể về đường bao, hoặc đường viền, 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, ở mức xử lý tín hiệu, để có được
phong bì này?

2.1.2 Các hàm thuộc tính ứng viên


Ở đây chúng tôi sẽ trình bày hai hàm chính thức: Năng lượng trong thời gian
ngắn (STE) và Trung bình trung bình (MA). Hai chức năng này của dạng sóng
"crash" đã đượ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,

∑1
N−
STE [N] = x2[n − m ], (2.1)
m= 0

33
"tai nạn"
1
STE
MA
Biên độ

-1
S U V U S
Thời gian

Hình 2.2:Cùng một cách nói, với các phác thảo về Năng lượng trong thời gian ngắn
(STE) và Trung bình Độ lớn (MA). 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 điểm nhấn trong phép đo STE. MA phản ánh
đường bao dạng sóng tốt hơn như chúng ta thấy, đó là lý do tại sao nó thường được ưa
thích hơn trong phân biệt dựa trên mức độ. [Kondoz, 2004]

trong khi MA tính tổng giá trị tuyệt đối (được biểu thị bằng dấu ngoặc thẳng đứng|) của các
giá trị dạng sóng giống nhau này,

∑1
N−
MA [N] = | x[n − m]| . (2.2)
m= 0

Ở đây, lưu ý rằng các giá trị STE và MA tại chỉ mụcNsử dụng quá khứNgiá trị, bao
gồm cả giá trị hiện tạiN, I Ex[N], x[n−1], ..., x[n − N+1].Để sử dụng thực tế, chúng tôi
thay vì sử dụngNcác giá trị tập trung xung quanhN, từn − N /2đếnN+N/2-
1.Tuy nhiên, các định nghĩa chính thức phải như vậy để có được sự tương
đương trực tiếp giữa STE như được trình bày trong (2.1) và vớitích chậpbình
phương của dạng sóng vớicửa sổ hình chữ nhật,
∑∞
STE [N] = x2[n − m]w[m], (2.3)
m=−∞

ở đâu {
1, N∈[0,N [
w[N] = , (2,4)
0, N∈ /[0,N [

34
và đầu ra của bộ lọc FIR thứ tựN−1,hệ số của aib0, b1, ..., bN−1
là tất cả,
∑1
N−
STE [N] = bmx2[n − m]. (2,5)
m= 0
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.
Các phương trình (2.3), (2.4) và (2.5) thực sự ở đây để biện minh cho khoảng lùi
của tổng trong (2.1) và (2.2), và có thể dùng làm tài liệu tham khảo ở phần sau
của tài liệu này. Lưu ý rằng các điểm tương đương có thể đã được vẽ với MA.

Quay lại chủ đề của chúng ta về STE và MA và cách chúng phản ánh đường bao
của dạng sóng, thực tế là trong STE, nó 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 các đoạn chưa được lập hóa
đơn không được biểu diễ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 ưa thích như một tiêu chí phân biệt [Kondoz, 2004], nhưng
STE vẫn là một thước đo tiêu chuẩn, cách một bước so với thời gian ngắncường độ,

1N−∑1
STI [N] = x2[n − m] , (2,6)
N m= 0

và hai từ Root-Mean-Square (RMS) trong thời gian ngắn,




√ ∑1
N−
RMS [N] = √1 x2[n − m] . (2,7)
N m= 0

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 việc
phân biệt giọng nói.

2.1.3 Thuật toán


Nếu tất cả các giá trị STE hoặc MA cho các phân đoạn giọng nói lớn hơn cho các
phân đoạn im lặng, thì sẽ có một ngưỡngTnhư vậy STElời nói≥Tvà STEIm lặng≤T. Việc
tìm kiếm ngưỡng này sau đó sẽ rất nhỏ vàTcó 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.

35
Lời nói
Im lặng
nhật ký (MA)

Thời gian

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 khi MA phân
đoạn im lặng ít hơn MA phân đoạn lời nói, 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 trùng lặp ở một mức độ nào đó với các giá
trị của trạng thái kia.

Tất nhiên, nó không đơn giản như vậy và thường có một sốchồng lên nhau.
Điều này được minh chứng trong Hình 2.3, có thể thấy rằng, mặc dù theo xu
hướng chung, có một số giá trị MA lời nói thấp hơn các giá trị MA im lặng khác. Câu
hỏi mà chúng ta phải giải quyết bây giờ là ngưỡng nên được đặt như thế nào, liên
quan đến sự chồng chéo này.

Cài đặt ngưỡng


Các ngưỡng phân biệt theo trạng thái được sử dụng trong thuật toán có âm thanh không
hóa đơn được trình bày trong [Kondoz, 2004], nhưng không cho biết cách xác định các
ngưỡng này. 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 chỉ xác định ngưỡng dựa trên các giá trị
chồng chéo, không tính đến 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 biểu diễn này, chúng
tôi sử dụngfvàgđể biểu thị các giá trị hàm thuộc tính của các trạng thái có giá trị
thấp hơn và cao hơ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ày nằm ởmin (g)vàmax (f) -Mặc dumin (f)vàmax (g) có thể đã được sử dụng
tương đương.NfvàNgsau đó thì umbers of ove vỗ mạnh
giá trịfvàg. Những con số này được sử dụng để chuẩn hóax-axes của các biểu đồ, để có
trọng số bằng nhau cho các bộ giá trị mâu thuẫn nhau này.

36
Im lặng Lời nói
max (f)

Khu vực nhầm lẫn

g (n / N)
g
f (n / N)
g

tối thiểu (g)


0 1 0 1
n/N n/N
f g

Hình 2.4:Xác định ngưỡng sao cho khu vực nhầm lẫn bằng nhau giữa
các trạng thái.

Một cách tiếp cận dễ dàng sẽ là thiết lậpTlà giá trị giữa trong vùng chồng lấn,
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” đối
với một trong các tiểu bang. 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 im lặng sẽ được tìm thấy dưới ngưỡng, trong khi
phần lớn nhất của trạng thái lời nói sẽ được tìm thấy là thuộc về Trạng thái 1.
Chúng ta hãy gọi là phần của trạng thái nằm ở phía bên trái của ngưỡng là "khu
vực nhầm lẫn" của trạng thái đó. Để công bằng cho cả hai bang, ngưỡng nên được
điều chỉnh để diện tích nhầm lẫn ở cả hai bang là ngang nhau. Điều này có thể
được hình thành theo toán học như

f-1 g-1
1 N∑ 1 N∑
max (f[N]- T,0)- max (T - g[N],0) = 0. (2,8)
Nf N= 0
Ng N= 0

Một cách dễ dàng và nhanh chóng để tìm giá trị củaTthỏ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 một
tập 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
trongfhoặcg. Thời điểm thích hợp để dừng tìm kiếm để dừng là khi nào, từ
một lần lặp lại tiếp theo, số lượng giá trị củafvàgdưới hoặc trênT
Không thay đổi. Alg orithm có thể th trước khi được xây dựng như sau:

1. Từ Overppi thuộc tính ng các chức năng, chỉ giữ lại sự chồng chéo
một phần, mà bạn lưu trữ trong vectơf vàg.

37
2 bộTminvàTtối đalà mức tối thiểu và tối đa của vùng chồng chéo này.

3. ĐặtT=1(Tmin
2
+Ttối đa).

4. ĐặttôivàPnhư là n∑ ndgbên dưới và bên trênT,


umber của các giá trị củafmột∑
tương ứng, tức làtôi= Nf[N]<TvàP= Ng[N]>T,
ở đâu<và
> được coi là toán tử boolean, tạo ra 1 nếu đúng, 0 nếu sai.
5. Đặtjvàqcả hai thành -1.

6. Miễn làtôi6=jhoặcP6=q, lặp lại các bước sau.

7. Đánh giá mặt trái của (2.8). Nếu nó là tích cực, hãy đặtTmin=T. Khác, thiết
lậpTtối đa=T.

8. ĐặtT=1(Tmin
2
+Ttối đa).

9. Đặtj=tôi, vàq=P.
∑ ∑
10. Đặttôi= Nf[N]<TvàP= Ng[N]>T.

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, việc đưa ra quyết định xem 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ỉ số có
giá trị nhỏ hơn hay nhiều hơn ngưỡng hay không. Kết quả của thuật toán của chúng tôi khi
được áp dụng cho tín hiệu đào tạo của chúng tôi “sự cố” được thể hiện trong Hình 2.5. Lưu ý
rằng ở đây, chúng tôi đã xác định phân đoạn Giọng nói và Im lặng dựa trên chính tín hiệu
mà chúng tôi đang sử dụng cho phần "đào tạo" của thuật toán. Hãy nhớ lại rằng tín hiệu
này, câu nói "sự cố", được phân đoạn theo cách thủ công trong phần lời nói và phần im lặng
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 để phân biệt thời gian phát âm của
các lời nói khác, miễn là chúng được ghi lại trong các trường hợp tương tự về tiếng ồn 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 âm
“va chạm” được sử dụng để phân biệt giọng nói - im lặng “đánh”.

38
Lời nói
Im lặng
nhật ký (MA)

log (T)

Thời gian

Hình 2.5:Ra quyết định đơn giản trong trường hợp chỉ có một hàm thuộc
tính: đặt bất kỳ giá trị nào của hàm đó dưới ngưỡng thuộc về một trạng
thái và trên ngưỡng thuộc về trạng thái khác.

"đánh"

MA (chuẩn hóa)
Biên độ

Thời gian

Lời nói
Im lặng
nhật ký (MA)

log (T)

Thời gian

-
Hình 2.6:Ngưỡng được xác định dựa trên câu nói "sự cố" được sử dụng để nêu
phân biệt đối xử "hit". Hai từ được ghi lại trong cùng một môi trường -
cố vấn.

39
Các tủ có im lặng không?

"Hit" có tính năng dừng chưa lập hóa đơn /t /.Sự phân biệt lời nói-im lặng dựa trên năng lượng
của chúng tôi đã phân loại một cách dễ hiểu điểm dừng trước khi bùng nổ là im lặng, nhưng điều
này nằm 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.4Hậu thếbình luận


Mặc dù về chi tiết và cách triển khai thoạt đầu có vẻ hơi phức tạp, nhưng 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 lời nói và phần im lặng của nó; đ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 giọng nói nào đã
được ghi lại trong các điều kiện tương tự; phân loại tất cả các chỉ số thời gian có
MA dưới ngưỡng là im lặng. Những hạn chế chính của phương pháp này, thứ nhất,
nó yêu cầu phân đoạn thủ công sơ bộ của một tín hiệu, thứ hai, tất cả các tín hiệu
mà phương pháp này sau đó được sử dụng đều đượ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, là SNR của bản ghi
điều kiện đủ lớn để tạo ra sự khác biệt giữa các phân đoạn im lặng và lời nói có
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, là phương pháp phân tích miền tần số nhiều hơn.

Bây giờ chúng tôi ở trong miền thời gian. Giờ đây, chúng tôi đã có một phương pháp
phân biệt giọng nói - im lặng hoạt động khá tốt, chúng tôi có thể tiến hành phân biệt giọng
nói không hóa âm trong các phân đoạn giọng nói mà phương pháp của chúng tôi trả về. Do
đó, chúng tôi sẽ kết thúc bằng sự phân biệt đối xử hoàn toàn với VUS.

2.2 Phân biệt có lồng tiếng / không có hóa đơn

Sự phân biệt đối xử có giọng nói - không có âm thanh cần tuân theo sử dụng cùng
một ý tưởng với sự phân biệt lời nói - im lặng trước đó, giống như nó xảy ra đối với
các thuộc tính mô tả tương phản các trạng thái cần phân biệt và đặt cho mỗi một
ngưỡng. Tuy nhiên, lần này có nhiều hơn một thuộc tính như vậy. Do đó, sự phức
tạp tăng thêm ở đây liên quan đến cách sử dụng một số hàm và ngưỡng thuộc tính
trong phân biệt đối xử có âm thanh cuối cùng, 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 của chúng. Những xung đột tiềm ẩn này sẽ

40
"tai nạn"
1
MA
Biên độ

-1
U V U
Thời gian

Hình 2.7:“crash ”lại phát biểu với đề cương MA, nhưng tập trung vào phần bài
phát biểu.

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ẽ làm cơ sở để chúng ta phân
biệt.

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


Các hàm thuộc tính được liệt kê trong phần này, đối với hai hàm đầu tiên, phổ biến
cho tất cả các sách giáo khoa mà tôi có thể bắt gặp sử dụng xử lý miền thời gian
theo thuật toán để phân biệt giọng nói không có hóa đơn [Rabiner và Schafer, 1978,
Kondoz, 2004]. Tuy nhiên, điều thứ ba là đặc biệt đối với [Kondoz, 2004], trong sách
giáo khoa, một số hàm thuộc tính khác được đề cập đến: độ tương tự tuần hoàn,
mức đỉnh của lời 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 không đơn giản và / hoặc tính toán rẻ. Vì lý do này,
tôi chỉ chọn ba cái sau, vì chúng hoạt động tốt và 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ể nhận được dưới dạng đầu ra của bộ lọc FIR, rất
thuận tiện để có được trong Matlab thông qua việc sử dụnglọchàm số.

STE và MA một lần nữa

Hãy để chúng tôi may rtro ”thốt ra. Nếu bạn tham khảo Hình 2.7, bạn tập hợp ít hơn sẽ
k với “c của chúng tôi

tìm thấy rằng t he MA là gen eở các phân đoạn chưa được lập hóa đơn so với số lượng đóng băng

41
"tai nạn"
1
ZCR
Biên độ

-1
U V U
Thời gian

Hình 2.8:Dạng sóng trong các phân đoạn không được lập hóa đơn "dày đặc" hơn, hỗn loạn hơn,
dao động nhanh hơn so với các phân đoạn được lồng tiếng. Điều này được phản ánh trong Tỷ lệ
giao nhau bằng 0 (ZCR).

các phân đoạn. Do đó, chúng tôi sẽ sử dụng lại MA, giống hệt như đã được mô
tả trong Phần 2.1.2.

Tỷ lệ giao nhau bằng không (ZCR)

Vẫn nhìn vào dạng sóng "sự cố", bạn có thể nhận thấy rằng các phân đoạn không được
lập hóa đơn, mặc dù có năng lượng thấp hơn, nhưng lại 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 độ” này là tốc độ mà dạng sóng vượt qua trục
0, hoặcTỷ lệ giao nhau 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ể thấy rằng nó cao hơn đáng kể trong
các phân đoạn chưa được lập hóa đơn. Về mặt hình thức, hàm ZCR có thể được biểu thị
như

∑1
N−
ZCR [N] = |sgn (x[n − m])-sgn (x[n − m−1])| [Rabiner và Schafer, 1978],
m= 0
(2,9)
ở đâu sgn (.)làdấu hiệu uchức năng m,
{
1 x≥0,
sgn (x) = (2. 10)
- 1 x <0.

42
Hình 2.9:Ảnh phổ của "vụ tai nạn". Mật độ năng lượng của các phân đoạn chưa được lồng tiếng
thấp dưới 1kHz và trở nên lớn trên 1kHz, trong khi điều ngược lại là đúng đối với các phân đoạn
được lồng tiếng.

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

y[N] =|sgn (x[N])-sgn (x[n−1])|, (2.11)

bạn sẽ thấy rằng

∑∞
ZCR [N] = y[m]w[n − m] , (2.12)
m=−∞

tức là ZCR một lần nữa tương đương với tích chập củayvới một cửa sổ hình chữ
nhật. Tương tự như vậy, ZCR có thể được coi là sản lượng của một đơn đặt
hàngN -1Bộ lọc FIR với những cái cho hệ số, được cung cấpy.

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ự phân bố
phổ tương phản giữa các phân đoạn được lồng tiếng và không được thu âm.
Xem xét hình 2.9, bạn sẽ nhận thấy rằng các âm vị chưa được hóa đơn thể hiện
một lớp năng lượng băng rộng, bị mờ bắt đầu từ tần số 3kHz (xấp xỉ) trở lên.
Mặt khác, phổ cường độ của phân đoạn được cho 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

43
"tai nạn"
1
LF
Biên độ

-1
U V U
Thời gian

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 các phân đoạn được lồng
tiếng, rất dễ thu được và do đó là một ứng cử viên tuyệt vời trong việc phân biệt giọng nói không
lồng tiếng.

miền tần số, nhưng có thể được khai thác trong miền thời gian theo tỷ lệ năng
lượng Dải thấp / Toàn dải (LF), được thể hiện cho câu nói “sự cố” trong Hình
2.10. Đây là tỷ số giữa STE của phiên bản được lọc thông thấp của tín hiệu so
với của tín hiệu thông thường. Mức cắt của bộ lọc thông thấp có thể được đặt ở
tần số 1kHz. Về mặt hình thức, đây là

STELP[N]
LF [N] = , (2.13)
STE [N]

với STELPlà STE của bản sao được lọc thông thấp của đầu vàox. Bây giờ chúng ta
đừng đi sâu vào lý thuyết bộ lọc; ở cấp độ thực tế, nó sẽ được giải thích bằng cách
nào, trong Matlab, bạn có thể có được các hệ số bộ lọc thích hợp và sử dụng chúng
tronglọcchức năng để lấy tín hiệu đã lọc này.

2.2.2 Cân nhắc các lập luận của bạn trước khi đi đến quyết
định
Vì vậy, chúng tôi hav e chọn ba các hàm thuộc tính, có thể wTôi sẽ b Cho dù các chỉ số st của
thời gian trong thỏa thuận như thời gian được lồng tiếng hay không hoạt động cũng là nhượng lại.

Tuy nhiên, tôi


t sẽ không al wtrường hợp, và đối với những tình huống như vậy, tôi n, a
quyết định-m aking algorit hnên xây dựng chi tiết.

44
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 là nó không chỉ tính đến việc một hàm thuộc tính cao hơn hay thấp hơn
ngưỡng phân biệt của nó, mà còn tính đến mức độ "chắc chắn" của hàm yêu cầu
các chỉ số thời gian được lồng tiếng hoặc không được lập hóa đơn. Ví dụ, nhìn lại
Hình 2.6, rõ ràng là thùy đạt đến cao nhất của MA tương ứng với một đoạn lời nói,
trong khi MA ở các phần thấp nhất của nó biểu thị sự im lặng. Tuy nhiên, khi gần
đến ngưỡng, sự chắc chắn về việc bài phát biểu được lồng tiếng hay không được
chỉnh sửa sẽ giảm bớt. Nói chung, chúng tôi đồng ý rằng hàm thuộc tính càng cao
hơn hoặc thấp hơn ngưỡng thuộc tính thì mức độ chắc chắn càng lớn.

Để giải thích mức độ chắc chắn này, Kondoz chuẩn hóa các hàm thuộc tính, sao
cho giá trị lớn nhất đạt đến 1, giá trị nhỏ nhất, -1 và ngưỡng là 0. Do đó, hai (hoặc
nhiều) hàm thuộc tính chuẩn hóa có thể được thêm vào cùng nhau, và điều đó với
mức độ chắc chắn lớn nhất sẽ thắng, làm cho tổng trở thành dương nếu nó được
lên tiếng và âm nếu nó không được lập hóa đơn. Bây giờ chúng tôi thiết lập công
thức chuẩn hóa này.
Hãy để chúng tôi gọi một trong các hàm thuộc tính của chúng tôif, vớifminlà giá trị
tối thiểu của nó, vàftối đa, cực đại của nó. Hãy để chúng tôi gọi là phiên bản chuẩn hóa
của nóg. Để đáp ứng các tiêu chí của chúng tôi,gphải là mộthỗn hợphàm, với một phần
tích cực để ánh xạ phần trên ngưỡng trong hàm ban đầu từ 0 đến 1 và một phần âm
làm tương tự ở phía tiêu cực. Về mặt hình thức, chúng tôi có
{
g+(f), f≥T
g(f) = . (2,14)
g-(f), f≤T

Hai thành phầng+vàg-làhàm tuyến tínhcủa hàm đầu vàof, có dạng

g+(f) =một+f+b+, g- (2,15)


(f) =một-f+b-. (2,16)

Các hệ sốmột+,một-,b+vàb-phải được điều chỉnh cho mục đích của chúng tôi. Đây là một
vấn đề đơn giản của việc giải phương trình hai ẩn số. Chúng tôi thấy rằng
{
f − T ,f≥T
g(f) = ftối đa−T
. (2.17)
f − T ,f≤T
T − fmin

45
1
Lồng tiếng

Chưa lập hóa đơn


g (MA)

-1
Thời gian

Hình 2.11:Chuẩn hóa hàm thuộc tính: dữ liệu của Hình 2.3 được chuyển
đổi tuyến tính thành span[-1,1]và có tâm là 0 xung quanh ngưỡng.

Chỉ cần thử và thay thếftối đa,T, vàfminvìfvà bạn sẽ thấy rằng bạn nhận được kết
quả1, 0và-1,như dự định. Để hoàn thành phần 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 được chuẩn hóa đã thấy trong Hình 2.3.

Quyết định
Giờ đây, sự phân biệt đối xử có âm thanh không được lập hóa đơ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 hàm có hai giá trị, là 1 ở mọi nơi tổng này là dương và 0 khi âm, tức là
{
1 gSTE[N]-gZCR[N] +gLF[N]≥0, gSTE[
VUjit[N] = (2.18)
0 N]-gZCR[N] +gLF[N]<0.
Lý do tại sao, trong (2.18),gZCRbị phủ định là bởi vì, trái ngược với MA và LF, các
giá trị của ZCRphía dướingưỡng tương ứng vớilồng tiếngcác phân đoạn. Ngoài
ra, lý do cho sự hiện diện củajitchỉ số dưới VUjitsẽ 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ể hiển thịbồn chồn, tức là dao động ably
nhanh không hợp lý giữa hai trạng thái. Tỷ lệ phnhững cái trong bài phát biểu c một n là
được tính đến khoảng mười mỗi giây, và do đó tốc độ thay đổi trạng thái cao d được

46
1
Tiểu bang

0,5
Lồng tiếng

Chưa lập hóa đơn

Trạng thái đầu vào


0 Trung bình chạy

0,5 0,55 0,6 0,65 0,7 0,75 0,8


Thời gian

Hình 2.12:Loại bỏ rung động tiềm ẩn trong hàm VU của chúng tôi (đường liền nét) 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à có tiếng nói.

nhiều nhất là điều này. Tuy nhiên, chúng tôi vẽ trong Hình 2.12 một ảnh chụp nhanh của VU
jithàm 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 ý. Trong
khoảng thời gian từ 0,5 đến 0,55 giây, độ rung được thấy trong đường liền nét ở tốc độ
hàng trăm lần thay đổi mỗi giây, cao một cách phi lý.
Một cách dễ dàng và thích hợp để loại bỏ hiện tượng chập chờn này là sử dụng Đường
trung bình trong thời gian ngắn (thường được gọi làchạy trung bình). Chức năng này rất
giống với các chức năng thời gian ngắn mà chúng ta đã thấy cho đến nay:

1N−∑1
STAVU[N] = VUjit[n − m]. (2,19)
N m= 0

STA được xếp chồng lên nhau trong các đường đứt nét với đầu vào, chức năng
chập chờn 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à có tiếng nói. Do đó, hàm VU cuối cùng của chúng tôi
có hình thức {
1 STAVU[N]≥0.5,
VU [N] = (2,20)
0 STAVU[N]<0.5.

2.2.3 Kết quả ví dụ


Tôi đã triển khai thuật toán Kondoz, được hoàn thành bằng cách đặt ngưỡng và loại bỏ jitter của ting
chúng tôi, dưới dạng chương trình Matlab. Để kiểm tra chương trình, tôi đã sử dụng các

47
"Đây là Thời điểm Thương mại Tốc độ Cao của chúng tôi, hãy ghi âm ngay bây giờ và nghe lại ở tốc độ bình thường một cách thuận tiện."
1
Lồng tiếng

Chưa lập hóa đơn

0,5
Biên độ

- 0,5

-1
0 1 2 3 4 5 6
Thời gian

Hình 2.13:Thuật toán Kondoz '(đã hoàn thành) chạy trên bản ghi âm giọng nói chất
lượng chuyên nghiệp. Chỉ có câu nói "nghỉ thương mại" (dài khoảng 1 giây) được sử
dụng để huấn luyện.

ghi âm giọng nói được nghe trong bản nhạcNgắt thương mại bằng giọng nói caocủa nhà
soạn nhạc Ailen Roger Doyle'sBabel: KBBLNăm 1999 album. Toàn bộ đoạn ghi âm có nội
dung “Đây là thời gian nghỉ thương mại tốc độ cao của chúng tôi. Ghi âm ngay bây giờ và
nghe lại ở tốc độ bình thường một cách thuận tiện. " Như là tín hiệu đào tạo, tôi đã sử dụng
"thời gian nghỉ thương mại" một mình. Thuật toán sau đó đã được chạy trên toàn bộ bản
ghi, vàult c được hình dung trong Hình 2.13. T anh ấy có thể nghe thấy tín hiệu bằng giọng
nói nơi đây 1và điều chỉnh không lập hóa đơn, nơi đâ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, nơi đây 3:D

1http://www.cs.nuim.ie/~matthewh/CS425/2012/sf/HSCB%20voiced.wav
2http://www.cs.nuim.ie/~matthewh/CS425/2012/sf/HSCB%20unvoiced.wav
3http://www.cs.nuim.ie/~matthewh/CS425/2012/sf/HSCB%20unvoiced%
20concatenated.wav

48

You might also like