适用于VoIP的ALSA虚拟麦克风

时间:2019-01-30 14:27:40

标签: ubuntu voip loopback alsa

我正在尝试为IP语音创建虚拟麦克风,以便能够在发送音频之前先修改音频。

我在使用python 3.5的Ubuntu 16.04上

要澄清: 我希望能够从麦克风(真实的麦克风)中获取音频 修改音频 用“虚拟麦克风”发送 选择Skype(或其他VoIP应用程序)上的虚拟麦克风 我正在打电话的人得到修改后的音频

我要做的是: 我启用了snd-aloop sudo modprobe snd-aloop-这给了我2个环回设备。

我有一个使用alsaaudio的python脚本:

import alsaaudio, time, audioop

FRAME_SIZE = 48

def get_audio():
   inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK,device='plughw:CARD=UB1,DEV=0') #actual mic

   # Set attributes: Mono, 8000 Hz, 16 bit little endian samples
   inp.setchannels(1)
   inp.setrate(FRAME_SIZE*1000)
   inp.setformat(alsaaudio.PCM_FORMAT_S16_LE)
   inp.setperiodsize(160)
   loopback_mic(inp)

def loopback_mic(inp):
   middleman = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK, alsaaudio.PCM_NONBLOCK, device='hw:0,0,1')  # fake mic playback
   middleman.setchannels(2)
   fakemic = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, device='hw:0,1,1')  # fake mic 'output'
   fakemic.setchannels(2)
   while True:
       l, data = inp.read()
       if l%FRAME_SIZE==0:
           middleman.write(data)
           l1, data1 = fakemic.read()
       time.sleep(.001)

但是当我运行skype并选择“环回模拟立体声”作为麦克风然后运行我的脚本时-另一个人听不到任何声音

我相关的设备是:

**** List of CAPTURE Hardware Devices ****  
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]  
  Subdevices: 7/8  
  Subdevice #0: subdevice #0  
  Subdevice #1: subdevice #1  
  Subdevice #2: subdevice #2  
  Subdevice #3: subdevice #3  
  Subdevice #4: subdevice #4  
  Subdevice #5: subdevice #5  
  Subdevice #6: subdevice #6   
  Subdevice #7: subdevice #7    
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]    
  Subdevices: 8/8    
  Subdevice #0: subdevice #0    
  Subdevice #1: subdevice #1    
  Subdevice #2: subdevice #2    
  Subdevice #3: subdevice #3    
  Subdevice #4: subdevice #4    
  Subdevice #5: subdevice #5    
  Subdevice #6: subdevice #6   
  Subdevice #7: subdevice #7  
card 1: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]  
  Subdevices: 1/1  
  Subdevice #0: subdevice #0  
card 1: PCH [HDA Intel PCH], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]  
  Subdevices: 1/1  
  Subdevice #0: subdevice #0  
card 3: UB1 [Samson UB1], device 0: USB Audio [USB Audio]  
  Subdevices: 0/1  
  Subdevice #0: subdevice #0  

**** List of PLAYBACK Hardware Devices ****  
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]  
  Subdevices: 7/8  
  Subdevice #0: subdevice #0  
  Subdevice #1: subdevice #1  
  Subdevice #2: subdevice #2  
  Subdevice #3: subdevice #3  
  Subdevice #4: subdevice #4  
  Subdevice #5: subdevice #5  
  Subdevice #6: subdevice #6  
  Subdevice #7: subdevice #7  
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]  
  Subdevices: 8/8  
  Subdevice #0: subdevice #0  
  Subdevice #1: subdevice #1  
  Subdevice #2: subdevice #2  
  Subdevice #3: subdevice #3  
  Subdevice #4: subdevice #4  
  Subdevice #5: subdevice #5  
  Subdevice #6: subdevice #6  
  Subdevice #7: subdevice #7  
card 1: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]  
  Subdevices: 1/1   
  Subdevice #0: subdevice #0  
...

0 个答案:

没有答案