Báo Cáo Báo cáo Lab xử lý tiếng nói - Nâng cao chất lượng tiếng nói

Thảo luận trong 'Điện - Điện Tử' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    NÂNG CAO CHẤT LƯỢNG TIẾNG NÓI

    ​ Nâng cao chất lượng tiếng nói liên quan đến việc cải thiện cảm nhận đối với tiếng nói bị suy giảm chất lượng do sự có mặt của nhiễu trong tiếng nói. Mục đích của nâng cao chất lượng tiếng nói là sự cải thiện chất lượng và tính dễ nghe của tiếng nói đã bị suy giảm do nhiễu. Các thuật toán nâng cao chất lượng tiếng nói làm giảm và nén nhiễu nền đến một mức độ nào đó và nó được xem như là các thuật toán nén nhiễu.
    Ở đây xét 2 thuật toán cải thiện tiếng nói là: trừ phổ và Wiener Filter.
    1. Nguyên lý và lưu đồ thuật toán
    1.1. Sơ đồ chung
    [​IMG]







    1.1.1. Trừ phổ

    [TABLE="align: left"]
    [TR]
    [TD][/TD]
    [/TR]
    [TR]
    [TD][/TD]
    [TD][​IMG][/TD]
    [/TR]
    [/TABLE]











    Trừ phổ là thuật toán dựa trên một nguyên tắc cơ bản, thừa nhận sự có mặt của nhiễu, nó có thể đạt được mục đích ước lượng phổ của tiếng nói sạch bằng cách trừ đi phổ của nhiễu với phổ của tiếng nói đã bị nhiễu. Phổ của nhiễu có thể được ước lượng, cập nhật trong nhiều chu kỳ khi không có mặt của tín hiệu. Sự thừa nhận đó chỉ được thực hiện đối với nhiễu không đổi hoặc biến đổi chậm, và khi đó phổ của nhiễu sẽ không thay đổi đáng kể giữa các khoảng thời gian cập nhật. Việc tăng cường tín hiệu đạt được bằng cách tính IDFT (biến đổi Fourier rời rạc ngược) của phổ tín hiệu đã được ước lượng có sử dụng pha của tín hiệu có nhiễu. Thuật toán này là một phép tính ước lượng đơn giản vì nó chỉ gồm biến đổi DFT thuận và DFT ngược.
    Với quá trình xử lý hiệu đơn giản này, nếu không được thực hiện một cách cẩn thận thì tiếng nói sau xử lý sẽ bị méo. Nếu như việc lấy hiệu quá lớn thì có thể loại bỏ đi một phần thông tin của tiếng nói, còn nếu việc thực hiện lấy hiệu đó nhỏ thì nhiễu sẽ vẫn còn được giữ lại trong tín hiệu.

    a. Trừ phổ biên độ
    Giả thiết rằng y[n] là tín hiệu vào đã bị nhiễu, nó bằng tổng của tín hiệu sạch x[n] và tín hiệu nhiễu d[n] (ở đây ta xét trong một cửa sổ):
    y[n] = x[n] + d[n]
    Thực hiện biến đổi Fourier rời rạc cả 2 vế, ta được:
    [​IMG]
    Chúng ta có thể biểu diễn Y([​IMG]) dưới dạng phức như sau:
    [​IMG]
    Khi đó |Y([​IMG])| là biên độ phổ, và [​IMG]là pha của tín hiệu đã bị nhiễu.
    Phổ của tín hiệu nhiễu D([​IMG]) có thể được biểu diễn dạng biên độ và pha:
    [​IMG]
    Biên độ phổ của nhiễu |D([​IMG])| không xác định được, nhưng có thể thay thế bằng giá trị trung bình của nó được tính trong khi không có tiếng nói (tiếng nói bị dừng), và pha của tín hiệu nhiễu có thể thay thế bằng pha của tín hiệu bị nhiễu [​IMG], vấn đề này không ảnh hưởng đến tính dễ nghe của tiếng nói, có thể ảnh hưởng đến chất lượng của tiếng nói là làm thay đổi pha của tiếng nói nhưng cũng chỉ vài độ.
    Khi đó chúng ta có thể ước lượng được phổ của tín hiệu sạch:
    [​IMG]
    ở đây |[​IMG]| là biên độ phổ ước lượng của nhiễu được tính trong khi không có tiếng nói hoạt động. Ký hiệu [​IMG]để chỉ rằng giá trị đó là giá trị ước tính gần đúng. Tín hiệu tiếng nói được tăng cường có thể đạt được bằng cách rất đơn giản là biến đổi IDFT của [​IMG].
    Cần chú ý rằng biên độ phổ của tín hiệu đã được tăng cường là [​IMG], có thể bị âm do sự sai sót trong việc ước lượng phổ của nhiễu. Tuy nhiên, biên độ của phổ thì không thể âm, nên chúng cần phải đảm bảo rằng khi thực trừ hai phổ thì phổ của tín hiệu tăng cường |X([​IMG])| luôn luôn không âm. Giải pháp được đưa ra để khắc phục điều này là chỉnh lưu bán sóng hiệu của phổ, nếu thành phần phổ nào mà âm thì chúng ta sẽ gán nó bằng 0:
    [​IMG]
    Phương pháp xử lý bằng chỉnh lưu bán sóng là một trong những cách để đảm bảo cho |X([​IMG])| không bị âm.

    b. Trừ phổ công suất
    Thuật toán trừ phổ đối với phổ biên độ có thể được mở rộng sang miền phổ công suất. Vì trong một vài trường hợp, nó có thể làm việc tốt với phổ công suất hơn là với phổ biên độ. Lấy phổ công suất của tín hiệu bị nhiễu trong một khoảng ngắn, chúng ta bình phương |Y([​IMG])|, ta được:
    [​IMG]
    |[​IMG]|[SUP]2[/SUP], X([​IMG]).[​IMG][​IMG] không thể tính được một cách trực tiếp và xấp xỉ bằng E{|[​IMG]|[SUP]2[/SUP]}, E{ X([​IMG]).[​IMG]} và E{[​IMG]}, khi đó E[.] là toán tử kỳ vọng. Bình thường thì E{|[​IMG]|[SUP]2[/SUP]} được ước lượng khi không có tiếng nói hoạt động và được biểu thị là |[​IMG]|[SUP]2[/SUP]. Nếu chúng ta thừa nhận d[n] = 0 và không có một sự tương quan nào với tín hiệu sạch x[n], thì E{ X([​IMG]).[​IMG]} và E{[​IMG]} xem là 0. Khi đó phổ công suất của tín hiệu sạch có thể tính được như sau
    [​IMG]
     

    Các file đính kèm:

Đang tải...