9.2 Công cụ phân tích giọng nói9.2.1 Phân tích phổ dải băng rộng so với dải băng hẹp cho âm thanh lời nói Một cách rất phổ biến và thông thường để phân tích và trích xuất các tính năng t
Trang 1AUDIO AND SPEECH PROCESSING WITH
MATLAB
Các tính năng âm thanh để nhận dạng giọng nói tự động và phân tích âm
thanh
Trang 29.1 Đặc tính giọng nói: giới thiệu
Trong chương này chúng ta sẽ xem xét các phương pháp phân tích tín hiệu tiếng nói.Phân tích tiếng nói thực hiện giải quyết các vấn đề tìm ra dạng thức tối ưu biển diễn tiếng nói một cách hiệu quả
Phân tích tiếng nói thực hiện việc trích hoặc chọn hoặc chuyển đổi tín hiệu tiếng nói sang một dạng biểu diễn khác sao cho có thể biểu diễn thông tin tiếng nói tốt hơn theo cách mà chúng ta cần
Trang 39.2 Công cụ phân tích giọng nói
9.2.1 Phân tích phổ dải băng rộng so với dải băng hẹp cho âm
thanh lời nói
Một cách rất phổ biến và thông thường để phân tích và trích xuất các tính năng từ âm thanh dựa trên giọng nói là sử dụng một ngân hàng lọc trên dải
ngân hàng bộ lọc như vậy là độ phân giải tần số.Độ phân giải tần số thông thường (để phân tích giọng nói) được chia thành 2 loại là
"băng hẹp" hoặc "băng rộng"
Trang 4Phân tích băng rộng tổng hợp các đường sóng hài kích thích nguồn dọc để tạo cấu trúc định dạng của tiếng nói
Trang 5Phân tích băng hẹp sử dụng các bộ lọc có chiều rộng tương tự với chiều rộng sóng hài kích thích (khoảng cách giữa mỗi sóng hài).Cấu trúc kích thích nguồn hài được tiết
lộ bởi dải hẹpphân tích (tức là các vạch ngang rất hẹp trong một quang phổ).
Trang 69.2.2 Phổ cho phân tích giọng nói
Thông số quan trọng nhất của một biểu đồ quang phổ (hoặc Fourier thời gian ngắn liên quan Transform) là độ dài của FFT
Trang 7Phổ băng rộng phân tích giọng nói
Chiều dài phân tích ngắn thì
lược đồ phân tích
spectrogram thu được gọi là
spectrogram băng rộng
Trang 8Phổ băng hẹp phân tích giọng nói
Ngược lại nếu chiều dài phân tích
lớn thì gọi là lược đồ spectrogram
băng hẹp
Trang 9s[t] = g[t] h[t] (9.1) ∗ h[t] (9.1)
Trang 10Trong đó là toán tử tích chập Đưa ra định lý tích chập của phép biến ∗ h[t] (9.1) đổi Fourier và thực tế rằng S, G và H là các phép biến đổi Fourier của s,
g và h, dẫn đến kết quả là phép biến đổi Fourier của tín hiệu bằng phép biến đổi Fourier của nguồn nhân với biến đổi Fourier của bộ lọc:
S(ω) = G(ω) × H(ω) (9.2) ) = G(ω) = G(ω) × H(ω) (9.2) ) × H(ω) = G(ω) × H(ω) (9.2) ) (9.2)
Trang 11Để tách các thành phần thay đổi cao và thấp khác nhau trong miền tần
số, một phân tích tần số tiếp theo được hình thành và kết quả có thể được phân tách đơn giản bằng cách cắt ngắn / phân ngưỡng
Sự biến đổi tần số hơn nữa này thường được thực hiện bằng cách sử dụng một phép biến đổi tần số nghịch đảo mà có hiệu quả thực hiện điều tương tự nhưng có tác động tích cực là giữ cho các đơn vị logic hơn Sử dụng FFT làm phép biến đổi Cepstrum có thể được định nghĩa như sau:
IFFT (log | FFT (s [t]) |)
Trang 12Properties of Cepstrum Analysis
Biến đổi tần số của tín hiệu giọng nói (FFT) cho thấy các sóng hài của nguồn được điều chế bởi các cộng hưởng của bộ lọc
Do đó, log FFT là tổng của cấu trúc lược nguồn và các cực đại cộng hưởng của bộ lọc
Một biến đổi tần số nghịch đảo tiếp theo (IFFT) có thể tách các va đập cộng hưởng và cấu trúc mịn thông thường
Trang 13Mô hình hóa cộng hưởng của bao quang phổ
Biểu diễn toán học cực kỳ nhỏ gọn (bộ lọc tất cả các cực)
• Một cặp cực cho mỗi lần cộng hưởng (chất định hình)
• Trình bày tốt hầu hết các bài phát biểu
Trang 149.4.1 Định nghĩa LPC
Phân tích LPC được định nghĩa là một mô hình tự phục hồi Tương tự như phân tích quang phổ và Cepstrum cho tín hiệu giọng nói, phân tích LPC được thực hiện sau mỗi 10 đến 20ms Giải thích cho điều này là giả định rằng các thuộc tính thống kê của khía cạnh bộ lọc của tín hiệu giọng nói là gần như đứng yên trong các khoảng thời gian này
Xác định:
s [n] là tín hiệu (và S (z) là biến đổi Z của nó)
e [n] là tín hiệu lỗi (và E (z) là biến đổi Z của nó)
a1 p là các thông số bộ lọc (đối với bộ lọc tất cả các cực có độ dài p)
Trang 15Bước đầu tiên để phân tích LPC là lập mô hình tín hiệu đầu vào là sự kết hợp tuyến tính của các đầu ra trước đó và tín hiệu lỗi:
Thực hiện phép biến đổi Z của hai vế ta được:
Trang 16LPC phương pháp tự tương quan
Tìm a1 và a2 của bộ lọc LPC bậc hai được xác định bởi phương trình:
Cho các hệ số tự tương quan r0 = 1.0, r1 = 0.5 and r2 = 0.2:
Suy ra a1=0.553 và b1=-0.067
Trang 17Phân tích LPC cho Lời nói – Biện minh
Từ phân tích lý thuyết của một ống hở một đầu; các cực phức sẽ xuất hiện trên vòng tròn đơn vị ở các tần số được cho bởi:
• Fn = (2n + 1) c / 4l, n = 0, 1, 2 , .
• l= 17cm, c = 344m / s
• Do đó: một cộng hưởng trên mỗi kHz
• Cần một cặp cực cho mỗi lần cộng hưởng
• Một cặp cực cần thiết để điều khiển dạng sóng
• Do đó yêu cầu hệ số LPC : 2 * (BW + 1) trong đó BW là băng thông lời nói tính bằng kHz
Trang 189.5 Tính năng trích xuất cho ASR
Ở các hệ thống âm thanh phân tích dựa trên tần số, các vectơ đặc
trưng của ASR được trích xuất bằng cách sử dụng cấu trúc phổ biến từ các cường độ hệ số FFT Điều này đạt được tương tự như cấu trúc của phép phân tích quang phổ được minh họa trong Hình 9.11
9.5.1 Phân tích tần suất ngắn hạn
Trang 19Quang phổ của các âm tiết “dee”, “dah” và
“doo”
Tuy nhiên, vị trí của các nguyên âm này (về tần số) sẽ thay đổi tùy theo giới tính, độ tuổi và đặc điểm thể chất của người nói
Trang 20Biến đổi Cepstrum được định nghĩa là: IFFT(log|FFT(s[n])|)
Cepstrum tốt hơn là sử dụng trực tiếp các quang phổ ngắn hạn vì có một biểu diễn nhỏ gọn hơn Điều này là do việc cắt bớt Cepstrum để biểu diễn cho các đặc tính lọc của giọng nói con người
9.5.2 Cepstrum cho nhận dạng giọng nói?
Trang 21Bộ lọc nhấn mạnh trước / Bộ lọc âm thanh cân bằng
Hầu hết các phương pháp trích xuất đặc trưng cho ASR (ví dụ: MFCC
và PLP) kết hợp mô hình nhận thức tần số của con người để chuẩn hóa một cách cảm nhận các đặc trưng về nội dung tần số
9.6 Các tính năng dựa trên cảm nhận:
Tính năng PLP và MFCC
Trang 23Phương pháp trích xuất tính năng Cepstrum, PLP và MFCC
Trang 24Dạng sóng âm thanh cân bằng PLP
Sử dụng bộ lọc nhấn mạnh trước để triển khai PLP
Trong đó ω) = G(ω) × H(ω) (9.2) là tần số góc (ω) = G(ω) × H(ω) (9.2) =2πf) Phương trình này được mở rộng cho f) Phương trình này được mở rộng cho các tần số cao hơn
Trang 25Các bộ lọc nhấn mạnh trước của phương pháp PLP và MFCC.
Trang 279.7 Triển khai thực tế của PLP và
MFCC
Mặc định số lượng các dải quan trọng trong việc triển khai MFCC trong bộ công cụ HTK là 20 Hơn nữa, trong bộ công cụ HTK, số hệ số cuối cùng được đặt thành mặc định là 12 và tần số lấy mẫu được đặt thành 16kHz
Cần lưu ý rằng một phần mở rộng được sử dụng để xử lý PLP là phương pháp RASTA , đã trở nên phổ biến gần đây (nó là cũng được thực hiện trong bộ công cụ HTK) .
Trang 28PLP-Hệ số HTK thường được bộ công cụ HTK sử dụng được gọi là MFCC “delta” (∆)
và MFCC “delta-deltas” (∆∆), tức là sự thay đổi hệ số MFCC và sự thay đổi hệ số MFCC từ khung này sang khung khác.
Sau đây là phần trích dẫn điển hình của các tính năng MFCC bằng bộ công cụ HTK: các tính năng của MFCC là các tính năng gốc và các tính năng Del và Acc tương ứng là MFCC “delta” (∆) và MFCC “delta-deltas” (∆∆)
Trang 299.8 Tính năng chung của âm thanh
9.8.1 Phân tích âm thanh tính năng trung và ngắn hạn
Một số lượng lớn các tính năng và loại tính năng có thể được trích xuất từ âm thanh các tín hiệu Các tính năng âm thanh có thể được phát triển đặc biệt để phân tích giọng nói và công nhận (như được mô tả trong phần 9.6) Tuy nhiên, trong phần này, các tính năng âm thanh được mô tả có thể được sử dụng cho các tín hiệu âm thanh tổng quát hơn (chẳng hạn như âm nhạc, v.v.) để xác định đặc tính và truy xuất Âm thanh chung như vậy các tính năng có thể được trích xuất trên cơ sở ngắn hạn đến trung hạn
Trang 309.8.2 Trích xuất tính năng ngắn hạn
Trích xuất tính năng ngắn hạn dựa trên việc tách tín hiệu âm thanh đầu vào thành "khung" chồng chéo hoặc không chồng chéo Độ dài khung / cửa sổ điển hình là khoảng 10-30ms Điều này là do sẽ có một số áp dụng khoảng thời gian cao độ (đối với âm nhạc, giọng nói hoặc âm thanh dựa trên độ rung) trong
chiều dài khoảng thời gian đó
Trang 319.8.3 Trích xuất tính năng trung hạn
T rích xuất tính năng trung hạn cũng dựa trên việc tách âm thanh đầu vào tín hiệu vào các "khung" chồng chéo hoặc không chồng chéo nói chung là nhiều trong thời gian dài hơn so với trích xuất tính năng ngắn hạn (thường có độ dài khung hình trong khoảng từ 1 giây đến 10 giây)
Trang 329.8.4 Time Domain Energy Audio Features Example: Zero Crossing Rate
Nhiều tính năng âm thanh miền tần số và thời gian khác nhau đã được sử dụng trong phân tích âm thanh Tỷ lệ vượt qua bằng 0 là một ví dụ về tính năng như vậy Đối với một
khung phân tích, tỷ lệ giao nhau bằng 0 là số lần tín hiệu vượt qua số 0 (tức là đã thay đổi
từ tích cực sang tiêu cực hoặc từ tiêu cực sang tích cực)
Trang 33trong đó : N là số mẫu của 1 tệp âm thanh ,hàm sign được xác định bởi
Trang 349.9 Đường Bao ASR: Tổng Kết
- Đường bao chọn lọc được yêu cầu để cung cấp một biểu diễn nhỏ gọn và bất biến cho ASR.1/ bộ lọc dựa trên trạng thái để sử lý âm thanh.
2/ đường bao: được yêu cầu biểu diễn nhỏ gọn.
3/ lý thuyết bộ lọc nguồn dẫn đến phân tích sử dụng FFTs, dự đoán tuyến tính và phân tích Cepstral
- các tính năng để phân tích âm thanh chung có thể đạt được qua khung thời gian ngắn/trung bình và dài sử dụng các tỉ lệ vượt qua bằng không.
Trang 359.10 Bài Tập
bài 9.1: viết một đoạn code matlab tìm các zero crossing và hiển thị ngõ ra trên một hình trong thời gian ngắn với dạng sóng thực tế: vd:
tìm các zero crossing của tín hiệu:y = sin(2*pi*t) trong thời gian từ 1 đến 5 code:
t = [1:0.01:5]; y = sin(2*pi*t); zci = @(v) find(v(:).*circshift(v(:), [-1 0]) <= 0);%hàm trả về giá trị zero crossing của tín hiệu
zx = zci(y);
figure(1)
plot(t, y, '-r')
hold on
plot(t(zx), y(zx), 'bp')
hold off gridlegend('Signal', 'Approximate Zero-Crossings')
Trang 36kết quả chạy:
Trang 37bài: 9.2 viết một đoạn code matlab và vẽ một loạt biểu đồ pre-emphasis filters với giá trị a từ kết quả
của công thức (9.24) với các giá trị{0.7 0.8 0.9}
code: a=[1];
[s1,f]=audioread('hamactu.mp4');
figure(1)
plot(s1)
title('speech signal');
b=[1 -0.7];
fvtool(b,a); %vẽ pre-emphasis filters
y=filter(b,a,s1); %tín hiệu s1 sau khi qua bộ lọc
figure(2)
plot(y);
title('First filter response');
Trang 38
kết quả: