Hướng dẫn python audio visualizer - trình hiển thị âm thanh python

Học máy đã tìm thấy ứng dụng của nó trên một số lĩnh vực liên quan đến việc bắt chước sự phức tạp và giác quan của con người. Tầm nhìn máy tính và tổng hợp lời nói đã xuất hiện từ cuối những năm 1960 và đã được cải thiện theo cấp số nhân theo thời gian - đặc biệt là trong vài năm qua.

Ngày nay, chúng tôi sẽ tập trung vào tổng hợp lời nói, một trong những lĩnh vực nghiên cứu đang phát triển với một số ứng dụng trong thế giới thực.

Tổng hợp lời nói như một công nghệ đã tham gia vào các hộ gia đình thông thường với tư cách là một cường quốc cho nhiều thiết bị vận hành bằng giọng nói bao gồm các trợ lý ảo như Alexa, Google Assistant, Cortana và Siri.

Belamy

Đăng ký liều hàng tuần của bạn về những gì đang hoạt động trong công nghệ mới nổi.

Trợ lý giọng nói ngày nay không chỉ là bách khoa toàn thư âm thanh - họ cũng có thể sủa, meo và rên rỉ như những con vật dễ thương. Nhưng công nghệ này hoạt động như thế nào? Càng phức tạp như vậy, tổng hợp lời nói được hỗ trợ bởi nhiều thuật toán phức tạp làm nhiều hơn là chỉ tổng hợp, mà là phân tích âm thanh và tạo ra những hiểu biết. Một ứng dụng tốt là phân loại âm thanh. Máy ngày nay có khả năng phân loại các âm thanh khác nhau. & NBSP;

Hình dung âm thanh

Âm thanh là một rung động lan truyền như một làn sóng áp lực có thể nghe được, thông qua một phương tiện truyền tải như khí, chất lỏng hoặc rắn

Sách giáo khoa này giải thích về âm thanh là tự giải thích, về cách con người và hầu hết cư dân của trái đất nhận thức được âm thanh. Nhưng làm thế nào để một máy làm điều đó? Máy móc đẹp với tầm nhìn, vì vậy chúng tôi chuyển đổi âm thanh thành số và hình ảnh. Đây là những gì chúng tôi sẽ làm trong phiên thực hành này.

Sự tiến bộ theo cấp số nhân trong ML và số lượng nghiên cứu được thực hiện trong lĩnh vực này đã tạo ra nhiều công cụ và bộ phần mềm giúp việc thực hiện các nhiệm vụ phức tạp chỉ trong một vài dòng.

Trong một trong những bài viết trước đây của chúng tôi, chúng tôi đã học cách chuyển đổi một trình phân loại văn bản đơn giản thành một trình phân loại bài phát biểu đầy đủ chức năng chỉ bằng cách thêm một vài dòng mã. Trong hướng dẫn này, chúng tôi sẽ thảo luận về một số khía cạnh khác nhau để xác định các đặc điểm của âm thanh và chúng tôi sẽ học cách hình dung bất kỳ âm thanh nào như một làn sóng đẹp.

Bạn sẽ học cách dễ dàng tải các tệp âm thanh và phát nó trong máy tính xách tay Python và cũng để chuyển đổi các tệp âm thanh thành các phổ chỉ trong 5 dòng mã. Và để giải trí, chúng tôi cũng sẽ so sánh máy quang phổ của các bài hát khác nhau.

Sẵn sàng đặt mã

Chúng tôi sẽ sử dụng mô -đun Ipython để tải tệp âm thanh và một thư viện phổ biến có tên Librosa để trực quan hóa nó. & NBSP;

Ví dụ sau đây đã được thực hiện trên Google Colab và được đưa ra dưới đây là các chi tiết môi trường:

  • Python 3.6.9
  • Librosa 0.6.3

Cài đặt Librosa

Librosa là gói Python giúp chúng tôi phân tích các tệp âm thanh và cung cấp các khối xây dựng cần thiết để tạo các hệ thống truy xuất thông tin âm thanh. Chúng tôi sẽ cài đặt thư viện Librosa bằng lệnh sau:

!pip install librosa

Giả sử rằng Google Drive của bạn có một số tệp âm thanh trong đó, chúng tôi sẽ tiến hành tải tệp. Nhưng trước đó, hãy để gắn Google Drive trên Colab.

Gắn Google Drive

Thực thi và xác thực bằng cách sử dụng khối mã sau để truy cập Google Drive của bạn trên Colab.

from google.colab import drive

drive.mount('/GD')

Nhập thư viện

import IPython.display as ipd

import librosa

import librosa.display

import matplotlib.pyplot as plt

Đang tải và phát các tệp âm thanh trong Jupyter

Bây giờ chúng tôi sẽ tải tệp âm thanh của chúng tôi chỉ trong một lớp lót. Nhập và thực hiện mã sau.

ipd.Audio('/GD/.../audio/numb.m4a')

Khi thực hiện mã trên, bạn sẽ nhận được một trình phát âm thanh nội tuyến có thể được sử dụng để phát âm thanh như hiển thị bên dưới.

Hướng dẫn python audio visualizer - trình hiển thị âm thanh python

Phổ

Bây giờ chúng ta có thể sử dụng thư viện Librosa để vẽ sơ đồ phổ cho tệp âm thanh chỉ bằng 4 dòng mã.

Đầu tiên, chúng tôi sẽ khởi tạo cốt truyện với kích thước hình.

plt.figure(figsize=(15,4))

Sau đó, chúng tôi sẽ tải tệp âm thanh bằng Librosa và sẽ thu thập mảng dữ liệu và tốc độ lấy mẫu cho tệp âm thanh.

filename = '/GD/My Drive/.../audio/numb.m4a'

from google.colab import drive0

Lấy mẫu

Hướng dẫn python audio visualizer - trình hiển thị âm thanh python

Âm thanh là một làn sóng liên tục. Chúng ta có thể số hóa âm thanh bằng cách phá sóng liên tục thành các tín hiệu riêng biệt. Quá trình này được gọi là lấy mẫu. Lấy mẫu chuyển đổi sóng âm thành một chuỗi các mẫu hoặc tín hiệu thời gian rời rạc.

Các hàm tải tải tệp âm thanh và chuyển đổi nó thành một mảng các giá trị đại diện cho biên độ nếu một mẫu tại một thời điểm nhất định.

Tốc độ lấy mẫu

Tỷ lệ lấy mẫu là số lượng mẫu mỗi giây. Hz hoặc Hertz là đơn vị của tỷ lệ lấy mẫu. 20 kHz là phạm vi âm thanh cho con người.

Bây giờ chúng ta có thể vẽ sơ đồ phổ bằng phương pháp WAVEPLOT như hình dưới đây:

from google.colab import drive1

Hướng dẫn python audio visualizer - trình hiển thị âm thanh python

Thời gian vui vẻ: Linkin Park vs Micheal Jackson vs Blue

Hãy so sánh các phổ cho ba bài hát rất phổ biến:

Hướng dẫn python audio visualizer - trình hiển thị âm thanh python
Hướng dẫn python audio visualizer - trình hiển thị âm thanh python
Hướng dẫn python audio visualizer - trình hiển thị âm thanh python

Hoàn thành mã

Những gì phía trước

Hãy ghi nhớ bối cảnh học máy, ví dụ trên có tầm quan trọng lớn. Điều này đặc biệt đúng khi chúng ta đang xử lý dữ liệu âm thanh trong việc tạo ra các máy thông minh như công cụ đề xuất hoặc máy có thể phân loại nhạc thành các thể loại hoặc hệ thống bảo mật như hệ thống nhận dạng giọng nói.