Hướng dẫn sd rec python - sd rec python
Mô -đun Python này cung cấp các ràng buộc cho thư viện Portaudio và một vài chức năng tiện lợi để chơi và ghi lại các mảng numpy chứa tín hiệu âm thanh. Show sd.default.samplerate = fs3 để biết chi tiết. Yêu cầu côngPython: Tất nhiên, bạn sẽ cần Python. Bất kỳ phiên bản nào trong đó CFFI (xem bên dưới) được hỗ trợ sẽ hoạt động. Nếu bạn không cài đặt Python, bạn nên nhận một trong các bản phân phối đã bao gồm CFFI và Numpy (và nhiều điều hữu ích khác), ví dụ: Anaconda hoặc Winpython.pip/setuptools:Những điều đó là cần thiết cho việc cài đặt mô -đun Python và các phụ thuộc của nó. Hầu hết các hệ thống sẽ đã cài đặt chúng đã được cài đặt, nhưng nếu không, bạn nên cài đặt nó với trình quản lý gói của mình hoặc bạn có thể tải xuống và cài đặt PIP và setuptools như được mô tả trên trang Cài đặt PIP. Nếu bạn tình cờ có PIP nhưng không setuptools, hãy sử dụng lệnh này: python3 -m pip install setuptools --userCFFI: Giao diện chức năng nước ngoài C cho Python được sử dụng để truy cập C-API của thư viện Portaudio từ bên trong Python. Nó hỗ trợ Cpython 2.6, 2.7, 3.x; và được phân phối với pypy. Nếu nó chưa được cài đặt, bạn nên cài đặt nó với trình quản lý gói của mình (gói có thể được gọi là sd.default.samplerate = fs4 hoặc tương tự) hoặc bạn có thể nhận được nó với: python3 -m pip install cffi --userThư viện Portaudio: Thư viện Portaudio phải được cài đặt trên hệ thống của bạn (và CFFI phải có thể tìm thấy nó). Một lần nữa, bạn nên sử dụng trình quản lý gói của mình để cài đặt nó (gói có thể được gọi là sd.default.samplerate = fs5 hoặc tương tự). Nếu bạn thích, tất nhiên bạn cũng có thể tải xuống các nguồn và tự biên dịch thư viện. Nếu bạn đang sử dụng Mac OS X hoặc Windows, thư viện sẽ được cài đặt tự động với PIP (xem Cài đặt trên mạng bên dưới) .numpy (Tùy chọn): Chỉ cần Numpy nếu bạn muốn phát lại và ghi lại các mảng Numpy. Các lớp sd.default.samplerate = fs6, sd.default.samplerate = fs7 và sd.default.samplerate = fs8 Sử dụng các đối tượng đệm Python đơn giản và don don cần numpy. Nếu bạn cần Numpy, bạn nên cài đặt nó với Trình quản lý gói của mình hoặc sử dụng phân phối Python đã bao gồm Numpy (xem ở trên). Cài đặt Numpy với PIP yêu cầu một trình biên dịch và một số thư viện bổ sung và do đó không được khuyến nghị cho người mới bắt đầu. Cài đặt¶Khi bạn đã cài đặt các phụ thuộc đã đề cập ở trên, bạn có thể sử dụng PIP để tải xuống và cài đặt bản phát hành mới nhất với một lệnh duy nhất: python3 -m pip install sounddevice --user Nếu bạn muốn cài đặt CNTT toàn hệ thống cho tất cả người dùng (giả sử bạn có các quyền cần thiết), bạn chỉ có thể bỏ tùy chọn sd.default.samplerate = fs9. Để không cài đặt, sử dụng: python3 -m pip uninstall sounddevice Nếu bạn đang sử dụng Windows, bạn có thể cài đặt một trong các gói được cung cấp tại http://www.lfd.uci.edu/~gohlke/pythonlibs/#sounddevice. Thư viện Portaudio cũng được bao gồm trong gói và bạn có thể nhận được phần còn lại của các phụ thuộc trên cùng một trang. Cách sử dụng¶Đầu tiên, nhập mô -đun: Phát lạiGiả sử bạn có một mảng Numpy có tên duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)0 giữ dữ liệu âm thanh với tần số lấy mẫu là duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)1 (trong hầu hết các trường hợp, đây sẽ là 44100 hoặc 48000 khung mỗi giây), bạn có thể phát lại với duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)2: Hàm này trả về ngay lập tức nhưng tiếp tục chơi tín hiệu âm thanh trong nền. Bạn có thể ngừng phát lại với duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)3: Nếu bạn biết rằng bạn sẽ sử dụng cùng một tần số lấy mẫu trong một thời gian, bạn có thể đặt nó làm mặc định bằng cách sử dụng duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)4: sd.default.samplerate = fs Sau đó, bạn có thể bỏ đối số lấy mẫu: Ghi âm¶Để ghi lại dữ liệu âm thanh từ thiết bị âm thanh của bạn vào một mảng numpy, hãy sử dụng duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)5: duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2) Một lần nữa, để sử dụng lặp lại, bạn có thể đặt mặc định bằng duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)6: sd.default.samplerate = fs sd.default.channels = 2 Sau đó, bạn có thể bỏ các đối số bổ sung: myrecording = sd.rec(duration * fs) Hàm này cũng trả về ngay lập tức nhưng tiếp tục ghi trong nền. Trong thời gian chờ đợi, bạn có thể chạy các lệnh khác. Nếu bạn muốn kiểm tra xem bản ghi đã kết thúc, bạn nên sử dụng duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)7: Nếu bản ghi đã kết thúc, điều này sẽ trả lại ngay lập tức; Nếu không, nó chờ đợi và trả lại ngay khi bản ghi kết thúc. Ngoài ra, bạn có thể đã sử dụng đối số chặn ngay từ đầu: myrecording = sd.rec(duration * fs, blocking=True) Theo mặc định, mảng được ghi lại có kiểu dữ liệu duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)8 (xem duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)9), nhưng điều này có thể được thay đổi với đối số DTYPE: myrecording = sd.rec(duration * fs, dtype='float64') Phát lại và ghi âm đồng thờiĐể phát lại một mảng và ghi lại cùng một lúc, hãy sử dụng sd.default.samplerate = fs sd.default.channels = 20: python3 -m pip install cffi --user0 Số lượng kênh đầu ra được lấy từ duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)0, nhưng số lượng kênh đầu vào vẫn phải được chỉ định. Một lần nữa, các giá trị mặc định có thể được sử dụng: python3 -m pip install cffi --user1 Trong trường hợp này, số lượng kênh đầu ra vẫn được lấy từ duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)0 (có thể có hoặc không có 2 kênh), nhưng số lượng kênh đầu vào được lấy từ sd.default.samplerate = fs sd.default.channels = 23. Lựa chọn thiết bịTrong nhiều trường hợp, (các) thiết bị đầu vào/đầu ra mặc định sẽ là một (các) thiết bị bạn muốn, nhưng tất nhiên có thể chọn một thiết bị khác. Sử dụng sd.default.samplerate = fs sd.default.channels = 24 để có được danh sách các thiết bị được hỗ trợ. Danh sách tương tự có thể được lấy từ một thiết bị đầu cuối bằng cách nhập lệnh Bạn có thể sử dụng ID thiết bị tương ứng để chọn một thiết bị mong muốn bằng cách gán cho sd.default.samplerate = fs sd.default.channels = 25 hoặc bằng cách chuyển nó làm đối số thiết bị cho duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)2, sd.default.samplerate = fs sd.default.channels = 27, v.v. Thay vì ID thiết bị số, bạn cũng có thể sử dụng danh sách phân tách không gian của các chuỗi con không nhạy cảm của tên thiết bị (và tên API máy chủ, nếu cần). Xem sd.default.samplerate = fs sd.default.channels = 25 để biết chi tiết. python3 -m pip install cffi --user2 Các luồng gọi lạiCallback Dây dây với sd.default.samplerate = fs sd.default.channels = 29: python3 -m pip install cffi --user3 Điều tương tự với sd.default.samplerate = fs6: python3 -m pip install cffi --user4 Ghi chú Chúng tôi đang sử dụng các mẫu 24 bit ở đây mà không có lý do cụ thể (chỉ vì chúng tôi có thể). Đóng góp¶Nếu bạn tìm thấy lỗi, lỗi, thiếu sót hoặc những thứ khác cần cải thiện, vui lòng tạo sự cố hoặc yêu cầu kéo tại http://github.com/spatialaudio/python-sounddevice/. Đóng góp luôn được chào đón! Thay vì cài đặt PIP bản phát hành mới nhất từ PYPI, bạn nên nhận phiên bản phát triển mới nhất từ GitHub: python3 -m pip install cffi --user5 Bằng cách này, cài đặt của bạn luôn luôn cập nhật, ngay cả khi bạn rút các thay đổi mới từ kho lưu trữ GitHub. Nếu bạn thích, bạn cũng có thể thay thế lệnh cuối cùng bằng: python3 -m pip install cffi --user6 ... Trường hợp myrecording = sd.rec(duration * fs)1 là viết tắt của myrecording = sd.rec(duration * fs)2. Nếu bạn đã sử dụng tùy chọn myrecording = sd.rec(duration * fs)3 khi nhân bản, các thư viện động cho MacOS và Windows đã có sẵn. Nếu không, bạn có thể nhận được mô hình con với: python3 -m pip install cffi --user7 Nếu bạn thay đổi tài liệu, bạn có thể tạo lại cục bộ các trang HTML bằng Sphinx. Bạn có thể cài đặt nó và một vài gói cần thiết khác với: python3 -m pip install cffi --user8 Để tạo các trang HTML, hãy sử dụng: python3 -m pip install cffi --user9 Các tệp được tạo sẽ có sẵn trong thư mục myrecording = sd.rec(duration * fs)4. Tài liệu APIChơi và thu âm âm thanh với Python. http://python-sounddevice.readthedocs.io/ A(data, samplerate=None, mapping=None, blocking=False, loop=False, **kwargs)[source]¶Phát lại một mảng numpy chứa dữ liệu âm thanh.
Ghi lại dữ liệu âm thanh vào một mảng numpy.
Phát lại đồng thời và ghi lại các mảng numpy.
Phát lại đồng thời và ghi lại các mảng numpy. Dữ liệu (Array_like) - Dữ liệu âm thanh sẽ được phát lại. Xem myrecording = sd.rec(duration * fs, dtype='float64')6.
myrecording = sd.rec(duration * fs, dtype='float64')7. Nếu DTYPE không được chỉ định, nó được lấy từ data.dtype (nghĩa là myrecording = sd.rec(duration * fs, blocking=True)6 bị bỏ qua). Kiểu dữ liệu đầu ra được lấy từ Data.dtype dù sao.(ignore_errors=True)[source]¶ input_mapping, output_mapping (Array_like, Tùy chọn) - Xem ánh xạ tham số của myrecording = sd.rec(duration * fs, dtype='float64')7 và myrecording = sd.rec(duration * fs, dtype='float64')6, tương ứng. Chặn (Bool, Tùy chọn) - Nếu myrecording = sd.rec(duration * fs)7 (mặc định), trả về ngay lập tức (nhưng tiếp tục phát lại/ghi trong nền), nếu myrecording = sd.rec(duration * fs)8, hãy đợi cho đến khi phát lại/ghi kết thúc. Một lời cầu khẩn không chặn có thể được dừng lại với myrecording = sd.rec(duration * fs)9 hoặc biến thành một chặn chặn với myrecording = sd.rec(duration * fs, blocking=True)0.numpy.ndarray hoặc loại (ra) - dữ liệu được ghi lại. Xem myrecording = sd.rec(duration * fs, dtype='float64')7.()[source]¶ ra (numpy.ndarray hoặc lớp con, tùy chọn) - xem myrecording = sd.rec(duration * fs, dtype='float64')7.
Đợi ________ 96/________ 97/________ 113 được hoàn thành. Phát lại/ghi âm có thể được dừng lại với python3 -m pip install cffi --user14.
Ngừng phát lại/ghi âm. Điều này chỉ dừng myrecording = sd.rec(duration * fs, dtype='float64')6, myrecording = sd.rec(duration * fs, dtype='float64')7 và python3 -m pip install cffi --user13, nhưng không có ảnh hưởng đến các luồng được tạo bằng python3 -m pip install cffi --user08, myrecording = sd.rec(duration * fs, dtype='float64')3, myrecording = sd.rec(duration * fs, blocking=True)1, python3 -m pip install cffi --user24, python3 -m pip install cffi --user25, python3 -m pip install cffi --user26. ________ 75 ________ 128 () [Nguồn] ¶
Ghi chú Danh sách các thiết bị cũng có thể được hiển thị trong một thiết bị đầu cuối: Ví dụ python3 -m pip install cffi --user52 được trả lại có thể được lập chỉ mục và lặp lại như bất kỳ loại trình tự nào (mang lại từ điển đã đề cập ở trên), nhưng nó cũng có một biểu diễn chuỗi đặc biệt được hiển thị khi được sử dụng trong phiên Python tương tác. Mỗi thiết bị có sẵn được liệt kê trên một dòng cùng với ID thiết bị tương ứng, có thể được gán cho python3 -m pip install cffi --user49 hoặc được sử dụng làm đối số thiết bị trong myrecording = sd.rec(duration * fs, dtype='float64')6, python3 -m pip install cffi --user08, v.v. Ký tự đầu tiên của một dòng là python3 -m pip install cffi --user77 cho thiết bị đầu vào mặc định, python3 -m pip install cffi --user78 cho thiết bị đầu ra mặc định và python3 -m pip install cffi --user79 cho thiết bị đầu vào/đầu ra mặc định. Sau ID thiết bị và tên thiết bị, tên API máy chủ tương ứng được hiển thị. Ở cuối mỗi dòng, số lượng kênh đầu vào và đầu ra tối đa được hiển thị. Trên máy tính GNU/Linux, nó có thể trông giống như thế này: python3 -m pip install sounddevice --user0 Lưu ý rằng ALSA cung cấp quyền truy cập vào một số thiết bị thực tế của người Viking và một số thiết bị ảo. Cái sau đôi khi có số lượng đầu vào và đầu ra (ảo) cao một cách lố bịch. Trên macOS, bạn có thể nhận được một cái gì đó tương tự như thế này: python3 -m pip install sounddevice --user1 ________ 75 ________ 181 (index = none) [nguồn](index=None)[source]¶ Trả về thông tin về API máy chủ có sẵn.
Kiểm tra nếu cài đặt thiết bị đầu vào được hỗ trợ. Tất cả các tham số là tùy chọn, cài đặt python3 -m pip install cffi --user91 được sử dụng cho bất kỳ tham số không xác định nào. Nếu các cài đặt được hỗ trợ, chức năng không làm gì cả; Nếu không, một ngoại lệ được nâng lên.
Kiểm tra nếu cài đặt thiết bị đầu ra được hỗ trợ. Giống như python3 -m pip install cffi --user99, chỉ dành cho cài đặt thiết bị đầu ra. ________ 75 ________ 201 (MSEC) [Nguồn] ¶(msec)[source]¶ Đặt người gọi ngủ ít nhất MSEC mili giây. Chức năng có thể ngủ lâu hơn được yêu cầu, vì vậy don don dựa vào điều này cho thời gian âm nhạc chính xác. ________ 75 ________ 203 () [Nguồn] ¶()[source]¶Nhận thông tin phiên bản cho Thư viện Portaudio. Trả về số phát hành và mô tả văn bản của bản dựng Portaudio hiện tại, ví dụ: python3 -m pip install sounddevice --user2 Lớp ________ 75 ________ 205 [Nguồn] ¶[source]¶ Nhận/đặt mặc định cho mô -đun SoundDevice. Các thuộc tính python3 -m pip install sounddevice --user06, python3 -m pip install sounddevice --user07, python3 -m pip install sounddevice --user08, python3 -m pip install sounddevice --user09 và python3 -m pip install sounddevice --user10 Chấp nhận các giá trị đơn lẻ chỉ định thuộc tính đã cho cho cả đầu vào và đầu ra. Tuy nhiên, nếu thuộc tính khác nhau giữa đầu vào và đầu ra, các cặp giá trị có thể được sử dụng, trong đó giá trị thứ nhất chỉ định đầu vào và giá trị thứ hai chỉ định đầu ra. Tất cả các thuộc tính khác luôn là các giá trị đơn. Ví dụ python3 -m pip install sounddevice --user3 Các giá trị khác nhau cho đầu vào và đầu ra: python3 -m pip install sounddevice --user4 Một giá trị duy nhất đặt cả đầu vào và đầu ra cùng một lúc: python3 -m pip install sounddevice --user5 Một thuộc tính có thể được đặt thành mặc định của nhà máy trên mạng bằng cách gán python3 -m pip install sounddevice --user11: python3 -m pip install sounddevice --user6 Sử dụng python3 -m pip install sounddevice --user12 để đặt lại tất cả các thuộc tính: python3 -m pip install sounddevice --user13 = (không có, không có) ¶ Chỉ mục hoặc chuỗi truy vấn của thiết bị đầu vào/đầu ra mặc định. Nếu không được ghi đè, điều này được truy vấn từ Portaudio. Nếu một chuỗi được đưa ra, thiết bị được chọn chứa tất cả các bộ phận được phân tách theo không gian theo đúng thứ tự. Mỗi chuỗi thiết bị chứa tên của API máy chủ tương ứng cuối cùng. Việc so sánh chuỗi là không nhạy cảm trường hợp. python3 -m pip install sounddevice --user14 = (không có, không có) ¶ Số lượng kênh đầu vào/đầu ra. Số lượng kênh tối đa cho một thiết bị nhất định có thể được tìm thấy với python3 -m pip install cffi --user84. python3 -m pip install sounddevice --user16 = ('float32', 'float32') ¶ Kiểu dữ liệu được sử dụng cho các mẫu đầu vào/đầu ra. Các loại duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)8, python3 -m pip install sounddevice --user18, python3 -m pip install sounddevice --user19, python3 -m pip install sounddevice --user20 và python3 -m pip install sounddevice --user21 có thể được sử dụng cho tất cả các luồng và chức năng. Ngoài ra, myrecording = sd.rec(duration * fs, dtype='float64')6, myrecording = sd.rec(duration * fs, dtype='float64')7 và python3 -m pip install cffi --user13 Hỗ trợ python3 -m pip install sounddevice --user25 (để thuận tiện, dữ liệu chỉ được chuyển đổi từ/sang duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)8) và python3 -m pip install cffi --user25, python3 -m pip install cffi --user26 và python3 -m pip install cffi --user24 hỗ trợ python3 -m pip install sounddevice --user30 (đóng gói 24 bit, không được hỗ trợ!) Nếu Numpy có sẵn, các đối tượng python3 -m pip install sounddevice --user31 tương ứng cũng có thể được sử dụng. Các biểu diễn điểm nổi duration = 10.5 # seconds myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)8 và python3 -m pip install sounddevice --user25 sử dụng +1.0 và -1.0 như các giá trị tối đa và tối thiểu, tương ứng. python3 -m pip install sounddevice --user21 là một định dạng 8 bit không dấu trong đó 128 được coi là mặt đất. python3 -m pip install sounddevice --user35 = ('cao', 'cao') ¶ Đề xuất độ trễ đầu vào/đầu ra tính bằng giây. Các giá trị đặc biệt python3 -m pip install cffi --user64 và python3 -m pip install cffi --user70 có thể được sử dụng để chọn độ trễ thấp/cao mặc định của thiết bị đã chọn. python3 -m pip install cffi --user70 thường mạnh mẽ hơn (nghĩa là bộ đệm dưới/tràn ít có khả năng), nhưng độ trễ có thể quá lớn đối với các ứng dụng tương tác. Cài đặt đầu vào/đầu ra cụ thể của máy chủ. python3 -m pip install sounddevice --user39 = không có Tần số lấy mẫu trong Hertz (= khung mỗi giây). python3 -m pip install sounddevice --user40 = 0¶ Xem đối số khối của python3 -m pip install cffi --user08. python3 -m pip install sounddevice --user42 = Sai¶ Vô hiệu hóa cắt. Được đặt thành myrecording = sd.rec(duration * fs)8 để vô hiệu hóa việc cắt mặc định của các mẫu ra khỏi phạm vi. python3 -m pip install sounddevice --user44 = Sai¶ Vô hiệu hóa hoà sắc. Đặt thành myrecording = sd.rec(duration * fs)8 thành vô hiệu hóa màu sắc mặc định. python3 -m pip install sounddevice --user46 = Sai¶ Đặt hành vi cho tràn đầu vào của các luồng song công đầy đủ. Được đặt thành myrecording = sd.rec(duration * fs)8 để yêu cầu rằng khi có thể một luồng song công đầy đủ sẽ không loại bỏ các mẫu đầu vào đã tràn mà không gọi gọi lại luồng. Cờ này chỉ có giá trị đối với các luồng gọi lại toàn diện (nghĩa là chỉ python3 -m pip install cffi --user08 và python3 -m pip install cffi --user24 và chỉ khi gọi lại được chỉ định; điều này bao gồm python3 -m pip install cffi --user13) và chỉ khi được sử dụng kết hợp với python3 -m pip install sounddevice --user51 (mặc định). Sử dụng cờ này không chính xác dẫn đến một lỗi đang được nâng lên. Xem thêm http://www.portaudio.com/docs/proposals/001-underflowoverflowhandling.html. python3 -m pip install sounddevice --user52 = Sai¶ Làm thế nào để lấp đầy bộ đệm đầu ra ban đầu. Được đặt thành myrecording = sd.rec(duration * fs)8 để gọi gọi lại luồng để điền vào bộ đệm đầu ra ban đầu, thay vì hành vi mặc định của việc mồi các bộ đệm với số không (im lặng). Cờ này không có tác dụng cho chỉ đầu vào ( myrecording = sd.rec(duration * fs, dtype='float64')3 và python3 -m pip install cffi --user25) và chặn các luồng đọc/ghi (nghĩa là nếu gọi lại được chỉ định). Xem thêm http://www.portaudio.com/docs/proposals/020-allowcallbacktoprimestream.html. ________ 256¶ Chỉ mục của API máy chủ mặc định (chỉ đọc). ________ 257 () [Nguồn] ¶()[source]¶Đặt lại tất cả các thuộc tính cho nhà sản xuất của họ mặc định. Lớp ________ 75 ________ 259 (SampleRate = none, blockSize = none, device = none, scores = none, dtype = none, latency = none , Prime_output_buffers_using_stream_callback = none) [Nguồn] ¶(samplerate=None, blocksize=None, device=None, channels=None, dtype=None, latency=None, extra_settings=None, callback=None, finished_callback=None, clip_off=None, dither_off=None, never_drop_input=None, prime_output_buffers_using_stream_callback=None)[source]¶Mở một luồng cho đầu vào và đầu ra đồng thời. Để mở một luồng chỉ đầu vào hoặc chỉ sử dụng luồng chỉ đầu ra myrecording = sd.rec(duration * fs, dtype='float64')3 hoặc myrecording = sd.rec(duration * fs, blocking=True)1, tương ứng. Nếu bạn muốn xử lý dữ liệu âm thanh dưới dạng các đối tượng bộ đệm đơn giản thay vì các mảng numpy, hãy sử dụng python3 -m pip install cffi --user24, python3 -m pip install cffi --user25 hoặc python3 -m pip install cffi --user26. Một luồng duy nhất có thể cung cấp nhiều kênh đầu vào âm thanh phát trực tuyến thời gian thực và đầu ra cho ứng dụng máy khách. Một luồng cung cấp quyền truy cập vào phần cứng âm thanh được đại diện bởi một hoặc nhiều thiết bị. Tùy thuộc vào API máy chủ cơ bản, có thể mở nhiều luồng bằng cùng một thiết bị, tuy nhiên hành vi này được thực hiện được xác định. Các ứng dụng di động nên cho rằng một thiết bị có thể được sử dụng đồng thời nhiều nhất một luồng. Thiết bị đối số, kênh, DTYPE và độ trễ có thể là các giá trị đơn (sẽ được sử dụng cho cả tham số đầu vào và đầu ra) hoặc các cặp giá trị (trong đó giá trị đầu tiên là giá trị cho đầu vào và mã thứ hai cho đầu ra). Tất cả các đối số là tùy chọn, các giá trị cho các tham số không xác định được lấy từ đối tượng python3 -m pip install cffi --user91. Nếu một trong các giá trị của cặp tham số là python3 -m pip install sounddevice --user11, giá trị tương ứng từ python3 -m pip install cffi --user91 sẽ được sử dụng thay thế. Luồng được tạo không hoạt động (xem python3 -m pip install sounddevice --user68, python3 -m pip install sounddevice --user69). Nó có thể được bắt đầu với python3 -m pip install sounddevice --user70. Mỗi đối tượng luồng cũng là một trình quản lý ngữ cảnh, tức là nó có thể được sử dụng trong một câu lệnh để tự động gọi python3 -m pip install sounddevice --user70 khi bắt đầu câu lệnh và myrecording = sd.rec(duration * fs)9 và python3 -m pip install sounddevice --user73 khi thoát.context manager, i.e. it can be used in a with statement to automatically call python3 -m pip install sounddevice --user70 in the beginning of the statement and myrecording = sd.rec(duration * fs)9 and python3 -m pip install sounddevice --user73 on exit.
Chấm dứt xử lý âm thanh ngay lập tức. Điều này không chờ đợi cho bộ đệm đang chờ xử lý để hoàn thành. ________ 333¶myrecording = sd.rec(duration * fs)8 Khi luồng hoạt động, myrecording = sd.rec(duration * fs)7 khác. Một luồng đang hoạt động sau một cuộc gọi thành công đến python3 -m pip install sounddevice --user70, cho đến khi nó không hoạt động do kết quả của cuộc gọi đến myrecording = sd.rec(duration * fs)9 hoặc python3 -m pip uninstall sounddevice19, hoặc là kết quả của một ngoại lệ được nêu trong cuộc gọi lại luồng. Trong trường hợp sau, luồng được xem xét không hoạt động sau khi bộ đệm cuối cùng chơi xong. ________ 240¶ Số lượng khung mỗi khối. Giá trị đặc biệt 0 có nghĩa là khối khối có thể thay đổi giữa các khối. Xem đối số khối của python3 -m pip install cffi --user08. ________ 214¶ Số lượng kênh đầu vào/đầu ra. ________ 342 (bỏ qua_errors = true) ¶(ignore_errors=True)¶Đóng luồng. Nếu luồng âm thanh hoạt động, bất kỳ bộ đệm đang chờ xử lý nào cũng bị loại bỏ như thể python3 -m pip uninstall sounddevice19 đã được gọi. ________ 344¶ Thông tin sử dụng CPU cho luồng. Tải trọng CPU CPU là một phần nhỏ của tổng thời gian CPU được tiêu thụ bởi các thói quen xử lý âm thanh của Stream Stream, bao gồm, nhưng không giới hạn ở cuộc gọi lại luồng do khách hàng cung cấp. Hàm này không hoạt động với việc chặn luồng đọc/ghi. Điều này có thể được sử dụng trong chức năng gọi lại luồng hoặc trong ứng dụng. Nó cung cấp giá trị điểm nổi, thường là từ 0,0 đến 1,0, trong đó 1.0 chỉ ra rằng cuộc gọi lại luồng đang tiêu thụ số lượng chu kỳ CPU tối đa có thể để duy trì hoạt động thời gian thực. Giá trị 0,5 sẽ ngụ ý rằng Portaudio và gọi lại luồng tiêu thụ khoảng 50% thời gian CPU có sẵn. Giá trị có thể vượt quá 1.0. Giá trị 0,0 sẽ luôn được trả về cho luồng đọc/ghi chặn hoặc nếu xảy ra lỗi. ________ 213¶ID của thiết bị đầu vào/đầu ra. ________ 216¶Kiểu dữ liệu của các mẫu âm thanh. ________ 235¶Độ trễ đầu vào/đầu ra của luồng tính bằng giây. Giá trị này cung cấp ước tính chính xác nhất về độ trễ đầu vào/đầu ra có sẵn cho việc thực hiện. Nó có thể khác biệt đáng kể so với (các) giá trị độ trễ được truyền đến python3 -m pip uninstall sounddevice48. ________ 349 (khung)(frames)¶ Đọc các mẫu từ luồng vào một mảng numpy. Hàm không trả lại cho đến khi tất cả các khung được yêu cầu đã được đọc - điều này có thể liên quan đến việc chờ hệ điều hành cung cấp dữ liệu (trừ khi không có nhiều hơn các khung python3 -m pip uninstall sounddevice04). Điều này giống như python3 -m pip uninstall sounddevice51, ngoại trừ việc nó trả về một mảng numpy thay vì một đối tượng bộ đệm Python đơn giản.
Số lượng khung có thể được đọc mà không phải chờ đợi. Trả về một giá trị đại diện cho số lượng khung tối đa có thể được đọc từ luồng mà không chặn hoặc bận chờ. ________ 239¶Tần số lấy mẫu trong Hertz (= khung mỗi giây). Trong trường hợp tần số lấy mẫu phần cứng không chính xác và Portaudio nhận thức được nó, giá trị của trường này có thể khác với tham số lấy mẫu được chuyển đến python3 -m pip uninstall sounddevice48. Nếu thông tin về tần số lấy mẫu phần cứng thực tế không có sẵn, trường này sẽ có cùng giá trị với tham số lấy mẫu được truyền đến python3 -m pip uninstall sounddevice48. ________ 360¶ Kích thước trong byte của một mẫu duy nhất. ________ 361 ()()¶Bắt đầu xử lý âm thanh. ________ 117 ()()¶Chấm dứt xử lý âm thanh. Điều này chờ đợi cho đến khi tất cả các bộ đệm âm thanh đang chờ xử lý đã được phát trước khi nó trở lại. ________ 363¶myrecording = sd.rec(duration * fs)8 Khi luồng được dừng lại, myrecording = sd.rec(duration * fs)7 khác. Một luồng được coi là dừng lại trước một cuộc gọi thành công đến python3 -m pip install sounddevice --user70 và sau một cuộc gọi thành công đến myrecording = sd.rec(duration * fs)9 hoặc python3 -m pip uninstall sounddevice19. Nếu một cuộc gọi lại luồng bị hủy (bằng cách tăng một ngoại lệ), luồng không được coi là dừng. ________ 369¶ Thời gian luồng hiện tại tính bằng giây. Đây là theo cùng một đồng hồ được sử dụng để tạo dấu thời gian được truyền với đối số thời gian cho cuộc gọi lại luồng (xem đối số gọi lại của python3 -m pip install cffi --user08). Các giá trị thời gian đang tăng đơn điệu và có nguồn gốc không xác định. Điều này cung cấp các giá trị thời gian hợp lệ cho toàn bộ tuổi thọ của luồng, từ khi luồng được mở cho đến khi nó được đóng lại. Bắt đầu và dừng luồng không ảnh hưởng đến thời gian trôi qua như được cung cấp ở đây. Lần này có thể được sử dụng để đồng bộ hóa các sự kiện khác với luồng âm thanh, ví dụ như đồng bộ hóa âm thanh với MIDI. ________ 371 (dữ liệu) ¶(data)¶Viết các mẫu vào luồng. Chức năng này không trả lại cho đến khi toàn bộ bộ đệm được tiêu thụ - điều này có thể liên quan đến việc chờ hệ điều hành tiêu thụ dữ liệu (trừ khi dữ liệu chứa không quá các khung python3 -m pip uninstall sounddevice05). Điều này giống như python3 -m pip uninstall sounddevice73, ngoại trừ việc nó mong đợi một mảng numpy thay vì một đối tượng bộ đệm Python đơn giản.
Số lượng khung có thể được viết mà không phải chờ đợi. Trả về một giá trị đại diện cho số lượng khung tối đa có thể được ghi vào luồng mà không chặn hoặc bận chờ. Lớp ________ 75 ________ 380 (SampleRate = none, blocksize = none, device = none , Prime_output_buffers_using_stream_callback = none) [Nguồn] ¶(samplerate=None, blocksize=None, device=None, channels=None, dtype=None, latency=None, extra_settings=None, callback=None, finished_callback=None, clip_off=None, dither_off=None, never_drop_input=None, prime_output_buffers_using_stream_callback=None)[source]¶Mở một luồng đầu vào. Điều này có các phương thức và thuộc tính tương tự như python3 -m pip install cffi --user08, ngoại trừ python3 -m pip install sounddevice --user79 và python3 -m pip uninstall sounddevice05. Hơn nữa, gọi lại luồng dự kiến sẽ có một chữ ký khác (xem bên dưới).
Mở một luồng đầu ra. Điều này có các phương thức và thuộc tính tương tự như python3 -m pip install cffi --user08, ngoại trừ python3 -m pip install sounddevice --user78 và python3 -m pip uninstall sounddevice04. Hơn nữa, gọi lại luồng dự kiến sẽ có một chữ ký khác (xem bên dưới).
Mở một luồng đầu vào/đầu ra của Raw Raw. Điều này giống như python3 -m pip install cffi --user08, ngoại trừ chức năng gọi lại và ________ 278/________ 279 hoạt động trên các đối tượng bộ đệm Python đơn giản thay vì trên các mảng Numpy. Numpy là không cần thiết để sử dụng điều này. Để mở một luồng chỉ đầu vào chỉ đầu vào hoặc chỉ sử dụng luồng chỉ đầu ra python3 -m pip install cffi --user25 hoặc python3 -m pip install cffi --user26, tương ứng. Nếu bạn muốn xử lý dữ liệu âm thanh dưới dạng mảng numpy thay vì các đối tượng bộ đệm, hãy sử dụng python3 -m pip install cffi --user08, myrecording = sd.rec(duration * fs, dtype='float64')3 hoặc myrecording = sd.rec(duration * fs, blocking=True)1.
Đọc các mẫu từ luồng vào một bộ đệm. Điều này giống như sd.default.samplerate = fs14, ngoại trừ việc nó trả về một đối tượng bộ đệm Python đơn giản thay vì một mảng numpy. Numpy là không cần thiết để sử dụng điều này.
Viết các mẫu vào luồng. Điều này giống như sd.default.samplerate = fs19, ngoại trừ việc nó mong đợi một đối tượng bộ đệm Python đơn giản thay vì một mảng numpy. Numpy là không cần thiết để sử dụng điều này.
Mở một luồng đầu vào của Raw Raw. Điều này giống như myrecording = sd.rec(duration * fs, dtype='float64')3, ngoại trừ chức năng gọi lại và python3 -m pip install sounddevice --user78 hoạt động trên các đối tượng bộ đệm Python đơn giản thay vì trên các mảng Numpy. Numpy là không cần thiết để sử dụng điều này.
Mở một luồng đầu ra của Raw Raw. Điều này giống như myrecording = sd.rec(duration * fs, blocking=True)1, ngoại trừ chức năng gọi lại và python3 -m pip install sounddevice --user79 hoạt động trên các đối tượng bộ đệm Python đơn giản thay vì trên các mảng Numpy. Numpy là không cần thiết để sử dụng điều này.
Một danh sách với thông tin về tất cả các thiết bị âm thanh có sẵn. Lớp này không có nghĩa là được khởi tạo bởi người dùng. Thay vào đó, nó được trả lại bởi python3 -m pip install cffi --user84. Nó chứa một từ điển cho mỗi thiết bị có sẵn, giữ các khóa được mô tả trong python3 -m pip install cffi --user84. Lớp này có một biểu diễn chuỗi đặc biệt được hiển thị dưới dạng giá trị trả về của python3 -m pip install cffi --user84 nếu được sử dụng trong phiên Python tương tác. Nó cũng sẽ được hiển thị khi sử dụng hàm sd.default.samplerate = fs39. Hơn nữa, nó có thể thu được với sd.default.samplerate = fs40 và sd.default.samplerate = fs41. Lớp ________ 75 ________ 443 (cờ = 0) [Nguồn] ¶(flags=0)[source]¶ BIT cờ cho đối số trạng thái vào một cuộc gọi lại luồng. Ví dụ Điều này có thể được sử dụng để thu thập các lỗi của nhiều đối tượng trạng thái: python3 -m pip uninstall sounddevice7 ________ 444¶ Đầu vào Dòng chảy. Trong một luồng được mở với python3 -m pip install sounddevice --user51, chỉ ra rằng dữ liệu đầu vào là tất cả sự im lặng (số không) vì không có dữ liệu thực. Trong một luồng được mở bằng một khối không khác, nó chỉ ra rằng một hoặc nhiều mẫu bằng 0 đã được chèn vào bộ đệm đầu vào để bù cho một dòng chảy đầu vào. Điều này chỉ có thể xảy ra trong các luồng song công đầy đủ (bao gồm python3 -m pip install cffi --user13). ________ 447¶ Tràn đầu vào. Trong một luồng được mở với python3 -m pip install sounddevice --user51, chỉ ra rằng dữ liệu trước mẫu đầu tiên của bộ đệm đầu vào đã bị loại bỏ do tràn, có thể là do gọi lại luồng đang sử dụng quá nhiều thời gian CPU. Nếu không chỉ ra rằng dữ liệu trước một hoặc nhiều mẫu trong bộ đệm đầu vào đã bị loại bỏ. Điều này có thể xảy ra trong các luồng toàn diện và chỉ đầu vào (bao gồm python3 -m pip install cffi --user13 và myrecording = sd.rec(duration * fs, dtype='float64')7). ________ 451¶ Đầu ra tràn. Cho biết rằng dữ liệu đầu ra (hoặc một khoảng cách) đã được chèn, có thể do cuộc gọi lại luồng đang sử dụng quá nhiều thời gian CPU. Điều này có thể xảy ra trong các luồng toàn diện và chỉ đầu ra (bao gồm python3 -m pip install cffi --user13 và myrecording = sd.rec(duration * fs, dtype='float64')6). ________ 454¶ Đầu ra tràn. Cho biết rằng dữ liệu đầu ra sẽ bị loại bỏ vì không có phòng. Điều này chỉ có thể xảy ra trong các luồng song công đầy đủ (bao gồm python3 -m pip install cffi --user13), nhưng chỉ khi sd.default.samplerate = fs56 được chỉ định. Xem python3 -m pip uninstall sounddevice30. ________ 458¶ Sản lượng mồi. Một số dữ liệu đầu ra sẽ được sử dụng để điều khiển luồng, dữ liệu đầu vào có thể bằng không. Điều này sẽ chỉ diễn ra với một số API máy chủ và chỉ khi sd.default.samplerate = fs59 được chỉ định. Xem python3 -m pip uninstall sounddevice31. Lớp ________ 75 ________ 462 [Nguồn] ¶[source]¶ Ngoại lệ được người dùng nâng lên để ngừng xử lý gọi lại. Nếu điều này được nêu trong cuộc gọi lại luồng, cuộc gọi lại sẽ không được gọi nữa (nhưng tất cả các bộ đệm âm thanh đang chờ xử lý sẽ được phát). Lớp ________ 75 ________ 464 [Nguồn] ¶[source]¶Ngoại lệ được người dùng đưa ra để hủy bỏ xử lý gọi lại. Nếu điều này được nâng lên trong cuộc gọi lại luồng, tất cả các bộ đệm đang chờ xử lý sẽ bị loại bỏ và cuộc gọi lại sẽ không được gọi nữa. Lớp ________ 75 ________ 466 [Nguồn] ¶[source]¶Ngoại lệ này sẽ được nêu ra trên các lỗi của Portaudio. Lớp ________ 75 ________ 468 (Channel_selectors) [Nguồn] ¶(channel_selectors)[source]¶Cài đặt đầu vào/đầu ra cụ thể ASIO. Các đối tượng của lớp này có thể được sử dụng làm đối số thêm_Sinstall thành python3 -m pip uninstall sounddevice48 (và các biến thể) hoặc là python3 -m pip install cffi --user95.
Ví dụ Điều này có thể được sử dụng để thu thập các lỗi của nhiều đối tượng trạng thái: python3 -m pip uninstall sounddevice8 ________ 444¶ python3 -m pip uninstall sounddevice9 Đầu vào Dòng chảy. sd.default.samplerate = fs0Trong một luồng được mở với python3 -m pip install sounddevice --user51, chỉ ra rằng dữ liệu đầu vào là tất cả sự im lặng (số không) vì không có dữ liệu thực. Trong một luồng được mở bằng một khối không khác, nó chỉ ra rằng một hoặc nhiều mẫu bằng 0 đã được chèn vào bộ đệm đầu vào để bù cho một dòng chảy đầu vào.(exclusive=False)[source]¶ Điều này chỉ có thể xảy ra trong các luồng song công đầy đủ (bao gồm python3 -m pip install cffi --user13). ________ 447¶
Ví dụ Đặt chế độ độc quyền khi gọi myrecording = sd.rec(duration * fs, dtype='float64')6: sd.default.samplerate = fs1 Đặt chế độ độc quyền làm mặc định: sd.default.samplerate = fs2 Phiên bản LỊCH SỬ0.3.7 (2017-02-16):
|