Phát hiện âm thanh trong Python
Phân tích dữ liệu âm thanh là phân tích và hiểu các tín hiệu âm thanh được thu bởi các thiết bị kỹ thuật số, với nhiều ứng dụng trong doanh nghiệp, chăm sóc sức khỏe, năng suất và thành phố thông minh. Các ứng dụng bao gồm phân tích sự hài lòng của khách hàng từ các cuộc gọi hỗ trợ khách hàng, phân tích và truy xuất nội dung phương tiện, hỗ trợ chẩn đoán y tế và theo dõi bệnh nhân, công nghệ hỗ trợ cho người khiếm thính và phân tích âm thanh vì an toàn công cộng Show
Trong phần đầu tiên của loạt bài viết này, chúng tôi sẽ nói về tất cả những gì bạn cần biết trước khi bắt đầu phân tích dữ liệu âm thanh và trích xuất các tính năng cần thiết từ tệp âm thanh/âm thanh. Chúng tôi cũng sẽ xây dựng Mạng thần kinh nhân tạo (ANN) để phân loại thể loại âm nhạc. Trong phần thứ hai, chúng ta sẽ thực hiện điều tương tự bằng cách tạo Mạng thần kinh chuyển đổi và sẽ so sánh độ chính xác của chúng
Mục lục
Tổng quan về tệp âm thanh Mỗi mẫu là biên độ của sóng tại một khoảng thời gian cụ thể, trong đó độ sâu bit xác định mức độ chi tiết của mẫu còn được gọi là dải động của tín hiệu (thường là 16 bit có nghĩa là một mẫu có thể nằm trong khoảng 65.536 giá trị biên độ)
Sóng âm thanh, màu đỏ, được thể hiện bằng kỹ thuật số, màu xanh lam (sau khi lấy mẫu và lượng tử hóa 4 bit), với mảng thu được hiển thị bên phải. Bản gốc © Aquegg. Wikimedia Commons
Ứng dụng xử lý âm thanh
Xử lý dữ liệu âm thanh bằng Python Nguồn
Có những thiết bị được chế tạo giúp bạn nắm bắt những âm thanh này và thể hiện nó ở định dạng mà máy tính có thể đọc được. Ví dụ về các định dạng này là
Một quy trình xử lý âm thanh điển hình liên quan đến việc trích xuất các đặc điểm âm thanh có liên quan đến nhiệm vụ hiện tại, tiếp theo là các sơ đồ ra quyết định liên quan đến phát hiện, phân loại và tổng hợp kiến thức. Rất may, chúng tôi có một số thư viện python hữu ích giúp công việc này dễ dàng hơn Thư viện âm thanh Python Python có một số thư viện tuyệt vời để xử lý âm thanh như Librosa và PyAudio. Ngoài ra còn có các mô-đun tích hợp cho một số chức năng âm thanh cơ bản Chúng tôi sẽ chủ yếu sử dụng hai thư viện để thu và phát lại âm thanh 1. Librosa Nó là một mô-đun Python để phân tích tín hiệu âm thanh nói chung nhưng hướng nhiều hơn đến âm nhạc. Nó bao gồm các chi tiết cơ bản để xây dựng hệ thống MIR (Truy xuất thông tin âm nhạc). Nó đã được ghi lại rất tốt cùng với rất nhiều ví dụ và hướng dẫn Cài đặt
Để tăng thêm sức mạnh giải mã âm thanh, bạn có thể cài đặt ffmpeg đi kèm với nhiều bộ giải mã âm thanh 2. IPython. trưng bày. âm thanh 4 cho phép bạn phát âm thanh trực tiếp trong sổ tay jupyterTôi đã tải lên một tệp âm thanh ngẫu nhiên trên trang bên dưới. Bây giờ chúng ta hãy tải tệp trong bảng điều khiển jupyter của bạn vocaroo. Máy ghi âm trực tuyến Đang tải tệp âm thanh
Điều này trả về một chuỗi thời gian âm thanh dưới dạng một mảng có nhiều mảng với tốc độ lấy mẫu mặc định (sr) là 22KHZ đơn âm. Chúng ta có thể thay đổi hành vi này bằng cách lấy mẫu lại ở 44. 1KHz
hoặc để vô hiệu hóa lấy mẫu lại
Tốc độ lấy mẫu là số lượng mẫu âm thanh được truyền trong mỗi giây, được đo bằng Hz hoặc kHz Phát âm thanh Sử dụng, 5 bạn có thể phát âm thanh trong sổ ghi chép jupyter của mình
Điều này trả về một tiện ích âm thanh Trực quan hóa âm thanh Chúng ta có thể vẽ mảng âm thanh bằng cách sử dụng 6________số 8 Ở đây, chúng ta có biểu đồ đường bao biên độ của dạng sóng Biên độ, Bước sóng và Pha trong tín hiệu là gì?
quang phổ Một quang phổ thường được mô tả dưới dạng bản đồ nhiệt, tôi. e. , dưới dạng hình ảnh có cường độ được hiển thị bằng cách thay đổi màu sắc hoặc độ sáng Chúng ta có thể hiển thị một quang phổ bằng cách sử dụng. 7 0 8 chuyển đổi dữ liệu thành phép biến đổi Fourier ngắn hạn. STFT chuyển đổi tín hiệu sao cho chúng ta có thể biết biên độ của tần số nhất định tại một thời điểm nhất định. Sử dụng STFT, chúng tôi có thể xác định biên độ của các tần số khác nhau phát tại một thời điểm nhất định của tín hiệu âm thanh. 9 được dùng để hiển thị biểu đồ quang phổTrục dọc hiển thị tần số (từ 0 đến 10kHz) và trục ngang hiển thị thời gian của clip. Vì chúng tôi thấy rằng tất cả các hành động đang diễn ra ở dưới cùng của quang phổ, chúng tôi có thể chuyển đổi trục tần số thành trục logarit 3Tạo tín hiệu âm thanh 4
Trích xuất tính năng từ tín hiệu Âm thanh Các đặc trưng quang phổ (đặc trưng dựa trên tần số), thu được bằng cách chuyển đổi tín hiệu dựa trên thời gian thành miền tần số bằng cách sử dụng Biến đổi Fourier, như tần số cơ bản, thành phần tần số, tâm quang phổ, thông lượng quang phổ, mật độ quang phổ, điểm cuộn quang phổ, 1. Trung tâm quang phổ Tâm quang phổ cho biết tần số mà năng lượng của quang phổ tập trung vào hay nói cách khác Nó cho biết vị trí của " tâm khối lượng " của âm thanh. Điều này giống như một trung bình có trọng số trong đó S(k) là độ lớn phổ tại tần số bin k, f(k) là tần số tại bin k 0 tính toán tâm quang phổ cho từng khung hình trong một tín hiệu 6 1 sẽ trả về một mảng có các cột bằng một số khung có trong mẫu của bạnCó một sự gia tăng trong tâm quang phổ ngay từ đầu 2. Rolloff quang phổ Nó là thước đo hình dạng của tín hiệu. Nó đại diện cho tần số mà tần số cao giảm xuống 0. Để có được nó, chúng ta phải tính tỷ lệ thùng trong phổ công suất trong đó 85% công suất của nó ở tần số thấp hơn 2 tính toán tần số rolloff cho từng khung hình trong một tín hiệu 03. Băng thông quang phổ Băng thông phổ được định nghĩa là độ rộng của dải ánh sáng ở một nửa cực đại cực đại (hoặc toàn bộ chiều rộng ở một nửa cực đại [FWHM]) và được biểu thị bằng hai vạch dọc màu đỏ và λSB trên trục bước sóng 3 tính băng thông phổ thứ tự-p 14. Tỷ lệ giao nhau bằng 0 Một cách rất đơn giản để đo độ mượt của tín hiệu là tính số lần giao nhau bằng 0 trong một đoạn của tín hiệu đó. Tín hiệu thoại dao động chậm — ví dụ: tín hiệu 100 Hz sẽ vượt qua 0 100 mỗi giây — trong khi ma sát vô thanh có thể có 3000 giao cắt 0 mỗi giây Nó thường có giá trị cao hơn đối với âm thanh có bộ gõ cao như âm thanh trong metal và rock. Bây giờ chúng ta hãy hình dung nó và xem cách chúng ta tính toán tỷ lệ chéo bằng 0 2phóng to 3Dường như có 16 điểm giao cắt bằng 0. Hãy xác minh điều đó với Librosa 45. Hệ số Cepstral tần số Mel (MFCC) Các hệ số cepstral tần số Mel (MFCC) của tín hiệu là một tập hợp nhỏ các đặc trưng (thường khoảng 10–20) mô tả chính xác hình dạng tổng thể của đường bao quang phổ. Nó mô hình hóa các đặc điểm của giọng nói con người 56. tính năng sắc độ Một véc tơ hoặc đặc trưng sắc độ thường là một vectơ đặc trưng gồm 12 phần tử cho biết mức năng lượng của từng loại cao độ, {C, C#, D, D#, E, …, B}, có trong tín hiệu. Nói tóm lại, Nó cung cấp một cách mạnh mẽ để mô tả thước đo độ tương tự giữa các bản nhạc 4 được sử dụng để tính toán các tính năng của Chroma 6Bây giờ chúng ta đã hiểu cách chúng ta có thể xử lý dữ liệu âm thanh và trích xuất các tính năng quan trọng bằng python. Trong phần sau, chúng tôi sẽ sử dụng các tính năng này và xây dựng mô hình ANN để phân loại thể loại âm nhạc
Phân loại thể loại âm nhạc bằng ANN
Tín dụng
Bộ dữ liệu này đã được sử dụng cho bài báo nổi tiếng về phân loại thể loại “Phân loại thể loại âm nhạc của tín hiệu âm thanh” của G. Tzanetakis và P. Cook in IEEE Giao dịch về xử lý âm thanh và lời nói 2002 Bộ dữ liệu bao gồm 1000 bản âm thanh mỗi bản dài 30 giây. Nó chứa 10 thể loại, mỗi thể loại được đại diện bởi 100 bản nhạc. Các bản nhạc đều là các tệp âm thanh 16-bit đơn âm 22050 Hz ở định dạng. định dạng wav Bạn có thể tải xuống tập dữ liệu từ trang web marsyas Bộ dữ liệu bao gồm 10 thể loại i. e
Mỗi thể loại chứa 100 bài hát. Tổng số tập dữ liệu. 1000 bài hát Trước khi tiếp tục, tôi khuyên bạn nên sử dụng Google Colab để làm mọi thứ liên quan đến Mạng thần kinh vì nó miễn phí và cung cấp GPU và TPU làm môi trường thời gian chạy lộ trình Trước hết, chúng ta cần chuyển đổi các tệp âm thanh thành hình ảnh định dạng PNG (quang phổ). Từ những ảnh phổ này, chúng tôi phải trích xuất các tính năng có ý nghĩa, tôi. e. MFCC, Trung tâm quang phổ, Tốc độ giao nhau bằng 0, Tần số sắc độ, Giảm quang phổ Khi các tính năng đã được trích xuất, chúng có thể được thêm vào tệp CSV để ANN có thể được sử dụng để phân loại Nếu chúng tôi muốn làm việc với dữ liệu hình ảnh thay vì CSV, chúng tôi sẽ sử dụng CNN (Phạm vi của phần 2) Vì vậy, hãy bắt đầu 1. Giải nén và tải dữ liệu của bạn lên google drive, sau đó gắn ổ đĩa vào Colab Cấu trúc thư mục Google Colab sau khi tải dữ liệu
2. Nhập tất cả các thư viện cần thiết 73. Bây giờ hãy chuyển đổi các tệp dữ liệu âm thanh thành hình ảnh định dạng PNG hoặc về cơ bản trích xuất Spectrogram cho mọi Âm thanh 8Quang phổ mẫu của một bài hát có thể loại là blues quang phổ của một bài hát có thể loại là Blues
Giờ đây, vì tất cả các tệp âm thanh đã được chuyển đổi thành phổ tương ứng nên việc trích xuất các tính năng trở nên dễ dàng hơn 4. Tạo tiêu đề cho tệp CSV của chúng tôi 95. Trích xuất các tính năng từ Spectrogram. Chúng tôi sẽ trích xuất các hệ số cepstral tần số Mel (MFCC), Tâm quang phổ, Tốc độ giao nhau bằng 0, Tần số sắc độ và Cuộn quang phổ 06. tiền xử lý dữ liệu. Nó liên quan đến việc tải dữ liệu CSV, mã hóa nhãn, mở rộng tính năng và chia dữ liệu thành tập huấn luyện và kiểm tra 17. Xây dựng mô hình ANN 28. Phù hợp với mô hình 3Sau 100 kỷ nguyên, Độ chính xác. 0. 67
Phần kết luận Trong phần 2, chúng ta sẽ thực hiện tương tự bằng cách sử dụng Mạng thần kinh chuyển đổi trực tiếp trên Spectrogram Làm cách nào để phát hiện tiếng ồn trong âm thanh bằng Python?1 câu trả lời . Chuyển đổi âm thanh dự kiến thành một chuỗi biên độ tần số. cặp. Sau đó, ghi lại âm thanh qua micrô và chuyển đổi âm thanh đó. ghi thành một chuỗi các cặp biên độ tần số tương ứng. . Sử dụng hệ thống nhận dạng âm thanh để xác định âm thanh dự kiến trong bản ghi âm Python phát hiện giọng nói như thế nào?Nhận dạng từ được nói
. SpeechRecognition - Gói này có thể được cài đặt bằng cách sử dụng pip install SpeechRecognition. Google-Speech-API − Nó có thể được cài đặt bằng lệnh pip install google-api-python-client. Pyaudio − It can be installed by using pip install Pyaudio command. SpeechRecognition − This package can be installed by using pip install SpeechRecognition. Google-Speech-API − It can be installed by using the command pip install google-api-python-client.
Làm cách nào để cài đặt Python nhận dạng giọng nói?Cách dễ nhất để cài đặt tính năng này là sử dụng pip install SpeechRecognition . Nếu không, hãy tải xuống bản phân phối nguồn từ PyPI và giải nén kho lưu trữ. Trong thư mục, chạy cài đặt python. cài đặt py.
Thuật toán nào được sử dụng trong nhận dạng giọng nói trong Python?Thuật toán nào được sử dụng trong nhận dạng giọng nói? . PLP features, Viterbi search, deep neural networks, discrimination training, WFST framework, etc. |