Bạn có thể làm cho Python phát âm thanh không?

Bằng cách đọc bài viết này, bạn sẽ học cách phát các tệp âm thanh trong ứng dụng Python của mình. Theo tài liệu chính thức, gói SimpleAudio

“… cung cấp khả năng phát lại âm thanh đa nền tảng, không phụ thuộc cho Python 3 trên OSX, Windows và Linux

Simpleaudio được dự định là nơi mua sắm một cửa cho giao diện âm thanh đa nền tảng dành cho phát lại clip âm thanh. ”

Nó có các tính năng sau

  • Giao diện không đồng bộ — Quá trình thực thi chương trình tiếp tục ngay sau khi bắt đầu phát lại âm thanh và luồng nền sẽ đảm nhận phần còn lại
  • Định dạng âm thanh — Số nguyên tiêu chuẩn (các định dạng số nguyên 8-, 16- và 24 bit) cũng như dấu phẩy động 32 bit. 8 bit không dấu. 16-bit và 24-bit được ký với little-endian. 24-bit là ba byte cho mỗi mẫu được đóng gói. 32-bit là dấu chấm động nhỏ về cuối

Có ba phần trong hướng dẫn này

  1. Cài đặt
  2. Thực hiện
  3. Phần kết luận

Hãy chuyển sang phần tiếp theo và bắt đầu cài đặt các mô-đun cần thiết

1. Cài đặt

Cài đặt khá đơn giản với lệnh

sudo apt-get install python3-dev
0. Bạn nên thiết lập một môi trường ảo trước khi tiếp tục

các cửa sổ

Chạy lệnh sau để cài đặt mô-đun

sudo apt-get install python3-dev
1

pip install simpleaudio

Linux

Đối với người dùng Linux, bạn phải cài đặt các phụ thuộc bổ sung ngoài lệnh trên. Đối với các biến thể Debian, bạn có thể làm như vậy bằng các lệnh sau. Đầu tiên chúng ta sẽ cài đặt gói phát triển python3

sudo apt-get install python3-dev

Sau đó, chúng tôi nhận được gói phát triển ALSA

sudo apt-get install libasound2-dev

Khi bạn đã hoàn tất cài đặt, hãy chuyển sang phần tiếp theo và bắt đầu viết một số mã Python

2. Thực hiện

Nhập khẩu

Trước hết, hãy thêm khai báo nhập sau vào đầu tệp Python của bạn

import simpleaudio as sa

đối tượng sóng

Bước tiếp theo là tạo một

sudo apt-get install python3-dev
2. Dựa trên tài liệu, một
sudo apt-get install python3-dev
2 đại diện cho các đoạn âm thanh đã sẵn sàng để phát lại. Nó đóng gói bộ đệm dữ liệu âm thanh, tham số phát lại (chẳng hạn như tốc độ lấy mẫu) và cung cấp phương pháp để bắt đầu phát lại. Nó chấp nhận các tham số đầu vào sau

  • sudo apt-get install python3-dev
    4 — đối tượng có dữ liệu âm thanh (phải hỗ trợ giao diện bộ đệm)
  • sudo apt-get install python3-dev
    5 (int) — số kênh âm thanh
  • sudo apt-get install python3-dev
    6 (int) — số byte trên mỗi mẫu đơn kênh
  • sudo apt-get install python3-dev
    7 (in) — tốc độ lấy mẫu tính bằng Hz

May mắn thay, mô-đun này cũng cung cấp cho chúng tôi chức năng

sudo apt-get install python3-dev
8, cho phép chúng tôi nhập đường dẫn tệp và nó sẽ tải dữ liệu tương ứng vào
sudo apt-get install python3-dev
2. Thêm đoạn mã sau vào tệp Python của bạn. Sửa đổi đường dẫn đầu vào theo những gì bạn có

wave_obj = sa.WaveObject.from_wave_file('alarm.wav')

Rất nên sử dụng tệp

sudo apt-get install libasound2-dev
0 làm đầu vào. Nếu bạn tình cờ có một
sudo apt-get install libasound2-dev
1 thay vì
sudo apt-get install libasound2-dev
0, chỉ cần chuyển đổi nó thành tệp
sudo apt-get install libasound2-dev
0 để thay thế

Chơi

Bước tiếp theo là gọi hàm

sudo apt-get install libasound2-dev
4

play_obj = wave_obj.play()

Hàm này sẽ trả về một

sudo apt-get install libasound2-dev
5, về cơ bản xử lý các công việc phát lại âm thanh như dừng và kiểm tra xem có còn phát hay không. Cuối cùng, thêm chức năng sau và bạn có thể chạy tệp Python này để kiểm tra phát lại âm thanh. Nhiều cuộc gọi đến chức năng phát sẽ chạy tất cả phát lại song song ở chế độ nền không đồng bộ

play_obj.wait_done()

Đang chơi

Để kiểm tra xem

sudo apt-get install libasound2-dev
5 có còn phát hay không, bạn có thể gọi hàm
sudo apt-get install libasound2-dev
7

play_obj.is_playing()

Dừng lại

Mặc dù không có chức năng tạm dừng hoặc tiếp tục được cung cấp tại thời điểm viết, bạn vẫn có thể sử dụng chức năng

sudo apt-get install libasound2-dev
8 để kết thúc phát lại âm thanh

play_obj.stop()

Ngoài ra còn có chức năng

sudo apt-get install libasound2-dev
9 toàn cầu dừng tất cả quá trình phát lại hiện có

simpleaudio.stop_all()

Kiểm tra ý chính sau để có cái nhìn tổng quan về cách nó hoạt động không đồng bộ

3. Phần kết luận

Hãy tóm tắt lại những gì chúng ta đã học được ngày hôm nay

Chúng tôi bắt đầu với việc cài đặt mô-đun

sudo apt-get install python3-dev
1 thông qua cài đặt pip. Các gói bổ sung như phát triển Python và ALSA đã được cài đặt cho người dùng Linux

Tiếp theo, chúng tôi đã khám phá sâu các chức năng có sẵn được cung cấp. Chúng tôi đã tạo một

sudo apt-get install python3-dev
2 để đọc và tải tệp
sudo apt-get install libasound2-dev
0. Sau đó, chúng tôi đã chơi nó và nhận được một
sudo apt-get install libasound2-dev
5 có thể được sử dụng để điều khiển phát lại âm thanh