Tín hiệu và năng lượng

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải quyết vấn đề nhận dạng tiếng Việt bằng phân tích cú pháp (Trang 55 - 58)

3.4.3. Số mỏm (number of hills)

Số mỏm là thông số được tính tốn đơn giản nhưng quan trọng vì nó chỉ ra bản chất của dao động. Chúng ta có thể đếm được số mỏm trong một đoạn tín hiệu bằng cách xem đồ thị của nó. Và chúng ta cũng có thể dễ dàng thiết kế thuật toán cũng như viết chương trình đếm số mỏm của một đoạn tín hiệu

longnat_t hill_count(signal_t s) { longnat_t i, hc; int h;

for(hc=0, h=0, i=0; i<length(s); i++) { if(h==0 && s[i]>0) h++; //đầu mỏm if(h==1 && s[i]<=0) h++; //cuối mỏm

if(h==2) { hc++; h = 0; } //tăng số mỏm và sang mỏm mới }

return hc; }

Trong q trình thực nghiệm, chúng tơi khơng dùng số mỏm mà là số mỏm trung bình (nghĩa là số mỏm trên độ dài của đoạn tín hiệu). Thơng số này tỏ ra ổn định hơn theo thời gian, vì một từ được nói dài sẽ có số mỏm nhiều hơn số mỏm của một từ nói ngắn. Thơng số này tuy nhiên khơng ổn định khi các khoảng lặng nhiều, do đó chúng ta sẽ được thông số ổn định bằng cách cắt khoảng lặng trước khi tính.

Số mỏm lớn hơn một ngưỡng θ cũng là thông số quan trọng và thể hiện đặc trưng phát âm của một từ. Thông thường nếu ta giữ độ to của phát âm, thì con số này nói chung khá ổn định. Tuy nhiên chúng tôi sử dụng ngưỡng θ tương đối so với biên độ lớn nhất. Bằng thực nghiệm, chúng tôi thấy con số này ổn định và đặc trưng cho các từ. Thực chất việc đếm các mỏm lớn hơn ngưỡng θ chỉ là trường hợp tổng quát của đếm mỏm như trên.

longnat_t hill_count(signal_t s, real_t t) { longnat_t i, hc; int h;

for(hc=0, h=0, i=0; i<length(s); i++) { if(h==0 && s[i]>t) h++; //đầu mỏm if(h==1 && s[i]<=t) h++; //cuối mỏm

if(h==2) { hc++; h = 0; } //tăng số mỏm và sang mỏm mới }

return hc; }

Bảng 3-5. Thuật toán đếm số mỏm với ngưỡng

Trong trường hợp này, số mỏm trung bình sẽ được tính tương đối so với ngưỡng θ theo cách như sau. Chúng ta loại các mẫu ở đầu và ở cuối nhỏ hơn ngưỡng θ để có được đoạn giữa. Mặc dù đoạn giữa vẫn chứa các mẫu lớn hơn θ nhưng nó khơng phải là các mẫu thuộc về khoảng lặng như các mẫu ở đầu và cuối.

3.4.4. Biên độ (amplitude)

Biên độ là tham số nguyên thuỷ của tín hiệu tiếng nói cũng như tín hiệu dạng sóng. Các tham số có thể tính trực tiếp từ biên độ là biên độ cực đại (max), biên độ

cực tiểu (min), và biên độ nhiễu (noise). Các tham số này khơng dùng để nhận dạng nhưng có thể dùng để tham số hoá tương đối, nghĩa là tạo ra các tham số khá bất biến theo chiều biên độ.

Biên độ trung bình ) ( ) ( 1 s length s a s length i i ∑ = = Biên độ cực đại i s length i s a ) ( .. 1 min = =min Biên độ cực tiểu i s length i s a ) ( .. 1 max = max=

Biên độ không phải tham số tốt để nhận dạng vì nó biến đổi trong các lần phát âm khác nhau, nhưng chúng ta ít nhiều có thể sử dụng nó để phân đoạn tự động cho tiếng nói rời rạc và loại bỏ các khung có biên độ yếu, coi như khơng nhận dạng được.

3.4.5. Độ dừng (duration)

Độ dừng liên quan tới trục thời gian của phát âm thường là từ hoặc câu. Độ dừng là thời gian tồn tại của phát âm. Trong các tập tin tiếng nói, bao giờ chúng ta cũng thấy có sự xen lẫn giữa các khoảng lặng (silent) và các khoảng có tiếng nói. Đặc biệt trong các tập tin tiếng nói rời rạc, mỗi tiếng được giới hạn bởi một khoảng lặng ở đầu và một khoảng lặng ở cuối.

Độ dừng của một từ thường phụ thuộc vào cách phát âm của cá nhân và phụ thuộc vào thanh điệu. Trong tiếng Việt, các từ có dấu nặng thường ngắn hơn các từ có cùng cấu tạo nhưng khác dấu, ví dụ “mạ” ngắn hơn “ma” hoặc “má”. Đơi khi người dùng cố tình phát âm dài do phát âm khơng dứt khốt, hoặc ngân thêm như trong khi hát, hoặc do cố tình tỏ thái độ dè bỉu. Các sản phẩm phát âm như vậy thường bị biến đổi mạnh dẫn tới khó nhận dạng hoặc nhận dạng thành hai từ.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải quyết vấn đề nhận dạng tiếng Việt bằng phân tích cú pháp (Trang 55 - 58)

Tải bản đầy đủ (PDF)

(107 trang)