2011-01-12 26 views
23

Tôi đang sử dụng PyAudio theo phân phối Python giả (Python 2.6.6) trong Ubuntu 10.10 x64.PyAudio IOError: Không có thiết bị đầu vào mặc định nào có sẵn

>>> import pyaudio 
>>> pa = pyaudio.PyAudio() 
>>> pa.get_default_input_device_info() 

Traceback (most recent call last): 
    File "<pyshell#24>", line 1, in <module> 
    pa.get_default_input_device_info() 
    File "/usr/lib/python_epd/lib/python2.6/site-packages/pyaudio.py", line 936, in get_default_input_device_info 
    device_index = pa.get_default_input_device() 
IOError: No Default Input Device Available 

Đây cũng là lỗi tương tự nếu tôi cố gắng mở luồng đầu vào. Có lỗi tương ứng "IOError: No Default Output Device có sẵn"

+2

Bạn sẽ nhận được gì nếu bạn thử 'pa.get_device_count()'? – mtrw

+0

@mtrw pa.get_device_count() trả về 0 – Gus

+0

'pyaudio' được cài đặt qua' sudo apt-get install python-pyaudio' hoạt động trên Ubuntu-11.10 – jfs

Trả lời

2

OK, đây là một giải pháp mà không phải là đẹp, nhưng làm việc cho tôi. Theo nhận xét của tôi về câu trả lời của Ulidtko, pyaudio không phải là vấn đề mà là PortAudio cơ bản mà pyaudio có nghĩa vụ liên kết với.

On ubuntu các trình điều khiển portaudio được cài đặt với gói này:

sudo apt-get install python-gnuradio-audio-portaudio 

Bạn phải có này đã có, kể từ khi bạn nói chứng khoán ubuntu của bạn chạy tốt mã của bạn (dù với một số thông điệp debug có thể được bỏ qua)

Nếu bạn truy vấn các vị trí của mô-đun portaudio của bạn, bạn sẽ tìm thấy sau khi bạn đang chạy python enthought của:

>>> import pyaudio 
>>> pyaudio.pa.__file__ 
'/opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/_portaudio.so' 

và thứ e sau trên cổ ubuntu:

In [1]: import pyaudio 
In [2]: pyaudio.pa.__file__ 
Out[2]: '/usr/lib/pymodules/python2.7/_portaudio.so' 

Tôi di chuyển các enthought _portaudio.so ra khỏi đường đi và thay thế nó bằng một liên kết đến hệ thống _portaudio.so và bây giờ tất cả mọi thứ bao gồm máy phân tích quang phổ đáng yêu trong bản demo Chaco/tiên tiến thư mục hoạt động:

cd /opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/ 
mv _portaudio.so _portaudio.so.originalEPD 
ln -s /usr/lib/pymodules/python2.7/_portaudio.so 
+0

Tôi chạy vào cùng một vấn đề với EPD 7.3 (64 bit) trong Ubuntu 12.04, và giải pháp này hoạt động.Một sự khác biệt: Tôi đã cài đặt python-pyaudio hơn là python-gnuradio-audio-portaudio. –

+2

không thể tìm thấy gói 'python-gnuradio-audio-portaudio' thậm chí cập nhật apt-get – Sinux

1

PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library.

http://people.csail.mit.edu/hubert/pyaudio/

Bạn đã cài đặt phần mềm PortAudio? Nó được yêu cầu fot các pyaudio để làm việc.

+0

có, PortAudio được cài đặt. Đây là một điều kỳ quặc để làm với Phân phối Python Enthought, tôi nghĩ vậy. Theo phân phối chuẩn, PyAudio hoạt động tốt. – Gus

+0

Vấn đề nằm ở Enthoughts portaudio vì các mô đun pyaudio giống hệt nhau. – DrSAR

3

Tôi muốn giới thiệu PYO cho âm thanh I/O và tổng hợp, tôi thấy nó thực sự dễ dàng để chọn lên. Dưới đây là một số mã để minh họa làm thế nào tôi sẽ nhận được PYO để có được và đầu ra một đầu vào âm thanh sau khi xử lý nó để thay đổi nó sân:

from pyo import * 
serv = Server(duplex=1).boot() 
serv.start() 
shiftfreq = 329.63 
# 329.63 is the frequency for the E note 
mic = Input(chnl=0) 
shift = FreqShift(mic, shift=shiftfreq, mul=.5).out() 
serv.gui(locals()) 

PYO cũng cho phép bạn thay đổi tần số và các thông số tổng hợp, máy phát điện hay bất cứ điều gì khi đang bay , đó là sự thu hút lớn nhất đối với tôi bởi vì tôi sử dụng nó chủ yếu để lập trình các công cụ tổng hợp trực tiếp.

Nó cũng có một lớn manual ...

Các vấn đề liên quan