Cách nhập thiết bị âm thanh trong Python

Một đối tượng sounddevice.Stream cho phép đồng thời đầu vào và đầu ra âm thanh kỹ thuật số PCM thông qua các mảng NumPy. Các thông số sau có sẵn [tất cả đều là tùy chọn]. tổng kết

  1. samplerate. Tần suất lấy mẫu [cho cả đầu vào và đầu ra] tính bằng khung hình trên giây
  2. blocksize. Số lượng khung [mẫu đơn trong trường hợp âm thanh đơn âm hoặc bộ mẫu trong trường hợp âm thanh đa kênh, thông thường, âm thanh nổi] được chuyển đến chức năng gọi lại [xem bên dưới]. Theo mặc định, blocksize=0, có nghĩa là kích thước khối có thể sẽ có kích thước thay đổi, tùy thuộc vào khối lượng công việc của máy chủ và cài đặt độ trễ được yêu cầu [xem bên dưới]
  3. device. Thiết bị đầu vào và đầu ra
  4. dtype. Định dạng mẫu của numpy. ndarray được cung cấp cho cuộc gọi lại luồng [xem bên dưới]
  5. latency. Độ trễ mong muốn [thời gian trôi qua giữa hành động tạo ra âm thanh và cảm nhận thực tế về âm thanh đó của người nghe] của bộ chuyển đổi ADC tính bằng giây. Các giá trị đặc biệt lowhigh [là giá trị mặc định sau] chọn độ trễ mặc định thấp và cao tương ứng. Tham số này chỉ có hiệu lực nếu sounddevice.Stream0
  6. sounddevice.Stream1. Được sử dụng cho cài đặt đầu vào/đầu ra dành riêng cho API máy chủ
  7. sounddevice.Stream2. Chức năng gọi lại, có chữ ký.
    callback[indata: ndarray, outdata: ndarray, frames: int, time: CData, status: CallbackFlags] -> None
    1. sounddevice.Stream3 và sounddevice.Stream4. Bộ đệm đầu vào và đầu ra, tương ứng, dưới dạng sounddevice.Stream5 hai chiều với một cột trên mỗi kênh [i. e. với hình dạng của sounddevice.Stream6] và với kiểu dữ liệu được chỉ định bởi dtype. Bộ đệm đầu ra chứa dữ liệu chưa được khởi tạo và cuộc gọi lại được cho là sẽ lấp đầy nó bằng dữ liệu âm thanh, điều này sẽ phụ thuộc vào ứng dụng. `
    2. sounddevice.Stream8. Số khung hình trong sounddevice.Stream3 và sounddevice.Stream4
    3. samplerate1. Dấu thời gian của khung đầu tiên trong sounddevice.Stream3, trong sounddevice.Stream4 và thời điểm hàm gọi lại được gọi
    4. samplerate4. Cho biết nếu điều kiện tràn hoặc tràn xảy ra trong lần gọi cuối cùng đến chức năng gọi lại. Luồng tràn xảy ra khi thiết bị âm thanh tiêu thụ dữ liệu nhanh hơn dữ liệu đến bộ đệm âm thanh. Tràn xảy ra khi thiết bị âm thanh tiêu thụ dữ liệu quá chậm và tràn bộ đệm âm thanh. Thông thường, sự cố tràn xảy ra thường xuyên hơn nhiều so với sự cố tràn
  8. samplerate5. Chức năng do người dùng cung cấp sẽ được gọi khi luồng không hoạt động
  9. samplerate6. Đặt thành samplerate7 để tắt tính năng cắt]
  10. samplerate8. Đặt thành samplerate7 để tắt phối màu
  11. blocksize0. Đặt thành samplerate7 để yêu cầu rằng, nếu có thể, luồng song công hoàn toàn sẽ không loại bỏ các mẫu đầu vào bị tràn mà không gọi lệnh gọi lại luồng. Điều này chỉ hoạt động nếu blocksize=0
  12. blocksize3. Đặt thành samplerate7 để gọi lệnh gọi lại luồng để lấp đầy bộ đệm đầu ra ban đầu, thay vì hành vi mặc định là mồi bộ đệm bằng số không [khoảng lặng]

00. 00 blocksize5 cung cấp các liên kết cho thư viện PortAudio và một vài chức năng tiện lợi để phát và ghi các mảng NumPy chứa tín hiệu âm thanh. Do đó, nó có một số phụ thuộc để mở tệp WAV và hoạt động với mảng NumPy

00. 14 Đáng lẽ bạn đã cài đặt blocksize6 từ trước đó, nhưng để đảm bảo an toàn, hãy tiếp tục cài đặt blocksize6 và blocksize8

00. 26 blocksize5 sẽ cần blocksize6 để hoạt động với mảng NumPy, sau đó chúng tôi sẽ sử dụng blocksize8 để thực sự đọc trong các tệp WAV

00. 40 Trong khi điều đó đang diễn ra, chúng ta có thể vào trình soạn thảo văn bản và nhập blocksize=02 và blocksize8. blocksize=04, và sau đó là blocksize60

00. 57 Như trước đây, hãy tiếp tục và xác định blocksize61 của bạn. Vì vậy, đối với tôi, blocksize62

01. 03 Sau đó, bạn sẽ muốn lưu dữ liệu và tốc độ lấy mẫu từ tệp WAV đó. Vì vậy, hãy đặt blocksize63 và blocksize64 bằng với blocksize65, sau đó bạn sẽ vượt qua blocksize61 và sau đó là blocksize67 [kiểu dữ liệu], mà bạn sẽ chỉ muốn blocksize68. blocksize69 sẽ đọc dữ liệu âm thanh từ tệp WAV đó và sau đó cũng xem xét các tiêu đề để lấy tỷ lệ lấy mẫu đó cho bạn

01. 31 được rồi. Vì vậy, khi bạn đã xác định những điều này, bạn có thể gọi cho blocksize60 và chỉ cần nói blocksize61. Chuyển vào blocksize63 và tốc độ lấy mẫu đó

01. 40 Và sau đó, nếu bạn muốn sử dụng ________ 363 sau này, bạn có thể nói ________ 364, và điều đó sẽ đảm bảo rằng âm thanh đã phát xong trước khi tập lệnh kết thúc. Vì vậy, hãy thử điều này

01. 54 Tôi sẽ lưu cái này. Và, tất nhiên, chúng tôi đã cài đặt các phần phụ thuộc cho blocksize=02 chứ không phải bản thân blocksize=02, vì vậy hãy tiếp tục và lấy phần đó

02. 15 Chúng ta đi thôi. Thử lại. “Này, đây là tệp WAV. ” Được rồi, cái đó đã hoạt động. Bây giờ bạn đã biết cách sử dụng blocksize5 để phát tệp và sau này bạn sẽ thấy, bạn thực sự có thể sử dụng thư viện này để ghi lại âm thanh. Trong video tiếp theo, bạn sẽ học cách sử dụng blocksize68, xử lý khá nhiều định dạng âm thanh khác nhau

Chủ Đề