Python nhận dạng giọng nói giảm tiếng ồn

Vì hầu hết chúng ta đang làm công việc của mình hoặc đi học/đại học ảo, chúng ta thường phải tham gia các cuộc họp trực tuyến và chúng ta không thể mong đợi mỗi nơi của chúng ta luôn yên tĩnh. Một số người trong chúng ta có thể sống trong một môi trường ồn ào, nơi chúng ta có thể nghe thấy tiếng còi hoặc giọng nói của người khác hoặc thậm chí đôi khi tai nghe của chúng ta bị lỗi, điều này chắc chắn là điều không mong muốn đối với người nhận ở đầu bên kia. Sẽ tốt hơn nếu chúng ta loại bỏ tiếng ồn ở đầu người gửi bằng cách sử dụng mô hình học sâu?

Mục lục

  1. Khử nhiễu âm thanh là gì?
  2. Sơ lược về lịch sử của các phương pháp khử nhiễu khác nhau
    1. Phép trừ quang phổ
    2. Bộ lọc Wiener
    3. Cổng quang phổ
    4. Các mô hình dựa trên Deep Learning
  3. Facebook Denoiser – Một mô hình Deep Learning
  4. Thiết lập mô hình FB Denoiser

Khử nhiễu âm thanh là gì?

Định nghĩa rất đơn giản và dễ hiểu, nó sẽ diễn ra như thế này,

Khử nhiễu âm thanh là quá trình loại bỏ tiếng ồn khỏi bài phát biểu mà không ảnh hưởng đến chất lượng bài phát biểu

Ở đây, tiếng ồn là bất kỳ phân đoạn âm thanh không mong muốn nào đối với thính giác của con người như tiếng còi xe, tiếng gió hoặc thậm chí là tiếng ồn tĩnh

Nó còn được gọi là tăng cường giọng nói vì nó nâng cao chất lượng lời nói. Cải thiện giọng nói là một nhiệm vụ quan trọng và nó được sử dụng như một bước tiền xử lý trong các ứng dụng khác nhau như cuộc gọi âm thanh/video, thiết bị trợ thính, Nhận dạng giọng nói tự động [ASR] và nhận dạng người nói. Chúng ta sẽ xem cách loại bỏ nhiễu trong tín hiệu âm thanh trong phần còn lại của bài viết này

Sơ lược về lịch sử các phương pháp khử nhiễu khác nhau

Trong phần này, hãy tóm tắt các kỹ thuật khử nhiễu âm thanh khác nhau được sử dụng-

  • Phép trừ quang phổ
  • Bộ lọc Wiener
  • Cổng quang phổ
  • Các mô hình dựa trên Deep Learning

Phép trừ quang phổ

Sự phát triển của các phương pháp tăng cường giọng nói bắt nguồn từ năm 1979 khi Boll S đề xuất một phương pháp khử nhiễu dựa trên Phép trừ Quang phổ. Nhưng, phép trừ quang phổ là gì?

Điều đầu tiên họ làm là chuyển đổi tín hiệu âm thanh sang miền tần số. Đối với điều này, họ đã sử dụng một trong những thuật toán có ảnh hưởng trong xử lý tín hiệu số, Biến đổi Fourier nhanh [FFT] và một số biến thể của FFT như Biến đổi Fourier thời gian ngắn [STFT] sẽ trích xuất cả các tính năng liên quan đến thời gian và tần số. Sau đó, họ sẽ chỉ cần trừ các thành phần tần số của tiếng ồn khỏi âm thanh ồn ào để có được giọng nói được làm sạch/nâng cao và do đó có tên Phép trừ quang phổ

Nhưng phép trừ quang phổ có hai thiếu sót lớn-

  1. Chúng tôi phải chọn một nhiễu từ tín hiệu âm thanh để loại bỏ nó, điều này không thực tế chút nào
  2. Tiếng ồn phải có mặt trong toàn bộ âm thanh. Vì vậy, loại phương pháp này không hoạt động tốt đối với các tín hiệu âm thanh có tiếng ồn hiếm gặp như tiếng còi ô tô, khiến nó không hiệu quả đối với các ứng dụng trong thế giới thực

Bộ lọc Wiener

Tiếp theo là lọc Wiener, đây là tiêu chuẩn công nghiệp để khử nhiễu âm thanh và được sử dụng rộng rãi trong máy trợ thính, điện thoại thông minh và thiết bị liên lạc. Quá trình lọc này cũng yêu cầu cả giọng nói ồn ào và một mẫu tiếng ồn có trong giọng nói. Bộ lọc Wiener tìm ước tính thống kê về lời nói rõ ràng từ lời nói ồn ào và chính tiếng ồn để giảm thiểu lỗi bình phương trung bình theo các giả định nhất định về tiếng ồn

Tuy nhiên, bộ lọc Wiener có ích trong trường hợp điện thoại thông minh nơi chúng ta có thể có hai micrô, một micrô để ghi lại lời nói của chúng ta có tiếng ồn và một micrô khác chỉ dành cho tiếng ồn. [Trong điện thoại thông minh của bạn, micrô ở phía dưới dùng để ghi âm lời nói và micrô ở trên cùng dùng để ghi âm]. Vì vậy, chúng tôi đang sử dụng một số loại bộ lọc Wiener mỗi ngày mà không hề nhận ra. Điều này thật tuyệt vời phải không?

Cổng quang phổ

Dưới đây là dạng sóng âm thanh của một bài phát biểu ồn ào và bài phát biểu nâng cao. Những kết quả này được tạo ra từ mô-đun python giảm tiếng ồn, sử dụng cổng quang phổ dưới mui xe – cũng là một phương pháp truyền thống. Các loại bộ lọc tiếng ồn truyền thống này hoạt động tốt trong việc lọc tiếng ồn tĩnh nhưng không lọc được một số tiếng ồn hiếm gặp, đó là một trong những lý do để phát triển các mô hình Học sâu để tăng cường giọng nói

Các mô hình Deep Learning ngày nay đang trở nên phổ biến vì khả năng khái quát hóa của chúng để tìm hiểu và giải quyết một nhiệm vụ [theo cách từ đầu đến cuối] mà không gặp rắc rối về kỹ thuật tính năng. Điều này bao gồm cả khử nhiễu âm thanh và có một số mô hình tốt thậm chí sẽ hoạt động trong thời gian thực. Các mô hình Deep Learning để khử nhiễu âm thanh có thể được chia thành các danh mục, dựa trên mặt nạ và dựa trên ánh xạ

Các mô hình dựa trên mặt nạ tính toán mặt nạ [mảng boolean] trong miền thời gian/tần số dựa trên lời nói nhiễu đầu vào để làm giảm nhiễu trong tín hiệu. Mặt khác, các phương pháp dựa trên ánh xạ nhằm mục đích loại bỏ lời nói rõ ràng khỏi lời nói ồn ào nếu chúng tôi được cung cấp nhiều lời nói ồn ào và rõ ràng [nhiều dữ liệu đào tạo. ]

Tiếp theo, hãy thảo luận về Facebook Denoiser, một trong những mô hình State Of The Art [SOTA] để cải thiện giọng nói

Tăng cường giọng nói theo thời gian thực trong miền dạng sóng – Facebook Denoiser

Mô hình này được đề xuất bởi Alexandre Défossez et al. trong Nghiên cứu AI của Facebook [FAIR] vào năm 2020. Điểm đặc biệt của mô hình là nó có thể chạy trong thời gian thực trên CPU máy tính xách tay. Hãy nhớ rằng kiến ​​trúc được đề xuất sẽ đơn giản nhất có thể để hoạt động trong các hệ thống thời gian thực. Tôi sẽ trình bày cách sử dụng mô hình này trong thời gian thực ở cuối bài viết này

Mô hình này có kiến ​​trúc U-Net của bộ giải mã-bộ mã hóa với các kết nối bỏ qua và mạng mô hình trình tự được áp dụng cho đầu ra của bộ mã hóa. Nhưng tại sao phần mã hóa-giải mã này lại có các kết nối bỏ qua ở giữa chúng? . Bạn cũng có thể tham khảo bài viết này để tìm hiểu thêm về bỏ qua kết nối. Dưới đây là kiến ​​trúc tổng thể của mô hình

Kiến trúc của Facebook Denoiser

Mỗi lớp trong bộ mã hóa có lớp tích chập 1D, sau đó là kích hoạt ReLU. Nó cũng có tích chập 1⨯1 để nhân đôi số lượng kênh tại bộ mã hóa với kích hoạt GLU [Gated Linear Unit]. Mỗi lớp trong bộ giải mã có cấu trúc tương tự như bộ mã hóa ngoại trừ việc nó có tích chập chuyển đổi 1D [giải mã] thay cho lớp tích chập

Lớp mô hình trình tự ở giữa kiến ​​trúc có thể là LSTM một chiều hoặc LSTM hai chiều dựa trên độ phức tạp của mô hình. Kiến trúc được đề xuất trong bài viết này được gọi là DEMUCS. Khá đơn giản phải không?

Không giống như hầu hết các mô hình trong xử lý âm thanh, mô hình này hoạt động với các tệp sóng thô trong chính miền thời gian và do đó có tên là Tăng cường giọng nói trong miền dạng sóng. Tuy nhiên, mô hình tối ưu hóa trong cả miền thời gian và tần số, đây là cách

Các tác giả đã sử dụng tổn thất L1 trên dạng sóng, đây là sự khác biệt tuyệt đối giữa âm thanh nhiễu và âm thanh được làm sạch dưới dạng tổn thất [điều này hoạt động trong miền thời gian]. Họ cũng đã tính toán Biến đổi Fourier thời gian ngắn [STFT] cho âm thanh ồn ào và được làm sạch, đồng thời thu được tổn thất từ ​​STFT được tính toán [điều này hoạt động trong miền tần số thời gian]

Mô hình hoạt động thực sự tốt trong thực tế vì các tác giả đã tuyên bố rằng nó có thể được coi là một trong những mô hình SOTA để cải thiện giọng nói. Đây là kết quả từ bài báo,

Kết quả so sánh của mô hình khử nhiễu FB

Tôi nghĩ rằng chỉ cần biết thang đo của từng chỉ số đánh giá được sử dụng trong bài báo là đủ hơn là lý thuyết phức tạp đằng sau các chỉ số đánh giá. Hãy nghĩ về PESQ như một thước đo đánh giá với thang điểm 0. 5 đến 4. 5, 0 đến 100 cho STOI, 1 đến 5 cho các biện pháp MOS. Hãy thiết lập và chạy mô hình này trong hệ thống cục bộ của chúng tôi. Tôi sẽ hướng dẫn bạn từng bước để thiết lập mô hình này trong hệ thống cục bộ của bạn

Thiết lập Mô hình khử nhiễu FB

Trước hết, chúng ta cần cài đặt mô-đun khử nhiễu từ pypi. Nếu bạn có bất kỳ bản phân phối Linux hoặc Mac OS nào, bạn đang ở bên may mắn. Hiện tại, các tác giả không cung cấp bất kỳ hỗ trợ chính thức nào cho các hệ điều hành khác như Windows

Đây là kho lưu trữ GitHub của mô hình khử nhiễu mà chúng tôi sẽ sử dụng. Nếu bạn có bất kỳ nghi ngờ nào trong quá trình cài đặt, vui lòng để lại nhận xét bên dưới

Bước 1

Họ đã cung cấp mô hình trong pypi chỉ là "bộ khử nhiễu cài đặt pip" sẽ hoạt động. Nếu bạn không muốn làm rối tung các thư viện Python mà bạn đã có, chỉ cần tạo một môi trường ảo [venv] rồi cài đặt bộ khử nhiễu. Tôi sẽ chỉ cho bạn cách làm điều này

Bạn có thể bỏ qua dòng thứ nhất và dòng thứ hai nếu không muốn tạo một môi trường riêng để cài đặt bộ khử nhiễu

Bước 2.  

Người dùng Linux nên kiểm tra xem bạn đã cài đặt PulseAudio trong hệ thống chưa. Nếu không, hãy cài đặt bằng lệnh,

Đồng thời cài đặt Điều khiển âm lượng PulseAudio bằng lệnh,

Người dùng Mac OS phải cài đặt SoundFlower trên hệ thống của họ để sử dụng mô hình này. Theo liên kết này để cài đặt SoundFlower và bạn có thể bỏ qua Bước 3

Bước 3

Chạy các lệnh để tạo luồng ảo chính xác là chúng ta sẽ sử dụng,

Thao tác này sẽ thêm “Màn hình đầu ra không có giá trị” vào danh sách micrô sẽ sử dụng. Chọn nó làm đầu vào trong phần mềm của bạn. Mở một thiết bị đầu cuối khác và chạy “pavucontrol”. Thao tác này sẽ mở cửa sổ bộ điều khiển âm lượng

Bước 4

Người dùng Mac có thể chạy lệnh,

Thao tác này sẽ tải mô hình và thêm micrô, bạn có thể chọn tùy chọn này và đầu bên kia có thể thưởng thức bài phát biểu nâng cao của bạn ngay bây giờ

Đối với người dùng Linux, hãy chạy lệnh,

Mô hình sẽ bắt đầu khử nhiễu âm thanh đầu vào từ micrô. Tôi đã thử nghiệm nó trên một máy tính xách tay chạy trên Intel i5 thế hệ thứ 8 với 8 GB RAM nhưng kiểu máy này cho thấy một số độ trễ đáng chú ý trong việc tạo đầu ra khử nhiễu. Bạn cũng có thể sử dụng mô hình này để khử nhiễu ở đầu thu. Bạn có thể tham khảo kho mô hình để biết cách làm

Ghi chú cuối

Trong bài viết này, chúng ta đã tìm hiểu khử nhiễu âm thanh là gì cùng với mô hình học sâu của nó. Chúng ta cũng đã biết sơ lược về lịch sử của các kỹ thuật cải thiện giọng nói truyền thống và mô hình học sâu-Facebook Denoiser cũng như cách thiết lập chúng trong hệ thống của chúng tôi

Hy vọng bạn thích đọc bài viết của tôi về mô hình học sâu – Audio Denoiser. Chúc bạn ngày mới tốt lành

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả.  

Plugin giảm tiếng ồn tốt nhất là gì?

Hình ảnh gọn gàng chuyên nghiệp. Plugin bên ngoài với nhiều tùy chọn giảm tiếng ồn có thể tùy chỉnh. .
Topaz Denoise AI. Topaz DeNoise AI là phần mềm giảm tiếng ồn tốt nhất khi kết hợp tất cả các tính năng của nó. .
DxO PureRaw 2. .
ON1 NoNoise AI. .
Adobe Lightroom. .
AdobePhotoshop. .
phần mềm ồn ào. .
ánh sáng NEO. .
Nik Dfine 2

Khử tiếng ồn có sử dụng phép biến đổi Fourier không?

Tất cả các tai nghe khử tiếng ồn chủ động đều có một micrô nhỏ thu được tất cả âm thanh xung quanh bạn và sử dụng phương trình Biến đổi Fourier để tách âm thanh .

Thuật toán giảm tiếng ồn là gì?

Phương pháp phổ biến để loại bỏ nhiễu là phương pháp lọc tuyến tính tối ưu và một số thuật toán trong phương pháp này là Lọc Wiener, lọc Kalman và kỹ thuật trừ phổ. Here, the noise signal is passed through a filter or transformation.

DaVinci Resolve có giảm nhiễu không?

DaVinci Resolve cũng có các công cụ giảm nhiễu khác nằm trong trang “Chỉnh sửa”, trang “Fairlight” hoặc trang “Cut” .

Chủ Đề