def __init__(self, displaySignal): threading.Thread.__init__(self) """pyaudio open the sound card""" self.p = pyaudio.PyAudio() print pyaudio.get_portaudio_version_text() print "(portaduio version:", pyaudio.get_portaudio_version(), ")" self.audio_data = 0 self.displaySignal = displaySignal self.c = SlotCommunicate() try: self.in_stream = self.p.open(format=cfg.PYAUDIO_FORMAT_INT16, channels = cfg.SOUND_CARD_CHANNELS, rate = cfg.SOUND_CARD_RATE, input= True, frames_per_buffer = cfg.SOUND_CARD_CHUNK) self.out_stream = self.p.open(format = cfg.PYAUDIO_FORMAT_INT16, channels = cfg.SOUND_CARD_CHANNELS, rate = cfg.SOUND_CARD_RATE, output = True) print "open sound card succ. Sound card rate is: ", cfg.SOUND_CARD_RATE except: print "open sound card failure!"
def _init(self): self.p = pyaudio.PyAudio() self.state = Player.empty self.device = self.p.get_default_output_device_info() self.host = self.p.get_host_api_info_by_index(self.device['hostApi']) self.portaudio_version = pyaudio.get_portaudio_version_text()
def __str__(self): s = _Device.__str__(self) s += 'portaudio : %s %s\n' %(pyaudio.get_portaudio_version(), pyaudio.get_portaudio_version_text()) s += 'pyaudio : %s\n' %pyaudio.__version__ s += 'output device : id %i, %s\n' %(self._index_out, self._device_out) s += 'input device : id %i, %s\n' %(self._index_in, self._device_in) return s
def __init__(self, Fs=16000, TinSec=10): ''' Fs: 取樣頻率,預設值為 16000, TinSec: 保存語音長度,預設值為 10 sec ''' print('RyAudio use %s' % pa.get_portaudio_version_text()) self.Fs = Fs self.spBufferSize = 1024 self.fftWindowSize = self.spBufferSize self.aP = pa.PyAudio() self.iS = pa.Stream(PA_manager=self.aP, input=True, rate=self.Fs, channels=1, format=pa.paInt16) self.oS = pa.Stream(PA_manager=self.aP, output=True, rate=self.Fs, channels=1, format=pa.paInt16) self.iTh = None self.oTh = None #self.sound= None #self.soundTime= 0 self.gettingSound = True self.playingSound = True self.t = 0 self.b = None # byte string self.x = None # ndarray self.fft = None self.f0 = 0 #None self.en = 0 #None self.fm = 0 #None # frequency mean self.fv = 0 #None # frequency var self.fs = 0 #None # frequency std self.enP = 0 #None # AllPass self.enPL = 0 #None # LowPass self.enPH = 0 #None # HighPass self.entropy = 0 #None self.frameI = 0 #self.frameN= self.spBufferSize/4 #1024/4 = 256 self.TinSec = TinSec #10 # sec self.frameN = self.Fs * self.TinSec / self.spBufferSize #self.spBufferSize/4 #1024/4 = 256 self.frameN = int(self.frameN) self.specgram = pl.random([self.frameN, self.spBufferSize / 2]) self.xBuf = pl.random([self.frameN, self.spBufferSize])
def find_device(): print("=" * 90) print("PortAudio System Info:") print("=" * 90) print("Version: %d" % pyaudio.get_portaudio_version()) print("Version Text: %s" % pyaudio.get_portaudio_version_text()) print("Number of Host APIs: %d" % max_apis) print("Number of Devices : %d\n" % max_devs) Found = 0 # Device found? (1 = Yes / 0 = No) #for each audio device, determine if is an input or an output and add it to the appropriate list and dictionary for i in range(0, numdevices): if p.get_device_info_by_host_api_device_index( 0, i).get('maxInputChannels') > 0: print(" Input Device id {0} - {1}".format( i, p.get_device_info_by_host_api_device_index(0, i).get('name'))) if 'Audio' in str( p.get_device_info_by_host_api_device_index(0, i).get('name')): Found = 1 DEVICE = i if p.get_device_info_by_host_api_device_index( 0, i).get('maxOutputChannels') > 0: print("Output Device id {0} - {1}".format( i, p.get_device_info_by_host_api_device_index(0, i).get('name'))) if Found == 1: # Manually using the device index of Samson Microphone devinfo = p.get_device_info_by_index(DEVICE) print('\nSelected device is: {0}\n'.format(devinfo.get('name'))) try: if p.is_format_supported( RATE, # Sample rate input_device=devinfo["index"], # Which device to select input_channels=devinfo[ 'maxInputChannels'], # Number of channels input_format=FORMAT): # Default #output_format=FORMAT): print('\nSupported Device -{0}- has -{1}- Channels\n'.format( str(devinfo["index"]), str(devinfo['maxInputChannels']))) #print ('\nSupported Device -{0}- has -{1}- Channels\n'.format(str(devinfo["index"]),str(devinfo['maxInputChannels']))) except ValueError: print("\n16 bit Format is NOT supported!?!") else: print("\nNo Audio device found... Exit for now") sys.exit() return devinfo # return all of the Audio Devices specifications
def __init__(self, Fs= 16000, TinSec= 10): ''' Fs: 取樣頻率,預設值為 16000, TinSec: 保存語音長度,預設值為 10 sec ''' print('RyAudio use %s'%pa.get_portaudio_version_text()) self.Fs= Fs self.spBufferSize= 1024 self.fftWindowSize= self.spBufferSize self.aP= pa.PyAudio() self.iS= pa.Stream(PA_manager= self.aP, input= True, rate= self.Fs, channels= 1, format= pa.paInt16) self.oS= pa.Stream(PA_manager= self.aP, output= True, rate= self.Fs, channels= 1, format= pa.paInt16) self.iTh= None self.oTh= None #self.sound= None #self.soundTime= 0 self.gettingSound= True self.playingSound= True self.t= 0 self.b= None # byte string self.x= None # ndarray self.fft= None self.f0= 0#None self.en= 0#None self.fm= 0#None # frequency mean self.fv= 0#None # frequency var self.fs= 0#None # frequency std self.enP= 0#None # AllPass self.enPL= 0#None # LowPass self.enPH= 0#None # HighPass self.entropy= 0#None self.frameI= 0 #self.frameN= self.spBufferSize/4 #1024/4 = 256 self.TinSec= TinSec #10 # sec self.frameN= self.Fs*self.TinSec/self.spBufferSize #self.spBufferSize/4 #1024/4 = 256 self.frameN= int(self.frameN) self.specgram= pl.random([self.frameN, self.spBufferSize/2]) self.xBuf= pl.random([self.frameN, self.spBufferSize])
def print_pyaudio_info(manager): print("portaudio version:") print(" " + pyaudio.get_portaudio_version_text()) print() print("available devices:") apis_list = [ manager.get_host_api_info_by_index(i)["name"] for i in range(manager.get_host_api_count()) ] table = [] for index in range(manager.get_device_count()): info = manager.get_device_info_by_index(index) ind = str(index) name = info["name"] api = apis_list[info["hostApi"]] freq = str(info["defaultSampleRate"] / 1000) chin = str(info["maxInputChannels"]) chout = str(info["maxOutputChannels"]) table.append((ind, name, api, freq, chin, chout)) ind_len = max(len(entry[0]) for entry in table) name_len = max(len(entry[1]) for entry in table) api_len = max(len(entry[2]) for entry in table) freq_len = max(len(entry[3]) for entry in table) chin_len = max(len(entry[4]) for entry in table) chout_len = max(len(entry[5]) for entry in table) for ind, name, api, freq, chin, chout in table: print( f" {ind:>{ind_len}}. {name:{name_len}} by {api:{api_len}}" f" ({freq:>{freq_len}} kHz, in: {chin:>{chin_len}}, out: {chout:>{chout_len}})" ) print() default_input_device_index = manager.get_default_input_device_info( )["index"] default_output_device_index = manager.get_default_output_device_info( )["index"] print(f"default input device: {default_input_device_index}") print(f"default output device: {default_output_device_index}")
def get_device_dict() -> dict: # Key: device ID. Value: Device name devices = {} print("PortAudio version text: ", pyaudio.get_portaudio_version_text()) print("Host API count: ", py_audio.get_host_api_count()) print("Default host API info: ", py_audio.get_default_host_api_info()) default_index = py_audio.get_default_host_api_info()["index"] for i in range(py_audio.get_default_host_api_info()["deviceCount"]): devinfo = py_audio.get_device_info_by_host_api_device_index(default_index, i) if py_audio.get_device_info_by_host_api_device_index(default_index, i).get('maxInputChannels')>0: print("Device with audio, index: ", i, " name: ", devinfo["name"], " channels: ", py_audio.get_device_info_by_host_api_device_index(default_index, i).get('maxInputChannels')) devices[i] = (devinfo["name"], py_audio.get_device_info_by_host_api_device_index(default_index, i).get('maxInputChannels')) return devices
def __init__(self, config, verbose, logger): """Initialize an MQTT client. Args: config (:class:`.ServerConfig`): The configuration of the MQTT client. verbose (bool): Whether or not the MQTT client runs in verbose mode. logger (:class:`logging.Logger`): The Logger object for logging messages. """ self.config = config self.verbose = verbose self.logger = logger self.mqtt = Client() self.logger.debug('Using %s', pyaudio.get_portaudio_version_text()) self.logger.debug('Creating PyAudio object...') self.audio = pyaudio.PyAudio() self.initialize() self.mqtt.on_connect = self.on_connect self.mqtt.on_disconnect = self.on_disconnect self.connect()
def query_api_version(self) -> str: return pyaudio.get_portaudio_version_text() # type: ignore
""" import pyaudio standard_sample_rates = [ 8000.0, 9600.0, 11025.0, 12000.0, 16000.0, 22050.0, 24000.0, 32000.0, 44100.0, 48000.0, 88200.0, 96000.0, 192000.0 ] p = pyaudio.PyAudio() max_apis = p.get_host_api_count() max_devs = p.get_device_count() print("\nPortAudio System Info:\n======================") print("Version: %d" % pyaudio.get_portaudio_version()) print("Version Text: %s" % pyaudio.get_portaudio_version_text()) print("Number of Host APIs: %d" % max_apis) print("Number of Devices : %d" % max_devs) print("\nHost APIs:\n==========") for i in range(max_apis): apiinfo = p.get_host_api_info_by_index(i) for k in list(apiinfo.items()): print("%s: %s" % k) print("--------------------------") print("\nDevices:\n========") for i in range(max_devs): devinfo = p.get_device_info_by_index(i)
def query_api_version(self): return pyaudio.get_portaudio_version_text()
# -*- encoding=utf-8 -*- import pyaudio print dir(pyaudio) print pyaudio.get_portaudio_version() print pyaudio.get_portaudio_version_text() audio_hdl = pyaudio.PyAudio() print dir(audio_hdl) default_host_api_info = audio_hdl.get_default_host_api_info() print default_host_api_info default_input_device_info = audio_hdl.get_default_input_device_info() print default_input_device_info default_output_device_info = audio_hdl.get_default_output_device_info() print default_output_device_info device_count = audio_hdl.get_device_count() print device_count host_api_count = audio_hdl.get_host_api_count() print host_api_count host_api_info_by_index = audio_hdl.get_host_api_info_by_index(1) print host_api_info_by_index
available serial ports. """ import sys print('Python ' + sys.version) try: import pykob print('PyKOB ' + pykob.VERSION) except: print('PyKOB not installed') try: import pyaudio pa = pyaudio.PyAudio() print('PyAudio ' + pyaudio.get_portaudio_version_text()) except: print('PyAudio not installed') try: import serial print('pySerial ' + serial.VERSION) import serial.tools.list_ports for p in serial.tools.list_ports.comports(): print(p) except: print('pySerial not installed') try: import tkinter as tk from tkinter import ttk